<?xml version="1.0" encoding="UTF-8"?>

<TestScript xmlns="http://hl7.org/fhir">
  <id value="fastconsentsearchconsentxml"/>
  <meta>
    <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/>
  </meta>
  <text>
    <status value="extensions"/><div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: TestScript fastconsentsearchconsentxml</b></p><a name="fastconsentsearchconsentxml"> </a><a name="hcfastconsentsearchconsentxml"> </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"/><p style="margin-bottom: 0px">Profile: <a href="file://D:\GitHub\Touchstone\testing-ig\output/StructureDefinition-testscript.html">AEGIS Touchstone Testing TestScript Profile</a></p></div><p><b>StructureDefinition Work Group</b>: cbcc</p><p><b>url</b>: <a href="TestScript-fastconsentsearchconsentxml.html">TestScript FAST Consent Search Consent XML</a></p><p><b>version</b>: 0.1.0</p><p><b>name</b>: FASTConsentSearchConsentXML</p><p><b>title</b>: FAST Consent Search Consent XML</p><p><b>status</b>: Active</p><p><b>date</b>: 2025-05-22</p><p><b>publisher</b>: HL7 International / Community Based Collaborative Care</p><p><b>contact</b>: HL7 International / Community Based Collaborative Care: <a href="http://www.hl7.org/Special/committees/cbcc">http://www.hl7.org/Special/committees/cbcc</a></p><p><b>description</b>: </p><div><p>Test a FAST Consent Management Server implementation of the FHIR search interaction for Consent resources using XML Format. The user must enter the FAST Consent patientId parameter. The reverse include parameter for any recorded AuditEvent resources is also defined.</p>
