FHIR © HL7.org  |  FHIRsmith 4.0.1  |  Server Home  |  XIG Home  |  XIG Stats  | 

FHIR IG analytics

Packagehl7.fhir.uv.xver-r3.r5
Resource TypeConceptMap
IdConceptMap-R3-TestScript-element-map-to-R5.json
FHIR VersionR5
Sourcehttp://hl7.org/fhir/uv/xver-r3.r5/0.1.0/ConceptMap-R3-TestScript-element-map-to-R5.html
URLhttp://hl7.org/fhir/uv/xver/ConceptMap/R3-TestScript-element-map-to-R5
Version0.1.0
Statusactive
Date2026-03-17T16:05:00.7108462-05:00
NameR3TestScriptElementMapToR5
TitleCross-version mapping for FHIR STU3 TestScript to FHIR R5 TestScript
Realmuv
Authorityhl7
DescriptionThis ConceptMap represents cross-version mappings for elements from a FHIR STU3 TestScript to FHIR R5.

Resources that use this resource

No resources found


Resources that this resource uses

StructureDefinition
hl7.fhir.uv.xver-r3.r4b#0.1.0extension-TestScript.contactSTU3: contact additional types
hl7.fhir.uv.xver-r3.r4b#0.1.0extension-TestScript.identifierSTU3: identifier additional types
hl7.fhir.uv.xver-r3.r4b#0.1.0extension-TestScript.metaSTU3: meta additional types
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.metadata.capability.capabilitiesCross-version Extension for R3.TestScript.metadata.capability.capabilities for use in FHIR R4B
hl7.fhir.uv.xver-r3.r5#0.1.0extension-TestScript.profileSTU3: profile additional types
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.ruleCross-version Extension for R3.TestScript.rule for use in FHIR R4B
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.rulesetCross-version Extension for R3.TestScript.ruleset for use in FHIR R4B
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.setup.action.assert.resourceCross-version Extension for R3.TestScript.setup.action.assert.resource for use in FHIR R4B
hl7.fhir.uv.xver-r3.r5#0.1.0extension-TestScript.setup.action.assert.responseSTU3: okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable additional codes
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.setup.action.assert.ruleCross-version Extension for R3.TestScript.setup.action.assert.rule for use in FHIR R4B
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.setup.action.assert.rulesetCross-version Extension for R3.TestScript.setup.action.assert.ruleset for use in FHIR R4B
hl7.fhir.uv.xver-r3.r4b.r4#0.0.1-snapshot-2extension-TestScript.setup.action.operation.resourceCross-version Extension for R3.TestScript.setup.action.operation.resource for use in FHIR R4B
hl7.fhir.uv.xver-r3.r4b#0.1.0extension-TestScript.textSTU3: text additional types
hl7.fhir.uv.xver-r3.r4b#0.1.0extension-TestScript.useContextSTU3: Context the content is intended to support additional types

Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: ConceptMap R3-TestScript-element-map-to-R5

Mapping from http://hl7.org/fhir/3.0 to http://hl7.org/fhir/5.0


Group 1 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to TestScriptversion: 5.0.0)

