0.0.1 - ci-build
TestScriptEngineIG - Local Development build (v0.0.1). See the Directory of published versions
Official URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/testscript-engine-testscript | Version: 0.0.1 | |||
Active as of 2022-12-29 | Computable Name: TestScriptEngineScript |
TestScript with extensions specific to the MITRE FHIR Foundry testscript-engine and testscript-generator
Use of this TestScript profile and the assert-subtest and assert-subtest-each extensions can be seen using the testscript-engine. Two specific examples of commands to use one the engine is installed:
bundle exec ruby bin/testscript_engine execute --config spec/examples/subtest/config-subtest.yml
bundle exec bin/testscript_engine execute --config config-mCODESubtestGenerated.yml
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from TestScript
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | 0..* | TestScript | Describes a set of tests | |
![]() ![]() ![]() | ||||
![]() ![]() ![]() ![]() | ||||
![]() ![]() ![]() ![]() ![]() | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest-each | |
![]() |
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | C | 0..* | TestScript | Describes a set of tests |
![]() ![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() | Σ | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) |
![]() ![]() ![]() | ΣC | 1..1 | string | Name for this test script (computer friendly) |
![]() ![]() ![]() | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
![]() |
Path | Conformance | ValueSet |
TestScript.status | required | PublicationStatus |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | TestScript | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | TestScript | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | TestScript | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | TestScript | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | TestScript | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
tst-0 | warning | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
Name | Flags | Card. | Type | Description & Constraints![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() | C | 0..* | TestScript | Describes a set of tests | ||||
![]() ![]() ![]() | Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() | Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
![]() ![]() ![]() | 0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() | Σ | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) | ||||
![]() ![]() ![]() | Σ | 0..1 | Identifier | Additional identifier for the test script | ||||
![]() ![]() ![]() | Σ | 0..1 | string | Business version of the test script | ||||
![]() ![]() ![]() | ΣC | 1..1 | string | Name for this test script (computer friendly) | ||||
![]() ![]() ![]() | Σ | 0..1 | string | Name for this test script (human friendly) | ||||
![]() ![]() ![]() | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() ![]() | Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
![]() ![]() ![]() | Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() ![]() | Σ | 0..1 | string | Name of the publisher (organization or individual) | ||||
![]() ![]() ![]() | Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() ![]() | 0..1 | markdown | Natural language description of the test script | |||||
![]() ![]() ![]() | Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() ![]() | Σ | 0..* | CodeableConcept | Intended jurisdiction for test script (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() ![]() | 0..1 | markdown | Why this test script is defined | |||||
![]() ![]() ![]() | 0..1 | markdown | Use and/or publishing restrictions | |||||
![]() ![]() ![]() | 0..* | BackboneElement | An abstract server representing a client or sender in a message exchange | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | integer | The index of the abstract origin server starting at 1 | |||||
![]() ![]() ![]() ![]() | 1..1 | Coding | FHIR-Client | FHIR-SDC-FormFiller Binding: TestScriptProfileOriginType (extensible): The type of origin profile the test system supports. | |||||
![]() ![]() ![]() | 0..* | BackboneElement | An abstract server representing a destination or receiver in a message exchange | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | integer | The index of the abstract destination server starting at 1 | |||||
![]() ![]() ![]() ![]() | 1..1 | Coding | FHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor Binding: TestScriptProfileDestinationType (extensible): The type of destination profile the test system supports. | |||||
![]() ![]() ![]() | C | 0..1 | BackboneElement | Required capability that is assumed to function correctly on the FHIR server being tested | ||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 0..* | BackboneElement | Links to the FHIR specification | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | 1..1 | uri | URL to the specification | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Short description | |||||
![]() ![]() ![]() ![]() | 1..* | BackboneElement | Capabilities that are assumed to function correctly on the FHIR server being tested | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Are the capabilities required? | |||||
![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Are the capabilities validated? | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | The expected capabilities of the server | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | integer | Which origin server these requirements apply to | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | integer | Which server these requirements apply to | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | uri | Links to the FHIR specification | |||||
![]() ![]() ![]() ![]() ![]() | 1..1 | canonical(CapabilityStatement) | Required Capability Statement | |||||
![]() ![]() ![]() | 0..* | BackboneElement | Fixture in the test script - by reference (uri) | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | boolean | Whether or not to implicitly create the fixture during setup | |||||
![]() ![]() ![]() ![]() | 1..1 | boolean | Whether or not to implicitly delete the fixture during teardown | |||||
![]() ![]() ![]() ![]() | 0..1 | Reference(Resource) | Reference of the resource | |||||
![]() ![]() ![]() | 0..* | Reference(Resource) | Reference of the validation profile | |||||
![]() ![]() ![]() | C | 0..* | BackboneElement | Placeholder for evaluated elements | ||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | string | Descriptive name for this variable | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Default, hard-coded, or user-defined value for this variable | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Natural language description of the variable | |||||
![]() ![]() ![]() ![]() | 0..1 | string | The FHIRPath expression against the fixture body | |||||
![]() ![]() ![]() ![]() | 0..1 | string | HTTP header field name for source | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Hint help text for default value to enter | |||||
![]() ![]() ![]() ![]() | 0..1 | string | XPath or JSONPath against the fixture body | |||||
![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of source expression or headerField within this variable | |||||
![]() ![]() ![]() | 0..1 | BackboneElement | A series of required setup operations before tests are executed | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | C | 1..* | BackboneElement | A setup operation or assert to perform | ||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | BackboneElement | The setup operation to perform | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | Coding | The operation code type that will be executed Binding: TestScriptOperationCode (extensible): The allowable operation code types. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/logging operation label | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/reporting operation description | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Mime type to accept in the payload of the response, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Mime type of the request payload contents, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | integer | Server responding to the request | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Whether or not to send the request url in encoded format | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | integer | Server initiating the request | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Explicitly defined path parameters | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement | Each operation can have one or more header elements | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | HTTP header field name | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | HTTP headerfield value | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of mapped request | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of mapped response | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of body for PUT and POST requests | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Id of fixture used for extracting the [id], [type], and [vid] for GET requests | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Request URL | |||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | BackboneElement | The assertion to perform | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest-each | |||||
![]() ![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/logging assertion label | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/reporting assertion description | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | response | request Binding: AssertionDirectionType (required): The type of direction to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Id of the source fixture to be evaluated | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | The FHIRPath expression to evaluate against the source fixture | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | XPath or JSONPath expression to evaluate against the source fixture | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Mime type to compare against the 'Content-Type' header Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | The FHIRPath expression to be evaluated | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | HTTP header field name | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Fixture Id of minimum content resource | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | Perform validation on navigation links? | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval Binding: AssertionOperatorType (required): The type of operator to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | XPath or JSONPath expression | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Request URL comparison value | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable Binding: AssertionResponseTypes (required): The type of response code to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | HTTP response code to test | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of source expression or headerField | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Profile Id of validation profile reference | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | The value to compare to | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Will this assert produce a warning only on error? | |||||
![]() ![]() ![]() | 0..* | BackboneElement | A test in this script | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 0..1 | string | Tracking/logging name of this test | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Tracking/reporting short description of the test | |||||
![]() ![]() ![]() ![]() | C | 1..* | BackboneElement | A test operation or assert to perform | ||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | See operation (TestScript) | The setup operation to perform | ||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | See assert (TestScript) | The setup assertion to perform | ||||
![]() ![]() ![]() | 0..1 | BackboneElement | A series of required clean up steps | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..* | BackboneElement | One or more teardown operations to perform | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | C | 1..1 | See operation (TestScript) | The teardown operation to perform | ||||
![]() |
Path | Conformance | ValueSet | ||||
TestScript.language | preferred | CommonLanguages
| ||||
TestScript.status | required | PublicationStatus | ||||
TestScript.jurisdiction | extensible | Jurisdiction ValueSet | ||||
TestScript.origin.profile | extensible | TestScriptProfileOriginType | ||||
TestScript.destination.profile | extensible | TestScriptProfileDestinationType | ||||
TestScript.setup.action.operation.type | extensible | TestScriptOperationCode | ||||
TestScript.setup.action.operation.resource | required | FHIRDefinedType | ||||
TestScript.setup.action.operation.accept | required | Mime Types (a valid code from urn:ietf:bcp:13 ) | ||||
TestScript.setup.action.operation.contentType | required | Mime Types (a valid code from urn:ietf:bcp:13 ) | ||||
TestScript.setup.action.operation.method | required | TestScriptRequestMethodCode | ||||
TestScript.setup.action.assert.direction | required | AssertionDirectionType | ||||
TestScript.setup.action.assert.contentType | required | Mime Types (a valid code from urn:ietf:bcp:13 ) | ||||
TestScript.setup.action.assert.operator | required | AssertionOperatorType | ||||
TestScript.setup.action.assert.requestMethod | required | TestScriptRequestMethodCode | ||||
TestScript.setup.action.assert.resource | required | FHIRDefinedType | ||||
TestScript.setup.action.assert.response | required | AssertionResponseTypes |
Id | Grade | Path(s) | Details | Requirements |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
tst-1 | error | TestScript.setup.action | Setup action SHALL contain either an operation or assert but not both. : operation.exists() xor assert.exists() | |
tst-2 | error | TestScript.test.action | Test action SHALL contain either an operation or assert but not both. : operation.exists() xor assert.exists() | |
tst-3 | error | TestScript.variable | Variable can only contain one of expression, headerField or path. : expression.empty() or headerField.empty() or path.empty() | |
tst-4 | error | TestScript.metadata | TestScript metadata capability SHALL contain required or validated or both. : capability.required.exists() or capability.validated.exists() | |
tst-5 | error | TestScript.setup.action.assert | Only a single assertion SHALL be present within setup action assert element. : extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) | |
tst-6 | error | TestScript.test.action.assert | Only a single assertion SHALL be present within test action assert element. : extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) | |
tst-7 | error | TestScript.setup.action.operation | Setup operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history')) | |
tst-8 | error | TestScript.test.action.operation | Test operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history')) | |
tst-9 | error | TestScript.teardown.action.operation | Teardown operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history')) | |
tst-10 | error | TestScript.setup.action.assert | Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. : compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists()) | |
tst-11 | error | TestScript.test.action.assert | Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. : compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists()) | |
tst-12 | error | TestScript.setup.action.assert | Setup action assert response and responseCode SHALL be empty when direction equals request : (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response' | |
tst-13 | error | TestScript.test.action.assert | Test action assert response and response and responseCode SHALL be empty when direction equals request : (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response' |
This structure is derived from TestScript
Differential View
This structure is derived from TestScript
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | 0..* | TestScript | Describes a set of tests | |
![]() ![]() ![]() | ||||
![]() ![]() ![]() ![]() | ||||
![]() ![]() ![]() ![]() ![]() | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest-each | |
![]() |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | C | 0..* | TestScript | Describes a set of tests |
![]() ![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() | Σ | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) |
![]() ![]() ![]() | ΣC | 1..1 | string | Name for this test script (computer friendly) |
![]() ![]() ![]() | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
![]() |
Path | Conformance | ValueSet |
TestScript.status | required | PublicationStatus |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | TestScript | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | TestScript | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | TestScript | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | TestScript | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | TestScript | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
tst-0 | warning | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() | C | 0..* | TestScript | Describes a set of tests | ||||
![]() ![]() ![]() | Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() | Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
![]() ![]() ![]() | 0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() | Σ | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) | ||||
![]() ![]() ![]() | Σ | 0..1 | Identifier | Additional identifier for the test script | ||||
![]() ![]() ![]() | Σ | 0..1 | string | Business version of the test script | ||||
![]() ![]() ![]() | ΣC | 1..1 | string | Name for this test script (computer friendly) | ||||
![]() ![]() ![]() | Σ | 0..1 | string | Name for this test script (human friendly) | ||||
![]() ![]() ![]() | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() ![]() | Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
![]() ![]() ![]() | Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() ![]() | Σ | 0..1 | string | Name of the publisher (organization or individual) | ||||
![]() ![]() ![]() | Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() ![]() | 0..1 | markdown | Natural language description of the test script | |||||
![]() ![]() ![]() | Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() ![]() | Σ | 0..* | CodeableConcept | Intended jurisdiction for test script (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() ![]() | 0..1 | markdown | Why this test script is defined | |||||
![]() ![]() ![]() | 0..1 | markdown | Use and/or publishing restrictions | |||||
![]() ![]() ![]() | 0..* | BackboneElement | An abstract server representing a client or sender in a message exchange | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | integer | The index of the abstract origin server starting at 1 | |||||
![]() ![]() ![]() ![]() | 1..1 | Coding | FHIR-Client | FHIR-SDC-FormFiller Binding: TestScriptProfileOriginType (extensible): The type of origin profile the test system supports. | |||||
![]() ![]() ![]() | 0..* | BackboneElement | An abstract server representing a destination or receiver in a message exchange | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | integer | The index of the abstract destination server starting at 1 | |||||
![]() ![]() ![]() ![]() | 1..1 | Coding | FHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor Binding: TestScriptProfileDestinationType (extensible): The type of destination profile the test system supports. | |||||
![]() ![]() ![]() | C | 0..1 | BackboneElement | Required capability that is assumed to function correctly on the FHIR server being tested | ||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 0..* | BackboneElement | Links to the FHIR specification | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | 1..1 | uri | URL to the specification | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Short description | |||||
![]() ![]() ![]() ![]() | 1..* | BackboneElement | Capabilities that are assumed to function correctly on the FHIR server being tested | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Are the capabilities required? | |||||
![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Are the capabilities validated? | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | The expected capabilities of the server | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | integer | Which origin server these requirements apply to | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | integer | Which server these requirements apply to | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | uri | Links to the FHIR specification | |||||
![]() ![]() ![]() ![]() ![]() | 1..1 | canonical(CapabilityStatement) | Required Capability Statement | |||||
![]() ![]() ![]() | 0..* | BackboneElement | Fixture in the test script - by reference (uri) | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | boolean | Whether or not to implicitly create the fixture during setup | |||||
![]() ![]() ![]() ![]() | 1..1 | boolean | Whether or not to implicitly delete the fixture during teardown | |||||
![]() ![]() ![]() ![]() | 0..1 | Reference(Resource) | Reference of the resource | |||||
![]() ![]() ![]() | 0..* | Reference(Resource) | Reference of the validation profile | |||||
![]() ![]() ![]() | C | 0..* | BackboneElement | Placeholder for evaluated elements | ||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..1 | string | Descriptive name for this variable | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Default, hard-coded, or user-defined value for this variable | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Natural language description of the variable | |||||
![]() ![]() ![]() ![]() | 0..1 | string | The FHIRPath expression against the fixture body | |||||
![]() ![]() ![]() ![]() | 0..1 | string | HTTP header field name for source | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Hint help text for default value to enter | |||||
![]() ![]() ![]() ![]() | 0..1 | string | XPath or JSONPath against the fixture body | |||||
![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of source expression or headerField within this variable | |||||
![]() ![]() ![]() | 0..1 | BackboneElement | A series of required setup operations before tests are executed | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | C | 1..* | BackboneElement | A setup operation or assert to perform | ||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | BackboneElement | The setup operation to perform | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | Coding | The operation code type that will be executed Binding: TestScriptOperationCode (extensible): The allowable operation code types. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/logging operation label | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/reporting operation description | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Mime type to accept in the payload of the response, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Mime type of the request payload contents, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | integer | Server responding to the request | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Whether or not to send the request url in encoded format | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | integer | Server initiating the request | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Explicitly defined path parameters | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement | Each operation can have one or more header elements | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | HTTP header field name | |||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | HTTP headerfield value | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of mapped request | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of mapped response | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of body for PUT and POST requests | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Id of fixture used for extracting the [id], [type], and [vid] for GET requests | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Request URL | |||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | BackboneElement | The assertion to perform | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | (Complex) | Extension URL: https://fhir-crucible.github.io/testscript-engine-ig/StructureDefinition/assert-subtest-each | |||||
![]() ![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/logging assertion label | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Tracking/reporting assertion description | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | response | request Binding: AssertionDirectionType (required): The type of direction to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Id of the source fixture to be evaluated | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | The FHIRPath expression to evaluate against the source fixture | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | XPath or JSONPath expression to evaluate against the source fixture | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Mime type to compare against the 'Content-Type' header Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | The FHIRPath expression to be evaluated | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | HTTP header field name | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Fixture Id of minimum content resource | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | Perform validation on navigation links? | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval Binding: AssertionOperatorType (required): The type of operator to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | XPath or JSONPath expression | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Request URL comparison value | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code | okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable Binding: AssertionResponseTypes (required): The type of response code to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | HTTP response code to test | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Fixture Id of source expression or headerField | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Profile Id of validation profile reference | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | The value to compare to | |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | boolean | Will this assert produce a warning only on error? | |||||
![]() ![]() ![]() | 0..* | BackboneElement | A test in this script | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 0..1 | string | Tracking/logging name of this test | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Tracking/reporting short description of the test | |||||
![]() ![]() ![]() ![]() | C | 1..* | BackboneElement | A test operation or assert to perform | ||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | See operation (TestScript) | The setup operation to perform | ||||
![]() ![]() ![]() ![]() ![]() | C | 0..1 | See assert (TestScript) | The setup assertion to perform | ||||
![]() ![]() ![]() | 0..1 | BackboneElement | A series of required clean up steps | |||||
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() | 1..* | BackboneElement | One or more teardown operations to perform | |||||
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() | C | 1..1 | See operation (TestScript) | The teardown operation to perform | ||||
![]() |
Path | Conformance | ValueSet | ||||
TestScript.language | preferred | CommonLanguages
| ||||
TestScript.status | required | PublicationStatus | ||||
TestScript.jurisdiction | extensible | Jurisdiction ValueSet | ||||
TestScript.origin.profile | extensible | TestScriptProfileOriginType | ||||
TestScript.destination.profile | extensible | TestScriptProfileDestinationType | ||||
TestScript.setup.action.operation.type | extensible | TestScriptOperationCode | ||||
TestScript.setup.action.operation.resource | required | FHIRDefinedType | ||||
TestScript.setup.action.operation.accept | required | Mime Types (a valid code from urn:ietf:bcp:13 ) | ||||
TestScript.setup.action.operation.contentType | required | Mime Types (a valid code from urn:ietf:bcp:13 ) | ||||
TestScript.setup.action.operation.method | required | TestScriptRequestMethodCode | ||||
TestScript.setup.action.assert.direction | required | AssertionDirectionType | ||||
TestScript.setup.action.assert.contentType | required | Mime Types (a valid code from urn:ietf:bcp:13 ) | ||||
TestScript.setup.action.assert.operator | required | AssertionOperatorType | ||||
TestScript.setup.action.assert.requestMethod | required | TestScriptRequestMethodCode | ||||
TestScript.setup.action.assert.resource | required | FHIRDefinedType | ||||
TestScript.setup.action.assert.response | required | AssertionResponseTypes |
Id | Grade | Path(s) | Details | Requirements |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
tst-1 | error | TestScript.setup.action | Setup action SHALL contain either an operation or assert but not both. : operation.exists() xor assert.exists() | |
tst-2 | error | TestScript.test.action | Test action SHALL contain either an operation or assert but not both. : operation.exists() xor assert.exists() | |
tst-3 | error | TestScript.variable | Variable can only contain one of expression, headerField or path. : expression.empty() or headerField.empty() or path.empty() | |
tst-4 | error | TestScript.metadata | TestScript metadata capability SHALL contain required or validated or both. : capability.required.exists() or capability.validated.exists() | |
tst-5 | error | TestScript.setup.action.assert | Only a single assertion SHALL be present within setup action assert element. : extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) | |
tst-6 | error | TestScript.test.action.assert | Only a single assertion SHALL be present within test action assert element. : extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) | |
tst-7 | error | TestScript.setup.action.operation | Setup operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history')) | |
tst-8 | error | TestScript.test.action.operation | Test operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history')) | |
tst-9 | error | TestScript.teardown.action.operation | Teardown operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history')) | |
tst-10 | error | TestScript.setup.action.assert | Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. : compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists()) | |
tst-11 | error | TestScript.test.action.assert | Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. : compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists()) | |
tst-12 | error | TestScript.setup.action.assert | Setup action assert response and responseCode SHALL be empty when direction equals request : (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response' | |
tst-13 | error | TestScript.test.action.assert | Test action assert response and response and responseCode SHALL be empty when direction equals request : (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response' |
This structure is derived from TestScript
Other representations of profile: CSV, Excel, Schematron