</div><p><b>jurisdiction</b>: <span title="Codes:{urn:iso:std:iso:3166 US}">United States of America</span></p><p><b>copyright</b>: </p><div><p>(c) HL7 International / Community Based Collaborative Care 2025</p>
</div><h3>Origins</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Index</b></td><td><b>Profile</b></td></tr><tr><td style="display: none">*</td><td>1</td><td><a href="http://terminology.hl7.org/6.5.0/CodeSystem-testscript-profile-origin-types.html#testscript-profile-origin-types-FHIR-Client">Test script profile origin type FHIR-Client</a>: FHIR Client</td></tr></table><h3>Destinations</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Index</b></td><td><b>Profile</b></td></tr><tr><td style="display: none">*</td><td>1</td><td><a href="http://terminology.hl7.org/6.5.0/CodeSystem-testscript-profile-destination-types.html#testscript-profile-destination-types-FHIR-Server">Test script profile destination type FHIR-Server</a>: FHIR Server</td></tr></table><p><b>profile</b>: <a href="http://hl7.org/fhir/R4/bundle.html">http://hl7.org/fhir/StructureDefinition/Bundle</a></p><h3>Variables</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Name</b></td><td><b>DefaultValue</b></td><td><b>Description</b></td><td><b>Hint</b></td></tr><tr><td style="display: none">*</td><td>patientId</td><td>example</td><td>Enter a known Consent patientI Identifier value on the destination system.</td><td>[patientId Identifier]</td></tr></table><blockquote><p><b>test</b></p><blockquote><p><b>id</b></p>FASTConsentSearchConsentXML</blockquote><p><b>name</b>: FASTConsentSearchConsentXML</p><p><b>description</b>: Test the FAST Consent Management Server search operation with reverse include of any recorded AuditEvent resources. The expected response content is a searchset Bundle resource for all Consent resources matching the patientId parameter in XML format.</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>Accept</b></td><td><b>ContentType</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Origin</b></td><td><b>Params</b></td></tr><tr><td style="display: none">*</td><td><a href="http://terminology.hl7.org/6.5.0/CodeSystem-testscript-operation-codes.html#testscript-operation-codes-search">Test script operation code search</a>: Search</td><td>Consent</td><td>Search for the Consent and validate the search results</td><td>xml</td><td>xml</td><td>1</td><td>true</td><td>1</td><td>?patientId=${patientId}&amp;_revinclude=AuditEvent:consent</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class="grid"><tr><td style="display: none">-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned response code is 200 OK.</td><td>response</td><td>200</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>HeaderField</b></td><td><b>Operator</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned HTTP Header Content-Type is present.</td><td>response</td><td>Content-Type</td><td>notEmpty</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ContentType</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned HTTP Header Content-Type contains the FHIR mime-type 'application/fhir+xml'. Warning only to allow for review.</td><td>response</td><td>xml</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Resource</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned response payload is a Bundle resource.</td><td>response</td><td>Bundle</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned Bundle conforms to the FAST Consent IG and FHIR specification.</td><td>response</td><td>BundleProfile</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned response payload is a searchset Bundle resource.</td><td>response</td><td>.type</td><td>searchset</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned searchset Bundle contains a Consent resource.</td><td>response</td><td>Bundle.entry.resource.as(Consent).exists()</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>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned searchset Bundle contains an AuditEvent resource.</td><td>response</td><td>Bundle.entry.resource.as(AuditEvent).exists()</td><td>false</td></tr></table></blockquote></blockquote></div>
  </text>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cbcc"/>
  </extension>
  <url value="http://hl7.org/fhir/us/consent-management-tg/TestScript/fastconsentsearchconsentxml"/>
  <version value="0.1.0"/>
  <name value="FASTConsentSearchConsentXML"/>
  <title value="FAST Consent Search Consent XML"/>
  <status value="active"/>
  <date value="2025-05-22"/>
  <publisher value="HL7 International / Community Based Collaborative Care"/>
  <contact>
    <name value="HL7 International / Community Based Collaborative Care"/>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/cbcc"/>
    </telecom>
  </contact>
  <description value="Test a FAST Consent Management Server implementation of the FHIR search interaction for Consent resources using XML Format. The user must enter the FAST Consent patientId parameter. The reverse include parameter for any recorded AuditEvent resources is also defined."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <copyright value="(c) HL7 International / Community Based Collaborative Care 2025"/>
  <origin>
    <index value="1"/>
    <profile>
      <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-origin-types"/>
      <code value="FHIR-Client"/>
    </profile>
  </origin>
  <destination>
    <index value="1"/>
    <profile>
      <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/>
      <code value="FHIR-Server"/>
    </profile>
  </destination>
  <profile id="BundleProfile">
    <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
  </profile>
  <variable>
    <name value="patientId"/>
    <defaultValue value="example"/>
    <description value="Enter a known Consent patientI Identifier value on the destination system."/>
    <hint value="[patientId Identifier]"/>
  </variable>
  <test id="FASTConsentSearchConsentXML">
    <name value="FASTConsentSearchConsentXML"/>
    <description value="Test the FAST Consent Management Server search operation with reverse include of any recorded AuditEvent resources. The expected response content is a searchset Bundle resource for all Consent resources matching the patientId parameter in XML format."/>
    <action>
      <operation>
        <type>
          <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
          <code value="search"/>
        </type>
        <resource value="Consent"/>
        <description value="Search for the Consent and validate the search results"/>
        <accept value="xml"/>
        <contentType value="xml"/>
        <destination value="1"/>
        <encodeRequestUrl value="true"/>
        <origin value="1"/>
        <params value="?patientId=${patientId}&amp;_revinclude=AuditEvent:consent"/>
      </operation>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned response code is 200 OK."/>
        <direction value="response"/>
        <responseCode value="200"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned HTTP Header Content-Type is present."/>
        <direction value="response"/>
        <headerField value="Content-Type"/>
        <operator value="notEmpty"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned HTTP Header Content-Type contains the FHIR mime-type 'application/fhir+xml'. Warning only to allow for review."/>
        <direction value="response"/>
        <contentType value="xml"/>
        <warningOnly value="true"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned response payload is a Bundle resource."/>
        <direction value="response"/>
        <resource value="Bundle"/>
        <warningOnly value="true"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned Bundle conforms to the FAST Consent IG and FHIR specification."/>
        <direction value="response"/>
        <validateProfileId value="BundleProfile"/>
        <warningOnly value="true"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned response payload is a searchset Bundle resource."/>
        <direction value="response"/>
        <path value=".type"/>
        <value value="searchset"/>
        <warningOnly value="true"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned searchset Bundle contains a Consent resource."/>
        <direction value="response"/>
        <expression value="Bundle.entry.resource.as(Consent).exists()"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
          <valueBoolean value="false"/>
        </extension>
        <description value="Confirm that the returned searchset Bundle contains an AuditEvent resource."/>
        <direction value="response"/>
        <expression value="Bundle.entry.resource.as(AuditEvent).exists()"/>
        <warningOnly value="false"/>
      </assert>
    </action>
  </test>
</TestScript>