Source CodeRelationshipTarget CodeComment
TestScript.meta (meta)is broader thanTestScript.metaElement `TestScript.meta` is mapped to FHIR R5 element `TestScript.meta` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.meta` do not cover the following types: Meta. The mappings for `TestScript.meta` do not cover the following types based on type expansion: lastUpdated, profile, security, tag, versionId.
TestScript.implicitRules (implicitRules)is equivalent toTestScript.implicitRulesElement `TestScript.implicitRules` is mapped to FHIR R5 element `TestScript.implicitRules` as `Equivalent`. Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. This element is labelled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation.
TestScript.language (language)is equivalent toTestScript.languageElement `TestScript.language` is mapped to FHIR R5 element `TestScript.language` as `Equivalent`. Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).
TestScript.text (text)is broader thanTestScript.textElement `TestScript.text` is mapped to FHIR R5 element `TestScript.text` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.text` do not cover the following types: Narrative. The mappings for `TestScript.text` do not cover the following types based on type expansion: div, status. Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded in formation is added later.
TestScript.contained (contained)is equivalent toTestScript.containedElement `TestScript.contained` is mapped to FHIR R5 element `TestScript.contained` as `SourceIsBroaderThanTarget`. This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again.
TestScript.url (url)is equivalent toTestScript.urlElement `TestScript.url` is mapped to FHIR R5 element `TestScript.url` as `Equivalent`. Can be a urn:uuid: or a urn:oid:, but real http: addresses are preferred. Multiple instances may share the same url if they have a distinct version.
TestScript.identifier (identifier)is broader thanTestScript.identifierElement `TestScript.identifier` is mapped to FHIR R5 element `TestScript.identifier` as `RelatedTo`. The mappings for `TestScript.identifier` do not cover the following types: Identifier. The mappings for `TestScript.identifier` do not cover the following types based on type expansion: assigner, period, system, type, use, value. Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, e.g., to identify this test script outside of FHIR, where it is not possible to use the logical URI.
TestScript.version (version)is equivalent toTestScript.versionElement `TestScript.version` is mapped to FHIR R5 element `TestScript.version` as `Equivalent`. There may be different test script instances that have the same identifier but different versions. The version can be appended to the url in a reference to allow a refrence to a particular business version of the test script with the format [url]|[version].
TestScript.name (name)is equivalent toTestScript.nameElement `TestScript.name` is mapped to FHIR R5 element `TestScript.name` as `Equivalent`. The name is not expected to be globally unique. The name should be a simple alpha-numeric type name to ensure that it is computable friendly.
TestScript.title (title)is equivalent toTestScript.titleElement `TestScript.title` is mapped to FHIR R5 element `TestScript.title` as `Equivalent`. This name does not need to be machine-processing friendly and may contain punctuation, white-space, etc.
TestScript.status (status)is equivalent toTestScript.statusElement `TestScript.status` is mapped to FHIR R5 element `TestScript.status` as `Equivalent`. Allows filtering of test scripts that are appropriate for use vs. not. This is labeled as "Is Modifier" because applications should not use a retired test script without due consideration.
TestScript.experimental (experimental)is equivalent toTestScript.experimentalElement `TestScript.experimental` is mapped to FHIR R5 element `TestScript.experimental` as `Equivalent`. Allows filtering of test script that are appropriate for use vs. not. This is labeled as "Is Modifier" because applications should not use an experimental test script in production.
TestScript.date (date)is equivalent toTestScript.dateElement `TestScript.date` is mapped to FHIR R5 element `TestScript.date` as `Equivalent`. Note that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the test script. Additional specific dates may be added as extensions or be found by consulting Provenances associated with past versions of the resource.
TestScript.publisher (publisher)is equivalent toTestScript.publisherElement `TestScript.publisher` is mapped to FHIR R5 element `TestScript.publisher` as `Equivalent`. Usually an organization, but may be an individual. The publisher (or steward) of the test script is the organization or individual primarily responsible for the maintenance and upkeep of the test script. This is not necessarily the same individual or organization that developed and initially authored the content. The publisher is the primary point of contact for questions or issues with the test script. This item SHOULD be populated unless the information is available from context.
TestScript.contact (contact)is broader thanTestScript.contactElement `TestScript.contact` is mapped to FHIR R5 element `TestScript.contact` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.contact` do not cover the following types: ContactDetail. The mappings for `TestScript.contact` do not cover the following types based on type expansion: name, telecom. May be a web site, an email address, a telephone number, etc.
TestScript.description (description)is equivalent toTestScript.descriptionElement `TestScript.description` is mapped to FHIR R5 element `TestScript.description` as `Equivalent`. This description can be used to capture details such as why the test script was built, comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the test script as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context (e.g. the language of the profile is presumed to be the predominant language in the place the profile was created).
TestScript.useContext (useContext)is broader thanTestScript.useContextElement `TestScript.useContext` is mapped to FHIR R5 element `TestScript.useContext` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.useContext` do not cover the following types: UsageContext. The mappings for `TestScript.useContext` do not cover the following types based on type expansion: code, value[x]. When multiple useContexts are specified, there is no expectation whether all or any of the contexts apply.
TestScript.jurisdiction (jurisdiction)is equivalent toTestScript.jurisdictionElement `TestScript.jurisdiction` is mapped to FHIR R5 element `TestScript.jurisdiction` as `Equivalent`. It may be possible for the test script to be used in jurisdictions other than those for which it was originally designed or intended.
TestScript.purpose (purpose)is equivalent toTestScript.purposeElement `TestScript.purpose` is mapped to FHIR R5 element `TestScript.purpose` as `Equivalent`. This element does not describe the usage of the test script Instead it provides traceability of ''why'' the resource is either needed or ''why'' it is defined as it is. This may be used to point to source materials or specifications that drove the structure of this test script.
TestScript.copyright (copyright)is equivalent toTestScript.copyrightElement `TestScript.copyright` is mapped to FHIR R5 element `TestScript.copyright` as `Equivalent`.
TestScript.origin (origin)is broader thanTestScript.originElement `TestScript.origin` is mapped to FHIR R5 element `TestScript.origin` as `Equivalent`. The purpose of this element is to define the profile of an origin element used elsewhere in the script. Test engines could then use the origin-profile mapping to offer a filtered list of test systems that can serve as the sender for the interaction.
TestScript.origin.index (index)is equivalent toTestScript.origin.indexElement `TestScript.origin.index` is mapped to FHIR R5 element `TestScript.origin.index` as `Equivalent`. A given origin index (e.g. 1) can appear only once in the list (e.g. Origin 1 cannot be specified twice ... once as FormFiller and and again as FormProcessor within the same script as that could get confusing during test configuration). Different origin indices could play the same actor in the same test script (e.g. You could have two different test systems acting as Form-Filler). The origin indices provided elsewhere in the test script must be one of these origin indices.
TestScript.origin.profile (profile)is equivalent toTestScript.origin.profileElement `TestScript.origin.profile` is mapped to FHIR R5 element `TestScript.origin.profile` as `Equivalent`. Must be a "sender"/"client" profile.
TestScript.destination (destination)is broader thanTestScript.destinationElement `TestScript.destination` is mapped to FHIR R5 element `TestScript.destination` as `Equivalent`. The purpose of this element is to define the profile of a destination element used elsewhere in the script. Test engines could then use the destination-profile mapping to offer a filtered list of test systems that can serve as the receiver for the interaction.
TestScript.destination.index (index)is equivalent toTestScript.destination.indexElement `TestScript.destination.index` is mapped to FHIR R5 element `TestScript.destination.index` as `Equivalent`. A given destination index (e.g. 1) can appear only once in the list (e.g. Destination 1 cannot be specified twice ... once as Form-Manager and again as Form-Processor within the same script as that could get confusing during test configuration). Different destination indices could play the same actor in the same test script (e.g. You could have two different test systems acting as Form-Manager). The destination indices provided elsewhere in the test script must be one of these destination indices.
TestScript.destination.profile (profile)is equivalent toTestScript.destination.profileElement `TestScript.destination.profile` is mapped to FHIR R5 element `TestScript.destination.profile` as `Equivalent`. Must be a "receiver"/"server" profile.
TestScript.metadata (metadata)is broader thanTestScript.metadataElement `TestScript.metadata` is mapped to FHIR R5 element `TestScript.metadata` as `Equivalent`.
TestScript.metadata.link (link)is broader thanTestScript.metadata.linkElement `TestScript.metadata.link` is mapped to FHIR R5 element `TestScript.metadata.link` as `Equivalent`.
TestScript.metadata.link.url (url)is equivalent toTestScript.metadata.link.urlElement `TestScript.metadata.link.url` is mapped to FHIR R5 element `TestScript.metadata.link.url` as `Equivalent`.
TestScript.metadata.link.description (description)is equivalent toTestScript.metadata.link.descriptionElement `TestScript.metadata.link.description` is mapped to FHIR R5 element `TestScript.metadata.link.description` as `Equivalent`.
TestScript.metadata.capability (capability)is broader thanTestScript.metadata.capabilityElement `TestScript.metadata.capability` is mapped to FHIR R5 element `TestScript.metadata.capability` as `Equivalent`. When the metadata capabilities section is defined at TestScript.metadata or at TestScript.setup.metadata, and the server's conformance statement does not contain the elements defined in the minimal conformance statement, then all the tests in the TestScript are skipped. When the metadata capabilities section is defined at TestScript.test.metadata and the server's conformance statement does not contain the elements defined in the minimal conformance statement, then only that test is skipped. The "metadata.capabilities.required" and "metadata.capabilities.validated" elements only indicate whether the capabilities are the primary focus of the test script or not. They do not impact the skipping logic. Capabilities whose "metadata.capabilities.validated" flag is true are the primary focus of the test script.
TestScript.metadata.capability.required (required)is equivalent toTestScript.metadata.capability.requiredElement `TestScript.metadata.capability.required` is mapped to FHIR R5 element `TestScript.metadata.capability.required` as `Equivalent`.
TestScript.metadata.capability.validated (validated)is equivalent toTestScript.metadata.capability.validatedElement `TestScript.metadata.capability.validated` is mapped to FHIR R5 element `TestScript.metadata.capability.validated` as `Equivalent`.
TestScript.metadata.capability.description (description)is equivalent toTestScript.metadata.capability.descriptionElement `TestScript.metadata.capability.description` is mapped to FHIR R5 element `TestScript.metadata.capability.description` as `Equivalent`.
TestScript.metadata.capability.origin (origin)is equivalent toTestScript.metadata.capability.originElement `TestScript.metadata.capability.origin` is mapped to FHIR R5 element `TestScript.metadata.capability.origin` as `Equivalent`.
TestScript.metadata.capability.destination (destination)is equivalent toTestScript.metadata.capability.destinationElement `TestScript.metadata.capability.destination` is mapped to FHIR R5 element `TestScript.metadata.capability.destination` as `Equivalent`.
TestScript.metadata.capability.link (link)is equivalent toTestScript.metadata.capability.linkElement `TestScript.metadata.capability.link` is mapped to FHIR R5 element `TestScript.metadata.capability.link` as `Equivalent`.
TestScript.metadata.capability.capabilities (capabilities)is broader thanTestScript.metadata.capability.capabilitiesElement `TestScript.metadata.capability.capabilities` is mapped to FHIR R5 element `TestScript.metadata.capability.capabilities` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.metadata.capability.capabilities` do not cover the following types: Reference. The mappings for `TestScript.metadata.capability.capabilities` do not cover the following types based on type expansion: display, identifier, reference. The conformance statement of the server has to contain at a minimum the contents of the reference pointed to by this element.
TestScript.fixture (fixture)is broader thanTestScript.fixtureElement `TestScript.fixture` is mapped to FHIR R5 element `TestScript.fixture` as `Equivalent`.
TestScript.fixture.autocreate (autocreate)is equivalent toTestScript.fixture.autocreateElement `TestScript.fixture.autocreate` is mapped to FHIR R5 element `TestScript.fixture.autocreate` as `Equivalent`.
TestScript.fixture.autodelete (autodelete)is equivalent toTestScript.fixture.autodeleteElement `TestScript.fixture.autodelete` is mapped to FHIR R5 element `TestScript.fixture.autodelete` as `Equivalent`.
TestScript.fixture.resource (resource)is broader thanTestScript.fixture.resourceElement `TestScript.fixture.resource` is mapped to FHIR R5 element `TestScript.fixture.resource` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.fixture.resource` do not cover the following types based on type expansion: display, identifier, reference. The standard extension `alternate-reference` has been mapped as the representation of FHIR STU3 element `TestScript.fixture.resource` with unmapped reference targets: Resource. See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types.
TestScript.profile (profile)is broader thanTestScript.profileElement `TestScript.profile` is mapped to FHIR R5 element `TestScript.profile` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.profile` do not cover the following types: Reference. The mappings for `TestScript.profile` do not cover the following types based on type expansion: display, identifier, reference. See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types.
TestScript.variable (variable)is broader thanTestScript.variableElement `TestScript.variable` is mapped to FHIR R5 element `TestScript.variable` as `Equivalent`. Variables would be set based either on XPath/JSONPath expressions against fixtures (static and response), or headerField evaluations against response headers. If variable evaluates to nodelist or anything other than a primitive value, then test engine would report an error. Variables would be used to perform clean replacements in "operation.params", "operation.requestHeader.value", and "operation.url" element values during operation calls and in "assert.value" during assertion evaluations. This limits the places that test engines would need to look for placeholders "${}". Variables are scoped to the whole script. They are NOT evaluated at declaration. They are evaluated by test engine when used for substitutions in "operation.params", "operation.requestHeader.value", and "operation.url" element values during operation calls and in "assert.value" during assertion evaluations. See example testscript-search.xml.
TestScript.variable.name (name)is equivalent toTestScript.variable.nameElement `TestScript.variable.name` is mapped to FHIR R5 element `TestScript.variable.name` as `Equivalent`. Placeholders would contain the variable name wrapped in ${} in "operation.params", "operation.requestHeader.value", and "operation.url" elements. These placeholders would need to be replaced by the variable value before the operation is executed.
TestScript.variable.defaultValue (defaultValue)is equivalent toTestScript.variable.defaultValueElement `TestScript.variable.defaultValue` is mapped to FHIR R5 element `TestScript.variable.defaultValue` as `Equivalent`. The purpose of this element is to allow for a pre-defined value that can be used as a default or as an override value. Test engines can optionally use this as a placeholder for user-defined execution time values.
TestScript.variable.description (description)is equivalent toTestScript.variable.descriptionElement `TestScript.variable.description` is mapped to FHIR R5 element `TestScript.variable.description` as `Equivalent`.
TestScript.variable.expression (expression)is equivalent toTestScript.variable.expressionElement `TestScript.variable.expression` is mapped to FHIR R5 element `TestScript.variable.expression` as `Equivalent`. If headerField is defined, then the variable will be evaluated against the headers that sourceId is pointing to. If expression or path is defined, then the variable will be evaluated against the fixture body that sourceId is pointing to. It is an error to define any combination of expression, headerField and path.
TestScript.variable.headerField (headerField)is equivalent toTestScript.variable.headerFieldElement `TestScript.variable.headerField` is mapped to FHIR R5 element `TestScript.variable.headerField` as `Equivalent`. If headerField is defined, then the variable will be evaluated against the headers that sourceId is pointing to. If path is defined, then the variable will be evaluated against the fixture body that sourceId is pointing to. It is an error to define both headerField and path.
TestScript.variable.hint (hint)is equivalent toTestScript.variable.hintElement `TestScript.variable.hint` is mapped to FHIR R5 element `TestScript.variable.hint` as `Equivalent`.
TestScript.variable.path (path)is equivalent toTestScript.variable.pathElement `TestScript.variable.path` is mapped to FHIR R5 element `TestScript.variable.path` as `Equivalent`. If headerField is defined, then the variable will be evaluated against the headers that sourceId is pointing to. If expression or path is defined, then the variable will be evaluated against the fixture body that sourceId is pointing to. It is an error to define any combination of expression, headerField and path.
TestScript.variable.sourceId (sourceId)is equivalent toTestScript.variable.sourceIdElement `TestScript.variable.sourceId` is mapped to FHIR R5 element `TestScript.variable.sourceId` as `Equivalent`. This can be a statically defined fixture (at the top of the TestScript) or a dynamically set fixture created by responseId of the `action.operation` element.
TestScript.setup (setup)is broader thanTestScript.setupElement `TestScript.setup` is mapped to FHIR R5 element `TestScript.setup` as `Equivalent`.
TestScript.setup.action (action)is broader thanTestScript.setup.actionElement `TestScript.setup.action` is mapped to FHIR R5 element `TestScript.setup.action` as `Equivalent`. An action should contain either an operation or an assertion but not both. It can contain any number of variables.
TestScript.setup.action.operation (operation)is broader thanTestScript.setup.action.operationElement `TestScript.setup.action.operation` is mapped to FHIR R5 element `TestScript.setup.action.operation` as `Equivalent`.
TestScript.setup.action.operation.type (type)is equivalent toTestScript.setup.action.operation.typeElement `TestScript.setup.action.operation.type` is mapped to FHIR R5 element `TestScript.setup.action.operation.type` as `Equivalent`. See http://hl7.org/fhir/STU3/http.html for list of server interactions.
TestScript.setup.action.operation.resource (resource)is broader thanTestScript.setup.action.operation.resourceElement `TestScript.setup.action.operation.resource` is mapped to FHIR R5 element `TestScript.setup.action.operation.resource` as `RelatedTo`. The mappings for `TestScript.setup.action.operation.resource` do not cover the following types: code. The mappings for `TestScript.setup.action.operation.resource` do not cover the following types based on type expansion: value. If "url" element is specified, then "targetId", "params", and "resource" elements will be ignored as "url" element will have everything needed for constructing the request url. If "params" element is specified, then "targetId" element is ignored. For FHIR operations that require a resource (e.g. "read" and "vread" operations), the "resource" element must be specified when "params" element is specified. If "url" and "params" elements are absent, then the request url will be constructed from "targetId" fixture if present. For "read" operation, the resource and id values will be extracted from "targetId" fixture and used to construct the url. For "vread" and "history" operations, the versionId value will also be used.
TestScript.setup.action.operation.label (label)is equivalent toTestScript.setup.action.operation.labelElement `TestScript.setup.action.operation.label` is mapped to FHIR R5 element `TestScript.setup.action.operation.label` as `Equivalent`. This has no impact on the verification itself.
TestScript.setup.action.operation.description (description)is equivalent toTestScript.setup.action.operation.descriptionElement `TestScript.setup.action.operation.description` is mapped to FHIR R5 element `TestScript.setup.action.operation.description` as `Equivalent`. This has no impact on the verification itself.
TestScript.setup.action.operation.accept (accept)is equivalent toTestScript.setup.action.operation.acceptElement `TestScript.setup.action.operation.accept` is mapped to FHIR R5 element `TestScript.setup.action.operation.accept` as `Equivalent`. If this is specified, then test engine shall set the 'Accept' header to the corresponding value. If 'xml' is specified, then 'Accept' header of 'application/fhir+xml' will be set. If 'json' is specified, then 'application/fhir+json' will be used. If you'd like to explicitly set the 'Accept' to some other value then use the 'requestHeader' element.
TestScript.setup.action.operation.contentType (contentType)is equivalent toTestScript.setup.action.operation.contentTypeElement `TestScript.setup.action.operation.contentType` is mapped to FHIR R5 element `TestScript.setup.action.operation.contentType` as `Equivalent`. If this is specified, then test engine shall set the 'Content-Type' header to the corresponding value. If 'xml' is specified, then 'Content-Type' header of 'application/fhir+xml' will be set. If 'json' is specified, then 'application/fhir+json' will be used. If you'd like to explicitly set the 'Content-Type' to some other value then use the 'requestHeader' element.
TestScript.setup.action.operation.destination (destination)is equivalent toTestScript.setup.action.operation.destinationElement `TestScript.setup.action.operation.destination` is mapped to FHIR R5 element `TestScript.setup.action.operation.destination` as `Equivalent`. If multiple TestScript.destination elements are defined and operation.destination is undefined, test engine will report an error as it cannot determine what destination to use for the exchange.
TestScript.setup.action.operation.encodeRequestUrl (encodeRequestUrl)is equivalent toTestScript.setup.action.operation.encodeRequestUrlElement `TestScript.setup.action.operation.encodeRequestUrl` is mapped to FHIR R5 element `TestScript.setup.action.operation.encodeRequestUrl` as `Equivalent`.
TestScript.setup.action.operation.origin (origin)is equivalent toTestScript.setup.action.operation.originElement `TestScript.setup.action.operation.origin` is mapped to FHIR R5 element `TestScript.setup.action.operation.origin` as `Equivalent`. If absent, test engine will send the message. When present, test engine will not send the request message but will wait for the request message to be sent from this origin server.
TestScript.setup.action.operation.params (params)is equivalent toTestScript.setup.action.operation.paramsElement `TestScript.setup.action.operation.params` is mapped to FHIR R5 element `TestScript.setup.action.operation.params` as `Equivalent`. If "url" element is specified, then "targetId", "params", and "resource" elements will be ignored as "url" element will have everything needed for constructing the request url. If "params" element is specified, then "targetId" element is ignored. For FHIR operations that require a resource (e.g. "read" and "vread" operations), the "resource" element must be specified when "params" element is specified. If "url" and "params" elements are absent, then the request url will be constructed from "targetId" fixture if present. For "read" operation, the resource and id values will be extracted from "targetId" fixture and used to construct the url. For "vread" and "history" operations, the versionId value will also be used. Test engines would append whatever is specified for "params" to the URL after the resource type without tampering with the string (beyond encoding the URL for HTTP). The "params" element does not correspond exactly to "search parameters". Nor is it the "path". It corresponds to the part of the URL that comes after the [type] (when "resource" element is specified); e.g. It corresponds to "/[id]/_history/[vid] {?_format=[mime-type]}" in the following operation: GET [base]/[type]/[id]/_history/[vid] {?_format=[mime-type]} Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before sending the request.
TestScript.setup.action.operation.requestHeader (requestHeader)is broader thanTestScript.setup.action.operation.requestHeaderElement `TestScript.setup.action.operation.requestHeader` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestHeader` as `Equivalent`. This gives control to test-script writers to set headers explicitly based on test requirements. It will allow for testing using: - "If-Modified-Since" and "If-None-Match" headers. See http://hl7.org/fhir/STU3/http.html#2.1.0.5.1 - "If-Match" header. See http://hl7.org/fhir/STU3/http.html#2.1.0.11 - Conditional Create using "If-None-Exist". See http://hl7.org/fhir/STU3/http.html#2.1.0.13.1 - Invalid "Content-Type" header for negative testing. - etc.
TestScript.setup.action.operation.requestHeader.field (field)is equivalent toTestScript.setup.action.operation.requestHeader.fieldElement `TestScript.setup.action.operation.requestHeader.field` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestHeader.field` as `Equivalent`. If header element is specified, then field is required.
TestScript.setup.action.operation.requestHeader.value (value)is equivalent toTestScript.setup.action.operation.requestHeader.valueElement `TestScript.setup.action.operation.requestHeader.value` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestHeader.value` as `Equivalent`. If header element is specified, then value is required. No conversions will be done by the test engine e.g. "xml" to "application/fhir+xml". The values will be set in HTTP headers "as-is". Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before sending the request.
TestScript.setup.action.operation.requestId (requestId)is equivalent toTestScript.setup.action.operation.requestIdElement `TestScript.setup.action.operation.requestId` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestId` as `Equivalent`. If a requestId is supplied, then the resulting request (both headers and body) is mapped to the fixture ID (which may be entirely new and previously undeclared) designated by "requestId". If requestId is not specified, it is the test engine's responsibility to store the request and use it as the requestId in subsequent assertions when assertion path and/or headerField is specified, direction is equal to request, and the requestId in not specified.
TestScript.setup.action.operation.responseId (responseId)is equivalent toTestScript.setup.action.operation.responseIdElement `TestScript.setup.action.operation.responseId` is mapped to FHIR R5 element `TestScript.setup.action.operation.responseId` as `Equivalent`. If a responseId is supplied, and the server responds, then the resulting response (both headers and body) is mapped to the fixture ID (which may be entirely new and previously undeclared) designated by "responseId". If responseId is not specified, it is the test engine's responsibility to store the response and use it as the responseId in subsequent assertions when assertion path and/or headerField is specified and the responseId is not specified.
TestScript.setup.action.operation.sourceId (sourceId)is equivalent toTestScript.setup.action.operation.sourceIdElement `TestScript.setup.action.operation.sourceId` is mapped to FHIR R5 element `TestScript.setup.action.operation.sourceId` as `Equivalent`.
TestScript.setup.action.operation.targetId (targetId)is equivalent toTestScript.setup.action.operation.targetIdElement `TestScript.setup.action.operation.targetId` is mapped to FHIR R5 element `TestScript.setup.action.operation.targetId` as `Equivalent`. If "url" element is specified, then "targetId", "params", and "resource" elements will be ignored as "url" element will have everything needed for constructing the request url. If "params" element is specified, then "targetId" element is ignored. For FHIR operations that require a resource (e.g. "read" and "vread" operations), the "resource" element must be specified when "params" element is specified. If "url" and "params" elements are absent, then the request url will be constructed from "targetId" fixture if present. For "read" operation, the resource and id values will be extracted from "targetId" fixture and used to construct the url. For "vread" and "history" operations, the versionId value will also be used.
TestScript.setup.action.operation.url (url)is equivalent toTestScript.setup.action.operation.urlElement `TestScript.setup.action.operation.url` is mapped to FHIR R5 element `TestScript.setup.action.operation.url` as `Equivalent`. Used to set the request URL explicitly. If "url" element is defined, then "targetId", "resource", and "params" elements will be ignored. Test engines would use whatever is specified in "url" without tampering with the string (beyond encoding the URL for HTTP). Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before sending the request.
TestScript.setup.action.assert (assert)is broader thanTestScript.setup.action.assertElement `TestScript.setup.action.assert` is mapped to FHIR R5 element `TestScript.setup.action.assert` as `Equivalent`. In order to evaluate an assertion, the request, response, and results of the most recently executed operation must always be maintained by the test engine.
TestScript.setup.action.assert.label (label)is equivalent toTestScript.setup.action.assert.labelElement `TestScript.setup.action.assert.label` is mapped to FHIR R5 element `TestScript.setup.action.assert.label` as `Equivalent`. This has no impact on the verification itself.
TestScript.setup.action.assert.description (description)is equivalent toTestScript.setup.action.assert.descriptionElement `TestScript.setup.action.assert.description` is mapped to FHIR R5 element `TestScript.setup.action.assert.description` as `Equivalent`. This has no impact on the verification itself.
TestScript.setup.action.assert.direction (direction)is equivalent toTestScript.setup.action.assert.directionElement `TestScript.setup.action.assert.direction` is mapped to FHIR R5 element `TestScript.setup.action.assert.direction` as `Equivalent`. If the direction is specified as "response" (the default), then the processing of this assert is against the received response message. If the direction is specified as "request", then the processing of this assert is against the sent request message.
TestScript.setup.action.assert.compareToSourceId (compareToSourceId)is equivalent toTestScript.setup.action.assert.compareToSourceIdElement `TestScript.setup.action.assert.compareToSourceId` is mapped to FHIR R5 element `TestScript.setup.action.assert.compareToSourceId` as `Equivalent`.
TestScript.setup.action.assert.compareToSourceExpression (compareToSourceExpression)is equivalent toTestScript.setup.action.assert.compareToSourceExpressionElement `TestScript.setup.action.assert.compareToSourceExpression` is mapped to FHIR R5 element `TestScript.setup.action.assert.compareToSourceExpression` as `Equivalent`. Thefhirpath expression to be evaluated against the expected fixture to compare to. Ignored if "assert.value" is used. The evaluation will be done before the assertion is evaluated.
TestScript.setup.action.assert.compareToSourcePath (compareToSourcePath)is equivalent toTestScript.setup.action.assert.compareToSourcePathElement `TestScript.setup.action.assert.compareToSourcePath` is mapped to FHIR R5 element `TestScript.setup.action.assert.compareToSourcePath` as `Equivalent`. The XPath or JSONPath expression to be evaluated against the expected fixture to compare to. Ignored if "assert.value" is used. The evaluation will be done before the assertion is evaluated.
TestScript.setup.action.assert.contentType (contentType)is equivalent toTestScript.setup.action.assert.contentTypeElement `TestScript.setup.action.assert.contentType` is mapped to FHIR R5 element `TestScript.setup.action.assert.contentType` as `Equivalent`. If this is specified, then test engine shall confirm that the content-type of the last operation's headers is set to this value. If "assert.sourceId" element is specified, then the evaluation will be done against the headers mapped to that sourceId (and not the last operation's headers). If 'xml' is specified, then 'Content-Type' header of 'application/fhir+xml' will be confirmed. If 'json' is specified, then 'application/fhir+json' will be used. If you'd like to have more control over the string, then use 'assert.headerField' instead.
TestScript.setup.action.assert.expression (expression)is equivalent toTestScript.setup.action.assert.expressionElement `TestScript.setup.action.assert.expression` is mapped to FHIR R5 element `TestScript.setup.action.assert.expression` as `Equivalent`. If both "expression" and a "fixtureId" are specified, then the expression will be evaluated against the request or response body mapped to the fixtureId. If "expression" is specified and a "fixtureId" is not, then the expression will be evaluated against the response body of the last operation. Test engines are to store the request and response body and headers of the last operation at all times for subsequent assertions.
TestScript.setup.action.assert.headerField (headerField)is equivalent toTestScript.setup.action.assert.headerFieldElement `TestScript.setup.action.assert.headerField` is mapped to FHIR R5 element `TestScript.setup.action.assert.headerField` as `Equivalent`. If "headerField" is specified then "value" must be specified. If "sourceId" is not specified, then "headerField" will be evaluated against the last operation's response headers. Test engines are to keep track of the last operation's response body and response headers.
TestScript.setup.action.assert.minimumId (minimumId)is equivalent toTestScript.setup.action.assert.minimumIdElement `TestScript.setup.action.assert.minimumId` is mapped to FHIR R5 element `TestScript.setup.action.assert.minimumId` as `Equivalent`. Asserts that the response contains all the element/content in another fixture pointed to by minimumId. This can be a statically defined fixture or one that is dynamically set via responseId.
TestScript.setup.action.assert.navigationLinks (navigationLinks)is equivalent toTestScript.setup.action.assert.navigationLinksElement `TestScript.setup.action.assert.navigationLinks` is mapped to FHIR R5 element `TestScript.setup.action.assert.navigationLinks` as `Equivalent`. Asserts that the Bundle contains first, last, and next links.
TestScript.setup.action.assert.operator (operator)is equivalent toTestScript.setup.action.assert.operatorElement `TestScript.setup.action.assert.operator` is mapped to FHIR R5 element `TestScript.setup.action.assert.operator` as `SourceIsNarrowerThanTarget`. The mappings for `TestScript.setup.action.assert.operator` do not allow expression of the necessary codes, per the bindings on the source and target. Operators are useful especially for negative testing. If operator is not specified, then the "equals" operator is assumed; e.g. <code> <assert> <operator value="in" /> <responseCode value="200,201,204" /> </assert> <assert> <operator value="notEquals" /> <response value="okay"/> </assert> <assert> <operator value="greaterThan" /> <responseHeader> <field value="Content-Length" /> <value value="0" /> <responseHeader/> </assert> </code>.
TestScript.setup.action.assert.path (path)is equivalent toTestScript.setup.action.assert.pathElement `TestScript.setup.action.assert.path` is mapped to FHIR R5 element `TestScript.setup.action.assert.path` as `Equivalent`. If both "path" and a "fixtureId" are specified, then the path will be evaluated against the request or response body mapped to the fixtureId. If "path" is specified and a "fixtureId" is not, then the path will be evaluated against the response body of the last operation. Test engines are to store the request and response body and headers of the last operation at all times for subsequent assertions.
TestScript.setup.action.assert.requestMethod (requestMethod)is equivalent toTestScript.setup.action.assert.requestMethodElement `TestScript.setup.action.assert.requestMethod` is mapped to FHIR R5 element `TestScript.setup.action.assert.requestMethod` as `SourceIsNarrowerThanTarget`. The mappings for `TestScript.setup.action.assert.requestMethod` do not allow expression of the necessary codes, per the bindings on the source and target. If "requestMethod" is specified then it will be used in place of "value". The "requestMethod" will evaluate against the last operation's request HTTP operation.
TestScript.setup.action.assert.requestURL (requestURL)is equivalent toTestScript.setup.action.assert.requestURLElement `TestScript.setup.action.assert.requestURL` is mapped to FHIR R5 element `TestScript.setup.action.assert.requestURL` as `Equivalent`. If "requestURL" is specified then it will be used in place of "value". The "requestURL" will evaluate against the last operation's full request URL path string.
TestScript.setup.action.assert.resource (resource)is broader thanTestScript.setup.action.assert.resourceElement `TestScript.setup.action.assert.resource` is mapped to FHIR R5 element `TestScript.setup.action.assert.resource` as `RelatedTo`. The mappings for `TestScript.setup.action.assert.resource` do not cover the following types: code. The mappings for `TestScript.setup.action.assert.resource` do not cover the following types based on type expansion: value. This will be expected resource type in response body e.g. in read, vread, search, etc. See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types; e.g. <assert > <resourceType value="Patient" </assert>.
TestScript.setup.action.assert.response (response)is broader thanTestScript.setup.action.assert.responseElement `TestScript.setup.action.assert.response` is mapped to FHIR R5 element `TestScript.setup.action.assert.response` as `RelatedTo`. The mappings for `TestScript.setup.action.assert.response` do not allow expression of the necessary codes, per the bindings on the source and target. This is a shorter way of achieving similar verifications via "assert.responseCode". If you need more control, then use "assert.responseCode" e.g. <assert> <contentType value="json" /> <response value="okay"/> </assert>.
TestScript.setup.action.assert.responseCode (responseCode)is equivalent toTestScript.setup.action.assert.responseCodeElement `TestScript.setup.action.assert.responseCode` is mapped to FHIR R5 element `TestScript.setup.action.assert.responseCode` as `Equivalent`. To be used with "operator" attribute value. Asserts that the response code equals this value if "operator" is not specified. If the operator is "in" or "notIn" then the responseCode would be a comma-separated list of values e.g. "200,201". Otherwise, it's expected to be a numeric value. If "fixture" is not specified, then the "responseBodyId" value of the last operation is assumed.
TestScript.setup.action.assert.sourceId (sourceId)is equivalent toTestScript.setup.action.assert.sourceIdElement `TestScript.setup.action.assert.sourceId` is mapped to FHIR R5 element `TestScript.setup.action.assert.sourceId` as `Equivalent`. This can be a statically defined fixture (at the top of the testscript) or a dynamically set fixture created by responseId of the action.operation element.
TestScript.setup.action.assert.validateProfileId (validateProfileId)is equivalent toTestScript.setup.action.assert.validateProfileIdElement `TestScript.setup.action.assert.validateProfileId` is mapped to FHIR R5 element `TestScript.setup.action.assert.validateProfileId` as `Equivalent`. The ID of a Profile fixture. Asserts that the response is valid according to the Profile specified by validateProfileId.
TestScript.setup.action.assert.value (value)is equivalent toTestScript.setup.action.assert.valueElement `TestScript.setup.action.assert.value` is mapped to FHIR R5 element `TestScript.setup.action.assert.value` as `Equivalent`. The string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before comparing this value to the actual value.
TestScript.setup.action.assert.warningOnly (warningOnly)is equivalent toTestScript.setup.action.assert.warningOnlyElement `TestScript.setup.action.assert.warningOnly` is mapped to FHIR R5 element `TestScript.setup.action.assert.warningOnly` as `Equivalent`. If this element is specified and it is true, then assertion failures can be logged by test engine but should not stop the test script execution from proceeding. There are likely cases where the spec is not clear on what should happen. If the spec says something is optional (maybe a response header for example), but a server doesn’t do it, we could choose to issue a warning.
TestScript.test (test)is broader thanTestScript.testElement `TestScript.test` is mapped to FHIR R5 element `TestScript.test` as `Equivalent`.
TestScript.test.name (name)is equivalent toTestScript.test.nameElement `TestScript.test.name` is mapped to FHIR R5 element `TestScript.test.name` as `Equivalent`.
TestScript.test.description (description)is equivalent toTestScript.test.descriptionElement `TestScript.test.description` is mapped to FHIR R5 element `TestScript.test.description` as `Equivalent`.
TestScript.test.action (action)is broader thanTestScript.test.actionElement `TestScript.test.action` is mapped to FHIR R5 element `TestScript.test.action` as `Equivalent`. An action should contain either an operation or an assertion but not both. It can contain any number of variables.
TestScript.test.action.operation (operation)is equivalent toTestScript.test.action.operationElement `TestScript.test.action.operation` is mapped to FHIR R5 element `TestScript.test.action.operation` as `Equivalent`.
TestScript.test.action.assert (assert)is equivalent toTestScript.test.action.assertElement `TestScript.test.action.assert` is mapped to FHIR R5 element `TestScript.test.action.assert` as `Equivalent`. In order to evaluate an assertion, the request, response, and results of the most recently executed operation must always be maintained by the test engine.
TestScript.teardown (teardown)is broader thanTestScript.teardownElement `TestScript.teardown` is mapped to FHIR R5 element `TestScript.teardown` as `Equivalent`.
TestScript.teardown.action (action)is broader thanTestScript.teardown.actionElement `TestScript.teardown.action` is mapped to FHIR R5 element `TestScript.teardown.action` as `Equivalent`. An action should contain either an operation or an assertion but not both. It can contain any number of variables.
TestScript.teardown.action.operation (operation)is equivalent toTestScript.teardown.action.operationElement `TestScript.teardown.action.operation` is mapped to FHIR R5 element `TestScript.teardown.action.operation` as `Equivalent`.

Group 2 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: meta additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.meta (meta)is equivalent toExtension (STU3: meta additional types)Element `TestScript.meta` is mapped to FHIR R5 element `TestScript.meta` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.meta` do not cover the following types: Meta. The mappings for `TestScript.meta` do not cover the following types based on type expansion: lastUpdated, profile, security, tag, versionId.

