This is the Version 1.6.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.
- ehr-smart-launch
- oauth2-standalone-launch
- patient-read-stopTestOnFail-json
- patient-read-summary-rule-no-param-json
- patient-read-summary-rule-with-param-json
- patient-read-versioning-ruleset-json
- patient-read-notfound-ruleset-with-param-json
- patient-search-pages-next
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 Fri Sep 10 00:00:00 EDT 2021 as a active by AEGIS.net, Inc..
This profile builds on TestScript
Summary
Mandatory: 0 element (2 nested mandatory elements)
Must-Support: 14 elements
Extensions
This structure refers to these extensions:
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-dynamic-fixture
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-test-manualCompletion
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-authorizeInNewTab
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
TestScript | I | 0..* | TestScript | Touchstone Testing TestScript Profile |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-dynamic-fixture | S | 0..* | (Complex) | Dynamic fixture used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-dynamic-fixture |
testscript-rule | S | 0..* | (Complex) | Assert rule used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule |
testscript-ruleset | S | 0..* | (Complex) | Assert ruleset used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) |
identifier | Σ | 0..1 | Identifier | Additional identifier for the test script |
version | Σ | 0..1 | string | Business version of the test script |
name | ΣI | 1..1 | string | Name for this test script (computer friendly) |
title | Σ | 0..1 | string | Name for this test script (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | 0..1 | markdown | Natural language description of the test script | |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for test script (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. |
purpose | 0..1 | markdown | Why this test script is defined | |
copyright | 0..1 | markdown | Use and/or publishing restrictions | |
origin | 0..* | BackboneElement | An abstract server representing a client or sender in a message exchange | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
index | 1..1 | integer | The index of the abstract origin server starting at 1 | |
profile | 1..1 | Coding | FHIR-Client | FHIR-SDC-FormFiller | CDSH-Client Binding: AEGIS Touchstone Testing TestScript TestScript Profile Origin Types ValueSet (extensible): The type of origin profile the test system supports. | |
destination | 0..* | BackboneElement | An abstract server representing a destination or receiver in a message exchange | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
index | 1..1 | integer | The index of the abstract destination server starting at 1 | |
profile | 1..1 | Coding | FHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor | CDSH-Server Binding: AEGIS Touchstone Testing TestScript TestScript Profile Destination Types ValueSet (extensible): The type of destination profile the test system supports. | |
metadata | I | 0..1 | BackboneElement | Required 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..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
link | 0..* | BackboneElement | Links to the FHIR specification | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
url | 1..1 | uri | URL to the specification | |
description | 0..1 | string | Short description | |
capability | 1..* | BackboneElement | Capabilities that are assumed to function correctly on the FHIR server being tested | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
required | 1..1 | boolean | Are the capabilities required? | |
validated | 1..1 | boolean | Are the capabilities validated? | |
description | 0..1 | string | The expected capabilities of the server | |
origin | 0..* | integer | Which origin server these requirements apply to | |
destination | 0..1 | integer | Which server these requirements apply to | |
link | 0..* | uri | Links to the FHIR specification | |
capabilities | 1..1 | canonical(CapabilityStatement) | Required Capability Statement | |
fixture | 0..* | BackboneElement | Fixture in the test script - by reference (uri) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
autocreate | 1..1 | boolean | Whether or not to implicitly create the fixture during setup | |
autodelete | 1..1 | boolean | Whether or not to implicitly delete the fixture during teardown | |
resource | 0..1 | Reference(Resource) | Reference of the resource | |
profile | 0..* | Reference(Resource) | Reference of the validation profile | |
variable | I | 0..* | BackboneElement | Placeholder for evaluated elements tst-3: Variable can only contain one of expression, headerField or path. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-variable-paramField | S | 0..1 | string | Fixture firstUsage used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name | 1..1 | string | Descriptive name for this variable | |
defaultValue | 0..1 | string | Default, hard-coded, or user-defined value for this variable | |
description | 0..1 | string | Natural language description of the variable | |
expression | 0..1 | string | The FHIRPath expression against the fixture body | |
headerField | 0..1 | string | HTTP header field name for source | |
hint | 0..1 | string | Hint help text for default value to enter | |
path | 0..1 | string | XPath or JSONPath against the fixture body | |
sourceId | 0..1 | id | Fixture Id of source expression or headerField within this variable | |
setup | 0..1 | BackboneElement | A series of required setup operations before tests are executed | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-test-manualCompletion | S | 0..1 | code | Override the default behavior of the TestScript.test execution URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-test-manualCompletion Binding: AEGIS Touchstone Testing TestScript Test Manual Completion Codes ValueSet (extensible) |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
action | I | 1..* | BackboneElement | A setup operation or assert to perform tst-1: Setup action SHALL contain either an operation or assert but not both. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
operation | I | 0..1 | BackboneElement | The setup operation to perform |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-operation-authorizeInNewTab | S | 0..1 | boolean | Authorize in new tab for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-authorizeInNewTab |
testscript-operation-oauth2AuthzRedirectId | S | 0..1 | id | Request id for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId |
testscript-operation-oauth2AuthzRequestId | S | 0..1 | id | Request id for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId |
testscript-operation-pagesNext | S | 0..1 | positiveInt | The maximum number of search pages to auto retrieve and process. Only valid when used with the 'history' or 'search' operation code values. URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext |
testscript-operation-smartLaunchRequestId | S | 0..1 | id | Request id for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | 0..1 | Coding | The operation code type that will be executed Binding: AEGIS Touchstone Testing TestScript TestScript Operation Codes ValueSet (extensible): The allowable operation code types. | |
resource | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |
label | 0..1 | string | Tracking/logging operation label | |
description | 0..1 | string | Tracking/reporting operation description | |
accept | 0..1 | code | Mime type to accept in the payload of the response, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |
contentType | 0..1 | code | Mime type of the request payload contents, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |
destination | 0..1 | integer | Server responding to the request | |
encodeRequestUrl | 1..1 | boolean | Whether or not to send the request url in encoded format | |
method | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |
origin | 0..1 | integer | Server initiating the request | |
params | 0..1 | string | Explicitly defined path parameters | |
requestHeader | 0..* | BackboneElement | Each operation can have one or more header elements | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
field | 1..1 | string | HTTP header field name | |
value | 1..1 | string | HTTP headerfield value | |
requestId | 0..1 | id | Fixture Id of mapped request | |
responseId | 0..1 | id | Fixture Id of mapped response | |
sourceId | 0..1 | id | Fixture Id of body for PUT and POST requests | |
targetId | 0..1 | id | Id of fixture used for extracting the [id], [type], and [vid] for GET requests | |
url | 0..1 | string | Request URL | |
assert | I | 0..1 | BackboneElement | The 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..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-assert-rule | S | 0..1 | (Complex) | Rule used within the test script assert URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule |
testscript-assert-ruleset | S | 0..1 | (Complex) | Ruleset used within the test script assert URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset |
testscript-assert-stopTestOnFail | S | 0..1 | boolean | Stop 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 | S | 0..1 | string | Comparison value used within the test script assert URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
label | 0..1 | string | Tracking/logging assertion label | |
description | 0..1 | string | Tracking/reporting assertion description | |
direction | 0..1 | code | response | request Binding: AssertionDirectionType (required): The type of direction to use for assertion. | |
compareToSourceId | 0..1 | string | Id of the source fixture to be evaluated | |
compareToSourceExpression | 0..1 | string | The FHIRPath expression to evaluate against the source fixture | |
compareToSourcePath | 0..1 | string | XPath or JSONPath expression to evaluate against the source fixture | |
contentType | 0..1 | code | Mime type to compare against the 'Content-Type' header Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |
expression | 0..1 | string | The FHIRPath expression to be evaluated | |
headerField | 0..1 | string | HTTP header field name | |
minimumId | 0..1 | string | Fixture Id of minimum content resource | |
navigationLinks | 0..1 | boolean | Perform validation on navigation links? | |
operator | 0..1 | code | equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval Binding: AssertionOperatorType (required): The type of operator to use for assertion. | |
path | 0..1 | string | XPath or JSONPath expression | |
requestMethod | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |
requestURL | 0..1 | string | Request URL comparison value | |
resource | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |
response | 0..1 | code | okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable Binding: AssertionResponseTypes (required): The type of response code to use for assertion. | |
responseCode | 0..1 | string | HTTP response code to test | |
sourceId | 0..1 | id | Fixture Id of source expression or headerField | |
validateProfileId | 0..1 | id | Profile Id of validation profile reference | |
value | 0..1 | string | The value to compare to | |
warningOnly | 1..1 | boolean | Will this assert produce a warning only on error? | |
test | 0..* | BackboneElement | A test in this script | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name | 0..1 | string | Tracking/logging name of this test | |
description | 0..1 | string | Tracking/reporting short description of the test | |
action | I | 1..* | BackboneElement | A test operation or assert to perform tst-2: Test action SHALL contain either an operation or assert but not both. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
operation | I | 0..1 | See operation (TestScript) | The setup operation to perform |
assert | I | 0..1 | See assert (TestScript) | The 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..1 | BackboneElement | A series of required clean up steps | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
action | 1..* | BackboneElement | One or more teardown operations to perform | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
operation | I | 1..1 | See operation (TestScript) | The teardown operation to perform tst-9: Teardown operation SHALL contain either sourceId or targetId or params or url. |
Documentation for this format |
Summary
Mandatory: 0 element (2 nested mandatory elements)
Must-Support: 14 elements
Extensions
This structure refers to these extensions:
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-dynamic-fixture
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-test-manualCompletion
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-authorizeInNewTab
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail
- http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable
Differential View
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
TestScript | I | 0..* | TestScript | Touchstone Testing TestScript Profile |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-dynamic-fixture | S | 0..* | (Complex) | Dynamic fixture used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-dynamic-fixture |
testscript-rule | S | 0..* | (Complex) | Assert rule used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule |
testscript-ruleset | S | 0..* | (Complex) | Assert ruleset used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
url | Σ | 1..1 | uri | Canonical identifier for this test script, represented as a URI (globally unique) |
identifier | Σ | 0..1 | Identifier | Additional identifier for the test script |
version | Σ | 0..1 | string | Business version of the test script |
name | ΣI | 1..1 | string | Name for this test script (computer friendly) |
title | Σ | 0..1 | string | Name for this test script (human friendly) |
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage |
date | Σ | 0..1 | dateTime | Date last changed |
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) |
contact | Σ | 0..* | ContactDetail | Contact details for the publisher |
description | 0..1 | markdown | Natural language description of the test script | |
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support |
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for test script (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. |
purpose | 0..1 | markdown | Why this test script is defined | |
copyright | 0..1 | markdown | Use and/or publishing restrictions | |
origin | 0..* | BackboneElement | An abstract server representing a client or sender in a message exchange | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
index | 1..1 | integer | The index of the abstract origin server starting at 1 | |
profile | 1..1 | Coding | FHIR-Client | FHIR-SDC-FormFiller | CDSH-Client Binding: AEGIS Touchstone Testing TestScript TestScript Profile Origin Types ValueSet (extensible): The type of origin profile the test system supports. | |
destination | 0..* | BackboneElement | An abstract server representing a destination or receiver in a message exchange | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
index | 1..1 | integer | The index of the abstract destination server starting at 1 | |
profile | 1..1 | Coding | FHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor | CDSH-Server Binding: AEGIS Touchstone Testing TestScript TestScript Profile Destination Types ValueSet (extensible): The type of destination profile the test system supports. | |
metadata | I | 0..1 | BackboneElement | Required 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..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
link | 0..* | BackboneElement | Links to the FHIR specification | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
url | 1..1 | uri | URL to the specification | |
description | 0..1 | string | Short description | |
capability | 1..* | BackboneElement | Capabilities that are assumed to function correctly on the FHIR server being tested | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
required | 1..1 | boolean | Are the capabilities required? | |
validated | 1..1 | boolean | Are the capabilities validated? | |
description | 0..1 | string | The expected capabilities of the server | |
origin | 0..* | integer | Which origin server these requirements apply to | |
destination | 0..1 | integer | Which server these requirements apply to | |
link | 0..* | uri | Links to the FHIR specification | |
capabilities | 1..1 | canonical(CapabilityStatement) | Required Capability Statement | |
fixture | 0..* | BackboneElement | Fixture in the test script - by reference (uri) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
autocreate | 1..1 | boolean | Whether or not to implicitly create the fixture during setup | |
autodelete | 1..1 | boolean | Whether or not to implicitly delete the fixture during teardown | |
resource | 0..1 | Reference(Resource) | Reference of the resource | |
profile | 0..* | Reference(Resource) | Reference of the validation profile | |
variable | I | 0..* | BackboneElement | Placeholder for evaluated elements tst-3: Variable can only contain one of expression, headerField or path. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-variable-paramField | S | 0..1 | string | Fixture firstUsage used within the test script URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-variable-paramField |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name | 1..1 | string | Descriptive name for this variable | |
defaultValue | 0..1 | string | Default, hard-coded, or user-defined value for this variable | |
description | 0..1 | string | Natural language description of the variable | |
expression | 0..1 | string | The FHIRPath expression against the fixture body | |
headerField | 0..1 | string | HTTP header field name for source | |
hint | 0..1 | string | Hint help text for default value to enter | |
path | 0..1 | string | XPath or JSONPath against the fixture body | |
sourceId | 0..1 | id | Fixture Id of source expression or headerField within this variable | |
setup | 0..1 | BackboneElement | A series of required setup operations before tests are executed | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-test-manualCompletion | S | 0..1 | code | Override the default behavior of the TestScript.test execution URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-test-manualCompletion Binding: AEGIS Touchstone Testing TestScript Test Manual Completion Codes ValueSet (extensible) |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
action | I | 1..* | BackboneElement | A setup operation or assert to perform tst-1: Setup action SHALL contain either an operation or assert but not both. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
operation | I | 0..1 | BackboneElement | The setup operation to perform |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-operation-authorizeInNewTab | S | 0..1 | boolean | Authorize in new tab for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-authorizeInNewTab |
testscript-operation-oauth2AuthzRedirectId | S | 0..1 | id | Request id for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRedirectId |
testscript-operation-oauth2AuthzRequestId | S | 0..1 | id | Request id for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-oauth2AuthzRequestId |
testscript-operation-pagesNext | S | 0..1 | positiveInt | The maximum number of search pages to auto retrieve and process. Only valid when used with the 'history' or 'search' operation code values. URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext |
testscript-operation-smartLaunchRequestId | S | 0..1 | id | Request id for specific oauth2-authorize operation URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-smartLaunchRequestId |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | 0..1 | Coding | The operation code type that will be executed Binding: AEGIS Touchstone Testing TestScript TestScript Operation Codes ValueSet (extensible): The allowable operation code types. | |
resource | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |
label | 0..1 | string | Tracking/logging operation label | |
description | 0..1 | string | Tracking/reporting operation description | |
accept | 0..1 | code | Mime type to accept in the payload of the response, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |
contentType | 0..1 | code | Mime type of the request payload contents, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |
destination | 0..1 | integer | Server responding to the request | |
encodeRequestUrl | 1..1 | boolean | Whether or not to send the request url in encoded format | |
method | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |
origin | 0..1 | integer | Server initiating the request | |
params | 0..1 | string | Explicitly defined path parameters | |
requestHeader | 0..* | BackboneElement | Each operation can have one or more header elements | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
field | 1..1 | string | HTTP header field name | |
value | 1..1 | string | HTTP headerfield value | |
requestId | 0..1 | id | Fixture Id of mapped request | |
responseId | 0..1 | id | Fixture Id of mapped response | |
sourceId | 0..1 | id | Fixture Id of body for PUT and POST requests | |
targetId | 0..1 | id | Id of fixture used for extracting the [id], [type], and [vid] for GET requests | |
url | 0..1 | string | Request URL | |
assert | I | 0..1 | BackboneElement | The 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..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
testscript-assert-rule | S | 0..1 | (Complex) | Rule used within the test script assert URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule |
testscript-assert-ruleset | S | 0..1 | (Complex) | Ruleset used within the test script assert URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset |
testscript-assert-stopTestOnFail | S | 0..1 | boolean | Stop 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 | S | 0..1 | string | Comparison value used within the test script assert URL: http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-variable |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
label | 0..1 | string | Tracking/logging assertion label | |
description | 0..1 | string | Tracking/reporting assertion description | |
direction | 0..1 | code | response | request Binding: AssertionDirectionType (required): The type of direction to use for assertion. | |
compareToSourceId | 0..1 | string | Id of the source fixture to be evaluated | |
compareToSourceExpression | 0..1 | string | The FHIRPath expression to evaluate against the source fixture | |
compareToSourcePath | 0..1 | string | XPath or JSONPath expression to evaluate against the source fixture | |
contentType | 0..1 | code | Mime type to compare against the 'Content-Type' header Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: application/fhir+xml | |
expression | 0..1 | string | The FHIRPath expression to be evaluated | |
headerField | 0..1 | string | HTTP header field name | |
minimumId | 0..1 | string | Fixture Id of minimum content resource | |
navigationLinks | 0..1 | boolean | Perform validation on navigation links? | |
operator | 0..1 | code | equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval Binding: AssertionOperatorType (required): The type of operator to use for assertion. | |
path | 0..1 | string | XPath or JSONPath expression | |
requestMethod | 0..1 | code | delete | get | options | patch | post | put | head Binding: TestScriptRequestMethodCode (required): The allowable request method or HTTP operation codes. | |
requestURL | 0..1 | string | Request URL comparison value | |
resource | 0..1 | code | Resource type Binding: FHIRDefinedType (required): A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types. | |
response | 0..1 | code | okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable Binding: AssertionResponseTypes (required): The type of response code to use for assertion. | |
responseCode | 0..1 | string | HTTP response code to test | |
sourceId | 0..1 | id | Fixture Id of source expression or headerField | |
validateProfileId | 0..1 | id | Profile Id of validation profile reference | |
value | 0..1 | string | The value to compare to | |
warningOnly | 1..1 | boolean | Will this assert produce a warning only on error? | |
test | 0..* | BackboneElement | A test in this script | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
name | 0..1 | string | Tracking/logging name of this test | |
description | 0..1 | string | Tracking/reporting short description of the test | |
action | I | 1..* | BackboneElement | A test operation or assert to perform tst-2: Test action SHALL contain either an operation or assert but not both. |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
operation | I | 0..1 | See operation (TestScript) | The setup operation to perform |
assert | I | 0..1 | See assert (TestScript) | The 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..1 | BackboneElement | A series of required clean up steps | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
action | 1..* | BackboneElement | One or more teardown operations to perform | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
operation | I | 1..1 | See operation (TestScript) | The teardown operation to perform tst-9: Teardown operation SHALL contain either sourceId or targetId or params or url. |
Documentation for this format |
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Terminology Bindings
Path | Conformance | ValueSet |
TestScript.language | preferred | CommonLanguages Max Binding: AllLanguages |
TestScript.status | required | PublicationStatus |
TestScript.jurisdiction | extensible | Jurisdiction ValueSet |
TestScript.origin.profile | extensible | AEGISTouchstoneTestingTestScriptProfileOriginTypesValueSet |
TestScript.destination.profile | extensible | AEGISTouchstoneTestingTestScriptProfileDestinationTypesValueSet |
TestScript.setup.action.operation.type | extensible | AEGISTouchstoneTestingTestScriptOperationCodesValueSet |
TestScript.setup.action.operation.resource | required | FHIRDefinedType |
TestScript.setup.action.operation.accept | required | Mime Types |
TestScript.setup.action.operation.contentType | required | Mime Types |
TestScript.setup.action.operation.method | required | TestScriptRequestMethodCode |
TestScript.setup.action.assert.direction | required | AssertionDirectionType |
TestScript.setup.action.assert.contentType | required | Mime Types |
TestScript.setup.action.assert.operator | required | AssertionOperatorType |
TestScript.setup.action.assert.requestMethod | required | TestScriptRequestMethodCode |
TestScript.setup.action.assert.resource | required | FHIRDefinedType |
TestScript.setup.action.assert.response | required | AssertionResponseTypes |
Constraints
Id | Path | Details | Requirements |
dom-2 | TestScript | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | TestScript | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | 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 | TestScript | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | TestScript | A resource should have narrative for robust management : text.`div`.exists() | |
tst-0 | TestScript | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
ele-1 | TestScript.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.extension:testscript-dynamic-fixture | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.extension:testscript-dynamic-fixture | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.extension:testscript-rule | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.extension:testscript-rule | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.extension:testscript-ruleset | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.extension:testscript-ruleset | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.url | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.version | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.name | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.title | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.experimental | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.date | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.publisher | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.contact | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.useContext | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.jurisdiction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.purpose | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.copyright | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.origin | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.origin.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.origin.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.origin.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.origin.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.origin.index | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.origin.profile | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.destination | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.destination.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.destination.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.destination.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.destination.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.destination.index | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.destination.profile | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-4 | TestScript.metadata | TestScript metadata capability SHALL contain required or validated or both. : capability.required.exists() or capability.validated.exists() | |
ele-1 | TestScript.metadata.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.metadata.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.metadata.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.metadata.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.metadata.link | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.link.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.metadata.link.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.metadata.link.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.metadata.link.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.metadata.link.url | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.link.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.metadata.capability.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.metadata.capability.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.metadata.capability.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.metadata.capability.required | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.validated | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.origin | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.destination | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.link | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.metadata.capability.capabilities | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.fixture | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.fixture.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.fixture.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.fixture.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.fixture.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.fixture.autocreate | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.fixture.autodelete | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.fixture.resource | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.profile | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-3 | TestScript.variable | Variable can only contain one of expression, headerField or path. : expression.empty() or headerField.empty() or path.empty() | |
ele-1 | TestScript.variable.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.variable.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.variable.extension:testscript-variable-paramField | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.variable.extension:testscript-variable-paramField | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.variable.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.variable.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.variable.name | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.defaultValue | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.expression | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.headerField | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.hint | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.path | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.variable.sourceId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.extension:testscript-test-manualCompletion | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.extension:testscript-test-manualCompletion | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-1 | TestScript.setup.action | Setup action SHALL contain either an operation or assert but not both. : operation.exists() xor assert.exists() | |
ele-1 | TestScript.setup.action.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-7 | TestScript.setup.action.operation | Setup operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history')) | |
ele-1 | TestScript.setup.action.operation.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.extension:testscript-operation-authorizeInNewTab | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.extension:testscript-operation-authorizeInNewTab | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRedirectId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRedirectId | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRequestId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.extension:testscript-operation-oauth2AuthzRequestId | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.extension:testscript-operation-pagesNext | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.extension:testscript-operation-pagesNext | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.extension:testscript-operation-smartLaunchRequestId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.extension:testscript-operation-smartLaunchRequestId | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.resource | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.label | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.accept | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.contentType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.destination | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.encodeRequestUrl | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.method | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.origin | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.params | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.requestHeader | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.requestHeader.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.requestHeader.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.requestHeader.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.operation.requestHeader.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.operation.requestHeader.field | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.requestHeader.value | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.requestId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.responseId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.sourceId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.targetId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.operation.url | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-5 | TestScript.setup.action.assert | Only a single assertion SHALL be present within setup action assert element. : extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) | |
tst-10 | TestScript.setup.action.assert | Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. : compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists()) | |
tst-12 | TestScript.setup.action.assert | Setup action assert response and responseCode SHALL be empty when direction equals request : (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response' | |
ele-1 | TestScript.setup.action.assert.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.assert.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.assert.extension:testscript-assert-rule | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.assert.extension:testscript-assert-rule | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.assert.extension:testscript-assert-ruleset | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.assert.extension:testscript-assert-ruleset | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.assert.extension:testscript-assert-stopTestOnFail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.assert.extension:testscript-assert-stopTestOnFail | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.assert.extension:testscript-assert-variable | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.assert.extension:testscript-assert-variable | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.assert.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.setup.action.assert.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.setup.action.assert.label | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.direction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.compareToSourceId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.compareToSourceExpression | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.compareToSourcePath | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.contentType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.expression | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.headerField | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.minimumId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.navigationLinks | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.operator | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.path | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.requestMethod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.requestURL | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.resource | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.response | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.responseCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.sourceId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.validateProfileId | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.value | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.setup.action.assert.warningOnly | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.test | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.test.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.test.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.test.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.test.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.test.name | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.test.description | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.test.action | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-2 | TestScript.test.action | Test action SHALL contain either an operation or assert but not both. : operation.exists() xor assert.exists() | |
ele-1 | TestScript.test.action.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.test.action.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.test.action.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.test.action.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.test.action.operation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-8 | TestScript.test.action.operation | Test operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history')) | |
ele-1 | TestScript.test.action.assert | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-6 | TestScript.test.action.assert | Only a single assertion SHALL be present within test action assert element. : extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) | |
tst-11 | TestScript.test.action.assert | Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither. : compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists()) | |
tst-13 | TestScript.test.action.assert | Test action assert response and response and responseCode SHALL be empty when direction equals request : (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response' | |
ele-1 | TestScript.teardown | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.teardown.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.teardown.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.teardown.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.teardown.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.teardown.action | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | TestScript.teardown.action.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.teardown.action.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.teardown.action.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | TestScript.teardown.action.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | TestScript.teardown.action.operation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
tst-9 | TestScript.teardown.action.operation | Teardown operation SHALL contain either sourceId or targetId or params or url. : sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history')) |