AEGIS Touchstone Testing Implementation Guide

This is the Version 1.1.0 Release of the Touchstone Testing Implementation Guide, based on FHIR Version 4.0.1. See the Directory of published versions

StructureDefinition-testscript

Scope and Usage

Defines constraints and extensions on the TestScript resource for use in the Touchstone Testing Platform.

Examples

The following examples are provided to illustrate conformant resource content to this profile.

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript

Published on Mon Aug 27 00:00:00 EDT 2018 as a active by AEGIS.net, Inc..

This profile builds on TestScript


NameFlagsCard.TypeDescription & Constraintsdoco
.. TestScript 0..*TestScriptTouchstone Testing TestScript Profile
... testscript-rule S0..*(Complex)Assert rule used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule
... testscript-ruleset S0..*(Complex)Assert ruleset used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset
... variable
.... testscript-variable-paramField S0..1stringFixture firstUsage used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField
... setup
.... action
..... operation I0..1BackboneElementThe setup operation to perform
tst-7: Setup operation SHALL contain either sourceId or targetId or params or url.
...... id 0..1stringUnique id for inter-element referencing
...... testscript-operation-oauth2AuthzRedirectId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId
...... testscript-operation-oauth2AuthzRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId
...... testscript-operation-smartLaunchRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId
...... type 0..1CodingThe operation code type that will be executed
Binding: AEGIS Touchstone Testing TestScript TestScript Operation Codes ValueSet (extensible)
..... assert
...... testscript-assert-rule S0..1(Complex)Rule used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule
...... testscript-assert-ruleset S0..1(Complex)Ruleset used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset
...... testscript-assert-stopTestOnFail S0..1booleanStop Test On Error boolean used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail
...... testscript-assert-variable S0..1stringComparison value used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable
... test
.... action
..... operation I0..1The setup operation to perform
tst-8: Test operation SHALL contain either sourceId or targetId or params or url.

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. TestScript I0..*TestScriptTouchstone Testing TestScript Profile
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... testscript-rule S0..*(Complex)Assert rule used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule
... testscript-ruleset S0..*(Complex)Assert ruleset used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this test script, represented as a URI (globally unique)
... identifier Σ0..1IdentifierAdditional identifier for the test script
... version Σ0..1stringBusiness version of the test script
... name ΣI1..1stringName for this test script (computer friendly)
... title Σ0..1stringName for this test script (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the test script
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for test script (if applicable)
Binding: Jurisdiction ValueSet (extensible)
... purpose 0..1markdownWhy this test script is defined
... copyright 0..1markdownUse and/or publishing restrictions
... origin 0..*BackboneElementAn abstract server representing a client or sender in a message exchange
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... index 1..1integerThe index of the abstract origin server starting at 1
.... profile 1..1CodingFHIR-Client | FHIR-SDC-FormFiller
Binding: TestScriptProfileOriginType (extensible)
... destination 0..*BackboneElementAn abstract server representing a destination or receiver in a message exchange
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... index 1..1integerThe index of the abstract destination server starting at 1
.... profile 1..1CodingFHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor
Binding: TestScriptProfileDestinationType (extensible)
... metadata I0..1BackboneElementRequired capability that is assumed to function correctly on the FHIR server being tested
tst-4: TestScript metadata capability SHALL contain required or validated or both.
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... link 0..*BackboneElementLinks to the FHIR specification
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... url 1..1uriURL to the specification
..... description 0..1stringShort description
.... capability 1..*BackboneElementCapabilities that are assumed to function correctly on the FHIR server being tested
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... required 1..1booleanAre the capabilities required?
..... validated 1..1booleanAre the capabilities validated?
..... description 0..1stringThe expected capabilities of the server
..... origin 0..*integerWhich origin server these requirements apply to
..... destination 0..1integerWhich server these requirements apply to
..... link 0..*uriLinks to the FHIR specification
..... capabilities 1..1canonical(CapabilityStatement)Required Capability Statement
... fixture 0..*BackboneElementFixture in the test script - by reference (uri)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... autocreate 1..1booleanWhether or not to implicitly create the fixture during setup
.... autodelete 1..1booleanWhether or not to implicitly delete the fixture during teardown
.... resource 0..1Reference(Resource)Reference of the resource
... profile 0..*Reference(Resource)Reference of the validation profile
... variable I0..*BackboneElementPlaceholder for evaluated elements
tst-3: Variable can only contain one of expression, headerField or path.
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... testscript-variable-paramField S0..1stringFixture firstUsage used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name 1..1stringDescriptive name for this variable
.... defaultValue 0..1stringDefault, hard-coded, or user-defined value for this variable
.... description 0..1stringNatural language description of the variable
.... expression 0..1stringThe FHIRPath expression against the fixture body
.... headerField 0..1stringHTTP header field name for source
.... hint 0..1stringHint help text for default value to enter
.... path 0..1stringXPath or JSONPath against the fixture body
.... sourceId 0..1idFixture Id of source expression or headerField within this variable
... setup 0..1BackboneElementA series of required setup operations before tests are executed
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... action I1..*BackboneElementA setup operation or assert to perform
tst-1: Setup action SHALL contain either an operation or assert but not both.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... operation I0..1BackboneElementThe setup operation to perform
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
...... testscript-operation-oauth2AuthzRedirectId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId
...... testscript-operation-oauth2AuthzRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId
...... testscript-operation-smartLaunchRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... type 0..1CodingThe operation code type that will be executed
Binding: AEGIS Touchstone Testing TestScript TestScript Operation Codes ValueSet (extensible)
...... resource 0..1codeResource type
Binding: FHIRDefinedType (required)
...... label 0..1stringTracking/logging operation label
...... description 0..1stringTracking/reporting operation description
...... accept 0..1codeMime type to accept in the payload of the response, with charset etc.
Binding: Mime Types (required)
Example General: application/fhir+xml
...... contentType 0..1codeMime type of the request payload contents, with charset etc.
Binding: Mime Types (required)
Example General: application/fhir+xml
...... destination 0..1integerServer responding to the request
...... encodeRequestUrl 1..1booleanWhether or not to send the request url in encoded format
...... method 0..1codedelete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCode (required)
...... origin 0..1integerServer initiating the request
...... params 0..1stringExplicitly defined path parameters
...... requestHeader 0..*BackboneElementEach operation can have one or more header elements
....... id 0..1stringUnique id for inter-element referencing
....... extension 0..*ExtensionAdditional content defined by implementations
....... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
....... field 1..1stringHTTP header field name
....... value 1..1stringHTTP headerfield value
...... requestId 0..1idFixture Id of mapped request
...... responseId 0..1idFixture Id of mapped response
...... sourceId 0..1idFixture Id of body for PUT and POST requests
...... targetId 0..1idId of fixture used for extracting the [id], [type], and [vid] for GET requests
...... url 0..1stringRequest URL
..... assert I0..1BackboneElementThe assertion to perform
tst-5: Only a single assertion SHALL be present within setup action assert element.
tst-10: Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.
tst-12: Setup action assert response and responseCode SHALL be empty when direction equals request
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
...... testscript-assert-rule S0..1(Complex)Rule used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule
...... testscript-assert-ruleset S0..1(Complex)Ruleset used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset
...... testscript-assert-stopTestOnFail S0..1booleanStop Test On Error boolean used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail
...... testscript-assert-variable S0..1stringComparison value used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... label 0..1stringTracking/logging assertion label
...... description 0..1stringTracking/reporting assertion description
...... direction 0..1coderesponse | request
Binding: AssertionDirectionType (required)
...... compareToSourceId 0..1stringId of the source fixture to be evaluated
...... compareToSourceExpression 0..1stringThe FHIRPath expression to evaluate against the source fixture
...... compareToSourcePath 0..1stringXPath or JSONPath expression to evaluate against the source fixture
...... contentType 0..1codeMime type to compare against the 'Content-Type' header
Binding: Mime Types (required)
Example General: application/fhir+xml
...... expression 0..1stringThe FHIRPath expression to be evaluated
...... headerField 0..1stringHTTP header field name
...... minimumId 0..1stringFixture Id of minimum content resource
...... navigationLinks 0..1booleanPerform validation on navigation links?
...... operator 0..1codeequals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval
Binding: AssertionOperatorType (required)
...... path 0..1stringXPath or JSONPath expression
...... requestMethod 0..1codedelete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCode (required)
...... requestURL 0..1stringRequest URL comparison value
...... resource 0..1codeResource type
Binding: FHIRDefinedType (required)
...... response 0..1codeokay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable
Binding: AssertionResponseTypes (required)
...... responseCode 0..1stringHTTP response code to test
...... sourceId 0..1idFixture Id of source expression or headerField
...... validateProfileId 0..1idProfile Id of validation profile reference
...... value 0..1stringThe value to compare to
...... warningOnly 1..1booleanWill this assert produce a warning only on error?
... test 0..*BackboneElementA test in this script
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name 0..1stringTracking/logging name of this test
.... description 0..1stringTracking/reporting short description of the test
.... action I1..*BackboneElementA test operation or assert to perform
tst-2: Test action SHALL contain either an operation or assert but not both.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... operation I0..1See operationThe setup operation to perform
..... assert I0..1See assertThe setup assertion to perform
tst-6: Only a single assertion SHALL be present within test action assert element.
tst-11: Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.
tst-13: Test action assert response and response and responseCode SHALL be empty when direction equals request
... teardown 0..1BackboneElementA series of required clean up steps
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... action 1..*BackboneElementOne or more teardown operations to perform
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... operation I1..1See operationThe teardown operation to perform
tst-9: Teardown operation SHALL contain either sourceId or targetId or params or url.

doco Documentation for this format

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. TestScript 0..*TestScriptTouchstone Testing TestScript Profile
... testscript-rule S0..*(Complex)Assert rule used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule
... testscript-ruleset S0..*(Complex)Assert ruleset used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset
... variable
.... testscript-variable-paramField S0..1stringFixture firstUsage used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField
... setup
.... action
..... operation I0..1BackboneElementThe setup operation to perform
tst-7: Setup operation SHALL contain either sourceId or targetId or params or url.
...... id 0..1stringUnique id for inter-element referencing
...... testscript-operation-oauth2AuthzRedirectId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId
...... testscript-operation-oauth2AuthzRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId
...... testscript-operation-smartLaunchRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId
...... type 0..1CodingThe operation code type that will be executed
Binding: AEGIS Touchstone Testing TestScript TestScript Operation Codes ValueSet (extensible)
..... assert
...... testscript-assert-rule S0..1(Complex)Rule used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule
...... testscript-assert-ruleset S0..1(Complex)Ruleset used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset
...... testscript-assert-stopTestOnFail S0..1booleanStop Test On Error boolean used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail
...... testscript-assert-variable S0..1stringComparison value used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable
... test
.... action
..... operation I0..1The setup operation to perform
tst-8: Test operation SHALL contain either sourceId or targetId or params or url.

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. TestScript I0..*TestScriptTouchstone Testing TestScript Profile
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... testscript-rule S0..*(Complex)Assert rule used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule
... testscript-ruleset S0..*(Complex)Assert ruleset used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ1..1uriCanonical identifier for this test script, represented as a URI (globally unique)
... identifier Σ0..1IdentifierAdditional identifier for the test script
... version Σ0..1stringBusiness version of the test script
... name ΣI1..1stringName for this test script (computer friendly)
... title Σ0..1stringName for this test script (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required)
... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the test script
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for test script (if applicable)
Binding: Jurisdiction ValueSet (extensible)
... purpose 0..1markdownWhy this test script is defined
... copyright 0..1markdownUse and/or publishing restrictions
... origin 0..*BackboneElementAn abstract server representing a client or sender in a message exchange
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... index 1..1integerThe index of the abstract origin server starting at 1
.... profile 1..1CodingFHIR-Client | FHIR-SDC-FormFiller
Binding: TestScriptProfileOriginType (extensible)
... destination 0..*BackboneElementAn abstract server representing a destination or receiver in a message exchange
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... index 1..1integerThe index of the abstract destination server starting at 1
.... profile 1..1CodingFHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor
Binding: TestScriptProfileDestinationType (extensible)
... metadata I0..1BackboneElementRequired capability that is assumed to function correctly on the FHIR server being tested
tst-4: TestScript metadata capability SHALL contain required or validated or both.
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... link 0..*BackboneElementLinks to the FHIR specification
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... url 1..1uriURL to the specification
..... description 0..1stringShort description
.... capability 1..*BackboneElementCapabilities that are assumed to function correctly on the FHIR server being tested
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... required 1..1booleanAre the capabilities required?
..... validated 1..1booleanAre the capabilities validated?
..... description 0..1stringThe expected capabilities of the server
..... origin 0..*integerWhich origin server these requirements apply to
..... destination 0..1integerWhich server these requirements apply to
..... link 0..*uriLinks to the FHIR specification
..... capabilities 1..1canonical(CapabilityStatement)Required Capability Statement
... fixture 0..*BackboneElementFixture in the test script - by reference (uri)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... autocreate 1..1booleanWhether or not to implicitly create the fixture during setup
.... autodelete 1..1booleanWhether or not to implicitly delete the fixture during teardown
.... resource 0..1Reference(Resource)Reference of the resource
... profile 0..*Reference(Resource)Reference of the validation profile
... variable I0..*BackboneElementPlaceholder for evaluated elements
tst-3: Variable can only contain one of expression, headerField or path.
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... testscript-variable-paramField S0..1stringFixture firstUsage used within the test script
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name 1..1stringDescriptive name for this variable
.... defaultValue 0..1stringDefault, hard-coded, or user-defined value for this variable
.... description 0..1stringNatural language description of the variable
.... expression 0..1stringThe FHIRPath expression against the fixture body
.... headerField 0..1stringHTTP header field name for source
.... hint 0..1stringHint help text for default value to enter
.... path 0..1stringXPath or JSONPath against the fixture body
.... sourceId 0..1idFixture Id of source expression or headerField within this variable
... setup 0..1BackboneElementA series of required setup operations before tests are executed
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... action I1..*BackboneElementA setup operation or assert to perform
tst-1: Setup action SHALL contain either an operation or assert but not both.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... operation I0..1BackboneElementThe setup operation to perform
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
...... testscript-operation-oauth2AuthzRedirectId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId
...... testscript-operation-oauth2AuthzRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId
...... testscript-operation-smartLaunchRequestId S0..1idRequest id for specific oauth2-authorize operation
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... type 0..1CodingThe operation code type that will be executed
Binding: AEGIS Touchstone Testing TestScript TestScript Operation Codes ValueSet (extensible)
...... resource 0..1codeResource type
Binding: FHIRDefinedType (required)
...... label 0..1stringTracking/logging operation label
...... description 0..1stringTracking/reporting operation description
...... accept 0..1codeMime type to accept in the payload of the response, with charset etc.
Binding: Mime Types (required)
Example General: application/fhir+xml
...... contentType 0..1codeMime type of the request payload contents, with charset etc.
Binding: Mime Types (required)
Example General: application/fhir+xml
...... destination 0..1integerServer responding to the request
...... encodeRequestUrl 1..1booleanWhether or not to send the request url in encoded format
...... method 0..1codedelete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCode (required)
...... origin 0..1integerServer initiating the request
...... params 0..1stringExplicitly defined path parameters
...... requestHeader 0..*BackboneElementEach operation can have one or more header elements
....... id 0..1stringUnique id for inter-element referencing
....... extension 0..*ExtensionAdditional content defined by implementations
....... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
....... field 1..1stringHTTP header field name
....... value 1..1stringHTTP headerfield value
...... requestId 0..1idFixture Id of mapped request
...... responseId 0..1idFixture Id of mapped response
...... sourceId 0..1idFixture Id of body for PUT and POST requests
...... targetId 0..1idId of fixture used for extracting the [id], [type], and [vid] for GET requests
...... url 0..1stringRequest URL
..... assert I0..1BackboneElementThe assertion to perform
tst-5: Only a single assertion SHALL be present within setup action assert element.
tst-10: Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.
tst-12: Setup action assert response and responseCode SHALL be empty when direction equals request
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
...... testscript-assert-rule S0..1(Complex)Rule used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule
...... testscript-assert-ruleset S0..1(Complex)Ruleset used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset
...... testscript-assert-stopTestOnFail S0..1booleanStop Test On Error boolean used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail
...... testscript-assert-variable S0..1stringComparison value used within the test script assert
URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... label 0..1stringTracking/logging assertion label
...... description 0..1stringTracking/reporting assertion description
...... direction 0..1coderesponse | request
Binding: AssertionDirectionType (required)
...... compareToSourceId 0..1stringId of the source fixture to be evaluated
...... compareToSourceExpression 0..1stringThe FHIRPath expression to evaluate against the source fixture
...... compareToSourcePath 0..1stringXPath or JSONPath expression to evaluate against the source fixture
...... contentType 0..1codeMime type to compare against the 'Content-Type' header
Binding: Mime Types (required)
Example General: application/fhir+xml
...... expression 0..1stringThe FHIRPath expression to be evaluated
...... headerField 0..1stringHTTP header field name
...... minimumId 0..1stringFixture Id of minimum content resource
...... navigationLinks 0..1booleanPerform validation on navigation links?
...... operator 0..1codeequals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval
Binding: AssertionOperatorType (required)
...... path 0..1stringXPath or JSONPath expression
...... requestMethod 0..1codedelete | get | options | patch | post | put | head
Binding: TestScriptRequestMethodCode (required)
...... requestURL 0..1stringRequest URL comparison value
...... resource 0..1codeResource type
Binding: FHIRDefinedType (required)
...... response 0..1codeokay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable
Binding: AssertionResponseTypes (required)
...... responseCode 0..1stringHTTP response code to test
...... sourceId 0..1idFixture Id of source expression or headerField
...... validateProfileId 0..1idProfile Id of validation profile reference
...... value 0..1stringThe value to compare to
...... warningOnly 1..1booleanWill this assert produce a warning only on error?
... test 0..*BackboneElementA test in this script
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... name 0..1stringTracking/logging name of this test
.... description 0..1stringTracking/reporting short description of the test
.... action I1..*BackboneElementA test operation or assert to perform
tst-2: Test action SHALL contain either an operation or assert but not both.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... operation I0..1See operationThe setup operation to perform
..... assert I0..1See assertThe setup assertion to perform
tst-6: Only a single assertion SHALL be present within test action assert element.
tst-11: Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.
tst-13: Test action assert response and response and responseCode SHALL be empty when direction equals request
... teardown 0..1BackboneElementA series of required clean up steps
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... action 1..*BackboneElementOne or more teardown operations to perform
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... operation I1..1See operationThe teardown operation to perform
tst-9: Teardown operation SHALL contain either sourceId or targetId or params or url.

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron

Terminology Bindings

PathConformanceValueSet
TestScript.languagepreferredCommonLanguages
Max Binding: AllLanguages
TestScript.statusrequiredPublicationStatus
TestScript.jurisdictionextensibleJurisdiction ValueSet
TestScript.origin.profileextensibleTestScriptProfileOriginType
TestScript.destination.profileextensibleTestScriptProfileDestinationType
TestScript.setup.action.operation.typeextensibleAEGISTouchstoneTestingTestScriptOperationCodesValueSet
TestScript.setup.action.operation.resourcerequiredFHIRDefinedType
TestScript.setup.action.operation.acceptrequiredMime Types
TestScript.setup.action.operation.contentTyperequiredMime Types
TestScript.setup.action.operation.methodrequiredTestScriptRequestMethodCode
TestScript.setup.action.assert.directionrequiredAssertionDirectionType
TestScript.setup.action.assert.contentTyperequiredMime Types
TestScript.setup.action.assert.operatorrequiredAssertionOperatorType
TestScript.setup.action.assert.requestMethodrequiredTestScriptRequestMethodCode
TestScript.setup.action.assert.resourcerequiredFHIRDefinedType
TestScript.setup.action.assert.responserequiredAssertionResponseTypes

Constraints

IdPathDetailsRequirements
dom-2TestScriptIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3TestScriptIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4TestScriptIf 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-5TestScriptIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6TestScriptA resource should have narrative for robust management
: text.`div`.exists()
tst-0TestScriptName should be usable as an identifier for the module by machine processing applications such as code generation
: name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
ele-1TestScript.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.extension:testscript-ruleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.extension:testscript-ruleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.extension:testscript-rulesetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.extension:testscript-rulesetMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.titleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.experimentalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.publisherAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.useContextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.jurisdictionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.purposeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.copyrightAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.originAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.origin.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.origin.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.origin.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.origin.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.origin.indexAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.origin.profileAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.destinationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.destination.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.destination.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.destination.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.destination.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.destination.indexAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.destination.profileAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadataAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-4TestScript.metadataTestScript metadata capability SHALL contain required or validated or both.
: capability.required.exists() or capability.validated.exists()
ele-1TestScript.metadata.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.metadata.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.metadata.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.metadata.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.metadata.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.link.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.metadata.link.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.metadata.link.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.metadata.link.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.metadata.link.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.link.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capabilityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.metadata.capability.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.metadata.capability.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.metadata.capability.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.metadata.capability.requiredAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.validatedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.originAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.destinationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.metadata.capability.capabilitiesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.fixtureAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.fixture.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.fixture.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.fixture.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.fixture.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.fixture.autocreateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.fixture.autodeleteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.fixture.resourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.profileAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variableAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-3TestScript.variableVariable can only contain one of expression, headerField or path.
: expression.empty() or headerField.empty() or path.empty()
ele-1TestScript.variable.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.variable.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.variable.extension:testscript-variable-paramFieldAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.variable.extension:testscript-variable-paramFieldMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.variable.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.variable.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.variable.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.defaultValueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.expressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.headerFieldAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.hintAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.pathAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.variable.sourceIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setupAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.actionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-1TestScript.setup.actionSetup action SHALL contain either an operation or assert but not both.
: operation.exists() xor assert.exists()
ele-1TestScript.setup.action.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-7TestScript.setup.action.operationSetup 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'))
ele-1TestScript.setup.action.operation.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRedirectIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRedirectIdMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRequestIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRequestIdMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.extension:testscript-operation-smartLaunchRequestIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.extension:testscript-operation-smartLaunchRequestIdMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.resourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.labelAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.acceptAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.contentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.destinationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.encodeRequestUrlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.originAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.paramsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.requestHeaderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.requestHeader.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.requestHeader.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.requestHeader.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.operation.requestHeader.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.operation.requestHeader.fieldAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.requestHeader.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.requestIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.responseIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.sourceIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.targetIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.operation.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assertAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-5TestScript.setup.action.assertOnly a single assertion SHALL be present within setup action assert element.
: extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1)
tst-10TestScript.setup.action.assertSetup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.
: compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())
tst-12TestScript.setup.action.assertSetup 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'
ele-1TestScript.setup.action.assert.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.assert.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.assert.extension:testscript-assert-ruleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.assert.extension:testscript-assert-ruleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.assert.extension:testscript-assert-rulesetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.assert.extension:testscript-assert-rulesetMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.assert.extension:testscript-assert-stopTestOnFailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.assert.extension:testscript-assert-stopTestOnFailMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.assert.extension:testscript-assert-variableAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.assert.extension:testscript-assert-variableMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.assert.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.setup.action.assert.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.setup.action.assert.labelAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.directionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.compareToSourceIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.compareToSourceExpressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.compareToSourcePathAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.contentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.expressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.headerFieldAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.minimumIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.navigationLinksAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.operatorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.pathAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.requestMethodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.requestURLAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.resourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.responseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.responseCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.sourceIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.validateProfileIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.setup.action.assert.warningOnlyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.testAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.test.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.test.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.test.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.test.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.test.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.test.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.test.actionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-2TestScript.test.actionTest action SHALL contain either an operation or assert but not both.
: operation.exists() xor assert.exists()
ele-1TestScript.test.action.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.test.action.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.test.action.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.test.action.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.test.action.operationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-8TestScript.test.action.operationTest 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'))
ele-1TestScript.test.action.assertAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-6TestScript.test.action.assertOnly a single assertion SHALL be present within test action assert element.
: extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1)
tst-11TestScript.test.action.assertTest action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.
: compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())
tst-13TestScript.test.action.assertTest 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'
ele-1TestScript.teardownAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.teardown.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.teardown.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.teardown.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.teardown.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.teardown.actionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1TestScript.teardown.action.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.teardown.action.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.teardown.action.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1TestScript.teardown.action.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1TestScript.teardown.action.operationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tst-9TestScript.teardown.action.operationTeardown 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'))