Group 3 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: text additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.text (text)is equivalent toExtension (STU3: text additional types)Element `TestScript.text` is mapped to FHIR R5 element `TestScript.text` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.text` do not cover the following types: Narrative. The mappings for `TestScript.text` do not cover the following types based on type expansion: div, status. Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded in formation is added later.

Group 4 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: identifier additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.identifier (identifier)is equivalent toExtension (STU3: identifier additional types)Element `TestScript.identifier` is mapped to FHIR R5 element `TestScript.identifier` as `RelatedTo`. The mappings for `TestScript.identifier` do not cover the following types: Identifier. The mappings for `TestScript.identifier` do not cover the following types based on type expansion: assigner, period, system, type, use, value. Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, e.g., to identify this test script outside of FHIR, where it is not possible to use the logical URI.

Group 5 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: contact additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.contact (contact)is equivalent toExtension (STU3: contact additional types)Element `TestScript.contact` is mapped to FHIR R5 element `TestScript.contact` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.contact` do not cover the following types: ContactDetail. The mappings for `TestScript.contact` do not cover the following types based on type expansion: name, telecom. May be a web site, an email address, a telephone number, etc.

Group 6 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: Context the content is intended to support additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.useContext (useContext)is equivalent toExtension (STU3: Context the content is intended to support additional types)Element `TestScript.useContext` is mapped to FHIR R5 element `TestScript.useContext` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.useContext` do not cover the following types: UsageContext. The mappings for `TestScript.useContext` do not cover the following types based on type expansion: code, value[x]. When multiple useContexts are specified, there is no expectation whether all or any of the contexts apply.

Group 7 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: capabilities additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.metadata.capability.capabilities (capabilities)is equivalent toExtension (STU3: capabilities additional types)Element `TestScript.metadata.capability.capabilities` is mapped to FHIR R5 element `TestScript.metadata.capability.capabilities` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.metadata.capability.capabilities` do not cover the following types: Reference. The mappings for `TestScript.metadata.capability.capabilities` do not cover the following types based on type expansion: display, identifier, reference. The conformance statement of the server has to contain at a minimum the contents of the reference pointed to by this element.

Group 8 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: profile additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.profile (profile)is equivalent toExtension (STU3: profile additional types)Element `TestScript.profile` is mapped to FHIR R5 element `TestScript.profile` as `SourceIsBroaderThanTarget`. The mappings for `TestScript.profile` do not cover the following types: Reference. The mappings for `TestScript.profile` do not cover the following types based on type expansion: display, identifier, reference. See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types.

