PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.r6.examples@6.0.0-ballot3
    http://hl7.org/fhir/StructureDefinition/TestScript
description: A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification.
package_name: hl7.fhir.r6.examples
derivation: specialization
name: TestScript
type: TestScript
elements:
  description: {isModifier: false, short: Natural language description of the test script, type: markdown, mustSupport: false, isSummary: false, index: 14}
  date: {isModifier: false, short: Date last changed, type: dateTime, mustSupport: false, isSummary: true, index: 11}
  variable:
    constraint:
      tst-3: {human: 'Variable can only contain one of expression, headerField or path.', source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: expression.empty() or headerField.empty() or path.empty()}
    isModifier: false
    short: Placeholder for evaluated elements
    index: 47
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      name: {isModifier: false, short: Descriptive name for this variable, type: string, mustSupport: false, isSummary: false, index: 48}
      defaultValue: {isModifier: false, short: 'Default, hard-coded, or user-defined value for this variable', type: string, mustSupport: false, isSummary: false, index: 49}
      description: {isModifier: false, short: Natural language description of the variable, type: string, mustSupport: false, isSummary: false, index: 50}
      expression: {isModifier: false, short: The FHIRPath expression against the fixture body, type: string, mustSupport: false, isSummary: false, index: 51}
      headerField: {isModifier: false, short: HTTP header field name for source, type: string, mustSupport: false, isSummary: false, index: 52}
      hint: {isModifier: false, short: Hint help text for default value to enter, type: string, mustSupport: false, isSummary: false, index: 53}
      path: {isModifier: false, short: XPath or JSONPath against the fixture body, type: string, mustSupport: false, isSummary: false, index: 54}
      sourceId: {isModifier: false, short: Fixture Id of source expression or headerField within this variable, type: id, mustSupport: false, isSummary: false, index: 55}
    required: [name]
    isSummary: false
  publisher: {isModifier: false, short: Name of the publisher/steward (organization or individual), type: string, mustSupport: false, isSummary: true, index: 12}
  jurisdiction:
    isModifier: false
    short: Intended jurisdiction for test script (if applicable)
    type: CodeableConcept
    mustSupport: false
    array: true
    binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/jurisdiction'}
    isSummary: true
    index: 16
  purpose: {isModifier: false, short: Why this test script is defined, type: markdown, mustSupport: false, isSummary: false, index: 17}
  name: {isModifier: false, short: Name for this test script (computer friendly), type: string, mustSupport: false, isSummary: true, index: 7}
  testSystem:
    isModifier: false
    short: An abstract server representing a client or sender in a message exchange
    index: 20
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      index: {isModifier: false, short: The index of the abstract test system, type: positiveInt, mustSupport: false, isSummary: false, index: 21}
      title: {isModifier: false, short: Label for the test system, type: string, mustSupport: false, isSummary: false, index: 22}
      actor: {isModifier: false, short: Features met by the test system, type: canonical, mustSupport: false, array: true, isSummary: false, index: 23}
      description: {isModifier: false, short: Formatted information of this test system, type: markdown, mustSupport: false, isSummary: false, index: 24}
      url: {isModifier: false, short: The url path of this test system, type: url, mustSupport: false, isSummary: false, index: 25}
    required: [index, title]
    isSummary: false
  copyrightLabel: {isModifier: false, short: Copyright holder and year(s), type: string, mustSupport: false, isSummary: false, index: 19}
  useContext: {isModifier: false, short: The context that the content is intended to support, type: UsageContext, mustSupport: false, array: true, isSummary: true, index: 15}
  copyright: {isModifier: false, short: Use and/or publishing restrictions, type: markdown, mustSupport: false, isSummary: false, index: 18}
  versionAlgorithm:
    isModifier: false
    short: How to compare versions
    mustSupport: false
    choices: [versionAlgorithmString, versionAlgorithmCoding]
    isSummary: true
    index: 4
  experimental: {isModifier: false, short: For testing only - never for real usage, type: boolean, mustSupport: false, meaningWhenMissing: 'If absent, this resource is treated as though it is not experimental.', isSummary: true, index: 10}
  scope:
    isModifier: false
    short: Indication of the artifact(s) that are tested by this test case
    index: 38
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      artifact: {isModifier: false, short: The specific conformance artifact being tested, type: canonical, mustSupport: false, isSummary: false, index: 39}
      conformance:
        isModifier: false
        short: required | optional | strict
        type: CodeableConcept
        mustSupport: false
        meaningWhenMissing: required
        binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/testscript-scope-conformance-codes'}
        isSummary: false
        index: 40
      phase:
        isModifier: false
        short: unit | integration | production
        type: CodeableConcept
        mustSupport: false
        meaningWhenMissing: unit
        binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/testscript-scope-phase-codes'}
        isSummary: false
        index: 41
    required: [artifact]
    isSummary: false
  title: {isModifier: false, short: Name for this test script (human friendly), type: string, mustSupport: false, isSummary: true, index: 8}
  setup:
    isModifier: false
    short: A series of required setup operations before tests are executed
    type: BackboneElement
    mustSupport: false
    isSummary: false
    index: 56
    elements:
      action:
        constraint:
          tst-1: {human: Setup action SHALL contain only one of either a common or an operation or an assert., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: common.exists() xor operation.exists() xor assert.exists()}
        isModifier: false
        short: A setup common or operation or assert to perform
        index: 57
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          common:
            isModifier: false
            short: Links or references to common collection(s) of actions
            type: BackboneElement
            mustSupport: false
            isSummary: false
            index: 58
            elements:
              testScript: {isModifier: false, short: Canonical reference to the common TestScript instance, type: canonical, mustSupport: false, isSummary: false, index: 59}
              keyRef: {isModifier: false, short: Common key reference that identifies the common collection of actions to perform, type: id, mustSupport: false, isSummary: false, index: 60}
              parameter:
                isModifier: false
                short: Parameter(s) to convey input values to the identified common collection of actions
                index: 61
                type: BackboneElement
                mustSupport: false
                array: true
                elements:
                  name: {isModifier: false, short: Name of the parameter from the identified common collection of actions, type: string, mustSupport: false, isSummary: false, index: 62}
                  value: {isModifier: false, short: Value to assign to the parameter from the identified common collection of actions, type: string, mustSupport: false, isSummary: false, index: 63}
                required: [name, value]
                isSummary: false
            required: [keyRef]
          operation:
            constraint:
              tst-7: {human: Setup operation SHALL contain either sourceId or targetId or params or url., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history'))}
            isModifier: false
            short: The setup operation to perform
            index: 64
            type: BackboneElement
            mustSupport: false
            elements:
              description: {isModifier: false, short: Tracking/reporting operation description, type: string, mustSupport: false, isSummary: false, index: 68}
              method:
                isModifier: false
                short: delete | get | options | patch | post | put | head
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/http-operations|6.0.0-ballot3'}
                isSummary: false
                index: 73
              targetId: {isModifier: false, short: 'Id of fixture used for extracting the [id],  [type], and [vid] for GET requests', type: id, mustSupport: false, isSummary: false, index: 82}
              requestHeader:
                isModifier: false
                short: Each operation can have one or more header elements
                index: 76
                type: BackboneElement
                mustSupport: false
                array: true
                elements:
                  field: {isModifier: false, short: HTTP header field name, type: string, mustSupport: false, isSummary: false, index: 77}
                  value: {isModifier: false, short: HTTP headerfield value, type: string, mustSupport: false, isSummary: false, index: 78}
                required: [value, field]
                isSummary: false
              params: {isModifier: false, short: Explicitly defined path parameters, type: string, mustSupport: false, isSummary: false, index: 75}
              type:
                isModifier: false
                short: The operation code type that will be executed
                type: Coding
                mustSupport: false
                binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/testscript-operation-codes'}
                isSummary: false
                index: 65
              requestId: {isModifier: false, short: Fixture Id of mapped request, type: id, mustSupport: false, isSummary: false, index: 79}
              encodeRequestUrl: {isModifier: false, short: Whether or not to send the request url in encoded format, type: boolean, mustSupport: false, isSummary: false, index: 72}
              label: {isModifier: false, short: Tracking/logging operation label, type: string, mustSupport: false, isSummary: false, index: 67}
              resource:
                isModifier: false
                short: Resource type
                type: uri
                mustSupport: false
                binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/concrete-fhir-types'}
                isSummary: false
                index: 66
              url: {isModifier: false, short: Request URL, type: string, mustSupport: false, isSummary: false, index: 83}
              origin: {isModifier: false, short: Server initiating the request, type: integer, mustSupport: false, isSummary: false, index: 74}
              contentType:
                isModifier: false
                short: Mime type of the request payload contents, with charset etc
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/supplemented-mimetypes|6.0.0-ballot3'}
                isSummary: false
                index: 70
              sourceId: {isModifier: false, short: Fixture Id of body for PUT and POST requests, type: id, mustSupport: false, isSummary: false, index: 81}
              responseId: {isModifier: false, short: Fixture Id of mapped response, type: id, mustSupport: false, isSummary: false, index: 80}
              destination: {isModifier: false, short: Server responding to the request, type: integer, mustSupport: false, isSummary: false, index: 71}
              accept:
                isModifier: false
                short: Mime type to accept in the payload of the response, with charset etc
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/supplemented-mimetypes|6.0.0-ballot3'}
                isSummary: false
                index: 69
            required: [encodeRequestUrl]
            isSummary: false
          assert:
            constraint:
              tst-12: {human: Setup action assert response and responseCode SHALL be empty when direction equals request, source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'}
              tst-5: {human: Only a single assertion SHALL be present within setup action assert element., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) or (((expression.count() + minimumId.count() <=2) or (expression.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1)) or (((path.count() + minimumId.count() <=2) or (path.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1))}
              tst-10: {human: 'Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.', source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())}
            isModifier: false
            short: The assertion to perform
            index: 84
            type: BackboneElement
            mustSupport: false
            elements:
              response:
                isModifier: false
                short: continue | switchingProtocols | okay | created | accepted | nonAuthoritativeInformation | noContent | resetContent | partialContent | multipleChoices | movedPermanently | found | seeOther | notModified | useProxy | temporaryRedirect | permanentRedirect | badRequest | unauthorized | paymentRequired | forbidden | notFound | methodNotAllowed | notAcceptable | proxyAuthenticationRequired | requestTimeout | conflict | gone | lengthRequired | preconditionFailed | contentTooLarge | uriTooLong | unsupportedMediaType | rangeNotSatisfiable | expectationFailed | misdirectedRequest | unprocessableContent | upgradeRequired | internalServerError | notImplemented | badGateway | serviceUnavailable | gatewayTimeout | httpVersionNotSupported
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/assert-response-code-types|6.0.0-ballot3'}
                isSummary: false
                index: 102
              description: {isModifier: false, short: Tracking/reporting assertion description, type: string, mustSupport: false, isSummary: false, index: 86}
              path: {isModifier: false, short: XPath or JSONPath expression, type: string, mustSupport: false, isSummary: false, index: 98}
              headerField: {isModifier: false, short: HTTP header field name, type: string, mustSupport: false, isSummary: false, index: 94}
              compareToSourceId: {isModifier: false, short: Id of the source fixture to be evaluated, type: string, mustSupport: false, isSummary: false, index: 88}
              requirement:
                isModifier: false
                short: Links or references to the testing requirements
                index: 109
                type: BackboneElement
                mustSupport: false
                array: true
                elements:
                  reference: {isModifier: false, short: Canonical reference to the Requirements instance, type: canonical, mustSupport: false, isSummary: false, index: 110}
                  key: {isModifier: false, short: Requirements statement key identifier, type: id, mustSupport: false, isSummary: false, index: 111}
                required: [key, reference]
                isSummary: false
              expression: {isModifier: false, short: The FHIRPath expression to be evaluated, type: string, mustSupport: false, isSummary: false, index: 93}
              stopTestOnFail: {isModifier: false, short: 'If this assert fails, will the current test execution stop?', type: boolean, mustSupport: false, isSummary: false, index: 105}
              defaultManualCompletion:
                isModifier: false
                short: fail | pass | skip | stop
                type: code
                mustSupport: false
                meaningWhenMissing: If defaultManualCompletion is not specified, then the default manual completion outcome will be 'skip'.
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/assert-manual-completion-codes|6.0.0-ballot3'}
                isSummary: false
                index: 92
              value: {isModifier: false, short: The value to compare to, type: string, mustSupport: false, isSummary: false, index: 107}
              warningOnly: {isModifier: false, short: 'Will this assert produce a warning only on error?', type: boolean, mustSupport: false, isSummary: false, index: 108}
              compareToSourceExpression: {isModifier: false, short: The FHIRPath expression to evaluate against the source fixture, type: string, mustSupport: false, isSummary: false, index: 89}
              label: {isModifier: false, short: Tracking/logging assertion label, type: string, mustSupport: false, isSummary: false, index: 85}
              resource:
                isModifier: false
                short: Resource type
                type: uri
                mustSupport: false
                binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/concrete-fhir-types'}
                isSummary: false
                index: 101
              responseCode: {isModifier: false, short: HTTP response code to test, type: string, mustSupport: false, isSummary: false, index: 103}
              minimumId: {isModifier: false, short: Fixture Id of minimum content resource, type: string, mustSupport: false, isSummary: false, index: 95}
              operator:
                isModifier: false
                short: equals | notEquals | in | notIn | greaterThan | lessThan | empty | notEmpty | contains | notContains | eval | manualEval
                type: code
                mustSupport: false
                meaningWhenMissing: If operator is not specified, then the default conditional behavior is implemented as defined in the Testing FHIR page Assertions table - see Comments.
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/assert-operator-codes|6.0.0-ballot3'}
                isSummary: false
                index: 97
              contentType:
                isModifier: false
                short: Mime type to compare against the 'Content-Type' header
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/supplemented-mimetypes|6.0.0-ballot3'}
                isSummary: false
                index: 91
              compareToSourcePath: {isModifier: false, short: XPath or JSONPath expression to evaluate against the source fixture, type: string, mustSupport: false, isSummary: false, index: 90}
              validateProfileId: {isModifier: false, short: Profile Id of validation profile reference, type: id, mustSupport: false, isSummary: false, index: 106}
              sourceId: {isModifier: false, short: Fixture Id of source expression or headerField, type: id, mustSupport: false, isSummary: false, index: 104}
              requestMethod:
                isModifier: false
                short: delete | get | options | patch | post | put | head
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/http-operations|6.0.0-ballot3'}
                isSummary: false
                index: 99
              requestURL: {isModifier: false, short: Request URL comparison value, type: string, mustSupport: false, isSummary: false, index: 100}
              direction:
                isModifier: false
                short: response | request
                type: code
                mustSupport: false
                binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/assert-direction-codes|6.0.0-ballot3'}
                isSummary: false
                index: 87
              navigationLinks: {isModifier: false, short: 'Perform validation on navigation links?', type: boolean, mustSupport: false, isSummary: false, index: 96}
            required: [warningOnly, stopTestOnFail]
            isSummary: false
        isSummary: false
  versionAlgorithmCoding: {isModifier: false, short: How to compare versions, type: Coding, mustSupport: false, choiceOf: versionAlgorithm, isSummary: true, index: 6}
  common:
    isModifier: false
    short: A common collection of actions in this script
    index: 123
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      key: {isModifier: false, short: Key that identifies this common collection of actions, type: id, mustSupport: false, isSummary: false, index: 124}
      name: {isModifier: false, short: Tracking/logging name of this common collection of actions, type: string, mustSupport: false, isSummary: false, index: 125}
      description: {isModifier: false, short: Tracking/reporting short description of this common collection of actions, type: string, mustSupport: false, isSummary: false, index: 126}
      parameter:
        isModifier: false
        short: Parameter(s) to convey input values to this common collection of actions in this script
        type: BackboneElement
        mustSupport: false
        array: true
        isSummary: false
        index: 127
        elements:
          name: {isModifier: false, short: Tracking/logging name of this parameter to be used in this common collection of actions, type: string, mustSupport: false, isSummary: false, index: 128}
          description: {isModifier: false, short: Tracking/reporting short description of this parameter to be used this common collection of actions, type: string, mustSupport: false, isSummary: false, index: 129}
      action:
        constraint:
          tst-14: {human: Common action SHALL contain either an operation or assert but not both., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: operation.exists() xor assert.exists()}
        min: 1
        isModifier: false
        short: A common operation or assert that can be re-used in this script
        index: 130
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          operation:
            constraint:
              tst-15: {human: Common operation SHALL contain either sourceId or targetId or params or url., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))}
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, operation]
            isModifier: false
            short: The common operation that can be re-used in this script
            mustSupport: false
            isSummary: false
            index: 131
          assert:
            constraint:
              tst-16: {human: 'Common action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.', source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())}
              tst-17: {human: Common action assert response and response and responseCode SHALL be empty when direction equals request, source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'}
              tst-18: {human: Only a single assertion SHALL be present within common action assert element., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) or (((expression.count() + minimumId.count() <=2) or (expression.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1)) or (((path.count() + minimumId.count() <=2) or (path.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1))}
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, assert]
            isModifier: false
            short: The common assertion to perform
            mustSupport: false
            isSummary: false
            index: 132
        isSummary: false
    required: [key, action]
    isSummary: false
  status:
    isModifier: true
    short: draft | active | retired | unknown
    index: 9
    type: code
    mustSupport: false
    binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/publication-status|6.0.0-ballot3'}
    isModifierReason: This is labeled as "Is Modifier" because applications should not use a retired {{title}} without due consideration
    isSummary: true
  url:
    constraint:
      cnl-1: {human: 'URL should not contain | or # - these characters make processing canonical references problematic', source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: warning, expression: 'exists() implies matches(''^[^|# ]+$'')'}
    isModifier: false
    short: Canonical identifier for this test script, represented as a URI (globally unique)
    type: uri
    mustSupport: false
    isSummary: true
    index: 0
  identifier: {isModifier: false, short: Additional identifier for the test script, type: Identifier, mustSupport: false, array: true, isSummary: true, index: 1}
  versionAlgorithmString: {isModifier: false, short: How to compare versions, type: string, mustSupport: false, choiceOf: versionAlgorithm, isSummary: true, index: 5}
  fixture:
    isModifier: false
    short: Fixture in the test script - by reference (uri)
    index: 42
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      autocreate: {isModifier: false, short: Whether or not to implicitly create the fixture during setup, type: boolean, mustSupport: false, isSummary: false, index: 43}
      autodelete: {isModifier: false, short: Whether or not to implicitly delete the fixture during teardown, type: boolean, mustSupport: false, isSummary: false, index: 44}
      resource:
        isModifier: false
        short: Reference of the resource
        refers: ['http://hl7.org/fhir/StructureDefinition/Resource']
        type: Reference
        mustSupport: false
        isSummary: false
        index: 45
    required: [autodelete, autocreate]
    isSummary: false
  version: {isModifier: false, short: Business version of the test script, type: string, mustSupport: false, isSummary: true, index: 2}
  teardown:
    isModifier: false
    short: A series of required clean up steps
    type: BackboneElement
    mustSupport: false
    isSummary: false
    index: 119
    elements:
      action:
        min: 1
        isModifier: false
        short: One or more teardown operations to perform
        index: 120
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          common:
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, common]
            isModifier: false
            short: Links or references to common collection(s) of actions
            mustSupport: false
            isSummary: false
            index: 121
          operation:
            constraint:
              tst-9: {human: Teardown operation SHALL contain either sourceId or targetId or params or url., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))}
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, operation]
            isModifier: false
            short: The teardown operation to perform
            mustSupport: false
            isSummary: false
            index: 122
        required: [operation]
        isSummary: false
    required: [action]
  contact: {isModifier: false, short: Contact details for the publisher, type: ContactDetail, mustSupport: false, array: true, isSummary: true, index: 13}
  metadata:
    constraint:
      tst-4: {human: TestScript metadata capability SHALL contain required or validated or both., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: capability.required.exists() or capability.validated.exists()}
    isModifier: false
    short: Required capability that is assumed to function correctly on the FHIR server being tested
    index: 26
    type: BackboneElement
    mustSupport: false
    elements:
      link:
        isModifier: false
        short: Links to the FHIR specification
        index: 27
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          url: {isModifier: false, short: URL to the specification, type: uri, mustSupport: false, isSummary: false, index: 28}
          description: {isModifier: false, short: Short description, type: string, mustSupport: false, isSummary: false, index: 29}
        required: [url]
        isSummary: false
      capability:
        min: 1
        isModifier: false
        short: Capabilities  that are assumed to function correctly on the FHIR server being tested
        index: 30
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          required: {isModifier: false, short: 'Are the capabilities required?', type: boolean, mustSupport: false, isSummary: false, index: 31}
          validated: {isModifier: false, short: 'Are the capabilities validated?', type: boolean, mustSupport: false, isSummary: false, index: 32}
          description: {isModifier: false, short: The expected capabilities of the server, type: string, mustSupport: false, isSummary: false, index: 33}
          origin: {isModifier: false, short: Which origin server these requirements apply to, type: integer, mustSupport: false, array: true, isSummary: false, index: 34}
          destination: {isModifier: false, short: Which server these requirements apply to, type: integer, mustSupport: false, isSummary: false, index: 35}
          link: {isModifier: false, short: Links to the FHIR specification, type: uri, mustSupport: false, array: true, isSummary: false, index: 36}
          capabilities: {isModifier: false, short: Required Capability Statement, type: canonical, mustSupport: false, isSummary: false, index: 37}
        required: [capabilities, required, validated]
        isSummary: false
    required: [capability]
    isSummary: false
  test:
    isModifier: false
    short: A test in this script
    type: BackboneElement
    mustSupport: false
    array: true
    isSummary: false
    index: 112
    elements:
      name: {isModifier: false, short: Tracking/logging name of this test, type: string, mustSupport: false, isSummary: false, index: 113}
      description: {isModifier: false, short: Tracking/reporting short description of the test, type: string, mustSupport: false, isSummary: false, index: 114}
      action:
        constraint:
          tst-2: {human: Test action SHALL contain only one of either a common or an operation or an assert., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: common.exists() xor operation.exists() xor assert.exists()}
        isModifier: false
        short: A test operation or assert to perform
        index: 115
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          common:
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, common]
            isModifier: false
            short: Links or references to common collection(s) of actions
            mustSupport: false
            isSummary: false
            index: 116
          operation:
            constraint:
              tst-8: {human: Test operation SHALL contain either sourceId or targetId or params or url., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))}
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, operation]
            isModifier: false
            short: The setup operation to perform
            mustSupport: false
            isSummary: false
            index: 117
          assert:
            constraint:
              tst-11: {human: 'Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.', source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())}
              tst-13: {human: Test action assert response and response and responseCode SHALL be empty when direction equals request, source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: (response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'}
              tst-6: {human: Only a single assertion SHALL be present within test action assert element., source: 'http://hl7.org/fhir/StructureDefinition/TestScript', severity: error, expression: extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) or (((expression.count() + minimumId.count() <=2) or (expression.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1)) or (((path.count() + minimumId.count() <=2) or (path.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1))}
            elementReference: ['http://hl7.org/fhir/StructureDefinition/TestScript', elements, setup, elements, action, elements, assert]
            isModifier: false
            short: The setup assertion to perform
            mustSupport: false
            isSummary: false
            index: 118
        isSummary: false
  profile: {isModifier: false, short: Reference of the validation profile, type: canonical, mustSupport: false, array: true, isSummary: false, index: 46}
package_version: 6.0.0-ballot3
class: resource
kind: resource
url: http://hl7.org/fhir/StructureDefinition/TestScript
base: http://hl7.org/fhir/StructureDefinition/DomainResource
version: 6.0.0-ballot3
required: [name, status]