### ----------------------------------------------------
### -- FHIR
### -- Licenses: Artistic-2.0
### -- Authors: Hugh Simpson
### -- File: t/resources/structureDefinition/TestScript.json
### ----------------------------------------------------
### -- Chunk 22 of 27
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.extension",
      "path" : "TestScript.setup.action.operation.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.modifierExtension",
      "path" : "TestScript.setup.action.operation.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.type",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "Coding"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.resource",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.label",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.description",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.accept",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "example" : [{
        "label" : "General",
        "valueCode" : "application/fhir+xml"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.contentType",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "example" : [{
        "label" : "General",
        "valueCode" : "application/fhir+xml"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.destination",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "integer"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.encodeRequestUrl",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "boolean"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.method",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "code"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.origin",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "integer"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "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]/[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.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.params",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.requestHeader",
      "path" : "TestScript.setup.action.operation.requestHeader",
      "short" : "Each operation can have one or more header elements",
      "definition" : "Header elements would be used to set HTTP headers.",
      "comment" : "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://build.fhir.org/http.html#2.1.0.5.1 - \"If-Match\" header.  See http://build.fhir.org/http.html#2.1.0.11 - Conditional Create using \"If-None-Exist\".  See http://build.fhir.org/http.html#2.1.0.13.1 - Invalid \"Content-Type\" header for negative testing. - etc.",
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "TestScript.setup.action.operation.requestHeader",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.requestHeader.id",
      "path" : "TestScript.setup.action.operation.requestHeader.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.requestHeader.extension",
      "path" : "TestScript.setup.action.operation.requestHeader.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "alias" : ["extensions",
      "user content"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "Element.extension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.requestHeader.modifierExtension",
      "path" : "TestScript.setup.action.operation.requestHeader.modifierExtension",
      "short" : "Extensions that cannot be ignored even if unrecognized",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
      "requirements" : "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
      "alias" : ["extensions",
      "user content",
      "modifiers"],
      "min" : 0,
      "max" : "*",
      "base" : {
        "path" : "BackboneElement.modifierExtension",
        "min" : 0,
        "max" : "*"
      },
      "type" : [{
        "code" : "Extension"
      }],
      "isModifier" : true,
      "isModifierReason" : "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
      "isSummary" : true,
      "mapping" : [{
        "identity" : "rim",
        "map" : "N/A"
      }]
    },
    {
      "id" : "TestScript.setup.action.operation.requestHeader.field",
      "path" : "TestScript.setup.action.operation.requestHeader.field",
      "short" : "HTTP header field name",
      "definition" : "The HTTP header field e.g. \"Accept\".",
      "comment" : "If header element is specified, then field is required.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.requestHeader.field",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.requestHeader.value",
      "path" : "TestScript.setup.action.operation.requestHeader.value",
      "short" : "HTTP headerfield value",
      "definition" : "The value of the header e.g. \"application/fhir+xml\".",
      "comment" : "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.",
      "min" : 1,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.requestHeader.value",
        "min" : 1,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.requestId",
      "path" : "TestScript.setup.action.operation.requestId",
      "short" : "Fixture Id of mapped request",
      "definition" : "The fixture id (maybe new) to map to the request.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.requestId",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "id"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.responseId",
      "path" : "TestScript.setup.action.operation.responseId",
      "short" : "Fixture Id of mapped response",
      "definition" : "The fixture id (maybe new) to map to the response.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.responseId",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "id"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.sourceId",
      "path" : "TestScript.setup.action.operation.sourceId",
      "short" : "Fixture Id of body for PUT and POST requests",
      "definition" : "The id of the fixture used as the body of a PUT or POST request.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.sourceId",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "id"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.targetId",
      "path" : "TestScript.setup.action.operation.targetId",
      "short" : "Id of fixture used for extracting the [id],  [type], and [vid] for GET requests",
      "definition" : "Id of fixture used for extracting the [id],  [type], and [vid] for GET requests.",
      "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",
      "base" : {
        "path" : "TestScript.setup.action.operation.targetId",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "id"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.operation.url",
      "path" : "TestScript.setup.action.operation.url",
      "short" : "Request URL",
      "definition" : "Complete request URL.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.operation.url",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.assert",
      "path" : "TestScript.setup.action.assert",
      "short" : "The assertion to perform",
      "definition" : "Evaluates the results of previous operations to determine if the server under test behaves appropriately.",
      "comment" : "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.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "TestScript.setup.action.assert",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "BackboneElement"
      }],
      "constraint" : [{
        "key" : "ele-1",
        "severity" : "error",
        "human" : "All FHIR elements must have a @value or children",
        "expression" : "hasValue() or (children().count() > id.count())",
        "xpath" : "@value|f:*|h:div",
        "source" : "Element"
      },
      {
        "key" : "tst-12",
        "severity" : "error",
        "human" : "Setup action assert response and responseCode SHALL be empty when direction equals request",
        "expression" : "(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
        "xpath" : "((count(f:response) + count(f:responseCode)) = 0 and (f:direction/@value='request')) or (count(f:direction) = 0) or (f:direction/@value='response')"
      },
      {
        "key" : "tst-5",
        "severity" : "error",
        "human" : "Only a single assertion SHALL be present within setup action assert element.",
        "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)",
        "xpath" : "count(f:contentType) + count(f:expression) + count(f:headerField) + count(f:minimumId) + count(f:navigationLinks) + count(f:path) + count(f:requestMethod) + count(f:resource) + count(f:responseCode) + count(f:response) + count(f:rule) + count(f:ruleset) + count(f:validateProfileId)  <=1"
      },
      {
        "key" : "tst-10",
        "severity" : "error",
        "human" : "Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
        "expression" : "compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
        "xpath" : "(f:compareToSourceId and f:compareToSourceExpression) or (f:compareToSourceId and f:compareToSourcePath) or not(f:compareToSourceId or f:compareToSourceExpression or f:compareToSourcePath)"
      }],
      "isModifier" : false,
      "isSummary" : false
    },
    {
      "id" : "TestScript.setup.action.assert.id",
      "path" : "TestScript.setup.action.assert.id",
      "representation" : ["xmlAttr"],
      "short" : "Unique id for inter-element referencing",
      "definition" : "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
      "min" : 0,
      "max" : "1",
      "base" : {
        "path" : "Element.id",
        "min" : 0,
        "max" : "1"
      },
      "type" : [{
        "code" : "string"
      }],
      "isModifier" : false,
      "isSummary" : false,
      "mapping" : [{
        "identity" : "rim",
        "map" : "n/a"
      }]
    },
    {
      "id" : "TestScript.setup.action.assert.extension",
      "path" : "TestScript.setup.action.assert.extension",
      "short" : "Additional content defined by implementations",
      "definition" : "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
      "comment" : "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to