Group 9 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: Assert rule used within the test script (new)version: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.rule (rule)is broader thanExtension (STU3: Assert rule used within the test script (new))Element `TestScript.rule` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). Each rule should be treated by test engines as one assertion regardless of how many assertions are contained within the external rule template. The impact of negative rule evaluation on test script execution is the same as an assertion failure which is described elsewhere in the TestScript resource.
TestScript.rule.resource (resource)is equivalent toExtension.extension:resource (STU3: Assert rule resource reference (new))Element `TestScript.rule.resource` is part of an existing definition because parent element `TestScript.rule` requires a cross-version extension. Element `TestScript.rule.resource` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.rule.resource` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).
TestScript.rule.param (param)is broader thanExtension.extension:param (STU3: Rule parameter template (new))Element `TestScript.rule.param` is part of an existing definition because parent element `TestScript.rule` requires a cross-version extension. Element `TestScript.rule.param` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The parameter value can be dynamic at runtime.
TestScript.rule.param.name (name)is equivalent toExtension.extension:param.extension:name (STU3: Parameter name matching external assert rule parameter (new))Element `TestScript.rule.param.name` is part of an existing definition because parent element `TestScript.rule.param` requires a cross-version extension. Element `TestScript.rule.param.name` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The external rule template would be looking for the parameter by this name.
TestScript.rule.param.value (value)is equivalent toExtension.extension:param.extension:value (STU3: Parameter value defined either explicitly or dynamically (new))Element `TestScript.rule.param.value` is part of an existing definition because parent element `TestScript.rule.param` requires a cross-version extension. Element `TestScript.rule.param.value` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). This value can be overwritten by the assert.rule.param.value i.e. TestScript.rule.param.value will be used if assert.rule.param.value is not specified. The param value can be a string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template.

Group 10 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: Assert ruleset used within the test script (new)version: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.ruleset (ruleset)is broader thanExtension (STU3: Assert ruleset used within the test script (new))Element `TestScript.ruleset` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). Each rule within a ruleset should be treated by test engines as one assertion regardless of how many assertions are contained within the external rule template. The impact of negative rule evaluation on test script execution is the same as an assertion failure which is described elsewhere in the TestScript resource.
TestScript.ruleset.resource (resource)is equivalent toExtension.extension:resource (STU3: Assert ruleset resource reference (new))Element `TestScript.ruleset.resource` is part of an existing definition because parent element `TestScript.ruleset` requires a cross-version extension. Element `TestScript.ruleset.resource` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset.resource` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).
TestScript.ruleset.rule (rule)is broader thanExtension.extension:rule (STU3: The referenced rule within the ruleset (new))Element `TestScript.ruleset.rule` is part of an existing definition because parent element `TestScript.ruleset` requires a cross-version extension. Element `TestScript.ruleset.rule` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). This qualifies each param name so that a parameter with the same name can be used differently by the different rules with the ruleset.
TestScript.ruleset.rule.ruleId (ruleId)is equivalent toExtension.extension:rule.extension:ruleId (STU3: Id of referenced rule within the ruleset (new))Element `TestScript.ruleset.rule.ruleId` is part of an existing definition because parent element `TestScript.ruleset.rule` requires a cross-version extension. Element `TestScript.ruleset.rule.ruleId` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset.rule.ruleId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).
TestScript.ruleset.rule.param (param)is broader thanExtension.extension:rule.extension:param (STU3: Ruleset rule parameter template (new))Element `TestScript.ruleset.rule.param` is part of an existing definition because parent element `TestScript.ruleset.rule` requires a cross-version extension. Element `TestScript.ruleset.rule.param` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The parameter value can be dynamic at runtime.
TestScript.ruleset.rule.param.name (name)is equivalent toExtension.extension:rule.extension:param.extension:name (STU3: Parameter name matching external assert ruleset rule parameter (new))Element `TestScript.ruleset.rule.param.name` is part of an existing definition because parent element `TestScript.ruleset.rule.param` requires a cross-version extension. Element `TestScript.ruleset.rule.param.name` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The external rule template would be looking for the parameter by this name.
TestScript.ruleset.rule.param.value (value)is equivalent toExtension.extension:rule.extension:param.extension:value (STU3: Parameter value defined either explicitly or dynamically (new))Element `TestScript.ruleset.rule.param.value` is part of an existing definition because parent element `TestScript.ruleset.rule.param` requires a cross-version extension. Element `TestScript.ruleset.rule.param.value` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.ruleset.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). This value can be overwritten by the assert.ruleset.rule.param.value i.e. TestScript.ruleset.rule.param.value will be used if assert.ruleset.rule.param.value is not specified. The param value can be a string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template.

Group 11 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: resource additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.setup.action.operation.resource (resource)is equivalent toExtension (STU3: resource additional types)Element `TestScript.setup.action.operation.resource` is mapped to FHIR R5 element `TestScript.setup.action.operation.resource` as `RelatedTo`. The mappings for `TestScript.setup.action.operation.resource` do not cover the following types: code. The mappings for `TestScript.setup.action.operation.resource` do not cover the following types based on type expansion: value. If "url" element is specified, then "targetId", "params", and "resource" elements will be ignored as "url" element will have everything needed for constructing the request url. If "params" element is specified, then "targetId" element is ignored. For FHIR operations that require a resource (e.g. "read" and "vread" operations), the "resource" element must be specified when "params" element is specified. If "url" and "params" elements are absent, then the request url will be constructed from "targetId" fixture if present. For "read" operation, the resource and id values will be extracted from "targetId" fixture and used to construct the url. For "vread" and "history" operations, the versionId value will also be used.

Group 12 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: resource additional typesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.setup.action.assert.resource (resource)is equivalent toExtension (STU3: resource additional types)Element `TestScript.setup.action.assert.resource` is mapped to FHIR R5 element `TestScript.setup.action.assert.resource` as `RelatedTo`. The mappings for `TestScript.setup.action.assert.resource` do not cover the following types: code. The mappings for `TestScript.setup.action.assert.resource` do not cover the following types based on type expansion: value. This will be expected resource type in response body e.g. in read, vread, search, etc. See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types; e.g. <assert > <resourceType value="Patient" </assert>.

Group 13 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable additional codesversion: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.setup.action.assert.response (response)is equivalent toExtension (STU3: okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable additional codes)Element `TestScript.setup.action.assert.response` is mapped to FHIR R5 element `TestScript.setup.action.assert.response` as `RelatedTo`. The mappings for `TestScript.setup.action.assert.response` do not allow expression of the necessary codes, per the bindings on the source and target. This is a shorter way of achieving similar verifications via "assert.responseCode". If you need more control, then use "assert.responseCode" e.g. <assert> <contentType value="json" /> <response value="okay"/> </assert>.

Group 14 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: The reference to a TestScript.rule (new)version: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.setup.action.assert.rule (rule)is broader thanExtension (STU3: The reference to a TestScript.rule (new))Element `TestScript.setup.action.assert.rule` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). Each rule should get evaluated by test engines as one assertion regardless of how many assertions are contained within the external rule template. The impact of negative rule evaluation on test script execution is the same as an assertion failure which is descibed elsewhere in the TestScript resource.
TestScript.setup.action.assert.rule.ruleId (ruleId)is equivalent toExtension.extension:ruleId (STU3: Id of the TestScript.rule (new))Element `TestScript.setup.action.assert.rule.ruleId` is part of an existing definition because parent element `TestScript.setup.action.assert.rule` requires a cross-version extension. Element `TestScript.setup.action.assert.rule.ruleId` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.rule.ruleId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).
TestScript.setup.action.assert.rule.param (param)is broader thanExtension.extension:param (STU3: Rule parameter template (new))Element `TestScript.setup.action.assert.rule.param` is part of an existing definition because parent element `TestScript.setup.action.assert.rule` requires a cross-version extension. Element `TestScript.setup.action.assert.rule.param` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The parameter value can be dynamic at runtime.
TestScript.setup.action.assert.rule.param.name (name)is equivalent toExtension.extension:param.extension:name (STU3: Parameter name matching external assert rule parameter (new))Element `TestScript.setup.action.assert.rule.param.name` is part of an existing definition because parent element `TestScript.setup.action.assert.rule.param` requires a cross-version extension. Element `TestScript.setup.action.assert.rule.param.name` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The external rule template would be looking for the parameter by this name.
TestScript.setup.action.assert.rule.param.value (value)is equivalent toExtension.extension:param.extension:value (STU3: Parameter value defined either explicitly or dynamically (new))Element `TestScript.setup.action.assert.rule.param.value` is part of an existing definition because parent element `TestScript.setup.action.assert.rule.param` requires a cross-version extension. Element `TestScript.setup.action.assert.rule.param.value` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). This value overwrites the value (if any) specified in TestScript.rule.param.value. The param value can be a string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template.

Group 15 Mapping from http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2 to STU3: The reference to a TestScript.ruleset (new)version: 0.1.0)

Source CodeRelationshipTarget CodeComment
TestScript.setup.action.assert.ruleset (ruleset)is broader thanExtension (STU3: The reference to a TestScript.ruleset (new))Element `TestScript.setup.action.assert.ruleset` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). Each rule within a ruleset should get evaluated by test engines as a separate assertion. The impact of negative rule evaluation on test script execution is the same as an assertion failure which is descibed elsewhere in the TestScript resource. If the first rule within the ruleset results in a failed assertion, then test engines do not have to evaluate the rest of the rules within the ruleset.
TestScript.setup.action.assert.ruleset.rulesetId (rulesetId)is equivalent toExtension.extension:rulesetId (STU3: Id of the TestScript.ruleset (new))Element `TestScript.setup.action.assert.ruleset.rulesetId` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset` requires a cross-version extension. Element `TestScript.setup.action.assert.ruleset.rulesetId` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset.rulesetId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).
TestScript.setup.action.assert.ruleset.rule (rule)is broader thanExtension.extension:rule (STU3: The referenced rule within the ruleset (new))Element `TestScript.setup.action.assert.ruleset.rule` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset` requires a cross-version extension. Element `TestScript.setup.action.assert.ruleset.rule` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). This qualifies each param name so that a parameter with the same name can be used differently by the different rules with the ruleset.
TestScript.setup.action.assert.ruleset.rule.ruleId (ruleId)is equivalent toExtension.extension:rule.extension:ruleId (STU3: Id of referenced rule within the ruleset (new))Element `TestScript.setup.action.assert.ruleset.rule.ruleId` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule` requires a cross-version extension. Element `TestScript.setup.action.assert.ruleset.rule.ruleId` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset.rule.ruleId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).
TestScript.setup.action.assert.ruleset.rule.param (param)is broader thanExtension.extension:rule.extension:param (STU3: Rule parameter template (new))Element `TestScript.setup.action.assert.ruleset.rule.param` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule` requires a cross-version extension. Element `TestScript.setup.action.assert.ruleset.rule.param` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The parameter value can be dynamic at runtime.
TestScript.setup.action.assert.ruleset.rule.param.name (name)is equivalent toExtension.extension:rule.extension:param.extension:name (STU3: Parameter name matching external assert ruleset rule parameter (new))Element `TestScript.setup.action.assert.ruleset.rule.param.name` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule.param` requires a cross-version extension. Element `TestScript.setup.action.assert.ruleset.rule.param.name` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). The external rule template would be looking for the parameter by this name.
TestScript.setup.action.assert.ruleset.rule.param.value (value)is equivalent toExtension.extension:rule.extension:param.extension:value (STU3: Parameter value defined either explicitly or dynamically (new))Element `TestScript.setup.action.assert.ruleset.rule.param.value` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule.param` requires a cross-version extension. Element `TestScript.setup.action.assert.ruleset.rule.param.value` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`. Element `TestScript.setup.action.assert.ruleset.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element). This value overwrites the value (if any) specified in TestScript.ruleset.rule.param.value. The param value can be a string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template.

Source1

