Name | /FHIRSandbox/DaVinci/FHIR4-0-1-PDEX/PDEX-STU1/04-PDEX-Interactions/03-PDEX-MedDispense/DV-PDEX-MedicationDispense-xml |
Description | Tests for MedicationDispense using the DaVinci PDEX MedicationDispense resource. Reference http://hl7.org/fhir/us/davinci-pdex/STU1/StructureDefinition-pdex-medicationdispense.html. Should Support and May Support capabilities will issue warnings if not passed, Shall Support capabilities will fail if not passed. Note that support for MedicationDispense resource and xml format is a 'should' for DaVinci PDEX. |
Version | 2 | Latest | 2 |
<?xml version="1.0" encoding="UTF-8"?>
<TestScript xmlns="http://hl7.org/fhir">
<id value="dv-pdex-medication-dispense-xml"/>
<meta>
<profile value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/>
</meta>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule">
<extension url="ruleId">
<valueId value="historyOrder"/>
</extension>
<extension url="path">
<valueString value="/FHIRCommon/_reference/rule/historyOrder.groovy"/>
</extension>
</extension>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
<extension url="path">
<valueString value="/FHIRCommon/_reference/rule/AssertValidateXMLExtractProfileId.groovy"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="xPath"/>
</extension>
<extension url="value">
<valueString value="Bundle/entry/resource/MedicationDispense"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="profileId"/>
</extension>
<extension url="value">
<valueString value="PDEXMedDispProfile"/>
</extension>
</extension>
</extension>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule">
<extension url="ruleId">
<valueId value="resolveReferences"/>
</extension>
<extension url="path">
<valueString value="/FHIRCommon/_reference/rule/resolveReferences.groovy"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="baseUrl"/>
</extension>
<extension url="value">
<valueString value="${dest1SystemConfig.baseUrl}"/>
</extension>
</extension>
</extension>
<url value="http://wildfhir.aegis.net/fhir4-0-1/TestScript/PDEX_MedicationDispense_Tests"/>
<name value="PDEX_MedicationDispense_Tests"/>
<title value="PDEX_MedicationDispense_Tests"/>
<status value="active"/>
<date value="2021-12-14"/>
<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="Tests for MedicationDispense using the DaVinci PDEX MedicationDispense resource. Reference http://hl7.org/fhir/us/davinci-pdex/STU1/StructureDefinition-pdex-medicationdispense.html. Should Support and May Support capabilities will issue warnings if not passed, Shall Support capabilities will fail if not passed. Note that support for MedicationDispense resource and xml format is a 'should' for DaVinci PDEX."/>
<copyright value="This FHIR Test Script is licensed under Creative Commons (CC0) 'No Rights Reserved'. Learn more at https://creativecommons.org/licenses"/>
<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="PDEXMedDispProfile">
<reference value="http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-medicationdispense"/>
</profile>
<profile id="BundleProfile">
<reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
</profile>
<variable>
<name value="patientId"/>
<description value="Patient id"/>
</variable>
<variable>
<name value="testOneId"/>
<description value="Test 01 resource id"/>
<expression value="MedicationDispense.id"/>
<sourceId value="read-response"/>
</variable>
<variable>
<name value="MedDispId"/>
<description value="Test 01 Search Response 1"/>
<expression value="Bundle.entry[0].resource.id"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="MedDispStatus"/>
<description value="Test 01 Search Response 2"/>
<expression value="Bundle.entry[0].resource.status"/>
<sourceId value="testOneSearch-1"/>
</variable>
<test id="01-search_by_subject">
<name value="search_by_subject"/>
<description value="Search by MedicationDispense.subject (as Patient)"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationDispense"/>
<description value="Search by subject"/>
<accept value="xml"/>
<contentType value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?subject=${patientId}"/>
<responseId value="testOneSearch-1"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a 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="Validate response bundle conforms to the Bundle profile"/>
<direction value="response"/>
<validateProfileId value="BundleProfile"/>
<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="Verify the MedicationDispense resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationDispense).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>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
</extension>
<description value="Validate against the PDEX MedicationDispense profile if present in Bundle response"/>
<direction value="response"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="02-search_by_Patient">
<name value="search_by_Patient"/>
<description value="Search for MedicationDispense using the Patient id and Patient id and _includes"/>
<action>
<operation>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext">
<valuePositiveInt value="10"/>
</extension>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationDispense"/>
<description value="Search by Patient Id"/>
<accept value="xml"/>
<contentType value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a 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="Validate response bundle conforms to the Bundle profile"/>
<direction value="response"/>
<validateProfileId value="BundleProfile"/>
<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="Verify the MedicationDispense resource is found in the Bundle. A server **SHALL** be capable of returning all medications for a patient using one of or both: `GET /MedicationDispense?patient=[id]` `GET /MedicationDispense?patient=[id]&_include=MedicationDispense:medication."/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationDispense).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
</extension>
<description value="Validate against the PDEX MedicationDispense profile if present in Bundle response"/>
<direction value="response"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<operation>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext">
<valuePositiveInt value="10"/>
</extension>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationDispense"/>
<description value="Search by Patient Id and _include MedicationDispense"/>
<accept value="xml"/>
<contentType value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&_include=MedicationDispense:medication"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a 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="Validate response bundle conforms to the Bundle profile"/>
<direction value="response"/>
<validateProfileId value="BundleProfile"/>
<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="Verify the MedicationDispense resource is found in the Bundle. A server **SHALL** be capable of returning all medications for a patient using one of or both: `GET /MedicationDispense?patient=[id]` `GET /MedicationDispense?patient=[id]&_include=MedicationDispense:medication."/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationDispense).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
</extension>
<description value="Validate against the PDEX MedicationDispense profile if present in Bundle response"/>
<direction value="response"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="03-search_by_status">
<name value="search_by_status"/>
<description value="Search by MedicationDispense.status"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationDispense"/>
<description value="Search by status"/>
<accept value="xml"/>
<contentType value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?status=${MedDispStatus}"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a 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="Validate response bundle conforms to the Bundle profile"/>
<direction value="response"/>
<validateProfileId value="BundleProfile"/>
<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="Verify MedicationDispense resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationDispense).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>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
</extension>
<description value="Validate against the PDEX MedicationDispense profile if present in Bundle response"/>
<direction value="response"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="04-read_interaction">
<name value="read_interaction"/>
<description value="Read MedicationDispense"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="read"/>
</type>
<resource value="MedicationDispense"/>
<description value="MedicationDispense read operation with HTTP Header Accept set to XML format."/>
<accept value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<origin value="1"/>
<params value="/${MedDispId}"/>
<responseId value="read-response"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a MedicationDispense resource"/>
<direction value="response"/>
<resource value="MedicationDispense"/>
<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="Verify the resource id exists"/>
<direction value="response"/>
<expression value="MedicationDispense.id.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="Verify MedicationDispense.status (mustSupport) exists"/>
<direction value="response"/>
<expression value="MedicationDispense.status.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="Verify MedicationDispense.subject (mustSupport) exists"/>
<direction value="response"/>
<expression value="MedicationDispense.subject.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="Verify MedicationDispense.substitution (mustSupport) exists"/>
<direction value="response"/>
<expression value="MedicationDispense.substitution.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="Verify MedicationDispense.substitution.wasSubstituted (mustSupport) exists"/>
<direction value="response"/>
<expression value="MedicationDispense.substitution.wasSubstituted.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="Validate response against the PDEX MedicationDispense profile"/>
<direction value="response"/>
<validateProfileId value="PDEXMedDispProfile"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="05-vread_interaction">
<name value="vread_interaction"/>
<description value="Version read MedicationDispense"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="vread"/>
</type>
<resource value="MedicationDispense"/>
<description value="vRead MedicationDispense"/>
<accept value="xml"/>
<contentType value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<targetId value="read-response"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a MedicationDispense resource"/>
<direction value="response"/>
<resource value="MedicationDispense"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="06-history_interaction">
<name value="history_interaction"/>
<description value="History Interactions"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="history-instance"/>
</type>
<resource value="MedicationDispense"/>
<description value="History Interactions"/>
<accept value="xml"/>
<contentType value="xml"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<responseId value="testHistorySearch"/>
<targetId value="read-response"/>
</operation>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<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="Verify the response is a Bundle"/>
<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="Verify the response includes History"/>
<direction value="response"/>
<path value="Bundle/type"/>
<value value="history"/>
<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="Verify the MedicationDispense resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationDispense).exists()"/>
<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="Validate response bundle"/>
<direction value="response"/>
<validateProfileId value="BundleProfile"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="07-Resolve-References">
<name value="Resolve-References"/>
<description value="Validate that references in the read MedicationDispense search resolve"/>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="resolveReferences"/>
</extension>
</extension>
<description value="Validate that references resolve"/>
<direction value="response"/>
<sourceId value="read-response"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
</TestScript>