FHIR Testing IG, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0-SNAPSHOT built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-testing-ig/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.org/fhir/StructureDefinition/shareabletestscript | Version: 0.1.0-SNAPSHOT | |||
| Standards status: Trial-use Draft as of 2021-11-08 | Maturity Level: 2 | Computable Name: ShareableTestScript | ||
| Other Identifiers: OID:2.16.840.1.113883.4.642.5.1081 | ||||
Enforces the minimum information set for the test script metadata required by HL7 and other organizations that share and publish test scripts
Usages:
You can also check for usages in the FHIR IG Statistics
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 1..1 | TestScript | Describes a set of tests |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) |
![]() ![]() |
Σ | 1..1 | string | Business version of the test script |
![]() ![]() |
Σ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. |
![]() ![]() |
Σ | 1..1 | boolean | For testing only - never for real usage |
![]() ![]() |
Σ | 1..1 | string | Name of the publisher/steward (organization or individual) |
![]() ![]() |
1..1 | markdown | Natural language description of the test script | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| TestScript.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | TestScript.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
1..1 | TestScript | Describes a set of tests | |
![]() ![]() |
1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) | |
![]() ![]() |
1..1 | string | Business version of the test script | |
![]() ![]() |
1..1 | boolean | For testing only - never for real usage | |
![]() ![]() |
1..1 | string | Name of the publisher/steward (organization or individual) | |
![]() ![]() |
1..1 | markdown | Natural language description of the test script | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 1..1 | 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: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the test script | ||||
![]() ![]() |
Σ | 1..1 | string | Business version of the test script | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
Σ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. | ||||
![]() ![]() |
Σ | 1..1 | boolean | For testing only - never for real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 1..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
1..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: JurisdictionValueSet (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..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
0..* | BackboneElement | An abstract server representing a client or sender in a message exchange | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | positiveInt | The index of the abstract test system | |||||
![]() ![]() ![]() |
1..1 | string | Label for the test system | |||||
![]() ![]() ![]() |
0..* | canonical(ActorDefinition | CapabilityStatement) | Features met by the test system | |||||
![]() ![]() ![]() |
0..1 | markdown | Formatted information of this test system | |||||
![]() ![]() ![]() |
0..1 | url | The url path of this test system | |||||
![]() ![]() |
C | 0..1 | BackboneElement | Required capability that is assumed to function correctly on the FHIR server being tested Constraints: tst-1 | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Links to the FHIR specification | |||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | uri | URL to the specification | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Short description | |||||
![]() ![]() ![]() |
C | 1..* | BackboneElement | Capabilities that are assumed to function correctly on the FHIR server being tested | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
C | 1..1 | boolean | Are the capabilities required? | ||||
![]() ![]() ![]() ![]() |
C | 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 | Indication of the artifact(s) that are tested by this test case | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | canonical(Resource) | The specific conformance artifact being tested | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | required | optional | strict Binding: TestScriptScopeConformanceType (extensible): The expectation of whether the test must pass for the system to be considered conformant with the artifact. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | unit | integration | production Binding: TestScriptScopePhaseType (extensible): The phase of testing for this artifact. | |||||
![]() ![]() |
0..* | BackboneElement | Fixture in the test script - by reference (uri) | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 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..1 | Expression | The expression against the fixture to extract the required element | |||||
![]() ![]() |
0..* | canonical(StructureDefinition) | Reference of the validation profile | |||||
![]() ![]() |
C | 0..* | BackboneElement | Placeholder for evaluated elements Constraints: tst-2 | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 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 | |||||
![]() ![]() ![]() |
C | 0..1 | Expression | The expression against the fixture body | ||||
![]() ![]() ![]() |
C | 0..1 | string | HTTP header field name for source | ||||
![]() ![]() ![]() |
0..1 | string | Hint help text for default value to enter | |||||
![]() ![]() ![]() |
C | 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 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | A setup common or operation or assert to perform Constraints: tst-3 | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | BackboneElement | Links or references to common collection(s) of actions | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | canonical(Test Script) | Canonical reference to the common TestScript instance | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | id | Common key reference that identifies the common collection of actions to perform | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | BackboneElement | Parameter(s) to convey input values to the identified common collection of actions | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | string | Name of the parameter from the identified common collection of actions | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | string | Value to assign to the parameter from the identified common collection of actions | |||||
![]() ![]() ![]() ![]() |
C | 0..1 | BackboneElement | The setup operation to perform Constraints: tst-4 | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | Coding | The operation code type that will be executed Binding: TestScriptOperationCode (extensible): FHIR Operation Code Types | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | uri | Resource type Binding: ConcreteFHIRTypes (extensible): 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: SupplementedMimeTypes (required): The mime type of an attachment. Any valid mime type is allowed (BCP 13; RFCs 2045, 2046, 2047, 4288, 4289 and 2049), and also json, xml, and ttl.
Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | Mime type of the request payload contents, with charset etc Binding: SupplementedMimeTypes (required): The mime type of an attachment. Any valid mime type is allowed (BCP 13; RFCs 2045, 2046, 2047, 4288, 4289 and 2049), and also json, xml, and ttl.
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 | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Explicitly defined path parameters | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | BackboneElement | Each operation can have one or more header elements | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 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 | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | id | Fixture Id of body for PUT and POST requests | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | id | Id of fixture used for extracting the [id], [type], and [vid] for GET requests | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Request URL | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | BackboneElement | The assertion to perform Constraints: tst-5, tst-6, tst-7, tst-8 | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Tracking/logging assertion label | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Key that identifies this assert | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | id | Zero or more assert.key references | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Tracking/reporting assertion description | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | response | request Binding: AssertionDirectionType (required): The direction to use for assertions. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Id of the source fixture to be evaluated | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | Expression | The expression to evaluate against the source fixture | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | XPath or JSONPath expression to evaluate against the source fixture | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | Mime type to compare against the 'Content-Type' header Binding: SupplementedMimeTypes (required): The mime type of an attachment. Any valid mime type is allowed (BCP 13; RFCs 2045, 2046, 2047, 4288, 4289 and 2049), and also json, xml, and ttl.
Example General: application/fhir+xml | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | fail | pass | skip | stop Binding: AssertionManualCompletionType (required): The default type of manual completion to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | Expression | The expression to be evaluated | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | HTTP header field name | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Fixture Id of minimum content resource | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | boolean | Perform validation on navigation links? | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval | manualEval Binding: AssertionOperatorType (required): The type of operator to use for assertions. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | XPath or JSONPath expression | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Request URL comparison value | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | uri | Resource type Binding: ConcreteFHIRTypes (extensible): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | continue | switchingProtocols | okay | created | accepted | nonAuthoritativeInformation | noContent | resetContent | partialContent | multipleChoices | movedPermanently | found | seeOther | notModified | useProxy | temporaryRedirect | permanentRedirect | badRequest | unauthorized | paymentRequired | forbidden | notFound | methodNotAllowed | notAcceptable | proxyAuthenticationRequired | requestTimeout | conflict | gone | lengthRequired | preconditionFailed | contentTooLarge | uriTooLong | unsupportedMediaType | rangeNotSatisfiable | expectationFailed | misdirectedRequest | unprocessableContent | upgradeRequired | internalServerError | notImplemented | badGateway | serviceUnavailable | gatewayTimeout | httpVersionNotSupported Binding: AssertionResponseTypes (required): The response code to expect in the response. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | HTTP response code to test | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Fixture Id of source expression or headerField | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | boolean | If this assert fails, will the current test execution stop? | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | id | Profile Id of validation profile reference | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | The value to compare to | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | boolean | Will this assert produce a warning only on error? | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | BackboneElement | Links or references to the testing requirements | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | canonical(Requirements) | Canonical reference to the Requirements instance | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | id | Requirements statement key identifier | |||||
![]() ![]() |
0..* | BackboneElement | A test in this script | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 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 | 0..* | BackboneElement | A test operation or assert to perform Constraints: tst-9 | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | See common (TestScript) | Links or references to common collection(s) of actions | |||||
![]() ![]() ![]() ![]() |
C | 0..1 | See operation (TestScript) | The setup operation to perform Constraints: tst-10 | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | See assert (TestScript) | The setup assertion to perform Constraints: tst-11, tst-12, tst-13, tst-14 | ||||
![]() ![]() |
0..1 | BackboneElement | A series of required clean up steps | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..* | BackboneElement | One or more teardown operations to perform | |||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | See common (TestScript) | Links or references to common collection(s) of actions | |||||
![]() ![]() ![]() ![]() |
C | 1..1 | See operation (TestScript) | The teardown operation to perform Constraints: tst-15 | ||||
![]() ![]() |
0..* | BackboneElement | A common collection of actions in this script | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | id | Key that identifies this common collection of actions | |||||
![]() ![]() ![]() |
0..1 | string | Tracking/logging name of this common collection of actions | |||||
![]() ![]() ![]() |
0..1 | string | Tracking/reporting short description of this common collection of actions | |||||
![]() ![]() ![]() |
0..* | BackboneElement | Parameter(s) to convey input values to this common collection of actions in this script | |||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Tracking/logging name of this parameter to be used in this common collection of actions | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Tracking/reporting short description of this parameter to be used this common collection of actions | |||||
![]() ![]() ![]() |
C | 1..* | BackboneElement | A common operation or assert that can be re-used in this script Constraints: tst-16 | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | See operation (TestScript) | The common operation that can be re-used in this script Constraints: tst-17 | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | See assert (TestScript) | The common assertion to perform Constraints: tst-18, tst-19, tst-20, tst-21 | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| TestScript.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| TestScript.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.scope.conformance | Base | extensible | Test Script Scope Conformance Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.scope.phase | Base | extensible | Test Script Scope Phase Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.type | Base | extensible | Test Script Operation Code | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.resource | Base | extensible | Concrete FHIR Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.accept | Base | required | Supplemented Mime Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.contentType | Base | required | Supplemented Mime Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.method | Base | required | Test Script Request Method Code | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.direction | Base | required | Assertion Direction Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.contentType | Base | required | Supplemented Mime Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.defaultManualCompletion | Base | required | Assertion Manual Completion Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.operator | Base | required | Assertion Operator Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.requestMethod | Base | required | Test Script Request Method Code | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.resource | Base | extensible | Concrete FHIR Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.response | Base | required | Assertion Response Types | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | TestScript.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| tst-1 | error | TestScript.metadata | TestScript metadata capability SHALL contain required or validated or both. |
capability.required.exists() or capability.validated.exists()
|
| tst-2 | error | TestScript.variable | Variable can only contain one of expression, headerField or path. |
(expression.empty() and headerField.empty() and path.empty()) or (expression.empty() and (headerField.exists() xor path.exists())) or (headerField.empty() and (expression.exists() xor path.exists())) or (path.empty() and (expression.exists() xor headerField.exists()))
|
| tst-3 | error | TestScript.setup.action | Setup action SHALL contain only one of either a common or an operation or an assert. |
common.exists() xor operation.exists() xor assert.exists()
|
| tst-4 | 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-5 | 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-6 | 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-7 | error | TestScript.setup.action.assert | A setup action assert SHALL define a singular assertion function and prevent overlapping assertion functionality. |
extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + requestURL.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <= 1)
|
| tst-8 | error | TestScript.setup.action.assert | A setup action assert SHALL not allow the use of operator and value with minimumId, navigationLinks or validateProfileId. |
extension.exists() or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 0) or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 1 and operator.count() + value.count() = 0)
|
| tst-9 | error | TestScript.test.action | Test action SHALL contain only one of either a common or an operation or an assert. |
common.exists() xor operation.exists() xor assert.exists()
|
| tst-10 | 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-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.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'
|
| tst-13 | error | TestScript.test.action.assert | A test action assert SHALL define a singular assertion function and prevent overlapping assertion functionality. |
extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + requestURL.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <= 1)
|
| tst-14 | error | TestScript.test.action.assert | A test action assert SHALL not allow the use of operator and value with minimumId, navigationLinks or validateProfileId. |
extension.exists() or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 0) or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 1 and operator.count() + value.count() = 0)
|
| tst-15 | 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-16 | error | TestScript.common.action | Common action SHALL contain either an operation or assert but not both. |
operation.exists() xor assert.exists()
|
| tst-17 | error | TestScript.common.action.operation | Common 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-18 | error | TestScript.common.action.assert | Common action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. |
compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())
|
| tst-19 | error | TestScript.common.action.assert | Common 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'
|
| tst-20 | error | TestScript.common.action.assert | A common action assert SHALL define a singular assertion function and prevent overlapping assertion functionality. |
extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + requestURL.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <= 1)
|
| tst-21 | error | TestScript.common.action.assert | A common action assert SHALL not allow the use of operator and value with minimumId, navigationLinks or validateProfileId. |
extension.exists() or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 0) or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 1 and operator.count() + value.count() = 0)
|
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 1..1 | TestScript | Describes a set of tests |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) |
![]() ![]() |
Σ | 1..1 | string | Business version of the test script |
![]() ![]() |
Σ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. |
![]() ![]() |
Σ | 1..1 | boolean | For testing only - never for real usage |
![]() ![]() |
Σ | 1..1 | string | Name of the publisher/steward (organization or individual) |
![]() ![]() |
1..1 | markdown | Natural language description of the test script | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| TestScript.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | TestScript.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
Differential View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
1..1 | TestScript | Describes a set of tests | |
![]() ![]() |
1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) | |
![]() ![]() |
1..1 | string | Business version of the test script | |
![]() ![]() |
1..1 | boolean | For testing only - never for real usage | |
![]() ![]() |
1..1 | string | Name of the publisher/steward (organization or individual) | |
![]() ![]() |
1..1 | markdown | Natural language description of the test script | |
Documentation for this format | ||||
Snapshot ViewView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 1..1 | 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: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
ΣC | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the test script | ||||
![]() ![]() |
Σ | 1..1 | string | Business version of the test script | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
Σ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. | ||||
![]() ![]() |
Σ | 1..1 | boolean | For testing only - never for real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 1..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
1..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: JurisdictionValueSet (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..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
0..* | BackboneElement | An abstract server representing a client or sender in a message exchange | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | positiveInt | The index of the abstract test system | |||||
![]() ![]() ![]() |
1..1 | string | Label for the test system | |||||
![]() ![]() ![]() |
0..* | canonical(ActorDefinition | CapabilityStatement) | Features met by the test system | |||||
![]() ![]() ![]() |
0..1 | markdown | Formatted information of this test system | |||||
![]() ![]() ![]() |
0..1 | url | The url path of this test system | |||||
![]() ![]() |
C | 0..1 | BackboneElement | Required capability that is assumed to function correctly on the FHIR server being tested Constraints: tst-1 | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Links to the FHIR specification | |||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | uri | URL to the specification | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Short description | |||||
![]() ![]() ![]() |
C | 1..* | BackboneElement | Capabilities that are assumed to function correctly on the FHIR server being tested | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
C | 1..1 | boolean | Are the capabilities required? | ||||
![]() ![]() ![]() ![]() |
C | 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 | Indication of the artifact(s) that are tested by this test case | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | canonical(Resource) | The specific conformance artifact being tested | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | required | optional | strict Binding: TestScriptScopeConformanceType (extensible): The expectation of whether the test must pass for the system to be considered conformant with the artifact. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | unit | integration | production Binding: TestScriptScopePhaseType (extensible): The phase of testing for this artifact. | |||||
![]() ![]() |
0..* | BackboneElement | Fixture in the test script - by reference (uri) | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 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..1 | Expression | The expression against the fixture to extract the required element | |||||
![]() ![]() |
0..* | canonical(StructureDefinition) | Reference of the validation profile | |||||
![]() ![]() |
C | 0..* | BackboneElement | Placeholder for evaluated elements Constraints: tst-2 | ||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 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 | |||||
![]() ![]() ![]() |
C | 0..1 | Expression | The expression against the fixture body | ||||
![]() ![]() ![]() |
C | 0..1 | string | HTTP header field name for source | ||||
![]() ![]() ![]() |
0..1 | string | Hint help text for default value to enter | |||||
![]() ![]() ![]() |
C | 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 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | A setup common or operation or assert to perform Constraints: tst-3 | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | BackboneElement | Links or references to common collection(s) of actions | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | canonical(Test Script) | Canonical reference to the common TestScript instance | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | id | Common key reference that identifies the common collection of actions to perform | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | BackboneElement | Parameter(s) to convey input values to the identified common collection of actions | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | string | Name of the parameter from the identified common collection of actions | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | string | Value to assign to the parameter from the identified common collection of actions | |||||
![]() ![]() ![]() ![]() |
C | 0..1 | BackboneElement | The setup operation to perform Constraints: tst-4 | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | Coding | The operation code type that will be executed Binding: TestScriptOperationCode (extensible): FHIR Operation Code Types | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | uri | Resource type Binding: ConcreteFHIRTypes (extensible): 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: SupplementedMimeTypes (required): The mime type of an attachment. Any valid mime type is allowed (BCP 13; RFCs 2045, 2046, 2047, 4288, 4289 and 2049), and also json, xml, and ttl.
Example General: application/fhir+xml | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | Mime type of the request payload contents, with charset etc Binding: SupplementedMimeTypes (required): The mime type of an attachment. Any valid mime type is allowed (BCP 13; RFCs 2045, 2046, 2047, 4288, 4289 and 2049), and also json, xml, and ttl.
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 | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Explicitly defined path parameters | ||||
![]() ![]() ![]() ![]() ![]() |
0..* | BackboneElement | Each operation can have one or more header elements | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 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 | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | id | Fixture Id of body for PUT and POST requests | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | id | Id of fixture used for extracting the [id], [type], and [vid] for GET requests | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Request URL | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | BackboneElement | The assertion to perform Constraints: tst-5, tst-6, tst-7, tst-8 | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Tracking/logging assertion label | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Key that identifies this assert | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | id | Zero or more assert.key references | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Tracking/reporting assertion description | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | response | request Binding: AssertionDirectionType (required): The direction to use for assertions. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Id of the source fixture to be evaluated | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | Expression | The expression to evaluate against the source fixture | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | XPath or JSONPath expression to evaluate against the source fixture | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | Mime type to compare against the 'Content-Type' header Binding: SupplementedMimeTypes (required): The mime type of an attachment. Any valid mime type is allowed (BCP 13; RFCs 2045, 2046, 2047, 4288, 4289 and 2049), and also json, xml, and ttl.
Example General: application/fhir+xml | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | fail | pass | skip | stop Binding: AssertionManualCompletionType (required): The default type of manual completion to use for assertion. | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | Expression | The expression to be evaluated | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | HTTP header field name | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Fixture Id of minimum content resource | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | boolean | Perform validation on navigation links? | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval | manualEval Binding: AssertionOperatorType (required): The type of operator to use for assertions. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | XPath or JSONPath expression | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Request URL comparison value | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | uri | Resource type Binding: ConcreteFHIRTypes (extensible): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | code | continue | switchingProtocols | okay | created | accepted | nonAuthoritativeInformation | noContent | resetContent | partialContent | multipleChoices | movedPermanently | found | seeOther | notModified | useProxy | temporaryRedirect | permanentRedirect | badRequest | unauthorized | paymentRequired | forbidden | notFound | methodNotAllowed | notAcceptable | proxyAuthenticationRequired | requestTimeout | conflict | gone | lengthRequired | preconditionFailed | contentTooLarge | uriTooLong | unsupportedMediaType | rangeNotSatisfiable | expectationFailed | misdirectedRequest | unprocessableContent | upgradeRequired | internalServerError | notImplemented | badGateway | serviceUnavailable | gatewayTimeout | httpVersionNotSupported Binding: AssertionResponseTypes (required): The response code to expect in the response. | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | HTTP response code to test | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Fixture Id of source expression or headerField | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | boolean | If this assert fails, will the current test execution stop? | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | id | Profile Id of validation profile reference | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | The value to compare to | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | boolean | Will this assert produce a warning only on error? | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | BackboneElement | Links or references to the testing requirements | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | canonical(Requirements) | Canonical reference to the Requirements instance | |||||
![]() ![]() ![]() ![]() ![]() ![]() |
1..1 | id | Requirements statement key identifier | |||||
![]() ![]() |
0..* | BackboneElement | A test in this script | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 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 | 0..* | BackboneElement | A test operation or assert to perform Constraints: tst-9 | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | See common (TestScript) | Links or references to common collection(s) of actions | |||||
![]() ![]() ![]() ![]() |
C | 0..1 | See operation (TestScript) | The setup operation to perform Constraints: tst-10 | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | See assert (TestScript) | The setup assertion to perform Constraints: tst-11, tst-12, tst-13, tst-14 | ||||
![]() ![]() |
0..1 | BackboneElement | A series of required clean up steps | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..* | BackboneElement | One or more teardown operations to perform | |||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | See common (TestScript) | Links or references to common collection(s) of actions | |||||
![]() ![]() ![]() ![]() |
C | 1..1 | See operation (TestScript) | The teardown operation to perform Constraints: tst-15 | ||||
![]() ![]() |
0..* | BackboneElement | A common collection of actions in this script | |||||
![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | id | Key that identifies this common collection of actions | |||||
![]() ![]() ![]() |
0..1 | string | Tracking/logging name of this common collection of actions | |||||
![]() ![]() ![]() |
0..1 | string | Tracking/reporting short description of this common collection of actions | |||||
![]() ![]() ![]() |
0..* | BackboneElement | Parameter(s) to convey input values to this common collection of actions in this script | |||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Tracking/logging name of this parameter to be used in this common collection of actions | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Tracking/reporting short description of this parameter to be used this common collection of actions | |||||
![]() ![]() ![]() |
C | 1..* | BackboneElement | A common operation or assert that can be re-used in this script Constraints: tst-16 | ||||
![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | See operation (TestScript) | The common operation that can be re-used in this script Constraints: tst-17 | ||||
![]() ![]() ![]() ![]() |
C | 0..1 | See assert (TestScript) | The common assertion to perform Constraints: tst-18, tst-19, tst-20, tst-21 | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| TestScript.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| TestScript.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.status | Base | required | PublicationStatus | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.scope.conformance | Base | extensible | Test Script Scope Conformance Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.scope.phase | Base | extensible | Test Script Scope Phase Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.type | Base | extensible | Test Script Operation Code | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.resource | Base | extensible | Concrete FHIR Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.accept | Base | required | Supplemented Mime Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.contentType | Base | required | Supplemented Mime Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.operation.method | Base | required | Test Script Request Method Code | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.direction | Base | required | Assertion Direction Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.contentType | Base | required | Supplemented Mime Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.defaultManualCompletion | Base | required | Assertion Manual Completion Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.operator | Base | required | Assertion Operator Type | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.requestMethod | Base | required | Test Script Request Method Code | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.resource | Base | extensible | Concrete FHIR Types | 📦6.0.0-ballot3 | FHIR Std. |
| TestScript.setup.action.assert.response | Base | required | Assertion Response Types | 📦6.0.0-ballot3 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| cnl-0 | warning | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation |
name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
|
| cnl-1 | warning | TestScript.url | URL should not contain | or # - these characters make processing canonical references problematic |
exists() implies matches('^[^|# ]+$')
|
| 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| tst-1 | error | TestScript.metadata | TestScript metadata capability SHALL contain required or validated or both. |
capability.required.exists() or capability.validated.exists()
|
| tst-2 | error | TestScript.variable | Variable can only contain one of expression, headerField or path. |
(expression.empty() and headerField.empty() and path.empty()) or (expression.empty() and (headerField.exists() xor path.exists())) or (headerField.empty() and (expression.exists() xor path.exists())) or (path.empty() and (expression.exists() xor headerField.exists()))
|
| tst-3 | error | TestScript.setup.action | Setup action SHALL contain only one of either a common or an operation or an assert. |
common.exists() xor operation.exists() xor assert.exists()
|
| tst-4 | 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-5 | 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-6 | 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-7 | error | TestScript.setup.action.assert | A setup action assert SHALL define a singular assertion function and prevent overlapping assertion functionality. |
extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + requestURL.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <= 1)
|
| tst-8 | error | TestScript.setup.action.assert | A setup action assert SHALL not allow the use of operator and value with minimumId, navigationLinks or validateProfileId. |
extension.exists() or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 0) or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 1 and operator.count() + value.count() = 0)
|
| tst-9 | error | TestScript.test.action | Test action SHALL contain only one of either a common or an operation or an assert. |
common.exists() xor operation.exists() xor assert.exists()
|
| tst-10 | 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-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.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'
|
| tst-13 | error | TestScript.test.action.assert | A test action assert SHALL define a singular assertion function and prevent overlapping assertion functionality. |
extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + requestURL.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <= 1)
|
| tst-14 | error | TestScript.test.action.assert | A test action assert SHALL not allow the use of operator and value with minimumId, navigationLinks or validateProfileId. |
extension.exists() or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 0) or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 1 and operator.count() + value.count() = 0)
|
| tst-15 | 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-16 | error | TestScript.common.action | Common action SHALL contain either an operation or assert but not both. |
operation.exists() xor assert.exists()
|
| tst-17 | error | TestScript.common.action.operation | Common 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-18 | error | TestScript.common.action.assert | Common action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. |
compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())
|
| tst-19 | error | TestScript.common.action.assert | Common 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'
|
| tst-20 | error | TestScript.common.action.assert | A common action assert SHALL define a singular assertion function and prevent overlapping assertion functionality. |
extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + requestURL.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <= 1)
|
| tst-21 | error | TestScript.common.action.assert | A common action assert SHALL not allow the use of operator and value with minimumId, navigationLinks or validateProfileId. |
extension.exists() or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 0) or (minimumId.count() + navigationLinks.count() + validateProfileId.count() = 1 and operator.count() + value.count() = 0)
|
Other representations of profile: CSV, Excel, Schematron