{
  "resourceType": "ConceptMap",
  "id": "R3-TestScript-element-map-to-R5",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "fhir"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 0,
      "_valueInteger": {
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical": "http://hl7.org/fhir/uv/xver/ImplementationGuide/hl7.fhir.uv.xver-r3.r5"
          }
        ]
      }
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode": "trial-use",
      "_valueCode": {
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical": "http://hl7.org/fhir/uv/xver/ImplementationGuide/hl7.fhir.uv.xver-r3.r5"
          }
        ]
      }
    }
  ],
  "url": "http://hl7.org/fhir/uv/xver/ConceptMap/R3-TestScript-element-map-to-R5",
  "version": "0.1.0",
  "name": "R3TestScriptElementMapToR5",
  "title": "Cross-version mapping for FHIR STU3 TestScript to FHIR R5 TestScript",
  "status": "active",
  "experimental": false,
  "date": "2026-03-17T16:05:00.7108462-05:00",
  "contact": [
    {
      "name": "FHIR Infrastructure",
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/fiwg"
        }
      ]
    }
  ],
  "description": "This ConceptMap represents cross-version mappings for elements from a FHIR STU3 TestScript to FHIR R5.",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001",
          "display": "World"
        }
      ]
    }
  ],
  "sourceScopeCanonical": "http://hl7.org/fhir/3.0",
  "targetScopeUri": "http://hl7.org/fhir/5.0",
  "group": [
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/StructureDefinition/TestScript|5.0.0",
      "element": [
        {
          "code": "TestScript.meta",
          "display": "meta",
          "target": [
            {
              "code": "TestScript.meta",
              "display": "TestScript.meta",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.meta` is mapped to FHIR R5 element `TestScript.meta` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.meta` do not cover the following types: Meta.\nThe mappings for `TestScript.meta` do not cover the following types based on type expansion: lastUpdated, profile, security, tag, versionId."
            }
          ]
        },
        {
          "code": "TestScript.implicitRules",
          "display": "implicitRules",
          "target": [
            {
              "code": "TestScript.implicitRules",
              "display": "TestScript.implicitRules",
              "relationship": "equivalent",
              "comment": "Element `TestScript.implicitRules` is mapped to FHIR R5 element `TestScript.implicitRules` as `Equivalent`.\nAsserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. \n\nThis element is labelled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation."
            }
          ]
        },
        {
          "code": "TestScript.language",
          "display": "language",
          "target": [
            {
              "code": "TestScript.language",
              "display": "TestScript.language",
              "relationship": "equivalent",
              "comment": "Element `TestScript.language` is mapped to FHIR R5 element `TestScript.language` as `Equivalent`.\nLanguage is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies  to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource  Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute)."
            }
          ]
        },
        {
          "code": "TestScript.text",
          "display": "text",
          "target": [
            {
              "code": "TestScript.text",
              "display": "TestScript.text",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.text` is mapped to FHIR R5 element `TestScript.text` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.text` do not cover the following types: Narrative.\nThe mappings for `TestScript.text` do not cover the following types based on type expansion: div, status.\nContained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied).  This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded in formation is added later."
            }
          ]
        },
        {
          "code": "TestScript.contained",
          "display": "contained",
          "target": [
            {
              "code": "TestScript.contained",
              "display": "TestScript.contained",
              "relationship": "equivalent",
              "comment": "Element `TestScript.contained` is mapped to FHIR R5 element `TestScript.contained` as `SourceIsBroaderThanTarget`.\nThis should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again."
            }
          ]
        },
        {
          "code": "TestScript.url",
          "display": "url",
          "target": [
            {
              "code": "TestScript.url",
              "display": "TestScript.url",
              "relationship": "equivalent",
              "comment": "Element `TestScript.url` is mapped to FHIR R5 element `TestScript.url` as `Equivalent`.\nCan be a urn:uuid: or a urn:oid:, but real http: addresses are preferred.  Multiple instances may share the same url if they have a distinct version."
            }
          ]
        },
        {
          "code": "TestScript.identifier",
          "display": "identifier",
          "target": [
            {
              "code": "TestScript.identifier",
              "display": "TestScript.identifier",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.identifier` is mapped to FHIR R5 element `TestScript.identifier` as `RelatedTo`.\nThe mappings for `TestScript.identifier` do not cover the following types: Identifier.\nThe mappings for `TestScript.identifier` do not cover the following types based on type expansion: assigner, period, system, type, use, value.\nTypically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, e.g., to identify this test script outside of FHIR, where it is not possible to use the logical URI."
            }
          ]
        },
        {
          "code": "TestScript.version",
          "display": "version",
          "target": [
            {
              "code": "TestScript.version",
              "display": "TestScript.version",
              "relationship": "equivalent",
              "comment": "Element `TestScript.version` is mapped to FHIR R5 element `TestScript.version` as `Equivalent`.\nThere may be different test script instances that have the same identifier but different versions.  The version can be appended to the url in a reference to allow a refrence to a particular business version of the test script with the format [url]|[version]."
            }
          ]
        },
        {
          "code": "TestScript.name",
          "display": "name",
          "target": [
            {
              "code": "TestScript.name",
              "display": "TestScript.name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.name` is mapped to FHIR R5 element `TestScript.name` as `Equivalent`.\nThe name is not expected to be globally unique. The name should be a simple alpha-numeric type name to ensure that it is computable friendly."
            }
          ]
        },
        {
          "code": "TestScript.title",
          "display": "title",
          "target": [
            {
              "code": "TestScript.title",
              "display": "TestScript.title",
              "relationship": "equivalent",
              "comment": "Element `TestScript.title` is mapped to FHIR R5 element `TestScript.title` as `Equivalent`.\nThis name does not need to be machine-processing friendly and may contain punctuation, white-space, etc."
            }
          ]
        },
        {
          "code": "TestScript.status",
          "display": "status",
          "target": [
            {
              "code": "TestScript.status",
              "display": "TestScript.status",
              "relationship": "equivalent",
              "comment": "Element `TestScript.status` is mapped to FHIR R5 element `TestScript.status` as `Equivalent`.\nAllows filtering of test scripts that are appropriate for use vs. not.  \nThis is labeled as \"Is Modifier\" because applications should not use a retired test script without due consideration."
            }
          ]
        },
        {
          "code": "TestScript.experimental",
          "display": "experimental",
          "target": [
            {
              "code": "TestScript.experimental",
              "display": "TestScript.experimental",
              "relationship": "equivalent",
              "comment": "Element `TestScript.experimental` is mapped to FHIR R5 element `TestScript.experimental` as `Equivalent`.\nAllows filtering of test script that are appropriate for use vs. not. This is labeled as \"Is Modifier\" because applications should not use an experimental test script in production."
            }
          ]
        },
        {
          "code": "TestScript.date",
          "display": "date",
          "target": [
            {
              "code": "TestScript.date",
              "display": "TestScript.date",
              "relationship": "equivalent",
              "comment": "Element `TestScript.date` is mapped to FHIR R5 element `TestScript.date` as `Equivalent`.\nNote that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the test script. Additional specific dates may be added as extensions or be found by consulting Provenances associated with past versions of the resource."
            }
          ]
        },
        {
          "code": "TestScript.publisher",
          "display": "publisher",
          "target": [
            {
              "code": "TestScript.publisher",
              "display": "TestScript.publisher",
              "relationship": "equivalent",
              "comment": "Element `TestScript.publisher` is mapped to FHIR R5 element `TestScript.publisher` as `Equivalent`.\nUsually an organization, but may be an individual. The publisher (or steward) of the test script is the organization or individual primarily responsible for the maintenance and upkeep of the test script. This is not necessarily the same individual or organization that developed and initially authored the content. The publisher is the primary point of contact for questions or issues with the test script. This item SHOULD be populated unless the information is available from context."
            }
          ]
        },
        {
          "code": "TestScript.contact",
          "display": "contact",
          "target": [
            {
              "code": "TestScript.contact",
              "display": "TestScript.contact",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.contact` is mapped to FHIR R5 element `TestScript.contact` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.contact` do not cover the following types: ContactDetail.\nThe mappings for `TestScript.contact` do not cover the following types based on type expansion: name, telecom.\nMay be a web site, an email address, a telephone number, etc."
            }
          ]
        },
        {
          "code": "TestScript.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.description",
              "display": "TestScript.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.description` is mapped to FHIR R5 element `TestScript.description` as `Equivalent`.\nThis description can be used to capture details such as why the test script was built, comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the test script as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context (e.g. the language of the profile is presumed to be the predominant language in the place the profile was created)."
            }
          ]
        },
        {
          "code": "TestScript.useContext",
          "display": "useContext",
          "target": [
            {
              "code": "TestScript.useContext",
              "display": "TestScript.useContext",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.useContext` is mapped to FHIR R5 element `TestScript.useContext` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.useContext` do not cover the following types: UsageContext.\nThe mappings for `TestScript.useContext` do not cover the following types based on type expansion: code, value[x].\nWhen multiple useContexts are specified, there is no expectation whether all or any of the contexts apply."
            }
          ]
        },
        {
          "code": "TestScript.jurisdiction",
          "display": "jurisdiction",
          "target": [
            {
              "code": "TestScript.jurisdiction",
              "display": "TestScript.jurisdiction",
              "relationship": "equivalent",
              "comment": "Element `TestScript.jurisdiction` is mapped to FHIR R5 element `TestScript.jurisdiction` as `Equivalent`.\nIt may be possible for the test script to be used in jurisdictions other than those for which it was originally designed or intended."
            }
          ]
        },
        {
          "code": "TestScript.purpose",
          "display": "purpose",
          "target": [
            {
              "code": "TestScript.purpose",
              "display": "TestScript.purpose",
              "relationship": "equivalent",
              "comment": "Element `TestScript.purpose` is mapped to FHIR R5 element `TestScript.purpose` as `Equivalent`.\nThis element does not describe the usage of the test script Instead  it provides traceability of ''why'' the resource is either needed or ''why'' it is defined as it is.  This may be used to point to source materials or specifications that drove the structure of this test script."
            }
          ]
        },
        {
          "code": "TestScript.copyright",
          "display": "copyright",
          "target": [
            {
              "code": "TestScript.copyright",
              "display": "TestScript.copyright",
              "relationship": "equivalent",
              "comment": "Element `TestScript.copyright` is mapped to FHIR R5 element `TestScript.copyright` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.origin",
          "display": "origin",
          "target": [
            {
              "code": "TestScript.origin",
              "display": "TestScript.origin",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.origin` is mapped to FHIR R5 element `TestScript.origin` as `Equivalent`.\nThe purpose of this element is to define the profile of an origin element used elsewhere in the script.  Test engines could then use the origin-profile mapping to offer a filtered list of test systems that can serve as the sender for the interaction."
            }
          ]
        },
        {
          "code": "TestScript.origin.index",
          "display": "index",
          "target": [
            {
              "code": "TestScript.origin.index",
              "display": "TestScript.origin.index",
              "relationship": "equivalent",
              "comment": "Element `TestScript.origin.index` is mapped to FHIR R5 element `TestScript.origin.index` as `Equivalent`.\nA given origin index (e.g. 1) can appear only once in the list (e.g. Origin 1 cannot be specified twice ... once as FormFiller and and again as FormProcessor within the same script as that could get confusing during test configuration). \n\nDifferent origin indices could play the same actor in the same test script (e.g. You could have two different test systems acting as Form-Filler).\n\nThe origin indices provided elsewhere in the test script must be one of these origin indices."
            }
          ]
        },
        {
          "code": "TestScript.origin.profile",
          "display": "profile",
          "target": [
            {
              "code": "TestScript.origin.profile",
              "display": "TestScript.origin.profile",
              "relationship": "equivalent",
              "comment": "Element `TestScript.origin.profile` is mapped to FHIR R5 element `TestScript.origin.profile` as `Equivalent`.\nMust be a \"sender\"/\"client\" profile."
            }
          ]
        },
        {
          "code": "TestScript.destination",
          "display": "destination",
          "target": [
            {
              "code": "TestScript.destination",
              "display": "TestScript.destination",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.destination` is mapped to FHIR R5 element `TestScript.destination` as `Equivalent`.\nThe purpose of this element is to define the profile of a destination element used elsewhere in the script.  Test engines could then use the destination-profile mapping to offer a filtered list of test systems that can serve as the receiver for the interaction."
            }
          ]
        },
        {
          "code": "TestScript.destination.index",
          "display": "index",
          "target": [
            {
              "code": "TestScript.destination.index",
              "display": "TestScript.destination.index",
              "relationship": "equivalent",
              "comment": "Element `TestScript.destination.index` is mapped to FHIR R5 element `TestScript.destination.index` as `Equivalent`.\nA given destination index (e.g. 1) can appear only once in the list (e.g. Destination 1 cannot be specified twice ... once as Form-Manager and again as Form-Processor within the same script as that could get confusing during test configuration). \n\nDifferent destination indices could play the same actor in the same test script (e.g. You could have two different test systems acting as Form-Manager).\n\nThe destination indices provided elsewhere in the test script must be one of these destination indices."
            }
          ]
        },
        {
          "code": "TestScript.destination.profile",
          "display": "profile",
          "target": [
            {
              "code": "TestScript.destination.profile",
              "display": "TestScript.destination.profile",
              "relationship": "equivalent",
              "comment": "Element `TestScript.destination.profile` is mapped to FHIR R5 element `TestScript.destination.profile` as `Equivalent`.\nMust be a \"receiver\"/\"server\" profile."
            }
          ]
        },
        {
          "code": "TestScript.metadata",
          "display": "metadata",
          "target": [
            {
              "code": "TestScript.metadata",
              "display": "TestScript.metadata",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.metadata` is mapped to FHIR R5 element `TestScript.metadata` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.link",
          "display": "link",
          "target": [
            {
              "code": "TestScript.metadata.link",
              "display": "TestScript.metadata.link",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.metadata.link` is mapped to FHIR R5 element `TestScript.metadata.link` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.link.url",
          "display": "url",
          "target": [
            {
              "code": "TestScript.metadata.link.url",
              "display": "TestScript.metadata.link.url",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.link.url` is mapped to FHIR R5 element `TestScript.metadata.link.url` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.link.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.metadata.link.description",
              "display": "TestScript.metadata.link.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.link.description` is mapped to FHIR R5 element `TestScript.metadata.link.description` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability",
          "display": "capability",
          "target": [
            {
              "code": "TestScript.metadata.capability",
              "display": "TestScript.metadata.capability",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.metadata.capability` is mapped to FHIR R5 element `TestScript.metadata.capability` as `Equivalent`.\nWhen the metadata capabilities section is defined at TestScript.metadata or at TestScript.setup.metadata, and the server's conformance statement does not contain the elements defined in the minimal conformance statement, then all the tests in the TestScript are skipped.  When the metadata capabilities section is defined at TestScript.test.metadata and the server's conformance statement does not contain the elements defined in the minimal conformance statement, then only that test is skipped.  The \"metadata.capabilities.required\" and \"metadata.capabilities.validated\" elements only indicate whether the capabilities are the primary focus of the test script or not.  They do not impact the skipping logic.  Capabilities whose \"metadata.capabilities.validated\" flag is true are the primary focus of the test script."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.required",
          "display": "required",
          "target": [
            {
              "code": "TestScript.metadata.capability.required",
              "display": "TestScript.metadata.capability.required",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.required` is mapped to FHIR R5 element `TestScript.metadata.capability.required` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.validated",
          "display": "validated",
          "target": [
            {
              "code": "TestScript.metadata.capability.validated",
              "display": "TestScript.metadata.capability.validated",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.validated` is mapped to FHIR R5 element `TestScript.metadata.capability.validated` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.metadata.capability.description",
              "display": "TestScript.metadata.capability.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.description` is mapped to FHIR R5 element `TestScript.metadata.capability.description` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.origin",
          "display": "origin",
          "target": [
            {
              "code": "TestScript.metadata.capability.origin",
              "display": "TestScript.metadata.capability.origin",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.origin` is mapped to FHIR R5 element `TestScript.metadata.capability.origin` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.destination",
          "display": "destination",
          "target": [
            {
              "code": "TestScript.metadata.capability.destination",
              "display": "TestScript.metadata.capability.destination",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.destination` is mapped to FHIR R5 element `TestScript.metadata.capability.destination` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.link",
          "display": "link",
          "target": [
            {
              "code": "TestScript.metadata.capability.link",
              "display": "TestScript.metadata.capability.link",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.link` is mapped to FHIR R5 element `TestScript.metadata.capability.link` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.metadata.capability.capabilities",
          "display": "capabilities",
          "target": [
            {
              "code": "TestScript.metadata.capability.capabilities",
              "display": "TestScript.metadata.capability.capabilities",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.metadata.capability.capabilities` is mapped to FHIR R5 element `TestScript.metadata.capability.capabilities` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.metadata.capability.capabilities` do not cover the following types: Reference.\nThe mappings for `TestScript.metadata.capability.capabilities` do not cover the following types based on type expansion: display, identifier, reference.\nThe conformance statement of the server has to contain at a minimum the contents of the reference pointed to by this element."
            }
          ]
        },
        {
          "code": "TestScript.fixture",
          "display": "fixture",
          "target": [
            {
              "code": "TestScript.fixture",
              "display": "TestScript.fixture",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.fixture` is mapped to FHIR R5 element `TestScript.fixture` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.fixture.autocreate",
          "display": "autocreate",
          "target": [
            {
              "code": "TestScript.fixture.autocreate",
              "display": "TestScript.fixture.autocreate",
              "relationship": "equivalent",
              "comment": "Element `TestScript.fixture.autocreate` is mapped to FHIR R5 element `TestScript.fixture.autocreate` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.fixture.autodelete",
          "display": "autodelete",
          "target": [
            {
              "code": "TestScript.fixture.autodelete",
              "display": "TestScript.fixture.autodelete",
              "relationship": "equivalent",
              "comment": "Element `TestScript.fixture.autodelete` is mapped to FHIR R5 element `TestScript.fixture.autodelete` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.fixture.resource",
          "display": "resource",
          "target": [
            {
              "code": "TestScript.fixture.resource",
              "display": "TestScript.fixture.resource",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.fixture.resource` is mapped to FHIR R5 element `TestScript.fixture.resource` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.fixture.resource` do not cover the following types based on type expansion: display, identifier, reference.\nThe standard extension `alternate-reference` has been mapped as the representation of FHIR STU3 element `TestScript.fixture.resource` with unmapped reference targets: Resource.\nSee http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types."
            }
          ]
        },
        {
          "code": "TestScript.profile",
          "display": "profile",
          "target": [
            {
              "code": "TestScript.profile",
              "display": "TestScript.profile",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.profile` is mapped to FHIR R5 element `TestScript.profile` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.profile` do not cover the following types: Reference.\nThe mappings for `TestScript.profile` do not cover the following types based on type expansion: display, identifier, reference.\nSee http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types."
            }
          ]
        },
        {
          "code": "TestScript.variable",
          "display": "variable",
          "target": [
            {
              "code": "TestScript.variable",
              "display": "TestScript.variable",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.variable` is mapped to FHIR R5 element `TestScript.variable` as `Equivalent`.\nVariables would be set based either on XPath/JSONPath expressions against fixtures (static and response), or headerField evaluations against response headers. If variable evaluates to nodelist or anything other than a primitive value, then test engine would report an error.  Variables would be used to perform clean replacements in \"operation.params\", \"operation.requestHeader.value\", and \"operation.url\" element values during operation calls and in \"assert.value\" during assertion evaluations. This limits the places that test engines would need to look for placeholders \"${}\".  Variables are scoped to the whole script. They are NOT evaluated at declaration. They are evaluated by test engine when used for substitutions in \"operation.params\", \"operation.requestHeader.value\", and \"operation.url\" element values during operation calls and in \"assert.value\" during assertion evaluations.  See example testscript-search.xml."
            }
          ]
        },
        {
          "code": "TestScript.variable.name",
          "display": "name",
          "target": [
            {
              "code": "TestScript.variable.name",
              "display": "TestScript.variable.name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.name` is mapped to FHIR R5 element `TestScript.variable.name` as `Equivalent`.\nPlaceholders would contain the variable name wrapped in ${} in \"operation.params\", \"operation.requestHeader.value\", and \"operation.url\" elements.  These placeholders would need to be replaced by the variable value before the operation is executed."
            }
          ]
        },
        {
          "code": "TestScript.variable.defaultValue",
          "display": "defaultValue",
          "target": [
            {
              "code": "TestScript.variable.defaultValue",
              "display": "TestScript.variable.defaultValue",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.defaultValue` is mapped to FHIR R5 element `TestScript.variable.defaultValue` as `Equivalent`.\nThe purpose of this element is to allow for a pre-defined value that can be used as a default or as an override value. Test engines can optionally use this as a placeholder for user-defined execution time values."
            }
          ]
        },
        {
          "code": "TestScript.variable.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.variable.description",
              "display": "TestScript.variable.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.description` is mapped to FHIR R5 element `TestScript.variable.description` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.variable.expression",
          "display": "expression",
          "target": [
            {
              "code": "TestScript.variable.expression",
              "display": "TestScript.variable.expression",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.expression` is mapped to FHIR R5 element `TestScript.variable.expression` as `Equivalent`.\nIf headerField is defined, then the variable will be evaluated against the headers that sourceId is pointing to.  If expression or path is defined, then the variable will be evaluated against the fixture body that sourceId is pointing to.  It is an error to define any combination of expression, headerField and path."
            }
          ]
        },
        {
          "code": "TestScript.variable.headerField",
          "display": "headerField",
          "target": [
            {
              "code": "TestScript.variable.headerField",
              "display": "TestScript.variable.headerField",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.headerField` is mapped to FHIR R5 element `TestScript.variable.headerField` as `Equivalent`.\nIf headerField is defined, then the variable will be evaluated against the headers that sourceId is pointing to.  If path is defined, then the variable will be evaluated against the fixture body that sourceId is pointing to.  It is an error to define both headerField and path."
            }
          ]
        },
        {
          "code": "TestScript.variable.hint",
          "display": "hint",
          "target": [
            {
              "code": "TestScript.variable.hint",
              "display": "TestScript.variable.hint",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.hint` is mapped to FHIR R5 element `TestScript.variable.hint` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.variable.path",
          "display": "path",
          "target": [
            {
              "code": "TestScript.variable.path",
              "display": "TestScript.variable.path",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.path` is mapped to FHIR R5 element `TestScript.variable.path` as `Equivalent`.\nIf headerField is defined, then the variable will be evaluated against the headers that sourceId is pointing to.  If expression or path is defined, then the variable will be evaluated against the fixture body that sourceId is pointing to.  It is an error to define any combination of expression, headerField and path."
            }
          ]
        },
        {
          "code": "TestScript.variable.sourceId",
          "display": "sourceId",
          "target": [
            {
              "code": "TestScript.variable.sourceId",
              "display": "TestScript.variable.sourceId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.variable.sourceId` is mapped to FHIR R5 element `TestScript.variable.sourceId` as `Equivalent`.\nThis can be a statically defined fixture (at the top of the TestScript) or a dynamically set fixture created by responseId of the `action.operation` element."
            }
          ]
        },
        {
          "code": "TestScript.setup",
          "display": "setup",
          "target": [
            {
              "code": "TestScript.setup",
              "display": "TestScript.setup",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup` is mapped to FHIR R5 element `TestScript.setup` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.setup.action",
          "display": "action",
          "target": [
            {
              "code": "TestScript.setup.action",
              "display": "TestScript.setup.action",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action` is mapped to FHIR R5 element `TestScript.setup.action` as `Equivalent`.\nAn action should contain either an operation or an assertion but not both.  It can contain any number of variables."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation",
          "display": "operation",
          "target": [
            {
              "code": "TestScript.setup.action.operation",
              "display": "TestScript.setup.action.operation",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.operation` is mapped to FHIR R5 element `TestScript.setup.action.operation` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.type",
          "display": "type",
          "target": [
            {
              "code": "TestScript.setup.action.operation.type",
              "display": "TestScript.setup.action.operation.type",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.type` is mapped to FHIR R5 element `TestScript.setup.action.operation.type` as `Equivalent`.\nSee http://hl7.org/fhir/STU3/http.html for list of server interactions."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.resource",
          "display": "resource",
          "target": [
            {
              "code": "TestScript.setup.action.operation.resource",
              "display": "TestScript.setup.action.operation.resource",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.operation.resource` is mapped to FHIR R5 element `TestScript.setup.action.operation.resource` as `RelatedTo`.\nThe mappings for `TestScript.setup.action.operation.resource` do not cover the following types: code.\nThe mappings for `TestScript.setup.action.operation.resource` do not cover the following types based on type expansion: value.\nIf \"url\" element is specified, then \"targetId\", \"params\", and \"resource\" elements will be ignored as \"url\" element will have everything needed for constructing the request url.  If \"params\" element is specified, then \"targetId\" element is ignored. For FHIR operations that require a resource (e.g. \"read\" and \"vread\" operations), the \"resource\" element must be specified when \"params\" element is specified.  If \"url\" and \"params\" elements are absent, then the request url will be constructed from \"targetId\" fixture if present. For \"read\" operation, the resource and id values will be extracted from \"targetId\" fixture and used to construct the url. For \"vread\" and \"history\" operations, the versionId value will also be used."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.label",
          "display": "label",
          "target": [
            {
              "code": "TestScript.setup.action.operation.label",
              "display": "TestScript.setup.action.operation.label",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.label` is mapped to FHIR R5 element `TestScript.setup.action.operation.label` as `Equivalent`.\nThis has no impact on the verification itself."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.setup.action.operation.description",
              "display": "TestScript.setup.action.operation.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.description` is mapped to FHIR R5 element `TestScript.setup.action.operation.description` as `Equivalent`.\nThis has no impact on the verification itself."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.accept",
          "display": "accept",
          "target": [
            {
              "code": "TestScript.setup.action.operation.accept",
              "display": "TestScript.setup.action.operation.accept",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.accept` is mapped to FHIR R5 element `TestScript.setup.action.operation.accept` as `Equivalent`.\nIf this is specified, then test engine shall set the 'Accept' header to the corresponding value.    If 'xml' is specified, then 'Accept' header of 'application/fhir+xml' will be set.  If 'json' is specified, then 'application/fhir+json' will be used.    If you'd like to explicitly set the 'Accept' to some other value then use the 'requestHeader' element."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.contentType",
          "display": "contentType",
          "target": [
            {
              "code": "TestScript.setup.action.operation.contentType",
              "display": "TestScript.setup.action.operation.contentType",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.contentType` is mapped to FHIR R5 element `TestScript.setup.action.operation.contentType` as `Equivalent`.\nIf this is specified, then test engine shall set the 'Content-Type' header to the corresponding value.    If 'xml' is specified, then 'Content-Type' header of 'application/fhir+xml' will be set.    If 'json' is specified, then 'application/fhir+json' will be used.    If you'd like to explicitly set the 'Content-Type' to some other value then use the 'requestHeader' element."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.destination",
          "display": "destination",
          "target": [
            {
              "code": "TestScript.setup.action.operation.destination",
              "display": "TestScript.setup.action.operation.destination",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.destination` is mapped to FHIR R5 element `TestScript.setup.action.operation.destination` as `Equivalent`.\nIf multiple TestScript.destination elements are defined and operation.destination is undefined, test engine will report an error as it cannot determine what destination to use for the exchange."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.encodeRequestUrl",
          "display": "encodeRequestUrl",
          "target": [
            {
              "code": "TestScript.setup.action.operation.encodeRequestUrl",
              "display": "TestScript.setup.action.operation.encodeRequestUrl",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.encodeRequestUrl` is mapped to FHIR R5 element `TestScript.setup.action.operation.encodeRequestUrl` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.origin",
          "display": "origin",
          "target": [
            {
              "code": "TestScript.setup.action.operation.origin",
              "display": "TestScript.setup.action.operation.origin",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.origin` is mapped to FHIR R5 element `TestScript.setup.action.operation.origin` as `Equivalent`.\nIf absent, test engine will send the message.  When present, test engine will not send the request message but will wait for the request message to be sent from this origin server."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.params",
          "display": "params",
          "target": [
            {
              "code": "TestScript.setup.action.operation.params",
              "display": "TestScript.setup.action.operation.params",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.params` is mapped to FHIR R5 element `TestScript.setup.action.operation.params` as `Equivalent`.\nIf \"url\" element is specified, then \"targetId\", \"params\", and \"resource\" elements will be ignored as \"url\" element will have everything needed for constructing the request url.  If \"params\" element is specified, then \"targetId\" element is ignored.  For FHIR operations that require a resource (e.g. \"read\" and \"vread\" operations), the \"resource\" element must be specified when \"params\" element is specified.  If \"url\" and \"params\" elements are absent, then the request url will be constructed from \"targetId\" fixture if present.  For \"read\" operation, the resource and id values will be extracted from \"targetId\" fixture and used to construct the url.  For \"vread\" and \"history\" operations, the versionId value will also be used.   Test engines would append whatever is specified for \"params\" to the URL after the resource type without tampering with the string (beyond encoding the URL for HTTP).  The \"params\" element does not correspond exactly to \"search parameters\".  Nor is it the \"path\".  It corresponds to the part of the URL that comes after the [type] (when \"resource\" element is specified); e.g. It corresponds to \"/[id]/_history/[vid] {?_format=[mime-type]}\" in the following operation: GET [base]/[type]/[id]/_history/[vid] {?_format=[mime-type]}  Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before sending the request."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.requestHeader",
          "display": "requestHeader",
          "target": [
            {
              "code": "TestScript.setup.action.operation.requestHeader",
              "display": "TestScript.setup.action.operation.requestHeader",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.operation.requestHeader` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestHeader` as `Equivalent`.\nThis gives control to test-script writers to set headers explicitly based on test requirements.  It will allow for testing using:  - \"If-Modified-Since\" and \"If-None-Match\" headers.  See http://hl7.org/fhir/STU3/http.html#2.1.0.5.1 - \"If-Match\" header.  See http://hl7.org/fhir/STU3/http.html#2.1.0.11 - Conditional Create using \"If-None-Exist\".  See http://hl7.org/fhir/STU3/http.html#2.1.0.13.1 - Invalid \"Content-Type\" header for negative testing. - etc."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.requestHeader.field",
          "display": "field",
          "target": [
            {
              "code": "TestScript.setup.action.operation.requestHeader.field",
              "display": "TestScript.setup.action.operation.requestHeader.field",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.requestHeader.field` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestHeader.field` as `Equivalent`.\nIf header element is specified, then field is required."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.requestHeader.value",
          "display": "value",
          "target": [
            {
              "code": "TestScript.setup.action.operation.requestHeader.value",
              "display": "TestScript.setup.action.operation.requestHeader.value",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.requestHeader.value` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestHeader.value` as `Equivalent`.\nIf header element is specified, then value is required.  No conversions will be done by the test engine e.g. \"xml\" to \"application/fhir+xml\".  The values will be set in HTTP headers \"as-is\".  Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before sending the request."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.requestId",
          "display": "requestId",
          "target": [
            {
              "code": "TestScript.setup.action.operation.requestId",
              "display": "TestScript.setup.action.operation.requestId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.requestId` is mapped to FHIR R5 element `TestScript.setup.action.operation.requestId` as `Equivalent`.\nIf a requestId is supplied, then the resulting request (both headers and body) is mapped to the fixture ID (which may be entirely new and previously undeclared) designated by \"requestId\".  If requestId is not specified, it is the test engine's responsibility to store the request and use it as the requestId in subsequent assertions when assertion path and/or headerField is specified, direction is equal to request, and the requestId in not specified."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.responseId",
          "display": "responseId",
          "target": [
            {
              "code": "TestScript.setup.action.operation.responseId",
              "display": "TestScript.setup.action.operation.responseId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.responseId` is mapped to FHIR R5 element `TestScript.setup.action.operation.responseId` as `Equivalent`.\nIf a responseId is supplied, and the server responds, then the resulting response (both headers and body) is mapped to the fixture ID (which may be entirely new and previously undeclared) designated by \"responseId\".  If responseId is not specified, it is the test engine's responsibility to store the response and use it as the responseId in subsequent assertions when assertion path and/or headerField is specified and the responseId is not specified."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.sourceId",
          "display": "sourceId",
          "target": [
            {
              "code": "TestScript.setup.action.operation.sourceId",
              "display": "TestScript.setup.action.operation.sourceId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.sourceId` is mapped to FHIR R5 element `TestScript.setup.action.operation.sourceId` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.targetId",
          "display": "targetId",
          "target": [
            {
              "code": "TestScript.setup.action.operation.targetId",
              "display": "TestScript.setup.action.operation.targetId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.targetId` is mapped to FHIR R5 element `TestScript.setup.action.operation.targetId` as `Equivalent`.\nIf \"url\" element is specified, then \"targetId\", \"params\", and \"resource\" elements will be ignored as \"url\" element will have everything needed for constructing the request url.  If \"params\" element is specified, then \"targetId\" element is ignored.  For FHIR operations that require a resource (e.g. \"read\" and \"vread\" operations), the \"resource\" element must be specified when \"params\" element is specified.  If \"url\" and \"params\" elements are absent, then the request url will be constructed from \"targetId\" fixture if present.  For \"read\" operation, the resource and id values will be extracted from \"targetId\" fixture and used to construct the url.  For \"vread\" and \"history\" operations, the versionId value will also be used."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.operation.url",
          "display": "url",
          "target": [
            {
              "code": "TestScript.setup.action.operation.url",
              "display": "TestScript.setup.action.operation.url",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.url` is mapped to FHIR R5 element `TestScript.setup.action.operation.url` as `Equivalent`.\nUsed to set the request URL explicitly.  If \"url\" element is defined, then \"targetId\", \"resource\", and \"params\" elements will be ignored.  Test engines would use whatever is specified in \"url\" without tampering with the string (beyond encoding the URL for HTTP).  Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before sending the request."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert",
          "display": "assert",
          "target": [
            {
              "code": "TestScript.setup.action.assert",
              "display": "TestScript.setup.action.assert",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert` is mapped to FHIR R5 element `TestScript.setup.action.assert` as `Equivalent`.\nIn order to evaluate an assertion, the request, response, and results of the most recently executed operation must always be maintained by the test engine."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.label",
          "display": "label",
          "target": [
            {
              "code": "TestScript.setup.action.assert.label",
              "display": "TestScript.setup.action.assert.label",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.label` is mapped to FHIR R5 element `TestScript.setup.action.assert.label` as `Equivalent`.\nThis has no impact on the verification itself."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.setup.action.assert.description",
              "display": "TestScript.setup.action.assert.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.description` is mapped to FHIR R5 element `TestScript.setup.action.assert.description` as `Equivalent`.\nThis has no impact on the verification itself."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.direction",
          "display": "direction",
          "target": [
            {
              "code": "TestScript.setup.action.assert.direction",
              "display": "TestScript.setup.action.assert.direction",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.direction` is mapped to FHIR R5 element `TestScript.setup.action.assert.direction` as `Equivalent`.\nIf the direction is specified as \"response\" (the default), then the processing of this assert is against the received response message. If the direction is specified as \"request\", then the processing of this assert is against the sent request message."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.compareToSourceId",
          "display": "compareToSourceId",
          "target": [
            {
              "code": "TestScript.setup.action.assert.compareToSourceId",
              "display": "TestScript.setup.action.assert.compareToSourceId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.compareToSourceId` is mapped to FHIR R5 element `TestScript.setup.action.assert.compareToSourceId` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.compareToSourceExpression",
          "display": "compareToSourceExpression",
          "target": [
            {
              "code": "TestScript.setup.action.assert.compareToSourceExpression",
              "display": "TestScript.setup.action.assert.compareToSourceExpression",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.compareToSourceExpression` is mapped to FHIR R5 element `TestScript.setup.action.assert.compareToSourceExpression` as `Equivalent`.\nThefhirpath expression to be evaluated against the expected fixture to compare to. Ignored if \"assert.value\" is used. The evaluation will be done before the assertion is evaluated."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.compareToSourcePath",
          "display": "compareToSourcePath",
          "target": [
            {
              "code": "TestScript.setup.action.assert.compareToSourcePath",
              "display": "TestScript.setup.action.assert.compareToSourcePath",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.compareToSourcePath` is mapped to FHIR R5 element `TestScript.setup.action.assert.compareToSourcePath` as `Equivalent`.\nThe XPath or JSONPath expression to be evaluated against the expected fixture to compare to. Ignored if \"assert.value\" is used. The evaluation will be done before the assertion is evaluated."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.contentType",
          "display": "contentType",
          "target": [
            {
              "code": "TestScript.setup.action.assert.contentType",
              "display": "TestScript.setup.action.assert.contentType",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.contentType` is mapped to FHIR R5 element `TestScript.setup.action.assert.contentType` as `Equivalent`.\nIf this is specified, then test engine shall confirm that the content-type of the last operation's headers is set to this value.  If \"assert.sourceId\" element is specified, then the evaluation will be done against the headers mapped to that sourceId (and not the last operation's headers).    If 'xml' is specified, then 'Content-Type' header of 'application/fhir+xml' will be confirmed. If 'json' is specified, then 'application/fhir+json' will be used. If you'd like to have more control over the string, then use 'assert.headerField' instead."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.expression",
          "display": "expression",
          "target": [
            {
              "code": "TestScript.setup.action.assert.expression",
              "display": "TestScript.setup.action.assert.expression",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.expression` is mapped to FHIR R5 element `TestScript.setup.action.assert.expression` as `Equivalent`.\nIf both \"expression\" and a \"fixtureId\" are specified, then the expression will be evaluated against the request or response body mapped to the fixtureId.  If \"expression\" is specified and a \"fixtureId\" is not, then the expression will be evaluated against the response body of the last operation.  Test engines are to store the request and response body and headers of the last operation at all times for subsequent assertions."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.headerField",
          "display": "headerField",
          "target": [
            {
              "code": "TestScript.setup.action.assert.headerField",
              "display": "TestScript.setup.action.assert.headerField",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.headerField` is mapped to FHIR R5 element `TestScript.setup.action.assert.headerField` as `Equivalent`.\nIf \"headerField\" is specified then \"value\" must be specified.  If \"sourceId\" is not specified, then \"headerField\" will be evaluated against the last operation's response headers.  Test engines are to keep track of the last operation's response body and response headers."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.minimumId",
          "display": "minimumId",
          "target": [
            {
              "code": "TestScript.setup.action.assert.minimumId",
              "display": "TestScript.setup.action.assert.minimumId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.minimumId` is mapped to FHIR R5 element `TestScript.setup.action.assert.minimumId` as `Equivalent`.\nAsserts that the response contains all the element/content in another fixture pointed to by minimumId.  This can be a statically defined fixture or one that is dynamically set via responseId."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.navigationLinks",
          "display": "navigationLinks",
          "target": [
            {
              "code": "TestScript.setup.action.assert.navigationLinks",
              "display": "TestScript.setup.action.assert.navigationLinks",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.navigationLinks` is mapped to FHIR R5 element `TestScript.setup.action.assert.navigationLinks` as `Equivalent`.\nAsserts that the Bundle contains first, last, and next links."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.operator",
          "display": "operator",
          "target": [
            {
              "code": "TestScript.setup.action.assert.operator",
              "display": "TestScript.setup.action.assert.operator",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.operator` is mapped to FHIR R5 element `TestScript.setup.action.assert.operator` as `SourceIsNarrowerThanTarget`.\nThe mappings for `TestScript.setup.action.assert.operator` do not allow expression of the necessary codes, per the bindings on the source and target.\nOperators are useful especially for negative testing.  If operator is not specified, then the \"equals\" operator is assumed; e.g. <code>   <assert>  <operator value=\"in\" />  <responseCode value=\"200,201,204\" />    </assert>    <assert>  <operator value=\"notEquals\" />  <response value=\"okay\"/>   </assert>    <assert>  <operator value=\"greaterThan\" />    <responseHeader>     <field value=\"Content-Length\" />     <value value=\"0\" />    <responseHeader/>   </assert> </code>."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.path",
          "display": "path",
          "target": [
            {
              "code": "TestScript.setup.action.assert.path",
              "display": "TestScript.setup.action.assert.path",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.path` is mapped to FHIR R5 element `TestScript.setup.action.assert.path` as `Equivalent`.\nIf both \"path\" and a \"fixtureId\" are specified, then the path will be evaluated against the request or response body mapped to the fixtureId.  If \"path\" is specified and a \"fixtureId\" is not, then the path will be evaluated against the response body of the last operation.  Test engines are to store the request and response body and headers of the last operation at all times for subsequent assertions."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.requestMethod",
          "display": "requestMethod",
          "target": [
            {
              "code": "TestScript.setup.action.assert.requestMethod",
              "display": "TestScript.setup.action.assert.requestMethod",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.requestMethod` is mapped to FHIR R5 element `TestScript.setup.action.assert.requestMethod` as `SourceIsNarrowerThanTarget`.\nThe mappings for `TestScript.setup.action.assert.requestMethod` do not allow expression of the necessary codes, per the bindings on the source and target.\nIf \"requestMethod\" is specified then it will be used in place of \"value\". The \"requestMethod\" will evaluate against the last operation's request HTTP operation."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.requestURL",
          "display": "requestURL",
          "target": [
            {
              "code": "TestScript.setup.action.assert.requestURL",
              "display": "TestScript.setup.action.assert.requestURL",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.requestURL` is mapped to FHIR R5 element `TestScript.setup.action.assert.requestURL` as `Equivalent`.\nIf \"requestURL\" is specified then it will be used in place of \"value\". The \"requestURL\" will evaluate against the last operation's full request URL path string."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.resource",
          "display": "resource",
          "target": [
            {
              "code": "TestScript.setup.action.assert.resource",
              "display": "TestScript.setup.action.assert.resource",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.resource` is mapped to FHIR R5 element `TestScript.setup.action.assert.resource` as `RelatedTo`.\nThe mappings for `TestScript.setup.action.assert.resource` do not cover the following types: code.\nThe mappings for `TestScript.setup.action.assert.resource` do not cover the following types based on type expansion: value.\nThis will be expected resource type in response body e.g. in read, vread, search, etc.  See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types; e.g. <assert > <resourceType value=\"Patient\" </assert>."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.response",
          "display": "response",
          "target": [
            {
              "code": "TestScript.setup.action.assert.response",
              "display": "TestScript.setup.action.assert.response",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.response` is mapped to FHIR R5 element `TestScript.setup.action.assert.response` as `RelatedTo`.\nThe mappings for `TestScript.setup.action.assert.response` do not allow expression of the necessary codes, per the bindings on the source and target.\nThis is a shorter way of achieving similar verifications via \"assert.responseCode\".  If you need more control, then use \"assert.responseCode\"  e.g. <assert>  <contentType value=\"json\" />  <response value=\"okay\"/> </assert>."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.responseCode",
          "display": "responseCode",
          "target": [
            {
              "code": "TestScript.setup.action.assert.responseCode",
              "display": "TestScript.setup.action.assert.responseCode",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.responseCode` is mapped to FHIR R5 element `TestScript.setup.action.assert.responseCode` as `Equivalent`.\nTo be used with \"operator\" attribute value. Asserts that the response code equals this value if \"operator\" is not specified.   If the operator is \"in\" or \"notIn\" then the responseCode would be a comma-separated list of values e.g. \"200,201\". Otherwise, it's expected to be a numeric value.   If \"fixture\" is not specified, then the \"responseBodyId\" value of the last operation is assumed."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.sourceId",
          "display": "sourceId",
          "target": [
            {
              "code": "TestScript.setup.action.assert.sourceId",
              "display": "TestScript.setup.action.assert.sourceId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.sourceId` is mapped to FHIR R5 element `TestScript.setup.action.assert.sourceId` as `Equivalent`.\nThis can be a statically defined fixture (at the top of the testscript) or a dynamically set fixture created by responseId of the action.operation element."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.validateProfileId",
          "display": "validateProfileId",
          "target": [
            {
              "code": "TestScript.setup.action.assert.validateProfileId",
              "display": "TestScript.setup.action.assert.validateProfileId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.validateProfileId` is mapped to FHIR R5 element `TestScript.setup.action.assert.validateProfileId` as `Equivalent`.\nThe ID of a Profile fixture. Asserts that the response is valid according to the Profile specified by validateProfileId."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.value",
          "display": "value",
          "target": [
            {
              "code": "TestScript.setup.action.assert.value",
              "display": "TestScript.setup.action.assert.value",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.value` is mapped to FHIR R5 element `TestScript.setup.action.assert.value` as `Equivalent`.\nThe string-representation of a number, string, or boolean that is expected.  Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before comparing this value to the actual value."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.warningOnly",
          "display": "warningOnly",
          "target": [
            {
              "code": "TestScript.setup.action.assert.warningOnly",
              "display": "TestScript.setup.action.assert.warningOnly",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.warningOnly` is mapped to FHIR R5 element `TestScript.setup.action.assert.warningOnly` as `Equivalent`.\nIf this element is specified and it is true, then assertion failures can be logged by test engine but should not stop the test script execution from proceeding.  There are likely cases where the spec is not clear on what should happen. If the spec says something is optional (maybe a response header for example), but a server doesn’t do it, we could choose to issue a warning."
            }
          ]
        },
        {
          "code": "TestScript.test",
          "display": "test",
          "target": [
            {
              "code": "TestScript.test",
              "display": "TestScript.test",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.test` is mapped to FHIR R5 element `TestScript.test` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.test.name",
          "display": "name",
          "target": [
            {
              "code": "TestScript.test.name",
              "display": "TestScript.test.name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.test.name` is mapped to FHIR R5 element `TestScript.test.name` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.test.description",
          "display": "description",
          "target": [
            {
              "code": "TestScript.test.description",
              "display": "TestScript.test.description",
              "relationship": "equivalent",
              "comment": "Element `TestScript.test.description` is mapped to FHIR R5 element `TestScript.test.description` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.test.action",
          "display": "action",
          "target": [
            {
              "code": "TestScript.test.action",
              "display": "TestScript.test.action",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.test.action` is mapped to FHIR R5 element `TestScript.test.action` as `Equivalent`.\nAn action should contain either an operation or an assertion but not both.  It can contain any number of variables."
            }
          ]
        },
        {
          "code": "TestScript.test.action.operation",
          "display": "operation",
          "target": [
            {
              "code": "TestScript.test.action.operation",
              "display": "TestScript.test.action.operation",
              "relationship": "equivalent",
              "comment": "Element `TestScript.test.action.operation` is mapped to FHIR R5 element `TestScript.test.action.operation` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.test.action.assert",
          "display": "assert",
          "target": [
            {
              "code": "TestScript.test.action.assert",
              "display": "TestScript.test.action.assert",
              "relationship": "equivalent",
              "comment": "Element `TestScript.test.action.assert` is mapped to FHIR R5 element `TestScript.test.action.assert` as `Equivalent`.\nIn order to evaluate an assertion, the request, response, and results of the most recently executed operation must always be maintained by the test engine."
            }
          ]
        },
        {
          "code": "TestScript.teardown",
          "display": "teardown",
          "target": [
            {
              "code": "TestScript.teardown",
              "display": "TestScript.teardown",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.teardown` is mapped to FHIR R5 element `TestScript.teardown` as `Equivalent`."
            }
          ]
        },
        {
          "code": "TestScript.teardown.action",
          "display": "action",
          "target": [
            {
              "code": "TestScript.teardown.action",
              "display": "TestScript.teardown.action",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.teardown.action` is mapped to FHIR R5 element `TestScript.teardown.action` as `Equivalent`.\nAn action should contain either an operation or an assertion but not both.  It can contain any number of variables."
            }
          ]
        },
        {
          "code": "TestScript.teardown.action.operation",
          "display": "operation",
          "target": [
            {
              "code": "TestScript.teardown.action.operation",
              "display": "TestScript.teardown.action.operation",
              "relationship": "equivalent",
              "comment": "Element `TestScript.teardown.action.operation` is mapped to FHIR R5 element `TestScript.teardown.action.operation` as `Equivalent`."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.meta|0.1.0",
      "element": [
        {
          "code": "TestScript.meta",
          "display": "meta",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.meta` is mapped to FHIR R5 element `TestScript.meta` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.meta` do not cover the following types: Meta.\nThe mappings for `TestScript.meta` do not cover the following types based on type expansion: lastUpdated, profile, security, tag, versionId."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.text|0.1.0",
      "element": [
        {
          "code": "TestScript.text",
          "display": "text",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.text` is mapped to FHIR R5 element `TestScript.text` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.text` do not cover the following types: Narrative.\nThe mappings for `TestScript.text` do not cover the following types based on type expansion: div, status.\nContained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied).  This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded in formation is added later."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.identifier|0.1.0",
      "element": [
        {
          "code": "TestScript.identifier",
          "display": "identifier",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.identifier` is mapped to FHIR R5 element `TestScript.identifier` as `RelatedTo`.\nThe mappings for `TestScript.identifier` do not cover the following types: Identifier.\nThe mappings for `TestScript.identifier` do not cover the following types based on type expansion: assigner, period, system, type, use, value.\nTypically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, e.g., to identify this test script outside of FHIR, where it is not possible to use the logical URI."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.contact|0.1.0",
      "element": [
        {
          "code": "TestScript.contact",
          "display": "contact",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.contact` is mapped to FHIR R5 element `TestScript.contact` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.contact` do not cover the following types: ContactDetail.\nThe mappings for `TestScript.contact` do not cover the following types based on type expansion: name, telecom.\nMay be a web site, an email address, a telephone number, etc."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.useContext|0.1.0",
      "element": [
        {
          "code": "TestScript.useContext",
          "display": "useContext",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.useContext` is mapped to FHIR R5 element `TestScript.useContext` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.useContext` do not cover the following types: UsageContext.\nThe mappings for `TestScript.useContext` do not cover the following types based on type expansion: code, value[x].\nWhen multiple useContexts are specified, there is no expectation whether all or any of the contexts apply."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.metadata.capability.capabilities|0.1.0",
      "element": [
        {
          "code": "TestScript.metadata.capability.capabilities",
          "display": "capabilities",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.metadata.capability.capabilities` is mapped to FHIR R5 element `TestScript.metadata.capability.capabilities` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.metadata.capability.capabilities` do not cover the following types: Reference.\nThe mappings for `TestScript.metadata.capability.capabilities` do not cover the following types based on type expansion: display, identifier, reference.\nThe conformance statement of the server has to contain at a minimum the contents of the reference pointed to by this element."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.profile|0.1.0",
      "element": [
        {
          "code": "TestScript.profile",
          "display": "profile",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.profile` is mapped to FHIR R5 element `TestScript.profile` as `SourceIsBroaderThanTarget`.\nThe mappings for `TestScript.profile` do not cover the following types: Reference.\nThe mappings for `TestScript.profile` do not cover the following types based on type expansion: display, identifier, reference.\nSee http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.rule|0.1.0",
      "element": [
        {
          "code": "TestScript.rule",
          "display": "rule",
          "target": [
            {
              "code": "Extension",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.rule` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nEach rule should be treated by test engines as one assertion regardless of how many assertions are contained within the external rule template.  The impact of negative rule evaluation on test script execution is the same as an assertion failure which is described elsewhere in the TestScript resource."
            }
          ]
        },
        {
          "code": "TestScript.rule.resource",
          "display": "resource",
          "target": [
            {
              "code": "Extension.extension:resource",
              "relationship": "equivalent",
              "comment": "Element `TestScript.rule.resource` is part of an existing definition because parent element `TestScript.rule` requires a cross-version extension.\nElement `TestScript.rule.resource` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.rule.resource` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element)."
            }
          ]
        },
        {
          "code": "TestScript.rule.param",
          "display": "param",
          "target": [
            {
              "code": "Extension.extension:param",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.rule.param` is part of an existing definition because parent element `TestScript.rule` requires a cross-version extension.\nElement `TestScript.rule.param` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe parameter value can be dynamic at runtime."
            }
          ]
        },
        {
          "code": "TestScript.rule.param.name",
          "display": "name",
          "target": [
            {
              "code": "Extension.extension:param.extension:name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.rule.param.name` is part of an existing definition because parent element `TestScript.rule.param` requires a cross-version extension.\nElement `TestScript.rule.param.name` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe external rule template would be looking for the parameter by this name."
            }
          ]
        },
        {
          "code": "TestScript.rule.param.value",
          "display": "value",
          "target": [
            {
              "code": "Extension.extension:param.extension:value",
              "relationship": "equivalent",
              "comment": "Element `TestScript.rule.param.value` is part of an existing definition because parent element `TestScript.rule.param` requires a cross-version extension.\nElement `TestScript.rule.param.value` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThis value can be overwritten by the assert.rule.param.value i.e. TestScript.rule.param.value will be used if assert.rule.param.value is not specified.  The param value can be a string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.ruleset|0.1.0",
      "element": [
        {
          "code": "TestScript.ruleset",
          "display": "ruleset",
          "target": [
            {
              "code": "Extension",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.ruleset` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nEach rule within a ruleset should be treated by test engines as one assertion regardless of how many assertions are contained within the external rule template.  The impact of negative rule evaluation on test script execution is the same as an assertion failure which is described elsewhere in the TestScript resource."
            }
          ]
        },
        {
          "code": "TestScript.ruleset.resource",
          "display": "resource",
          "target": [
            {
              "code": "Extension.extension:resource",
              "relationship": "equivalent",
              "comment": "Element `TestScript.ruleset.resource` is part of an existing definition because parent element `TestScript.ruleset` requires a cross-version extension.\nElement `TestScript.ruleset.resource` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset.resource` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element)."
            }
          ]
        },
        {
          "code": "TestScript.ruleset.rule",
          "display": "rule",
          "target": [
            {
              "code": "Extension.extension:rule",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.ruleset.rule` is part of an existing definition because parent element `TestScript.ruleset` requires a cross-version extension.\nElement `TestScript.ruleset.rule` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThis qualifies each param name so that  a parameter with the same name can be used differently by the different rules with the ruleset."
            }
          ]
        },
        {
          "code": "TestScript.ruleset.rule.ruleId",
          "display": "ruleId",
          "target": [
            {
              "code": "Extension.extension:rule.extension:ruleId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.ruleset.rule.ruleId` is part of an existing definition because parent element `TestScript.ruleset.rule` requires a cross-version extension.\nElement `TestScript.ruleset.rule.ruleId` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset.rule.ruleId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element)."
            }
          ]
        },
        {
          "code": "TestScript.ruleset.rule.param",
          "display": "param",
          "target": [
            {
              "code": "Extension.extension:rule.extension:param",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.ruleset.rule.param` is part of an existing definition because parent element `TestScript.ruleset.rule` requires a cross-version extension.\nElement `TestScript.ruleset.rule.param` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe parameter value can be dynamic at runtime."
            }
          ]
        },
        {
          "code": "TestScript.ruleset.rule.param.name",
          "display": "name",
          "target": [
            {
              "code": "Extension.extension:rule.extension:param.extension:name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.ruleset.rule.param.name` is part of an existing definition because parent element `TestScript.ruleset.rule.param` requires a cross-version extension.\nElement `TestScript.ruleset.rule.param.name` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe external rule template would be looking for the parameter by this name."
            }
          ]
        },
        {
          "code": "TestScript.ruleset.rule.param.value",
          "display": "value",
          "target": [
            {
              "code": "Extension.extension:rule.extension:param.extension:value",
              "relationship": "equivalent",
              "comment": "Element `TestScript.ruleset.rule.param.value` is part of an existing definition because parent element `TestScript.ruleset.rule.param` requires a cross-version extension.\nElement `TestScript.ruleset.rule.param.value` has a context of TestScript based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.ruleset.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThis value can be overwritten by the assert.ruleset.rule.param.value i.e. TestScript.ruleset.rule.param.value will be used if assert.ruleset.rule.param.value is not specified.  The param value can be a string-representation of a number, string, or boolean that is expected. Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.setup.action.operation.resource|0.1.0",
      "element": [
        {
          "code": "TestScript.setup.action.operation.resource",
          "display": "resource",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.operation.resource` is mapped to FHIR R5 element `TestScript.setup.action.operation.resource` as `RelatedTo`.\nThe mappings for `TestScript.setup.action.operation.resource` do not cover the following types: code.\nThe mappings for `TestScript.setup.action.operation.resource` do not cover the following types based on type expansion: value.\nIf \"url\" element is specified, then \"targetId\", \"params\", and \"resource\" elements will be ignored as \"url\" element will have everything needed for constructing the request url.  If \"params\" element is specified, then \"targetId\" element is ignored. For FHIR operations that require a resource (e.g. \"read\" and \"vread\" operations), the \"resource\" element must be specified when \"params\" element is specified.  If \"url\" and \"params\" elements are absent, then the request url will be constructed from \"targetId\" fixture if present. For \"read\" operation, the resource and id values will be extracted from \"targetId\" fixture and used to construct the url. For \"vread\" and \"history\" operations, the versionId value will also be used."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.setup.action.assert.resource|0.1.0",
      "element": [
        {
          "code": "TestScript.setup.action.assert.resource",
          "display": "resource",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.resource` is mapped to FHIR R5 element `TestScript.setup.action.assert.resource` as `RelatedTo`.\nThe mappings for `TestScript.setup.action.assert.resource` do not cover the following types: code.\nThe mappings for `TestScript.setup.action.assert.resource` do not cover the following types based on type expansion: value.\nThis will be expected resource type in response body e.g. in read, vread, search, etc.  See http://hl7.org/fhir/STU3/resourcelist.html for complete list of resource types; e.g. <assert > <resourceType value=\"Patient\" </assert>."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.setup.action.assert.response|0.1.0",
      "element": [
        {
          "code": "TestScript.setup.action.assert.response",
          "display": "response",
          "target": [
            {
              "code": "Extension",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.response` is mapped to FHIR R5 element `TestScript.setup.action.assert.response` as `RelatedTo`.\nThe mappings for `TestScript.setup.action.assert.response` do not allow expression of the necessary codes, per the bindings on the source and target.\nThis is a shorter way of achieving similar verifications via \"assert.responseCode\".  If you need more control, then use \"assert.responseCode\"  e.g. <assert>  <contentType value=\"json\" />  <response value=\"okay\"/> </assert>."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.setup.action.assert.rule|0.1.0",
      "element": [
        {
          "code": "TestScript.setup.action.assert.rule",
          "display": "rule",
          "target": [
            {
              "code": "Extension",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.rule` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nEach rule should get evaluated by test engines as one assertion regardless of how many assertions are contained within the external rule template.  The impact of negative rule evaluation on test script execution is the same as an assertion failure which is descibed elsewhere in the TestScript resource."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.rule.ruleId",
          "display": "ruleId",
          "target": [
            {
              "code": "Extension.extension:ruleId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.rule.ruleId` is part of an existing definition because parent element `TestScript.setup.action.assert.rule` requires a cross-version extension.\nElement `TestScript.setup.action.assert.rule.ruleId` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.rule.ruleId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element)."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.rule.param",
          "display": "param",
          "target": [
            {
              "code": "Extension.extension:param",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.rule.param` is part of an existing definition because parent element `TestScript.setup.action.assert.rule` requires a cross-version extension.\nElement `TestScript.setup.action.assert.rule.param` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe parameter value can be dynamic at runtime."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.rule.param.name",
          "display": "name",
          "target": [
            {
              "code": "Extension.extension:param.extension:name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.rule.param.name` is part of an existing definition because parent element `TestScript.setup.action.assert.rule.param` requires a cross-version extension.\nElement `TestScript.setup.action.assert.rule.param.name` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe external rule template would be looking for the parameter by this name."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.rule.param.value",
          "display": "value",
          "target": [
            {
              "code": "Extension.extension:param.extension:value",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.rule.param.value` is part of an existing definition because parent element `TestScript.setup.action.assert.rule.param` requires a cross-version extension.\nElement `TestScript.setup.action.assert.rule.param.value` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThis value overwrites the value (if any) specified in TestScript.rule.param.value.  The param value can be a string-representation of a number, string, or boolean that is expected.  Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template."
            }
          ]
        }
      ]
    },
    {
      "source": "http://hl7.org/fhir/StructureDefinition/TestScript|3.0.2",
      "target": "http://hl7.org/fhir/3.0/StructureDefinition/extension-TestScript.setup.action.assert.ruleset|0.1.0",
      "element": [
        {
          "code": "TestScript.setup.action.assert.ruleset",
          "display": "ruleset",
          "target": [
            {
              "code": "Extension",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.ruleset` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nEach rule within a ruleset should get evaluated by test engines as a separate assertion.  The impact of negative rule evaluation on test script execution is the same as an assertion failure which is descibed elsewhere in the TestScript resource.  If the first rule within the ruleset results in a failed assertion, then test engines do not have to evaluate the rest of the rules within the ruleset."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.ruleset.rulesetId",
          "display": "rulesetId",
          "target": [
            {
              "code": "Extension.extension:rulesetId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.ruleset.rulesetId` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset` requires a cross-version extension.\nElement `TestScript.setup.action.assert.ruleset.rulesetId` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset.rulesetId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element)."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.ruleset.rule",
          "display": "rule",
          "target": [
            {
              "code": "Extension.extension:rule",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.ruleset.rule` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset` requires a cross-version extension.\nElement `TestScript.setup.action.assert.ruleset.rule` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset.rule` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThis qualifies each param name so that  a parameter with the same name can be used differently by the different rules with the ruleset."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.ruleset.rule.ruleId",
          "display": "ruleId",
          "target": [
            {
              "code": "Extension.extension:rule.extension:ruleId",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.ruleset.rule.ruleId` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule` requires a cross-version extension.\nElement `TestScript.setup.action.assert.ruleset.rule.ruleId` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset.rule.ruleId` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element)."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.ruleset.rule.param",
          "display": "param",
          "target": [
            {
              "code": "Extension.extension:rule.extension:param",
              "relationship": "source-is-broader-than-target",
              "comment": "Element `TestScript.setup.action.assert.ruleset.rule.param` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule` requires a cross-version extension.\nElement `TestScript.setup.action.assert.ruleset.rule.param` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset.rule.param` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe parameter value can be dynamic at runtime."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.ruleset.rule.param.name",
          "display": "name",
          "target": [
            {
              "code": "Extension.extension:rule.extension:param.extension:name",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.ruleset.rule.param.name` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule.param` requires a cross-version extension.\nElement `TestScript.setup.action.assert.ruleset.rule.param.name` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset.rule.param.name` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThe external rule template would be looking for the parameter by this name."
            }
          ]
        },
        {
          "code": "TestScript.setup.action.assert.ruleset.rule.param.value",
          "display": "value",
          "target": [
            {
              "code": "Extension.extension:rule.extension:param.extension:value",
              "relationship": "equivalent",
              "comment": "Element `TestScript.setup.action.assert.ruleset.rule.param.value` is part of an existing definition because parent element `TestScript.setup.action.assert.ruleset.rule.param` requires a cross-version extension.\nElement `TestScript.setup.action.assert.ruleset.rule.param.value` has a context of TestScript.setup.action.assert based on following the parent source element upwards and mapping to `TestScript`.\nElement `TestScript.setup.action.assert.ruleset.rule.param.value` has no mapping targets in FHIR R5. Typically, this is because the element has been added (is a new element).\nThis value overwrites the value (if any) specified in TestScript.ruleset.rule.param.value.  The param value can be a string-representation of a number, string, or boolean that is expected.  Test engines do have to look for placeholders (${}) and replace the variable placeholders with the variable values at runtime before supplying this value to the external rule template."
            }
          ]
        }
      ]
    }
  ]
}