### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: t/resources/structureDefinition/TestScript.json
### ----------------------------------------------------
### -- Chunk 25 of 27
]"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "TestScript.copyright",
      "path" : "TestScript.copyright",
      "short" : "Use and/or publishing restrictions",
      "definition" : "A copyright statement relating to the test script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the test script.",
      "requirements" : "Consumers must be able to determine any legal restrictions on the use of the test script and/or its content.",
      "alias" : ["License",
      "Restrictions"],
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "markdown"
      }],
      "mapping" : [{
        "identity" : "workflow",
        "map" : "Definition.copyright"
      },
      {
        "identity" : "objimpl",
        "map" : "no-gen-base"
      }]
    },
    {
      "id" : "TestScript.origin",
      "path" : "TestScript.origin",
      "short" : "An abstract server representing a client or sender in a message exchange",
      "definition" : "An abstract server used in operations within this test script in the origin element.",
      "comment" : "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.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }]
    },
    {
      "id" : "TestScript.origin.index",
      "path" : "TestScript.origin.index",
      "short" : "The index of the abstract origin server starting at 1",
      "definition" : "Abstract name given to an origin server in this test script.  The name is provided as a number starting at 1.",
      "comment" : "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 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.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "integer"
      }]
    },
    {
      "id" : "TestScript.origin.profile",
      "path" : "TestScript.origin.profile",
      "short" : "FHIR-Client | FHIR-SDC-FormFiller",
      "definition" : "The type of origin profile the test system supports.",
      "comment" : "Must be a \"sender\"/\"client\" profile.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "Coding"
      }],
      "meaningWhenMissing" : "FHIR-Client",
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "TestScriptProfileOriginType"
        }],
        "strength" : "extensible",
        "description" : "The type of origin profile the test system supports.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/testscript-profile-origin-types"
      }
    },
    {
      "id" : "TestScript.destination",
      "path" : "TestScript.destination",
      "short" : "An abstract server representing a destination or receiver in a message exchange",
      "definition" : "An abstract server used in operations within this test script in the destination element.",
      "comment" : "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.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }]
    },
    {
      "id" : "TestScript.destination.index",
      "path" : "TestScript.destination.index",
      "short" : "The index of the abstract destination server starting at 1",
      "definition" : "Abstract name given to a destination server in this test script.  The name is provided as a number starting at 1.",
      "comment" : "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). \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.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "integer"
      }]
    },
    {
      "id" : "TestScript.destination.profile",
      "path" : "TestScript.destination.profile",
      "short" : "FHIR-Server | FHIR-SDC-FormManager | FHIR-SDC-FormReceiver | FHIR-SDC-FormProcessor",
      "definition" : "The type of destination profile the test system supports.",
      "comment" : "Must be a \"receiver\"/\"server\" profile.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "Coding"
      }],
      "meaningWhenMissing" : "FHIR-Server",
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "TestScriptProfileDestinationType"
        }],
        "strength" : "extensible",
        "description" : "The type of destination profile the test system supports.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/testscript-profile-destination-types"
      }
    },
    {
      "id" : "TestScript.metadata",
      "path" : "TestScript.metadata",
      "short" : "Required capability that is assumed to function correctly on the FHIR server being tested",
      "definition" : "The required capability must exist and are assumed to function correctly on the FHIR server being tested.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "tst-4",
        "severity" : "error",
        "human" : "TestScript metadata capability SHALL contain required or validated or both.",
        "expression" : "capability.required.exists() or capability.validated.exists()",
        "xpath" : "f:capability/f:required or f:capability/f:validated or (f:capability/f:required and f:capability/f:validated)"
      }]
    },
    {
      "id" : "TestScript.metadata.link",
      "path" : "TestScript.metadata.link",
      "short" : "Links to the FHIR specification",
      "definition" : "A link to the FHIR specification that this test is covering.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }]
    },
    {
      "id" : "TestScript.metadata.link.url",
      "path" : "TestScript.metadata.link.url",
      "short" : "URL to the specification",
      "definition" : "URL to a particular requirement or feature within the FHIR specification.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "uri"
      }]
    },
    {
      "id" : "TestScript.metadata.link.description",
      "path" : "TestScript.metadata.link.description",
      "short" : "Short description",
      "definition" : "Short description of the link.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.metadata.capability",
      "path" : "TestScript.metadata.capability",
      "short" : "Capabilities  that are assumed to function correctly on the FHIR server being tested",
      "definition" : "Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.",
      "comment" : "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.",
      "min" : 1,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.required",
      "path" : "TestScript.metadata.capability.required",
      "short" : "Are the capabilities required?",
      "definition" : "Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.validated",
      "path" : "TestScript.metadata.capability.validated",
      "short" : "Are the capabilities validated?",
      "definition" : "Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.description",
      "path" : "TestScript.metadata.capability.description",
      "short" : "The expected capabilities of the server",
      "definition" : "Description of the capabilities that this test script is requiring the server to support.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.origin",
      "path" : "TestScript.metadata.capability.origin",
      "short" : "Which origin server these requirements apply to",
      "definition" : "Which origin server these requirements apply to.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "integer"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.destination",
      "path" : "TestScript.metadata.capability.destination",
      "short" : "Which server these requirements apply to",
      "definition" : "Which server these requirements apply to.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "integer"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.link",
      "path" : "TestScript.metadata.capability.link",
      "short" : "Links to the FHIR specification",
      "definition" : "Links to the FHIR specification that describes this interaction and the resources involved in more detail.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "uri"
      }]
    },
    {
      "id" : "TestScript.metadata.capability.capabilities",
      "path" : "TestScript.metadata.capability.capabilities",
      "short" : "Required Capability Statement",
      "definition" : "Minimum capabilities required of server for test script to execute successfully.   If server does not meet at a minimum the referenced capability statement, then all tests in this script are skipped.",
      "comment" : "The conformance statement of the server has to contain at a minimum the contents of the reference pointed to by this element.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "canonical",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/CapabilityStatement"]
      }]
    },
    {
      "id" : "TestScript.fixture",
      "path" : "TestScript.fixture",
      "short" : "Fixture in the test script - by reference (uri)",
      "definition" : "Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }]
    },
    {
      "id" : "TestScript.fixture.autocreate",
      "path" : "TestScript.fixture.autocreate",
      "short" : "Whether or not to implicitly create the fixture during setup",
      "definition" : "Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "TestScript.fixture.autodelete",
      "path" : "TestScript.fixture.autodelete",
      "short" : "Whether or not to implicitly delete the fixture during teardown",
      "definition" : "Whether or not to implicitly delete the fixture during teardown. If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "TestScript.fixture.resource",
      "path" : "TestScript.fixture.resource",
      "short" : "Reference of the resource",
      "definition" : "Reference to the resource (containing the contents of the resource needed for operations).",
      "comment" : "See http://build.fhir.org/resourcelist.html for complete list of resource types.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Reference",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/Resource"]
      }]
    },
    {
      "id" : "TestScript.profile",
      "path" : "TestScript.profile",
      "short" : "Reference of the validation profile",
      "definition" : "Reference to the profile to be used for validation.",
      "comment" : "See http://build.fhir.org/resourcelist.html for complete list of resource types.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "Reference",
        "targetProfile" : ["http://hl7.org/fhir/StructureDefinition/Resource"]
      }]
    },
    {
      "id" : "TestScript.variable",
      "path" : "TestScript.variable",
      "short" : "Placeholder for evaluated elements",
      "definition" : "Variable is set based either on element value in response body or on header field value in the response headers.",
      "comment" : "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.",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "tst-3",
        "severity" : "error",
        "human" : "Variable can only contain one of expression, headerField or path.",
        "expression" : "expression.empty() or headerField.empty() or path.empty()",
        "xpath" : "not(f:expression and f:headerField and f:path)"
      }]
    },
    {
      "id" : "TestScript.variable.name",
      "path" : "TestScript.variable.name",
      "short" : "Descriptive name for this variable",
      "definition" : "Descriptive name for this variable.",
      "comment" : "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.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.defaultValue",
      "path" : "TestScript.variable.defaultValue",
      "short" : "Default, hard-coded, or user-defined value for this variable",
      "definition" : "A default, hard-coded, or user-defined value for this variable.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.description",
      "path" : "TestScript.variable.description",
      "short" : "Natural language description of the variable",
      "definition" : "A free text natural language description of the variable and its purpose.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.expression",
      "path" : "TestScript.variable.expression",
      "short" : "The FHIRPath expression against the fixture body",
      "definition" : "The FHIRPath expression to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.headerField",
      "path" : "TestScript.variable.headerField",
      "short" : "HTTP header field name for source",
      "definition" : "Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.hint",
      "path" : "TestScript.variable.hint",
      "short" : "Hint help text for default value to enter",
      "definition" : "Displayable text string with hint help information to the user when entering a default value.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.path",
      "path" : "TestScript.variable.path",
      "short" : "XPath or JSONPath against the fixture body",
      "definition" : "XPath or JSONPath to evaluate against the fixture body.  When variables are defined, only one of either expression, headerField or path must be specified.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.variable.sourceId",
      "path" : "TestScript.variable.sourceId",
      "short" : "Fixture Id of source expression or headerField within this variable",
      "definition" : "Fixture to evaluate the XPath/JSONPath expression or the headerField  against within this variable.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "id"
      }]
    },
    {
      "id" : "TestScript.setup",
      "path" : "TestScript.setup",
      "short" : "A series of required setup operations before tests are executed",
      "definition" : "A series of required setup operations before tests are executed.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "BackboneElement"
      }]
    },
    {
      "id" : "TestScript.setup.action",
      "extension" : [{
        "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name",
        "valueString" : "SetupAction"
      }],
      "path" : "TestScript.setup.action",
      "short" : "A setup operation or assert to perform",
      "definition" : "Action would contain either an operation or an assertion.",
      "comment" : "An action should contain either an operation or an assertion but not both.  It can contain any number of variables.",
      "min" : 1,
      "max" : "*",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "tst-1",
        "severity" : "error",
        "human" : "Setup action SHALL contain either an operation or assert but not both.",
        "expression" : "operation.exists() xor assert.exists()",
        "xpath" : "(f:operation or f:assert) and not(f:operation and f:assert)"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation",
      "path" : "TestScript.setup.action.operation",
      "short" : "The setup operation to perform",
      "definition" : "The operation to perform.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "tst-7",
        "severity" : "error",
        "human" : "Setup operation SHALL contain either sourceId or targetId or params or url.",
        "expression" : "sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history'))",
        "xpath" : "f:sourceId or ((f:targetId or f:url or f:params) and (count(f:targetId) + count(f:url) + count(f:params) =1)) or (f:type/f:code/@value='capabilities' or f:type/f:code/@value='search' or f:type/f:code/@value='transaction' or f:type/f:code/@value='history')"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.type",
      "path" : "TestScript.setup.action.operation.type",
      "short" : "The operation code type that will be executed",
      "definition" : "Server interaction or operation type.",
      "comment" : "See http://build.fhir.org/http.html for list of server interactions.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Coding"
      }],
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "TestScriptOperationCode"
        }],
        "strength" : "extensible",
        "description" : "The allowable operation code types.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/testscript-operation-codes"
      }
    },
    {
      "id" : "TestScript.setup.action.operation.resource",
      "path" : "TestScript.setup.action.operation.resource",
      "short" : "Resource type",
      "definition" : "The type of the resource.  See http://build.fhir.org/resourcelist.html.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "FHIRDefinedType"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "A list of all the concrete types defined in this version of the FHIR specification - Data Types and Resource Types.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/defined-types|4.0.0"
      }
    },
    {
      "id" : "TestScript.setup.action.operation.label",
      "path" : "TestScript.setup.action.operation.label",
      "short" : "Tracking/logging operation label",
      "definition" : "The label would be used for tracking/logging purposes by test engines.",
      "comment" : "This has no impact on the verification itself.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.description",
      "path" : "TestScript.setup.action.operation.description",
      "short" : "Tracking/reporting operation description",
      "definition" : "The description would be used by test engines for tracking and reporting purposes.",
      "comment" : "This has no impact on the verification itself.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "string"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.accept",
      "path" : "TestScript.setup.action.operation.accept",
      "short" : "Mime type to accept in the payload of the response, with charset etc.",
      "definition" : "The mime-type to use for RESTful operation in the 'Accept' header.",
      "comment" : "If this is specified, then test engine shall set the 'Accept' header to the corresponding value.  If you'd like to explicitly set the 'Accept' to some other value then use the 'requestHeader' element.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "example" : [{
        "label" : "General",
        "valueCode" : "application/fhir+xml"
      }],
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "MimeType"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "The mime type of an attachment. Any valid mime type is allowed.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/mimetypes|4.0.0"
      }
    },
    {
      "id" : "TestScript.setup.action.operation.contentType",
      "path" : "TestScript.setup.action.operation.contentType",
      "short" : "Mime type of the request payload contents, with charset etc.",
      "definition" : "The mime-type to use for RESTful operation in the 'Content-Type' header.",
      "comment" : "If this is specified, then test engine shall set the 'Content-Type' header to the corresponding value.  If you'd like to explicitly set the 'Content-Type' to some other value then use the 'requestHeader' element.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "example" : [{
        "label" : "General",
        "valueCode" : "application/fhir+xml"
      }],
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "MimeType"
        },
        {
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
          "valueBoolean" : true
        }],
        "strength" : "required",
        "description" : "The mime type of an attachment. Any valid mime type is allowed.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/mimetypes|4.0.0"
      }
    },
    {
      "id" : "TestScript.setup.action.operation.destination",
      "path" : "TestScript.setup.action.operation.destination",
      "short" : "Server responding to the request",
      "definition" : "The server where the request message is destined for.  Must be one of the server numbers listed in TestScript.destination section.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "integer"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.encodeRequestUrl",
      "path" : "TestScript.setup.action.operation.encodeRequestUrl",
      "short" : "Whether or not to send the request url in encoded format",
      "definition" : "Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.",
      "min" : 1,
      "max" : "1",
      "type" : [{
        "code" : "boolean"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.method",
      "path" : "TestScript.setup.action.operation.method",
      "short" : "delete | get | options | patch | post | put | head",
      "definition" : "The HTTP method the test engine MUST use for this operation regardless of any other operation details.",
      "comment" : "The primary purpose of the explicit HTTP method is support of  HTTP POST method invocation of the FHIR search. Other uses will include support of negative testing.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "code"
      }],
      "binding" : {
        "extension" : [{
          "url" : "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
          "valueString" : "TestScriptRequestMethodCode"
        }],
        "strength" : "required",
        "description" : "The allowable request method or HTTP operation codes.",
        "valueSet" : "http://hl7.org/fhir/ValueSet/http-operations|4.0.0"
      }
    },
    {
      "id" : "TestScript.setup.action.operation.origin",
      "path" : "TestScript.setup.action.operation.origin",
      "short" : "Server initiating the request",
      "definition" : "The server where the request message originates from.  Must be one of the server numbers listed in TestScript.origin section.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "integer"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.params",
      "path" : "TestScript.setup.action.operation.params",
      "short" : "Explicitly defined path parameters",
      "definition" : "Path plus parameters after [type].  Used to set parts of the request URL explicitly.",
      "comment" : "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