Scalable Consent Management Testing Guide
1.0.0-ballot - ci-build United States of America flag

Scalable Consent Management Testing Guide - Local Development build (v1.0.0-ballot) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: 01 Read Simple Search - All SUT | 04 Search for an AuditEvent - XML Representation

Page standards status: Trial-use Maturity Level: 1

Raw xml | Download


<TestScript xmlns="http://hl7.org/fhir">
  <id value="04-Search-for-an-AuditEvent"/>
  <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 04-Search-for-an-AuditEvent</b></p><a name="04-Search-for-an-AuditEvent"> </a><a name="hc04-Search-for-an-AuditEvent"> </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><blockquote><p><b>AEGIS Touchstone Testing TestScript Rule Extension</b></p><ul><li>ruleId: AssertBodyExists</li><li>path: /FHIRCommon/_reference/rule/AssertBodyExists.groovy</li></ul></blockquote><p><b>StructureDefinition Work Group</b>: cbcc</p><p><b>url</b>: <a href="TestScript-04-Search-for-an-AuditEvent.html">TestScript 01 Read Simple Search - All SUT | 04 Search for an AuditEvent</a></p><p><b>version</b>: 1.0.0-ballot</p><p><b>name</b>: Test_04_Search_for_an_AuditEvent</p><p><b>title</b>: 01 Read Simple Search - All SUT | 04 Search for an AuditEvent</p><p><b>status</b>: Active</p><p><b>date</b>: 2026-03-30</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 client and server to verify support for the AuditEvent search interaction
