FHIR Testing IG
0.1.0-SNAPSHOT - Draft International flag

FHIR Testing IG, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0-SNAPSHOT built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-testing-ig/ and changes regularly. See the Directory of published versions

: TestScript Example

Raw xml | Download


<TestScript xmlns="http://hl7.org/fhir">
  <id value="testscript-example"/>
  <language value="en"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><p class="res-header-id"><b>Generated Narrative: TestScript testscript-example</b></p><a name="testscript-example"> </a><a name="hctestscript-example"> </a><div style="display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%"><p style="margin-bottom: 0px">Language: en</p></div><p><b>url</b>: <a href="http://hl7.org/fhir/R5/testscript-example.html">http://hl7.org/fhir/TestScript/testscript-example</a></p><p><b>identifier</b>: <a href="http://terminology.hl7.org/7.0.1/NamingSystem-uri.html" title="As defined by RFC 3986 (http://www.ietf.org/rfc/rfc3986.txt)(with many schemes defined in many RFCs). For OIDs and UUIDs, use the URN form (urn:oid:(note: lowercase) and urn:uuid:). See http://www.ietf.org/rfc/rfc3001.txt and http://www.ietf.org/rfc/rfc4122.txt 

This oid is used as an identifier II.root to indicate the the extension is an absolute URI (technically, an IRI). Typically, this is used for OIDs and GUIDs. Note that when this OID is used with OIDs and GUIDs, the II.extension should start with urn:oid or urn:uuid: 

Note that this OID is created to aid with interconversion between CDA and FHIR - FHIR uses urn:ietf:rfc:3986 as equivalent to this OID. URIs as identifiers appear more commonly in FHIR.

