FHIR Testing IG
0.1.0-snapshot1 - Draft International flag

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-snapshot1 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

Resource Profile: Shareable Test Script

Official URL: http://hl7.org/fhir/StructureDefinition/shareabletestscript Version: 0.1.0-snapshot1
Standards status: Draft 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:

  • This Profile is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
TestScript C 1..1 TestScript(0.1.0-snapshot1) Describes a set of tests
This resource is an additional resource
TestScript.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
TestScript.contained 0..* Resource Contained, inline Resources
TestScript.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
TestScript.url This element is included in summaries. C 1..1 uri Canonical identifier for this test script, represented as a URI (globally unique)
TestScript.version This element is included in summaries. 1..1 string Business version of the test script
TestScript.name This element is included in summaries. C 1..1 string Name for this test script (computer friendly)
TestScript.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
TestScript.experimental This element is included in summaries. 1..1 boolean For testing only - never for real usage
TestScript.publisher This element is included in summaries. 1..1 string Name of the publisher/steward (organization or individual)
TestScript.description 1..1 markdown Natural language description of the test script

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
TestScript.status Base required PublicationStatus 📦6.0.0-snapshot1 FHIR Std.

Constraints

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())

This structure is derived from TestScript

NameFlagsCard.TypeDescription & Constraints    Filter: doco
TestScript 1..1 TestScript(0.1.0-snapshot1) Describes a set of tests
This resource is an additional resource
TestScript.url 1..1 uri Canonical identifier for this test script, represented as a URI (globally unique)
TestScript.version 1..1 string Business version of the test script
TestScript.experimental 1..1 boolean For testing only - never for real usage
TestScript.description 1..1 markdown Natural language description of the test script

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
TestScript C 1..1 TestScript(0.1.0-snapshot1) Describes a set of tests
This resource is an additional resource
TestScript.id This element is included in summaries. 0..1 id Logical id of this artifact
TestScript.meta This element is included in summaries. 0..1 Meta Metadata about the resource
TestScript.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
TestScript.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
TestScript.text 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
TestScript.contained 0..* Resource Contained, inline Resources
TestScript.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
TestScript.url This element is included in summaries. C 1..1 uri Canonical identifier for this test script, represented as a URI (globally unique)
TestScript.identifier This element is included in summaries. 0..* Identifier Additional identifier for the test script
TestScript.version This element is included in summaries. 1..1 string Business version of the test script
TestScript.versionAlgorithm[x] This element is included in summaries. 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
TestScript.versionAlgorithm[x].versionAlgorithmString string
TestScript.versionAlgorithm[x].versionAlgorithmCoding Coding
TestScript.name This element is included in summaries. C 1..1 string Name for this test script (computer friendly)
TestScript.title This element is included in summaries. 0..1 string Name for this test script (human friendly)
TestScript.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
TestScript.experimental This element is included in summaries. 1..1 boolean For testing only - never for real usage
TestScript.date This element is included in summaries. 0..1 dateTime Date last changed
TestScript.publisher This element is included in summaries. 1..1 string Name of the publisher/steward (organization or individual)
TestScript.contact This element is included in summaries. 0..* ContactDetail Contact details for the publisher
TestScript.description 1..1 markdown Natural language description of the test script
TestScript.useContext This element is included in summaries. 0..* UsageContext The context that the content is intended to support
TestScript.jurisdiction This element is included in summaries. 0..* CodeableConcept Intended jurisdiction for test script (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
TestScript.purpose 0..1 markdown Why this test script is defined
TestScript.copyright 0..1 markdown Use and/or publishing restrictions
TestScript.copyrightLabel 0..1 string Copyright holder and year(s)
TestScript.testSystem 0..* BackboneElement An abstract server representing a client or sender in a message exchange
TestScript.testSystem.id 0..1 string Unique id for inter-element referencing
TestScript.testSystem.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.testSystem.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.testSystem.index 1..1 positiveInt The index of the abstract test system
TestScript.testSystem.title 1..1 string Label for the test system
TestScript.testSystem.actor 0..* canonical(ActorDefinition | CapabilityStatement) Features met by the test system
TestScript.testSystem.description 0..1 markdown Formatted information of this test system
TestScript.testSystem.url 0..1 url The url path of this test system
TestScript.metadata 0..1 BackboneElement Required capability that is assumed to function correctly on the FHIR server being tested
TestScript.metadata.id 0..1 string Unique id for inter-element referencing
TestScript.metadata.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.metadata.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.metadata.link 0..* BackboneElement Links to the FHIR specification
TestScript.metadata.link.id 0..1 string Unique id for inter-element referencing
TestScript.metadata.link.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.metadata.link.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.metadata.link.url 1..1 uri URL to the specification
TestScript.metadata.link.description 0..1 string Short description
TestScript.metadata.capability C 1..* BackboneElement Capabilities that are assumed to function correctly on the FHIR server being tested
Constraints: tst-4
TestScript.metadata.capability.id 0..1 string Unique id for inter-element referencing
TestScript.metadata.capability.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.metadata.capability.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.metadata.capability.required C 1..1 boolean Are the capabilities required?
TestScript.metadata.capability.validated C 1..1 boolean Are the capabilities validated?
TestScript.metadata.capability.description 0..1 string The expected capabilities of the server
TestScript.metadata.capability.origin 0..* integer Which origin server these requirements apply to
TestScript.metadata.capability.destination 0..1 integer Which server these requirements apply to
TestScript.metadata.capability.link 0..* uri Links to the FHIR specification
TestScript.metadata.capability.capabilities 1..1 canonical(CapabilityStatement) Required Capability Statement
TestScript.scope 0..* BackboneElement Indication of the artifact(s) that are tested by this test case
TestScript.scope.id 0..1 string Unique id for inter-element referencing
TestScript.scope.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.scope.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.scope.artifact 1..1 canonical(Resource) The specific conformance artifact being tested
TestScript.scope.conformance 0..1 CodeableConcept required | optional | strict
Binding: TestScriptScopeConformanceTypeValueSet (extensible): The expectation of whether the test must pass for the system to be considered conformant with the artifact.
TestScript.scope.phase 0..1 CodeableConcept unit | integration | production
Binding: TestScriptScopePhaseTypeValueSet (extensible): The phase of testing for this artifact.
TestScript.fixture 0..* BackboneElement Fixture in the test script - by reference (uri)
TestScript.fixture.id 0..1 string Unique id for inter-element referencing
TestScript.fixture.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.fixture.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.fixture.autocreate 1..1 boolean Whether or not to implicitly create the fixture during setup
TestScript.fixture.autodelete 1..1 boolean Whether or not to implicitly delete the fixture during teardown
TestScript.fixture.resource 0..1 Reference(Resource) Reference of the resource
TestScript.fixture.expression 0..1 Expression The expression against the fixture to extract the required element
TestScript.profile 0..* canonical(StructureDefinition) Reference of the validation profile
TestScript.variable C 0..* BackboneElement Placeholder for evaluated elements
Constraints: tst-3
TestScript.variable.id 0..1 string Unique id for inter-element referencing
TestScript.variable.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.variable.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.variable.name 1..1 string Descriptive name for this variable
TestScript.variable.defaultValue 0..1 string Default, hard-coded, or user-defined value for this variable
TestScript.variable.description 0..1 string Natural language description of the variable
TestScript.variable.expression C 0..1 Expression The expression against the fixture body
TestScript.variable.headerField C 0..1 string HTTP header field name for source
TestScript.variable.hint 0..1 string Hint help text for default value to enter
TestScript.variable.path C 0..1 string XPath or JSONPath against the fixture body
TestScript.variable.sourceId 0..1 id Fixture Id of source expression or headerField within this variable
TestScript.setup 0..1 BackboneElement A series of required setup operations before tests are executed
TestScript.setup.id 0..1 string Unique id for inter-element referencing
TestScript.setup.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action C 0..* BackboneElement A setup common or operation or assert to perform
Constraints: tst-1
TestScript.setup.action.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.common C 0..1 BackboneElement Links or references to common collection(s) of actions
TestScript.setup.action.common.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.common.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.common.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.common.testScript 0..1 canonical(Test Script) Canonical reference to the common TestScript instance
TestScript.setup.action.common.keyRef 1..1 id Common key reference that identifies the common collection of actions to perform
TestScript.setup.action.common.parameter 0..* BackboneElement Parameter(s) to convey input values to the identified common collection of actions
TestScript.setup.action.common.parameter.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.common.parameter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.common.parameter.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.common.parameter.name 1..1 string Name of the parameter from the identified common collection of actions
TestScript.setup.action.common.parameter.value 1..1 string Value to assign to the parameter from the identified common collection of actions
TestScript.setup.action.operation C 0..1 BackboneElement The setup operation to perform
Constraints: tst-7
TestScript.setup.action.operation.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.operation.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.type C 0..1 Coding The operation code type that will be executed
Binding: TestScriptOperationCodeValueSet (extensible): FHIR Operation Code Types
TestScript.setup.action.operation.resource 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.
TestScript.setup.action.operation.label 0..1 string Tracking/logging operation label
TestScript.setup.action.operation.description 0..1 string Tracking/reporting operation description
TestScript.setup.action.operation.accept 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.
Additional BindingsPurpose
CapabilityFormatType Starter

Example General: application/fhir+xml
TestScript.setup.action.operation.contentType 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.
Additional BindingsPurpose
CapabilityFormatType Starter

Example General: application/fhir+xml
TestScript.setup.action.operation.destination 0..1 integer Server responding to the request
TestScript.setup.action.operation.encodeRequestUrl 1..1 boolean Whether or not to send the request url in encoded format
TestScript.setup.action.operation.method 0..1 code delete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCodeValueSet (required): The allowable request method or HTTP operation codes.
TestScript.setup.action.operation.origin 0..1 integer Server initiating the request
TestScript.setup.action.operation.params C 0..1 string Explicitly defined path parameters
TestScript.setup.action.operation.requestHeader 0..* BackboneElement Each operation can have one or more header elements
TestScript.setup.action.operation.requestHeader.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.operation.requestHeader.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.requestHeader.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.requestHeader.field 1..1 string HTTP header field name
TestScript.setup.action.operation.requestHeader.value 1..1 string HTTP headerfield value
TestScript.setup.action.operation.requestId 0..1 id Fixture Id of mapped request
TestScript.setup.action.operation.responseId 0..1 id Fixture Id of mapped response
TestScript.setup.action.operation.sourceId C 0..1 id Fixture Id of body for PUT and POST requests
TestScript.setup.action.operation.targetId C 0..1 id Id of fixture used for extracting the [id], [type], and [vid] for GET requests
TestScript.setup.action.operation.url C 0..1 string Request URL
TestScript.setup.action.assert C 0..1 BackboneElement The assertion to perform
Constraints: tst-10, tst-12, tst-5, tst-15
TestScript.setup.action.assert.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.assert.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.label 0..1 string Tracking/logging assertion label
TestScript.setup.action.assert.key 0..1 id Key that identifies this assert
TestScript.setup.action.assert.evaluateBasedOn 0..* id Zero or more assert.key references
TestScript.setup.action.assert.description 0..1 string Tracking/reporting assertion description
TestScript.setup.action.assert.direction C 0..1 code response | request
Binding: AssertionDirectionTypeValueSet (required): The direction to use for assertions.
TestScript.setup.action.assert.compareToSourceId C 0..1 string Id of the source fixture to be evaluated
TestScript.setup.action.assert.compareToSourceExpression C 0..1 Expression The expression to evaluate against the source fixture
TestScript.setup.action.assert.compareToSourcePath C 0..1 string XPath or JSONPath expression to evaluate against the source fixture
TestScript.setup.action.assert.contentType 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.
Additional BindingsPurpose
CapabilityFormatType Starter

Example General: application/fhir+xml
TestScript.setup.action.assert.defaultManualCompletion 0..1 code fail | pass | skip | stop
Binding: AssertionManualCompletionTypeValueSet (required): The default type of manual completion to use for assertion.
TestScript.setup.action.assert.expression C 0..1 Expression The expression to be evaluated
TestScript.setup.action.assert.headerField C 0..1 string HTTP header field name
TestScript.setup.action.assert.minimumId C 0..1 string Fixture Id of minimum content resource
TestScript.setup.action.assert.navigationLinks C 0..1 boolean Perform validation on navigation links?
TestScript.setup.action.assert.operator C 0..1 code equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval | manualEval
Binding: AssertionOperatorTypeValueSet (required): The type of operator to use for assertions.
TestScript.setup.action.assert.path C 0..1 string XPath or JSONPath expression
TestScript.setup.action.assert.requestMethod C 0..1 code delete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCodeValueSet (required): The allowable request method or HTTP operation codes.
TestScript.setup.action.assert.requestURL C 0..1 string Request URL comparison value
TestScript.setup.action.assert.resource 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.
TestScript.setup.action.assert.response 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: AssertionResponseTypesValueSet (required): The response code to expect in the response.
TestScript.setup.action.assert.responseCode C 0..1 string HTTP response code to test
TestScript.setup.action.assert.sourceId 0..1 id Fixture Id of source expression or headerField
TestScript.setup.action.assert.stopTestOnFail 1..1 boolean If this assert fails, will the current test execution stop?
TestScript.setup.action.assert.validateProfileId C 0..1 id Profile Id of validation profile reference
TestScript.setup.action.assert.value C 0..1 string The value to compare to
TestScript.setup.action.assert.warningOnly 1..1 boolean Will this assert produce a warning only on error?
TestScript.setup.action.assert.requirement 0..* BackboneElement Links or references to the testing requirements
TestScript.setup.action.assert.requirement.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.assert.requirement.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.requirement.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.requirement.reference 1..1 canonical(Requirements) Canonical reference to the Requirements instance
TestScript.setup.action.assert.requirement.key 1..1 id Requirements statement key identifier
TestScript.test 0..* BackboneElement A test in this script
TestScript.test.id 0..1 string Unique id for inter-element referencing
TestScript.test.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.test.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.test.name 0..1 string Tracking/logging name of this test
TestScript.test.description 0..1 string Tracking/reporting short description of the test
TestScript.test.action C 0..* BackboneElement A test operation or assert to perform
Constraints: tst-2
TestScript.test.action.id 0..1 string Unique id for inter-element referencing
TestScript.test.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.test.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.test.action.common 0..1 See common (TestScript) Links or references to common collection(s) of actions
TestScript.test.action.operation C 0..1 See operation (TestScript) The setup operation to perform
Constraints: tst-8
TestScript.test.action.assert C 0..1 See assert (TestScript) The setup assertion to perform
Constraints: tst-11, tst-13, tst-6, tst-14
TestScript.teardown 0..1 BackboneElement A series of required clean up steps
TestScript.teardown.id 0..1 string Unique id for inter-element referencing
TestScript.teardown.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.teardown.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.teardown.action 1..* BackboneElement One or more teardown operations to perform
TestScript.teardown.action.id 0..1 string Unique id for inter-element referencing
TestScript.teardown.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.teardown.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.teardown.action.common 0..1 See common (TestScript) Links or references to common collection(s) of actions
TestScript.teardown.action.operation C 1..1 See operation (TestScript) The teardown operation to perform
Constraints: tst-9
TestScript.common 0..* BackboneElement A common collection of actions in this script
TestScript.common.id 0..1 string Unique id for inter-element referencing
TestScript.common.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.common.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.common.key 1..1 id Key that identifies this common collection of actions
TestScript.common.name 0..1 string Tracking/logging name of this common collection of actions
TestScript.common.description 0..1 string Tracking/reporting short description of this common collection of actions
TestScript.common.parameter 0..* BackboneElement Parameter(s) to convey input values to this common collection of actions in this script
TestScript.common.parameter.id 0..1 string Unique id for inter-element referencing
TestScript.common.parameter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.common.parameter.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.common.parameter.name 0..1 string Tracking/logging name of this parameter to be used in this common collection of actions
TestScript.common.parameter.description 0..1 string Tracking/reporting short description of this parameter to be used this common collection of actions
TestScript.common.action C 1..* BackboneElement A common operation or assert that can be re-used in this script
Constraints: tst-16
TestScript.common.action.id 0..1 string Unique id for inter-element referencing
TestScript.common.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.common.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.common.action.operation C 0..1 See operation (TestScript) The common operation that can be re-used in this script
Constraints: tst-17
TestScript.common.action.assert C 0..1 See assert (TestScript) The common assertion to perform
Constraints: tst-18, tst-19, tst-20, tst-21

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
TestScript.language Base required All Languages 📍6.0.0-snapshot1 FHIR Std.
TestScript.versionAlgorithm[x] Base extensible Version Algorithm 📦6.0.0-snapshot1 FHIR Std.
TestScript.status Base required PublicationStatus 📦6.0.0-snapshot1 FHIR Std.
TestScript.jurisdiction Base extensible Jurisdiction ValueSet ⏿5.0.0 tx.fhir.org
TestScript.scope.conformance Base extensible Test Script Scope Conformance Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.scope.phase Base extensible Test Script Scope Phase Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​operation.type Base extensible Test Script Operation Code Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​operation.resource Base extensible Concrete FHIR Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​operation.accept Base required Supplemented Mime Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​operation.contentType Base required Supplemented Mime Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​operation.method Base required Test Script Request Method Code Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.direction Base required Assertion Direction Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.contentType Base required Supplemented Mime Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​assert.defaultManualCompletion Base required Assertion Manual Completion Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.operator Base required Assertion Operator Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.requestMethod Base required Test Script Request Method Code Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.resource Base extensible Concrete FHIR Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​assert.response Base required Assertion Response Types Value Set 📍0.1.0-snapshot1 This IG

Constraints

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.setup.action Setup action will contain only one of either a common or an operation or an assert. common.exists() xor operation.exists() xor assert.exists()
tst-2 error TestScript.test.action Test action will contain only one of either a common or an operation or an assert. common.exists() xor operation.exists() xor assert.exists()
tst-3 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-4 error TestScript.metadata.capability TestScript metadata capability SHALL contain required or validated or both. required or validated
tst-5 error TestScript.setup.action.assert A setup action assert will 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-6 error TestScript.test.action.assert A test action assert will 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-7 error TestScript.setup.action.operation Setup operation will 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 will 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 will 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 will 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 will 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 will 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 will be empty when direction equals request (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'
tst-14 error TestScript.test.action.assert A test action assert will 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.setup.action.assert A setup action assert will 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-16 error TestScript.common.action Common action will contain either an operation or assert but not both. operation.exists() xor assert.exists()
tst-17 error TestScript.common.action.operation Common operation will 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 will 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 will 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 will 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 will 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)

This structure is derived from TestScript

Summary

Mandatory: 5 elements

Maturity: 2

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
TestScript C 1..1 TestScript(0.1.0-snapshot1) Describes a set of tests
This resource is an additional resource
TestScript.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
TestScript.contained 0..* Resource Contained, inline Resources
TestScript.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
TestScript.url This element is included in summaries. C 1..1 uri Canonical identifier for this test script, represented as a URI (globally unique)
TestScript.version This element is included in summaries. 1..1 string Business version of the test script
TestScript.name This element is included in summaries. C 1..1 string Name for this test script (computer friendly)
TestScript.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
TestScript.experimental This element is included in summaries. 1..1 boolean For testing only - never for real usage
TestScript.publisher This element is included in summaries. 1..1 string Name of the publisher/steward (organization or individual)
TestScript.description 1..1 markdown Natural language description of the test script

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
TestScript.status Base required PublicationStatus 📦6.0.0-snapshot1 FHIR Std.

Constraints

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

This structure is derived from TestScript

NameFlagsCard.TypeDescription & Constraints    Filter: doco
TestScript 1..1 TestScript(0.1.0-snapshot1) Describes a set of tests
This resource is an additional resource
TestScript.url 1..1 uri Canonical identifier for this test script, represented as a URI (globally unique)
TestScript.version 1..1 string Business version of the test script
TestScript.experimental 1..1 boolean For testing only - never for real usage
TestScript.publisher 1..1 string Name of the publisher/steward (organization or individual)
TestScript.description 1..1 markdown Natural language description of the test script

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: doco
TestScript C 1..1 TestScript(0.1.0-snapshot1) Describes a set of tests
This resource is an additional resource
TestScript.id This element is included in summaries. 0..1 id Logical id of this artifact
TestScript.meta This element is included in summaries. 0..1 Meta Metadata about the resource
TestScript.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
TestScript.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
TestScript.text 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
TestScript.contained 0..* Resource Contained, inline Resources
TestScript.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
TestScript.url This element is included in summaries. C 1..1 uri Canonical identifier for this test script, represented as a URI (globally unique)
TestScript.identifier This element is included in summaries. 0..* Identifier Additional identifier for the test script
TestScript.version This element is included in summaries. 1..1 string Business version of the test script
TestScript.versionAlgorithm[x] This element is included in summaries. 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
TestScript.versionAlgorithm[x].versionAlgorithmString string
TestScript.versionAlgorithm[x].versionAlgorithmCoding Coding
TestScript.name This element is included in summaries. C 1..1 string Name for this test script (computer friendly)
TestScript.title This element is included in summaries. 0..1 string Name for this test script (human friendly)
TestScript.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
TestScript.experimental This element is included in summaries. 1..1 boolean For testing only - never for real usage
TestScript.date This element is included in summaries. 0..1 dateTime Date last changed
TestScript.publisher This element is included in summaries. 1..1 string Name of the publisher/steward (organization or individual)
TestScript.contact This element is included in summaries. 0..* ContactDetail Contact details for the publisher
TestScript.description 1..1 markdown Natural language description of the test script
TestScript.useContext This element is included in summaries. 0..* UsageContext The context that the content is intended to support
TestScript.jurisdiction This element is included in summaries. 0..* CodeableConcept Intended jurisdiction for test script (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
TestScript.purpose 0..1 markdown Why this test script is defined
TestScript.copyright 0..1 markdown Use and/or publishing restrictions
TestScript.copyrightLabel 0..1 string Copyright holder and year(s)
TestScript.testSystem 0..* BackboneElement An abstract server representing a client or sender in a message exchange
TestScript.testSystem.id 0..1 string Unique id for inter-element referencing
TestScript.testSystem.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.testSystem.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.testSystem.index 1..1 positiveInt The index of the abstract test system
TestScript.testSystem.title 1..1 string Label for the test system
TestScript.testSystem.actor 0..* canonical(ActorDefinition | CapabilityStatement) Features met by the test system
TestScript.testSystem.description 0..1 markdown Formatted information of this test system
TestScript.testSystem.url 0..1 url The url path of this test system
TestScript.metadata 0..1 BackboneElement Required capability that is assumed to function correctly on the FHIR server being tested
TestScript.metadata.id 0..1 string Unique id for inter-element referencing
TestScript.metadata.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.metadata.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.metadata.link 0..* BackboneElement Links to the FHIR specification
TestScript.metadata.link.id 0..1 string Unique id for inter-element referencing
TestScript.metadata.link.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.metadata.link.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.metadata.link.url 1..1 uri URL to the specification
TestScript.metadata.link.description 0..1 string Short description
TestScript.metadata.capability C 1..* BackboneElement Capabilities that are assumed to function correctly on the FHIR server being tested
Constraints: tst-4
TestScript.metadata.capability.id 0..1 string Unique id for inter-element referencing
TestScript.metadata.capability.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.metadata.capability.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.metadata.capability.required C 1..1 boolean Are the capabilities required?
TestScript.metadata.capability.validated C 1..1 boolean Are the capabilities validated?
TestScript.metadata.capability.description 0..1 string The expected capabilities of the server
TestScript.metadata.capability.origin 0..* integer Which origin server these requirements apply to
TestScript.metadata.capability.destination 0..1 integer Which server these requirements apply to
TestScript.metadata.capability.link 0..* uri Links to the FHIR specification
TestScript.metadata.capability.capabilities 1..1 canonical(CapabilityStatement) Required Capability Statement
TestScript.scope 0..* BackboneElement Indication of the artifact(s) that are tested by this test case
TestScript.scope.id 0..1 string Unique id for inter-element referencing
TestScript.scope.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.scope.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.scope.artifact 1..1 canonical(Resource) The specific conformance artifact being tested
TestScript.scope.conformance 0..1 CodeableConcept required | optional | strict
Binding: TestScriptScopeConformanceTypeValueSet (extensible): The expectation of whether the test must pass for the system to be considered conformant with the artifact.
TestScript.scope.phase 0..1 CodeableConcept unit | integration | production
Binding: TestScriptScopePhaseTypeValueSet (extensible): The phase of testing for this artifact.
TestScript.fixture 0..* BackboneElement Fixture in the test script - by reference (uri)
TestScript.fixture.id 0..1 string Unique id for inter-element referencing
TestScript.fixture.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.fixture.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.fixture.autocreate 1..1 boolean Whether or not to implicitly create the fixture during setup
TestScript.fixture.autodelete 1..1 boolean Whether or not to implicitly delete the fixture during teardown
TestScript.fixture.resource 0..1 Reference(Resource) Reference of the resource
TestScript.fixture.expression 0..1 Expression The expression against the fixture to extract the required element
TestScript.profile 0..* canonical(StructureDefinition) Reference of the validation profile
TestScript.variable C 0..* BackboneElement Placeholder for evaluated elements
Constraints: tst-3
TestScript.variable.id 0..1 string Unique id for inter-element referencing
TestScript.variable.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.variable.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.variable.name 1..1 string Descriptive name for this variable
TestScript.variable.defaultValue 0..1 string Default, hard-coded, or user-defined value for this variable
TestScript.variable.description 0..1 string Natural language description of the variable
TestScript.variable.expression C 0..1 Expression The expression against the fixture body
TestScript.variable.headerField C 0..1 string HTTP header field name for source
TestScript.variable.hint 0..1 string Hint help text for default value to enter
TestScript.variable.path C 0..1 string XPath or JSONPath against the fixture body
TestScript.variable.sourceId 0..1 id Fixture Id of source expression or headerField within this variable
TestScript.setup 0..1 BackboneElement A series of required setup operations before tests are executed
TestScript.setup.id 0..1 string Unique id for inter-element referencing
TestScript.setup.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action C 0..* BackboneElement A setup common or operation or assert to perform
Constraints: tst-1
TestScript.setup.action.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.common C 0..1 BackboneElement Links or references to common collection(s) of actions
TestScript.setup.action.common.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.common.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.common.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.common.testScript 0..1 canonical(Test Script) Canonical reference to the common TestScript instance
TestScript.setup.action.common.keyRef 1..1 id Common key reference that identifies the common collection of actions to perform
TestScript.setup.action.common.parameter 0..* BackboneElement Parameter(s) to convey input values to the identified common collection of actions
TestScript.setup.action.common.parameter.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.common.parameter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.common.parameter.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.common.parameter.name 1..1 string Name of the parameter from the identified common collection of actions
TestScript.setup.action.common.parameter.value 1..1 string Value to assign to the parameter from the identified common collection of actions
TestScript.setup.action.operation C 0..1 BackboneElement The setup operation to perform
Constraints: tst-7
TestScript.setup.action.operation.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.operation.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.type C 0..1 Coding The operation code type that will be executed
Binding: TestScriptOperationCodeValueSet (extensible): FHIR Operation Code Types
TestScript.setup.action.operation.resource 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.
TestScript.setup.action.operation.label 0..1 string Tracking/logging operation label
TestScript.setup.action.operation.description 0..1 string Tracking/reporting operation description
TestScript.setup.action.operation.accept 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.
Additional BindingsPurpose
CapabilityFormatType Starter

Example General: application/fhir+xml
TestScript.setup.action.operation.contentType 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.
Additional BindingsPurpose
CapabilityFormatType Starter

Example General: application/fhir+xml
TestScript.setup.action.operation.destination 0..1 integer Server responding to the request
TestScript.setup.action.operation.encodeRequestUrl 1..1 boolean Whether or not to send the request url in encoded format
TestScript.setup.action.operation.method 0..1 code delete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCodeValueSet (required): The allowable request method or HTTP operation codes.
TestScript.setup.action.operation.origin 0..1 integer Server initiating the request
TestScript.setup.action.operation.params C 0..1 string Explicitly defined path parameters
TestScript.setup.action.operation.requestHeader 0..* BackboneElement Each operation can have one or more header elements
TestScript.setup.action.operation.requestHeader.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.operation.requestHeader.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.requestHeader.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.operation.requestHeader.field 1..1 string HTTP header field name
TestScript.setup.action.operation.requestHeader.value 1..1 string HTTP headerfield value
TestScript.setup.action.operation.requestId 0..1 id Fixture Id of mapped request
TestScript.setup.action.operation.responseId 0..1 id Fixture Id of mapped response
TestScript.setup.action.operation.sourceId C 0..1 id Fixture Id of body for PUT and POST requests
TestScript.setup.action.operation.targetId C 0..1 id Id of fixture used for extracting the [id], [type], and [vid] for GET requests
TestScript.setup.action.operation.url C 0..1 string Request URL
TestScript.setup.action.assert C 0..1 BackboneElement The assertion to perform
Constraints: tst-10, tst-12, tst-5, tst-15
TestScript.setup.action.assert.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.assert.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.label 0..1 string Tracking/logging assertion label
TestScript.setup.action.assert.key 0..1 id Key that identifies this assert
TestScript.setup.action.assert.evaluateBasedOn 0..* id Zero or more assert.key references
TestScript.setup.action.assert.description 0..1 string Tracking/reporting assertion description
TestScript.setup.action.assert.direction C 0..1 code response | request
Binding: AssertionDirectionTypeValueSet (required): The direction to use for assertions.
TestScript.setup.action.assert.compareToSourceId C 0..1 string Id of the source fixture to be evaluated
TestScript.setup.action.assert.compareToSourceExpression C 0..1 Expression The expression to evaluate against the source fixture
TestScript.setup.action.assert.compareToSourcePath C 0..1 string XPath or JSONPath expression to evaluate against the source fixture
TestScript.setup.action.assert.contentType 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.
Additional BindingsPurpose
CapabilityFormatType Starter

Example General: application/fhir+xml
TestScript.setup.action.assert.defaultManualCompletion 0..1 code fail | pass | skip | stop
Binding: AssertionManualCompletionTypeValueSet (required): The default type of manual completion to use for assertion.
TestScript.setup.action.assert.expression C 0..1 Expression The expression to be evaluated
TestScript.setup.action.assert.headerField C 0..1 string HTTP header field name
TestScript.setup.action.assert.minimumId C 0..1 string Fixture Id of minimum content resource
TestScript.setup.action.assert.navigationLinks C 0..1 boolean Perform validation on navigation links?
TestScript.setup.action.assert.operator C 0..1 code equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval | manualEval
Binding: AssertionOperatorTypeValueSet (required): The type of operator to use for assertions.
TestScript.setup.action.assert.path C 0..1 string XPath or JSONPath expression
TestScript.setup.action.assert.requestMethod C 0..1 code delete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCodeValueSet (required): The allowable request method or HTTP operation codes.
TestScript.setup.action.assert.requestURL C 0..1 string Request URL comparison value
TestScript.setup.action.assert.resource 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.
TestScript.setup.action.assert.response 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: AssertionResponseTypesValueSet (required): The response code to expect in the response.
TestScript.setup.action.assert.responseCode C 0..1 string HTTP response code to test
TestScript.setup.action.assert.sourceId 0..1 id Fixture Id of source expression or headerField
TestScript.setup.action.assert.stopTestOnFail 1..1 boolean If this assert fails, will the current test execution stop?
TestScript.setup.action.assert.validateProfileId C 0..1 id Profile Id of validation profile reference
TestScript.setup.action.assert.value C 0..1 string The value to compare to
TestScript.setup.action.assert.warningOnly 1..1 boolean Will this assert produce a warning only on error?
TestScript.setup.action.assert.requirement 0..* BackboneElement Links or references to the testing requirements
TestScript.setup.action.assert.requirement.id 0..1 string Unique id for inter-element referencing
TestScript.setup.action.assert.requirement.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.requirement.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.setup.action.assert.requirement.reference 1..1 canonical(Requirements) Canonical reference to the Requirements instance
TestScript.setup.action.assert.requirement.key 1..1 id Requirements statement key identifier
TestScript.test 0..* BackboneElement A test in this script
TestScript.test.id 0..1 string Unique id for inter-element referencing
TestScript.test.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.test.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.test.name 0..1 string Tracking/logging name of this test
TestScript.test.description 0..1 string Tracking/reporting short description of the test
TestScript.test.action C 0..* BackboneElement A test operation or assert to perform
Constraints: tst-2
TestScript.test.action.id 0..1 string Unique id for inter-element referencing
TestScript.test.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.test.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.test.action.common 0..1 See common (TestScript) Links or references to common collection(s) of actions
TestScript.test.action.operation C 0..1 See operation (TestScript) The setup operation to perform
Constraints: tst-8
TestScript.test.action.assert C 0..1 See assert (TestScript) The setup assertion to perform
Constraints: tst-11, tst-13, tst-6, tst-14
TestScript.teardown 0..1 BackboneElement A series of required clean up steps
TestScript.teardown.id 0..1 string Unique id for inter-element referencing
TestScript.teardown.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.teardown.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.teardown.action 1..* BackboneElement One or more teardown operations to perform
TestScript.teardown.action.id 0..1 string Unique id for inter-element referencing
TestScript.teardown.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.teardown.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.teardown.action.common 0..1 See common (TestScript) Links or references to common collection(s) of actions
TestScript.teardown.action.operation C 1..1 See operation (TestScript) The teardown operation to perform
Constraints: tst-9
TestScript.common 0..* BackboneElement A common collection of actions in this script
TestScript.common.id 0..1 string Unique id for inter-element referencing
TestScript.common.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.common.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.common.key 1..1 id Key that identifies this common collection of actions
TestScript.common.name 0..1 string Tracking/logging name of this common collection of actions
TestScript.common.description 0..1 string Tracking/reporting short description of this common collection of actions
TestScript.common.parameter 0..* BackboneElement Parameter(s) to convey input values to this common collection of actions in this script
TestScript.common.parameter.id 0..1 string Unique id for inter-element referencing
TestScript.common.parameter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.common.parameter.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.common.parameter.name 0..1 string Tracking/logging name of this parameter to be used in this common collection of actions
TestScript.common.parameter.description 0..1 string Tracking/reporting short description of this parameter to be used this common collection of actions
TestScript.common.action C 1..* BackboneElement A common operation or assert that can be re-used in this script
Constraints: tst-16
TestScript.common.action.id 0..1 string Unique id for inter-element referencing
TestScript.common.action.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
TestScript.common.action.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
TestScript.common.action.operation C 0..1 See operation (TestScript) The common operation that can be re-used in this script
Constraints: tst-17
TestScript.common.action.assert C 0..1 See assert (TestScript) The common assertion to perform
Constraints: tst-18, tst-19, tst-20, tst-21

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
TestScript.language Base required All Languages 📍6.0.0-snapshot1 FHIR Std.
TestScript.versionAlgorithm[x] Base extensible Version Algorithm 📦6.0.0-snapshot1 FHIR Std.
TestScript.status Base required PublicationStatus 📦6.0.0-snapshot1 FHIR Std.
TestScript.jurisdiction Base extensible Jurisdiction ValueSet ⏿5.0.0 tx.fhir.org
TestScript.scope.conformance Base extensible Test Script Scope Conformance Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.scope.phase Base extensible Test Script Scope Phase Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​operation.type Base extensible Test Script Operation Code Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​operation.resource Base extensible Concrete FHIR Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​operation.accept Base required Supplemented Mime Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​operation.contentType Base required Supplemented Mime Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​operation.method Base required Test Script Request Method Code Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.direction Base required Assertion Direction Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.contentType Base required Supplemented Mime Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​assert.defaultManualCompletion Base required Assertion Manual Completion Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.operator Base required Assertion Operator Type Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.requestMethod Base required Test Script Request Method Code Value Set 📍0.1.0-snapshot1 This IG
TestScript.setup.action.​assert.resource Base extensible Concrete FHIR Types 📦6.0.0-snapshot1 FHIR Std.
TestScript.setup.action.​assert.response Base required Assertion Response Types Value Set 📍0.1.0-snapshot1 This IG

Constraints

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.setup.action Setup action will contain only one of either a common or an operation or an assert. common.exists() xor operation.exists() xor assert.exists()
tst-2 error TestScript.test.action Test action will contain only one of either a common or an operation or an assert. common.exists() xor operation.exists() xor assert.exists()
tst-3 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-4 error TestScript.metadata.capability TestScript metadata capability SHALL contain required or validated or both. required or validated
tst-5 error TestScript.setup.action.assert A setup action assert will 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-6 error TestScript.test.action.assert A test action assert will 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-7 error TestScript.setup.action.operation Setup operation will 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 will 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 will 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 will 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 will 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 will 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 will be empty when direction equals request (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'
tst-14 error TestScript.test.action.assert A test action assert will 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.setup.action.assert A setup action assert will 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-16 error TestScript.common.action Common action will contain either an operation or assert but not both. operation.exists() xor assert.exists()
tst-17 error TestScript.common.action.operation Common operation will 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 will 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 will 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 will 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 will 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)

This structure is derived from TestScript

Summary

Mandatory: 5 elements

Maturity: 2

 

Other representations of profile: CSV, Excel, Schematron