and the return of at least one valid AuditEvent resource conforming to the FASTConsentAuditEvent profile.
This scenario is generic and can be used with any FHIR format and query parameters.
Test case supporting the FAST Consent Management IG Version: CI.
See https://wildfhir4.wildfhir.org/ig/fhir-consent-management-tg/rtm_test_cases.html#testcase-142
Test System Details (in order of appearance):
[Origin 1: Consent Client's RESTful client. System Under Test: this must be an external test system (not Touchstone).]
[Destination 1: Consent Admin Service's RESTful FHIR Server. System Under Test: this must be an external test system (not a mock).]</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) AEGIS.net, Inc. 2026</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/7.1.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/7.1.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><blockquote><p><b>test</b></p><p><b>name</b>: Step_001_AuditEvent_search</p><p><b>description</b>: Consent Client searches for AuditEvent resources at Consent Admin Service.</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>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Origin</b></td><td><b>RequestId</b></td><td><b>ResponseId</b></td></tr><tr><td style="display: none">*</td><td><a href="http://terminology.hl7.org/7.1.0/CodeSystem-testscript-operation-codes.html#testscript-operation-codes-search">Test script operation code: search</a> (Search)</td><td>AuditEvent</td><td>Search for AuditEvent resources.</td><td>1</td><td>true</td><td>1</td><td>dest-1-FHIRSearch-1-request</td><td>dest-1-FHIRSearch-1-response</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>Operator</b></td><td><b>ResponseCode</b></td><td><b>SourceId</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the returned HTTP status is 200 OK.</td><td>response</td><td>in</td><td>200</td><td>dest-1-FHIRSearch-1-response</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>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the response body exists.</td><td>response</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>Resource</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the response resource type is Bundle.</td><td>response</td><td>Bundle</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>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the response Bundle conforms to the base FHIR Bundle profile. This also validates the contents against any declared profiles.</td><td>response</td><td>Bundle-profile</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>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that the response Bundle type is searchset.</td><td>response</td><td>Bundle.type</td><td>equals</td><td>searchset</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>Operator</b></td><td><b>SourceId</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that at least one AuditEvent resource is in the response.</td><td>response</td><td>Bundle.entry.select(resource as AuditEvent).exists()</td><td>equals</td><td>dest-1-FHIRSearch-1-response</td><td>true</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>Operator</b></td><td><b>SourceId</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td style="display: none">*</td><td/><td>Confirm that at least one AuditEvent resource in the response declares the FASTConsentAuditEvent profile.</td><td>response</td><td>Bundle.entry.select(resource as AuditEvent).where('http://hl7.org/fhir/us/consent-management/StructureDefinition/FASTConsentAuditEvent' in meta.profile).exists()</td><td>equals</td><td>dest-1-FHIRSearch-1-response</td><td>true</td><td>false</td></tr></table></blockquote></blockquote></div>
  </text>
  <extension
             url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule">
    <extension url="ruleId">
      <valueId value="AssertBodyExists"/>
    </extension>
    <extension url="path">
      <valueString
                   value="/FHIRCommon/_reference/rule/AssertBodyExists.groovy"/>
    </extension>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cbcc"/>
  </extension>
  <url
       value="http://hl7.org/fhir/us/consent-management-tg/TestScript/04-Search-for-an-AuditEvent"/>
  <version value="1.0.0-ballot"/>
  <name value="Test_04_Search_for_an_AuditEvent"/>
  <title
         value="01 Read Simple Search - All SUT | 04 Search for an AuditEvent"/>
  <status value="active"/>
  <date value="2026-03-30"/>
  <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 client and server to verify support for the AuditEvent search interaction
and the return of at least one valid AuditEvent resource conforming to the FASTConsentAuditEvent profile.
This scenario is generic and can be used with any FHIR format and query parameters.
Test case supporting the FAST Consent Management IG Version: CI.
See https://wildfhir4.wildfhir.org/ig/fhir-consent-management-tg/rtm_test_cases.html#testcase-142
 Test System Details (in order of appearance):
 [Origin 1: Consent Client's RESTful client. System Under Test: this must be an external test system (not Touchstone).]
 [Destination 1: Consent Admin Service's RESTful FHIR Server. System Under Test: this must be an external test system (not a mock).]"/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <copyright value="(c) AEGIS.net, Inc. 2026"/>
  <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="Bundle-profile">🔗 
    <reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
  </profile>
  <test>
    <name value="Step_001_AuditEvent_search"/>
    <description
                 value="Consent Client searches for AuditEvent resources at Consent Admin Service."/>
    <action>
      <operation>
        <type>
          <system
                  value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
          <code value="search"/>
        </type>
        <resource value="AuditEvent"/>
        <description value="Search for AuditEvent resources."/>
        <destination value="1"/>
        <encodeRequestUrl value="true"/>
        <origin value="1"/>
        <requestId value="dest-1-FHIRSearch-1-request"/>
        <responseId value="dest-1-FHIRSearch-1-response"/>
      </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 HTTP status is 200 OK."/>
        <direction value="response"/>
        <operator value="in"/>
        <responseCode value="200"/>
        <sourceId value="dest-1-FHIRSearch-1-response"/>
        <warningOnly value="false"/>
      </assert>
    </action>
    <action>
      <assert>
        <extension
                   url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
          <extension url="ruleId">
            <valueId value="AssertBodyExists"/>
          </extension>
          <extension url="param">
            <extension url="name">
              <valueString value="errorMessage"/>
            </extension>
            <extension url="value">
              <valueString value="the response body does not exist."/>
            </extension>
          </extension>
        </extension>
        <description value="Confirm that the response body exists."/>
        <direction value="response"/>
        <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 response resource type is Bundle."/>
        <direction value="response"/>
        <resource value="Bundle"/>
        <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 response Bundle conforms to the base FHIR Bundle profile. This also validates the contents against any declared profiles."/>
        <direction value="response"/>
        <validateProfileId value="Bundle-profile"/>
        <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 response Bundle type is searchset."/>
        <direction value="response"/>
        <expression value="Bundle.type"/>
        <operator value="equals"/>
        <value value="searchset"/>
        <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 at least one AuditEvent resource is in the response."/>
        <direction value="response"/>
        <expression
                    value="Bundle.entry.select(resource as AuditEvent).exists()"/>
        <operator value="equals"/>
        <sourceId value="dest-1-FHIRSearch-1-response"/>
        <value value="true"/>
        <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 at least one AuditEvent resource in the response declares the FASTConsentAuditEvent profile."/>
        <direction value="response"/>
        <expression
                    value="Bundle.entry.select(resource as AuditEvent).where('http://hl7.org/fhir/us/consent-management/StructureDefinition/FASTConsentAuditEvent' in meta.profile).exists()"/>
        <operator value="equals"/>
        <sourceId value="dest-1-FHIRSearch-1-response"/>
        <value value="true"/>
        <warningOnly value="false"/>
      </assert>
    </action>
  </test>
</TestScript>