This OID may also be used in CD.codeSystem.">Uniform Resource Identifier (URI)</a>/urn:oid:2.16.840.1.113883.4.642.12.4</p><p><b>version</b>: 1.0</p><p><b>name</b>: TestScriptExample</p><p><b>title</b>: TestScript Example</p><p><b>status</b>: Draft</p><p><b>experimental</b>: true</p><p><b>date</b>: 2017-01-18</p><p><b>publisher</b>: HL7</p><p><b>contact</b>: Support: <a href="mailto:support@HL7.org">support@HL7.org</a></p><p><b>description</b>: </p><div><p>TestScript example resource with setup to delete if present and create a new instance of a Patient; and single test definition to read the created Patient with various asserts.</p>
</div><h3>UseContexts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Code</b></td><td><b>Value[x]</b></td></tr><tr><td style="display: none">*</td><td><a href="http://terminology.hl7.org/7.0.1/CodeSystem-usage-context-type.html#usage-context-type-focus">UsageContextType: focus</a> (Clinical Focus)</td><td><span title="Codes:{http://terminology.hl7.org/CodeSystem/variant-state positive}">positive</span></td></tr><tr><td style="display: none">*</td><td><a href="http://terminology.hl7.org/7.0.1/CodeSystem-usage-context-type.html#usage-context-type-program">UsageContextType: program</a> (Program)</td><td>2018-? year</td></tr></table><p><b>jurisdiction</b>: <span title="Codes:{urn:iso:std:iso:3166 US}">United States of America</span></p><p><b>purpose</b>: </p><div><p>Patient Conditional Create (Update), Read and Delete Operations</p>
</div><p><b>copyright</b>: </p><div><p>© HL7.org 2011+</p>
</div><blockquote><p><b>metadata</b></p><h3>Links</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Url</b></td><td><b>Description</b></td></tr><tr><td style="display: none">*</td><td><a href="http://hl7.org/fhir/patient.html">http://hl7.org/fhir/patient.html</a></td><td>Demographics and other administrative information about an individual or animal receiving care or other health-related services.</td></tr></table><blockquote><p><b>capability</b></p><p><b>required</b>: true</p><p><b>validated</b>: false</p><p><b>description</b>: Patient Update, Read and Delete Operations</p><p><b>link</b>: <a href="http://hl7.org/fhir/http.html#delete">http://hl7.org/fhir/http.html#delete</a>, <a href="http://hl7.org/fhir/http.html#read">http://hl7.org/fhir/http.html#read</a>, <a href="http://hl7.org/fhir/http.html#update">http://hl7.org/fhir/http.html#update</a></p><p><b>capabilities</b>: <a href="http://hl7.org/fhir/R5/capabilitystatement-example.html">http://hl7.org/fhir/CapabilityStatement/example</a></p></blockquote></blockquote><blockquote><p><b>fixture</b></p><blockquote><p><b>id</b></p>fixture-patient-create</blockquote><p><b>autocreate</b>: false</p><p><b>autodelete</b>: false</p><p><b>resource</b>: <a href="http://hl7.org/fhir/R5/patient-example.html">Peter Chalmers</a></p></blockquote><blockquote><p><b>fixture</b></p><blockquote><p><b>id</b></p>fixture-patient-minimum</blockquote><p><b>autocreate</b>: false</p><p><b>autodelete</b>: false</p><p><b>resource</b>: <a href="http://hl7.org/fhir/R5/patient-example.html">Peter Chalmers (minimum)</a></p></blockquote><p><b>profile</b>: <a href="http://hl7.org/fhir/R5/patient.html">Patient</a></p><blockquote><p><b>variable</b></p><p><b>name</b>: createResourceId</p><h3>Expressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>Patient/id</td></tr></table><p><b>sourceId</b>: fixture-patient-create</p></blockquote><blockquote><p><b>setup</b></p><blockquote><p><b>action</b></p><h3>Operations</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Type</b></td><td><b>Resource</b></td><td><b>Label</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>EncodeRequestUrl</b></td><td><b>Params</b></td></tr><tr><td style="display: none">*</td><td><a href="http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-delete">FHIR Restful Interactions: delete</a> (delete)</td><td><a href="http://hl7.org/fhir/R5/patient.html">http://hl7.org/fhir/StructureDefinition/Patient</a></td><td>SetupDeletePatient</td><td>Execute a delete operation to insure the patient does not exist on the server.</td><td>json</td><td>true</td><td>/${createResourceId}</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned HTTP status is 200(OK) or 204(No Content).</td><td>response</td><td>in</td><td>200,204</td><td>false</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Operations</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Type</b></td><td><b>Resource</b></td><td><b>Label</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>ContentType</b></td><td><b>EncodeRequestUrl</b></td><td><b>Params</b></td><td><b>SourceId</b></td></tr><tr><td style="display: none">*</td><td><a href="http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-update">FHIR Restful Interactions: update</a> (update)</td><td><a href="http://hl7.org/fhir/R5/patient.html">http://hl7.org/fhir/StructureDefinition/Patient</a></td><td>SetupCreatePatient</td><td>Create patient resource on test server using the contents of fixture-patient-create</td><td>json</td><td>json</td><td>true</td><td>/${createResourceId}</td><td>fixture-patient-create</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ResponseCode</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned HTTP status is 201(Created).</td><td>response</td><td>201</td><td>false</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Operations</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Type</b></td><td><b>Resource</b></td><td><b>Description</b></td><td><b>EncodeRequestUrl</b></td><td><b>TargetId</b></td></tr><tr><td style="display: none">*</td><td><a href="http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-read">FHIR Restful Interactions: read</a> (read)</td><td><a href="http://hl7.org/fhir/R5/patient.html">http://hl7.org/fhir/StructureDefinition/Patient</a></td><td>Read the created patient resource on the test server using the id from fixture-patient-create. Verify contents.</td><td>true</td><td>fixture-patient-create</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Response</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned HTTP status is 200(OK).</td><td>response</td><td>OK</td><td>false</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><blockquote><p><b>assert</b></p><p><b>description</b>: Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient.</p><p><b>compareToSourceId</b>: fixture-patient-create</p><h3>CompareToSourceExpressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>text/fhirpath</td><td>Patient.name.first().family</td></tr></table><p><b>operator</b>: equals</p><p><b>stopTestOnFail</b>: false</p><p><b>warningOnly</b>: false</p></blockquote></blockquote></blockquote><blockquote><p><b>test</b></p><blockquote><p><b>id</b></p>01-ReadPatient</blockquote><p><b>name</b>: Read Patient</p><p><b>description</b>: Read a Patient and validate response.</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Type</b></td><td><b>Resource</b></td><td><b>Description</b></td><td><b>EncodeRequestUrl</b></td><td><b>ResponseId</b></td><td><b>TargetId</b></td></tr><tr><td style="display: none">*</td><td><a href="http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-read">FHIR Restful Interactions: read</a> (read)</td><td><a href="http://hl7.org/fhir/R5/patient.html">http://hl7.org/fhir/StructureDefinition/Patient</a></td><td>Read the patient resource on the test server using the id from fixture-patient-create. Prevent URL encoding of the request.</td><td>false</td><td>fixture-patient-read</td><td>fixture-patient-create</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Label</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Response</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>01-ReadPatientOK</td><td>Confirm that the returned HTTP status is 200(OK).</td><td>response</td><td>OK</td><td>false</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>Direction</b></td><td><b>HeaderField</b></td><td><b>Operator</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server might not support versioning.</td><td>response</td><td>Last-Modified</td><td>notEmpty</td><td>false</td><td>true</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>Resource</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned resource type is Patient.</td><td><a href="http://hl7.org/fhir/R5/patient.html">http://hl7.org/fhir/StructureDefinition/Patient</a></td><td>false</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>StopTestOnFail</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned Patient conforms to the base FHIR specification.</td><td>false</td><td>patient-profile</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><blockquote><p><b>assert</b></p><p><b>description</b>: Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit sourceId reference to read responseId fixture.</p><h3>Expressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>fhir:Patient/fhir:name/fhir:family/@value</td></tr></table><p><b>operator</b>: equals</p><p><b>sourceId</b>: fixture-patient-read</p><p><b>stopTestOnFail</b>: false</p><p><b>value</b>: Chalmers</p><p><b>warningOnly</b>: false</p></blockquote></blockquote><blockquote><p><b>action</b></p><blockquote><p><b>assert</b></p><p><b>description</b>: Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit sourceId reference to read responseId fixture.</p><h3>Expressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>fhir:Patient/fhir:name/fhir:given/@value</td></tr></table><p><b>operator</b>: equals</p><p><b>sourceId</b>: fixture-patient-read</p><p><b>stopTestOnFail</b>: false</p><p><b>value</b>: Peter</p><p><b>warningOnly</b>: false</p></blockquote></blockquote><blockquote><p><b>action</b></p><blockquote><p><b>assert</b></p><p><b>description</b>: Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and implicit reference to read response payload.</p><p><b>compareToSourceId</b>: fixture-patient-create</p><h3>CompareToSourceExpressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>fhir:Patient/fhir:name/fhir:family/@value</td></tr></table><h3>Expressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>fhir:Patient/fhir:name/fhir:family/@value</td></tr></table><p><b>operator</b>: equals</p><p><b>stopTestOnFail</b>: false</p><p><b>warningOnly</b>: false</p></blockquote></blockquote><blockquote><p><b>action</b></p><blockquote><p><b>assert</b></p><p><b>description</b>: Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and explicit reference to read response payload and default operator of 'equals'.</p><p><b>compareToSourceId</b>: fixture-patient-create</p><h3>CompareToSourceExpressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>fhir:Patient/fhir:name/fhir:given/@value</td></tr></table><h3>Expressions</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style="display: none">*</td><td>application/xml</td><td>fhir:Patient/fhir:name/fhir:given/@value</td></tr></table><p><b>sourceId</b>: fixture-patient-read</p><p><b>stopTestOnFail</b>: false</p><p><b>warningOnly</b>: false</p></blockquote></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Description</b></td><td><b>MinimumId</b></td><td><b>StopTestOnFail</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td>Confirm that the returned resource contains the expected retained elements and values. Warning only to provide users with reviewable results.</td><td>fixture-patient-minimum</td><td>false</td><td>true</td></tr></table></blockquote></blockquote><blockquote><p><b>teardown</b></p><blockquote><p><b>action</b></p><h3>Operations</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Type</b></td><td><b>Resource</b></td><td><b>Description</b></td><td><b>EncodeRequestUrl</b></td><td><b>TargetId</b></td></tr><tr><td style="display: none">*</td><td><a href="http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-delete">FHIR Restful Interactions: delete</a> (delete)</td><td><a href="http://hl7.org/fhir/R5/patient.html">http://hl7.org/fhir/StructureDefinition/Patient</a></td><td>Delete the patient resource on the test server using the id from fixture-patient-create.</td><td>true</td><td>fixture-patient-create</td></tr></table></blockquote></blockquote></div>
  </text>
  <url value="http://hl7.org/fhir/TestScript/testscript-example"/>
  <identifier>
    <system value="urn:ietf:rfc:3986"/>
    <value value="urn:oid:2.16.840.1.113883.4.642.12.4"/>
  </identifier>
  <version value="1.0"/>
  <name value="TestScriptExample"/>
  <title value="TestScript Example"/>
  <status value="draft"/>
  <experimental value="true"/>
  <date value="2017-01-18"/>
  <publisher value="HL7"/>
  <contact>
    <name value="Support"/>
    <telecom>
      <system value="email"/>
      <value value="support@HL7.org"/>
      <use value="work"/>
    </telecom>
  </contact>
  <description
               value="TestScript example resource with setup to delete if present and create a new instance of a Patient; and single test definition to read the created Patient with various asserts."/>
  <useContext>
    <code>
      <system
              value="http://terminology.hl7.org/CodeSystem/usage-context-type"/>
      <code value="focus"/>
    </code>
    <valueCodeableConcept>
      <coding>
        <system value="http://terminology.hl7.org/CodeSystem/variant-state"/>
        <code value="positive"/>
      </coding>
    </valueCodeableConcept>
  </useContext>
  <useContext>
    <code>
      <system
              value="http://terminology.hl7.org/CodeSystem/usage-context-type"/>
      <code value="program"/>
    </code>
    <valueRange>
      <low>
        <value value="2018"/>
        <unit value="year"/>
        <system value="http://unitsofmeasure.org"/>
        <code value="a"/>
      </low>
    </valueRange>
  </useContext>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <purpose
           value="Patient Conditional Create (Update), Read and Delete Operations"/>
  <copyright value="© HL7.org 2011+"/>
  <metadata>
    <link>
      <url value="http://hl7.org/fhir/patient.html"/>
      <description
                   value="Demographics and other administrative information about an individual or animal receiving care or other health-related services."/>
    </link>
    <capability>
      <required value="true"/>
      <validated value="false"/>
      <description value="Patient Update, Read and Delete Operations"/>
      <link value="http://hl7.org/fhir/http.html#delete"/>
      <link value="http://hl7.org/fhir/http.html#read"/>
      <link value="http://hl7.org/fhir/http.html#update"/>
      <capabilities value="http://hl7.org/fhir/CapabilityStatement/example"/>
    </capability>
  </metadata>
  <fixture id="fixture-patient-create">
    <autocreate value="false"/>
    <autodelete value="false"/>
    <resource>
      <reference value="Patient/example"/>
      <display value="Peter Chalmers"/>
    </resource>
  </fixture>
  <fixture id="fixture-patient-minimum">
    <autocreate value="false"/>
    <autodelete value="false"/>
    <resource>
      <reference value="Patient/example"/>
      <display value="Peter Chalmers (minimum)"/>
    </resource>
  </fixture>
  <profile value="http://hl7.org/fhir/StructureDefinition/Patient">🔗 
    <id value="patient-profile"/>
  </profile>
  <variable>
    <name value="createResourceId"/>
    <expression>
      <language value="application/xml"/>
      <expression value="Patient/id"/>
    </expression>
    <sourceId value="fixture-patient-create"/>
  </variable>
  <setup>
    <action>
      <operation>
        <type>
          <system value="http://hl7.org/fhir/restful-interaction"/>
          <code value="delete"/>
        </type>
        <resource value="Patient"/>
        <label value="SetupDeletePatient"/>
        <description
                     value="Execute a delete operation to insure the patient does not exist on the server."/>
        <accept value="json"/>
        <encodeRequestUrl value="true"/>
        <params value="/${createResourceId}"/>
      </operation>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned HTTP status is 200(OK) or 204(No Content)."/>
        <direction value="response"/>
        <operator value="in"/>
        <responseCode value="200,204"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <operation>
        <type>
          <system value="http://hl7.org/fhir/restful-interaction"/>
          <code value="update"/>
        </type>
        <resource value="Patient"/>
        <label value="SetupCreatePatient"/>
        <description
                     value="Create patient resource on test server using the contents of fixture-patient-create"/>
        <accept value="json"/>
        <contentType value="json"/>
        <encodeRequestUrl value="true"/>
        <params value="/${createResourceId}"/>
        <sourceId value="fixture-patient-create"/>
      </operation>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned HTTP status is 201(Created)."/>
        <direction value="response"/>
        <responseCode value="201"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <operation>
        <type>
          <system value="http://hl7.org/fhir/restful-interaction"/>
          <code value="read"/>
        </type>
        <resource value="Patient"/>
        <description
                     value="Read the created patient resource on the test server using the id from fixture-patient-create. Verify contents."/>
        <encodeRequestUrl value="true"/>
        <targetId value="fixture-patient-create"/>
      </operation>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned HTTP status is 200(OK)."/>
        <direction value="response"/>
        <response value="okay"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient."/>
        <compareToSourceId value="fixture-patient-create"/>
        <compareToSourceExpression>
          <language value="text/fhirpath"/>
          <expression value="Patient.name.first().family"/>
        </compareToSourceExpression>
        <operator value="equals"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
  </setup>
  <test id="01-ReadPatient">
    <name value="Read Patient"/>
    <description value="Read a Patient and validate response."/>
    <action>
      <operation>
        <type>
          <system value="http://hl7.org/fhir/restful-interaction"/>
          <code value="read"/>
        </type>
        <resource value="Patient"/>
        <description
                     value="Read the patient resource on the test server using the id from fixture-patient-create. Prevent URL encoding of the request."/>
        <encodeRequestUrl value="false"/>
        <responseId value="fixture-patient-read"/>
        <targetId value="fixture-patient-create"/>
      </operation>
    </action>
    <action>
      <assert>
        <label value="01-ReadPatientOK"/>
        <description
                     value="Confirm that the returned HTTP status is 200(OK)."/>
        <direction value="response"/>
        <response value="okay"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server might not support versioning."/>
        <direction value="response"/>
        <headerField value="Last-Modified"/>
        <operator value="notEmpty"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="true"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned resource type is Patient."/>
        <resource value="Patient"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned Patient conforms to the base FHIR specification."/>
        <stopTestOnFail value="false"/>
        <validateProfileId value="patient-profile"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit sourceId reference to read responseId fixture."/>
        <expression>
          <language value="application/xml"/>
          <expression value="fhir:Patient/fhir:name/fhir:family/@value"/>
        </expression>
        <operator value="equals"/>
        <sourceId value="fixture-patient-read"/>
        <stopTestOnFail value="false"/>
        <value value="Chalmers"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit sourceId reference to read responseId fixture."/>
        <expression>
          <language value="application/xml"/>
          <expression value="fhir:Patient/fhir:name/fhir:given/@value"/>
        </expression>
        <operator value="equals"/>
        <sourceId value="fixture-patient-read"/>
        <stopTestOnFail value="false"/>
        <value value="Peter"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and implicit reference to read response payload."/>
        <compareToSourceId value="fixture-patient-create"/>
        <compareToSourceExpression>
          <language value="application/xml"/>
          <expression value="fhir:Patient/fhir:name/fhir:family/@value"/>
        </compareToSourceExpression>
        <expression>
          <language value="application/xml"/>
          <expression value="fhir:Patient/fhir:name/fhir:family/@value"/>
        </expression>
        <operator value="equals"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and explicit reference to read response payload and default operator of 'equals'."/>
        <compareToSourceId value="fixture-patient-create"/>
        <compareToSourceExpression>
          <language value="application/xml"/>
          <expression value="fhir:Patient/fhir:name/fhir:given/@value"/>
        </compareToSourceExpression>
        <expression>
          <language value="application/xml"/>
          <expression value="fhir:Patient/fhir:name/fhir:given/@value"/>
        </expression>
        <sourceId value="fixture-patient-read"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <description
                     value="Confirm that the returned resource contains the expected retained elements and values. Warning only to provide users with reviewable results."/>
        <minimumId value="fixture-patient-minimum"/>
        <stopTestOnFail value="false"/>
        <warningOnly value="true"/>
      </assert>
    </action>
  </test>
  <teardown>
    <action>
      <operation>
        <type>
          <system value="http://hl7.org/fhir/restful-interaction"/>
          <code value="delete"/>
        </type>
        <resource value="Patient"/>
        <description
                     value="Delete the patient resource on the test server using the id from fixture-patient-create."/>
        <encodeRequestUrl value="true"/>
        <targetId value="fixture-patient-create"/>
      </operation>
    </action>
  </teardown>
</TestScript>