Test Script

Name/FHIR4-0-1-BulkData/03-BulkData-Validation/03a-BulkData-Patient-Export-ProfileValidation
Description03b-BulkData-Patient-Export-ProfileValidation-All Resources-StandAlone. This test exercises the BulkData server from the request and validation of the output resource files and verifies that the response Patient ndjson file pass FHIR profile validation. This test requires that the system has previously had a patient export request complete successfully and has an output file ready where the test is expecting the following resource types (CarePlan, Condition, Encounter, Observation, Patient, adn Procedure). The Content-Location is queried and the output file should be the response. That output file is then utilized to pull the series of ndjson files from the server and the responses are validated.
Version1Latest1
Content
<?xml version="1.0" encoding="UTF-8"?>

<TestScript xmlns="http://hl7.org/fhir">  
    <id value="04b-BulkData-Patient-Export-ProfileValidation"/>  
    <meta> 
        <profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/> 
    </meta>  
    <text> 
        <status value="generated"/>  
        <div xmlns="http://www.w3.org/1999/xhtml">  
            <p>BulkData Validation</p> 
        </div> 
    </text>  
    <url value="http://wildfhir.aegis.net/fhir4-0-1/TestScript/bulkdata-group-exp-profile-validation-standalone"/>  
    <name value="03b-BulkData-Patient-Export-ProfileValidation-StandAlone"/>  
    <title value="03b-BulkData-Patient-Export-ProfileValidation-StandAlone"/>  
    <status value="active"/>  
    <date value="2021-01-09"/>  
    <publisher value="AEGIS.net, Inc."/>  
    <contact> 
        <name value="Touchstone Support"/>  
        <telecom> 
            <system value="email"/>  
            <value value="Touchstone_Support@aegis.net"/>  
            <use value="work"/> 
        </telecom> 
    </contact>  
    <description value="03b-BulkData-Patient-Export-ProfileValidation-All Resources-StandAlone.  This test exercises the BulkData server from the request and validation of the output resource files and verifies that the response Patient ndjson file pass FHIR profile validation.  This test requires that the system has previously had a patient export request complete successfully and has an output file ready where the test is expecting the following resource types (CarePlan, Condition, Encounter, Observation, Patient, adn Procedure).  The Content-Location is queried and the output file should be the response.  That output file is then utilized to pull the series of ndjson files from the server and the responses are validated."/>  
    <copyright value="(c) AEGIS.net, Inc. 2021"/>  
    <destination id="Server"> 
        <index value="1"/>  
        <profile> 
            <system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/>  
            <code value="FHIR-Server"/> 
        </profile> 
    </destination>  
    <profile id="resource-profile-Patient"> 
        <reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"/> 
    </profile>  
    <profile id="resource-profile-CarePlan"> 
        <reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan"/> 
    </profile>  
    <profile id="resource-profile-Condition"> 
        <reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"/> 
    </profile>  
    <profile id="resource-profile-Encounter"> 
        <reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"/> 
    </profile>  
    <profile id="resource-profile-Obs-Ped-BMI"> 
        <reference value="{$.code.coding[?(@.code == '59576-9')]}http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age"/> 
    </profile>  
    <profile id="resource-profile-Obs-Ped-Wgt-Hgt"> 
        <reference value="{$.code.coding[?(@.code == '77606-2')]}http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height"/> 
    </profile>  
    <profile id="resource-profile-Observation-Lab"> 
        <reference value="{$.category[*].coding[?(@.code == 'laboratory')]}http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab"/> 
    </profile>  
    <profile id="resource-profile-Obs-Pulse-Ox"> 
        <reference value="{$.code.coding[?(@.code == '2708-6')]}http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry"/> 
    </profile>  
    <profile id="resource-profile-Obs-Smoke-Stat"> 
        <reference value="{$.code.coding[?(@.code == '72166-2')]}http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus"/> 
    </profile>  
    <profile id="resource-profile-Obs-Head-Circ"> 
        <reference value="{$.code.coding[?(@.code == '8289-1')]}http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile"/> 
    </profile>  
    <profile id="resource-profile-Observation-BP"> 
        <reference value="{$.code.coding[?(@.code == '85354-9')]}http://hl7.org/fhir/StructureDefinition/bp"/> 
    </profile>  
    <profile id="resource-profile-Obs-Height"> 
        <reference value="{$.code.coding[?(@.code == '8302-2')]}http://hl7.org/fhir/StructureDefinition/bodyheight"/> 
    </profile>  
    <profile id="resource-profile-Obs-BodyTemp"> 
        <reference value="{$.code.coding[?(@.code == '8310-5')]}http://hl7.org/fhir/StructureDefinition/bodytemp"/> 
    </profile>  
    <profile id="resource-profile-Obs-Weight"> 
        <reference value="{$.code.coding[?(@.code == '29463-7')]}http://hl7.org/fhir/StructureDefinition/bodyweight"/> 
    </profile>  
    <profile id="resource-profile-Obs-HeartRate"> 
        <reference value="{$.code.coding[?(@.code == '8867-4')]}http://hl7.org/fhir/StructureDefinition/heartrate"/> 
    </profile>  
    <profile id="resource-profile-Obs-RespRate"> 
        <reference value="{$.code.coding[?(@.code == '9279-1')]}http://hl7.org/fhir/StructureDefinition/resprate"/> 
    </profile>  
    <profile id="resource-profile-Organization"> 
        <reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization"/> 
    </profile>  
    <profile id="resource-profile-Procedure"> 
        <reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure"/> 
    </profile>  
    <variable> 
        <name value="PatientFileLocation"/>  
        <path value=".output[?(@.type=='Patient')].url"/>  
        <sourceId value="searchResponse"/> 
    </variable>  
    <variable> 
        <name value="CarePlanFileLocation"/>  
        <path value=".output[?(@.type=='CarePlan')].url"/>  
        <sourceId value="searchResponse"/> 
    </variable>  
    <variable> 
        <name value="ConditionFileLocation"/>  
        <path value=".output[?(@.type=='Condition')].url"/>  
        <sourceId value="searchResponse"/> 
    </variable>  
    <variable> 
        <name value="EncounterFileLocation"/>  
        <path value=".output[?(@.type=='Encounter')].url"/>  
        <sourceId value="searchResponse"/> 
    </variable>  
    <variable> 
        <name value="ObservationFileLocation"/>  
        <path value=".output[?(@.type=='Observation')].url"/>  
        <sourceId value="searchResponse"/> 
    </variable>  
    <variable> 
        <name value="ProcedureFileLocation"/>  
        <path value=".output[?(@.type=='Procedure')].url"/>  
        <sourceId value="searchResponse"/> 
    </variable>  
    <variable> 
        <name value="bulkDataStatusEndpoint"/>  
        <description value="Enter the Content-Location in the response from the $export operation test"/>  
        <hint value="Content-Location in response from the $export operation test"/> 
    </variable>  
    <test id="01-Check Content-Location"> 
        <name value="01-Check Content-Location"/>  
        <description value="01: Verify that a Content-Location was returned properly before continuing this test.  If the previous test failed for not having a Content-Location, this test will also fail."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>  
                    <code value="search"/> 
                </type>  
                <description value="Query Content-Location"/>  
                <accept value="json"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <responseId value="searchResponse"/>  
                <url value="${bulkDataStatusEndpoint}"/> 
            </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 client requested an Accept of the FHIR JSON mime type 'application/fhir+json'."/>  
                <direction value="request"/>  
                <headerField value="Accept"/>  
                <operator value="contains"/>  
                <value value="application/fhir+json"/>  
                <warningOnly value="true"/> 
            </assert> 
        </action>  
        <action> 
            <assert> 
                <description value="Confirm that the returned HTTP status is 200.  This test assumes the file build process is complete.  If the file is not ready, the test will not proceed."/>  
                <direction value="response"/>  
                <operator value="in"/>  
                <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 response contains a value in transactionTime."/>  
                <direction value="response"/>  
                <operator value="notEmpty"/>  
                <path value="$.transactionTime"/>  
                <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 response contains a value in request."/>  
                <direction value="response"/>  
                <operator value="notEmpty"/>  
                <path value="$.request"/>  
                <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 response element requiresAccessToken value is 'true'."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <path value="$.requiresAccessToken"/>  
                <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 the returned response contains the output element."/>  
                <direction value="response"/>  
                <operator value="notEmpty"/>  
                <path value="$.output"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="02-ResourceValidation-Patient"> 
        <name value="02-Resource-Patient"/>  
        <description value="02: Patient-Pull the file and validate the contents against the US Core Patient profile for conformance."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>  
                    <code value="get"/> 
                </type>  
                <description value="Request BulkData ndjson Patient. If no file url was provided in the output file, this test will fail."/>  
                <accept value="ndjson"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <url value="${PatientFileLocation}"/> 
            </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."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <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>  
                <direction value="response"/>  
                <resource value="Patient"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action>  
        <action> 
            <assert> 
                <description value="Verify that there are AT LEAST 2 patients in the file"/>  
                <direction value="response"/>  
                <operator value="greaterThan"/>  
                <path value="resource-count"/>  
                <value value="1"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Patient"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="03-ResourceValidation-CarePlan"> 
        <name value="03-Resource-CarePlan"/>  
        <description value="03: CarePlan-Pull each file and validate the contents against the appropriate US Core profile for conformance."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>  
                    <code value="get"/> 
                </type>  
                <description value="Request BulkData ndjson CarePlan.  If no file url was provided in the output file, this test will fail."/>  
                <accept value="ndjson"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <url value="${CarePlanFileLocation}"/> 
            </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."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <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>  
                <direction value="response"/>  
                <resource value="CarePlan"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-CarePlan"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="04-ResourceValidation-Condition"> 
        <name value="04-Resource-Condition"/>  
        <description value="04: Condition-Pull each file and validate the contents against the appropriate US Core profile for conformance."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>  
                    <code value="get"/> 
                </type>  
                <description value="Request BulkData ndjson Condition. If no file url was provided in the output file, this test will fail."/>  
                <accept value="ndjson"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <url value="${ConditionFileLocation}"/> 
            </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."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <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>  
                <direction value="response"/>  
                <resource value="Condition"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Condition"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="05-ResourceValidation-Encounter"> 
        <name value="05-Resource-Encounter"/>  
        <description value="05: Encounter-Pull each file and validate the contents against the appropriate US Core profile for conformance."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>  
                    <code value="get"/> 
                </type>  
                <description value="Request BulkData ndjson Encounter.If no file url was provided in the output file, this test will fail."/>  
                <accept value="ndjson"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <url value="${EncounterFileLocation}"/> 
            </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."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <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>  
                <direction value="response"/>  
                <resource value="Encounter"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Encounter"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="06-ResourceValidation-Observation"> 
        <name value="06-Resource-Observation"/>  
        <description value="06: Observation-Pull each file and validate the contents."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>  
                    <code value="get"/> 
                </type>  
                <description value="Request BulkData ndjson Observation. If no file url was provided in the output file, this test will fail."/>  
                <accept value="ndjson"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <url value="${ObservationFileLocation}"/> 
            </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."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <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>  
                <direction value="response"/>  
                <resource value="Observation"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Pediatric BMI Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Ped-BMI"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Pediatric weight-for-height Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Ped-Wgt-Hgt"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any laboratory Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Observation-Lab"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Pulse Oximetry Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Pulse-Ox"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Smoking Status Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Smoke-Stat"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Head Circumference Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Head-Circ"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Blood Pressure Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Observation-BP"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Body Height Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Height"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Body Temp Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-BodyTemp"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Body Weight Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-Weight"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Heart Rate Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-HeartRate"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile if any Respiratory Rate Observations are returned."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Obs-RespRate"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="07-ResourceValidation-Procedure"> 
        <name value="07-Resource-Procedure"/>  
        <description value="07: Procedure-Pull each file and validate the contents against the appropriate US Core profile for conformance."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>  
                    <code value="get"/> 
                </type>  
                <description value="Request BulkData ndjson Procedure. If no file url was provided in the output file, this test will fail."/>  
                <accept value="ndjson"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <url value="${ProcedureFileLocation}"/> 
            </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."/>  
                <direction value="response"/>  
                <operator value="equals"/>  
                <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>  
                <direction value="response"/>  
                <resource value="Procedure"/>  
                <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="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>  
                <direction value="response"/>  
                <validateProfileId value="resource-profile-Procedure"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test> 
</TestScript>