Name | /FHIR4-0-1-Advanced/USCore-ClinData/01-USCore-Tests/us-core-medicationrequest-sequence |
Description | Tests for USCDI MedicationRequest using the US Core resource. Reference http://www.hl7.org/fhir/us/core/general-guidance.html#must-support and http://hl7.org/fhir/us/core/structuredefinition-us-core-medicationrequest.html |
Version | 9 | Latest | 9 |
<?xml version="1.0" encoding="UTF-8"?>
<TestScript xmlns="http://hl7.org/fhir">
<id value="MedicationRequest-Tests"/>
<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/AssertValidateJSONExtractProfileId.groovy"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="jsonPath"/>
</extension>
<extension url="value">
<valueString value="$.entry[?(@.resource.resourceType == 'MedicationRequest')].resource"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="profileId"/>
</extension>
<extension url="value">
<valueString value="MedicationRequestProfile"/>
</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>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule">
<extension url="ruleId">
<valueId value="CompositeOrSearch"/>
</extension>
<extension url="path">
<valueString value="/FHIRCommon/_reference/rule/ConditionalOrSearch.groovy"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="resourceType"/>
</extension>
<extension url="value">
<valueString value="MedicationRequest"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="addedParam"/>
</extension>
<extension url="value">
<valueString value="patient=${patientId}&intent=order"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="baseUrl"/>
</extension>
<extension url="value">
<valueString value="${dest1SystemConfig.baseUrl}"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="mainParamCode"/>
</extension>
<extension url="value">
<valueString value="status"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="mainParamExpression"/>
</extension>
<extension url="value">
<valueString value="status"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="mimeType"/>
</extension>
<extension url="value">
<valueString value="json"/>
</extension>
</extension>
</extension>
<url value="http://wildfhir.aegis.net/fhir4-0-0/TestScript/MedicationRequest_Tests"/>
<name value="MedicationRequest_Tests"/>
<title value="MedicationRequest Tests"/>
<status value="active"/>
<date value="2020-05-15"/>
<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 USCDI MedicationRequest using the US Core resource. Reference http://www.hl7.org/fhir/us/core/general-guidance.html#must-support and http://hl7.org/fhir/us/core/structuredefinition-us-core-medicationrequest.html"/>
<copyright value="This FHIR Test Script is licensed under Creative Commons (CC0) 'No Rights Reserved'. Learn more at https://creativecommons.org/licenses"/>
<destination>
<index value="1"/>
<profile>
<system value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/>
<code value="FHIR-Server"/>
</profile>
</destination>
<profile id="MedicationRequestProfile">
<reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest"/>
</profile>
<profile id="MedicationProfile">
<reference value="http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication"/>
</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="testZeroCount"/>
<description value="Test 00 Count"/>
<expression value="Bundle.entry.resource.count()"/>
<sourceId value="testZeroSearch"/>
</variable>
<variable>
<name value="testOneId"/>
<description value="Test 01 resource id"/>
<expression value="Bundle.entry.resource.id"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testOneCount"/>
<description value="Test 01 Count"/>
<expression value="Bundle.entry.resource.count()"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testTwoIntent"/>
<description value="Test 02 Intent"/>
<expression value="Bundle.entry.resource.where(intent.exists() and status.exists()).intent"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testTwoStatus"/>
<description value="Test 02 Status"/>
<expression value="Bundle.entry.resource.where(intent.exists() and status.exists()).status"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testThreeIntent"/>
<description value="Test 03 Intent"/>
<expression value="Bundle.entry.resource.where(intent.exists() and encounter.reference.exists()).intent"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testThreeEncounter"/>
<description value="Test 03 Encounter"/>
<expression value="Bundle.entry.resource.where(intent.exists() and encounter.reference.exists()).encounter.reference"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testFourIntent"/>
<description value="Test 04 Intent"/>
<expression value="Bundle.entry.resource.where(intent.exists() and authoredOn.exists()).intent"/>
<sourceId value="testOneSearch-1"/>
</variable>
<variable>
<name value="testFourAuthoredon"/>
<description value="Test 04 Authored On"/>
<expression value="Bundle.entry.resource.where(intent.exists() and authoredOn.exists()).authoredOn"/>
<sourceId value="testOneSearch-1"/>
</variable>
<test id="01-search_by_patient_intent">
<name value="search_by_patient_intent"/>
<description value="Search by patient id and intent"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=proposal"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=proposal"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=plan"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=plan"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</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="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=order"/>
<responseId value="testOneSearch-1"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=order"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify at least one MedicationRequest is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testOneCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=original-order"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=original-order"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=reflex-order"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=reflex-order"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=filler-order"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=filler-order"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=instance-order"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=instance-order"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=option"/>
<responseId value="testZeroSearch"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=Patient/${patientId}&intent=option"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the Bundle has at least 1 entry"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.count()"/>
<operator value="equals"/>
<value value="${testZeroCount}"/>
<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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="02-search_by_patient_intent_status">
<name value="search_by_patient_intent_status"/>
<description value="Search by patient id and intent and status"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent and status"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=${testTwoIntent}&status=${testTwoStatus}"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="03-search_by_patient_intent_encounter">
<name value="search_by_patient_intent_encounter"/>
<description value="Search by patient id and intent and encounter"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent and encounter"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=${testThreeIntent}&encounter=${testThreeEncounter}"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="04-search_by_patient_intent_authoredOn">
<name value="search_by_patient_intent_authoredOn"/>
<description value="Search by patient id and intent and authored on"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent and authored on"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=${testFourIntent}&authoredOn=${testFourAuthoredon}"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(MedicationRequest).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="false"/>
</assert>
</action>
<action>
<assert>
<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 US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="05-read_interaction">
<name value="read_interaction"/>
<description value="Read MedicationRequest"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="read"/>
</type>
<resource value="MedicationRequest"/>
<description value="Read MedicationRequest"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<targetId value="testOneSearch-1"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a MedicationRequest resource"/>
<direction value="response"/>
<resource value="MedicationRequest"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the resource id exists"/>
<direction value="response"/>
<expression value="MedicationRequest.id.exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Validate response against the Document Reference profile"/>
<direction value="response"/>
<validateProfileId value="MedicationRequestProfile"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="06-vread_interaction">
<name value="vread_interaction"/>
<description value="Version read MedicationRequest"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="vread"/>
</type>
<resource value="MedicationRequest"/>
<description value="vRead MedicationRequest"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<targetId value="testOneSearch-1"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a MedicationRequest resource"/>
<direction value="response"/>
<resource value="MedicationRequest"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Validate response against the Document Reference profile"/>
<direction value="response"/>
<validateProfileId value="MedicationRequestProfile"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="07-history_interaction">
<name value="history_interaction"/>
<description value="History Interactions"/>
<action>
<operation>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-operation-pagesNext">
<valuePositiveInt value="10"/>
</extension>
<resource value="MedicationRequest"/>
<description value="History Interactions"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="/${testOneId}/_history"/>
<responseId value="testHistorySearch-1"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response includes History"/>
<direction value="response"/>
<path value="$.type"/>
<value value="history"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<operator value="notEmpty"/>
<path value="$.entry[?(@.resource.resourceType == 'MedicationRequest')].resource"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="true"/>
</extension>
<description value="Validate response bundle"/>
<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-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
</extension>
<description value="Validate against US Core profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="historyOrder"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="sourcePrefix"/>
</extension>
<extension url="value">
<valueString value="testHistorySearch"/>
</extension>
</extension>
</extension>
<description value="Validate History order"/>
<sourceId value="none"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="08-Server returns Medication resources from MedicationRequest search by patient + intent + _includes: MedicationRequest:medication">
<name value="Server returns Medication resources from MedicationRequest search by patient + intent + _includes: MedicationRequest:medication"/>
<description value="Search by patient id and intent and _include=MedicationRequest"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search by patient id and intent and _include=MedicationRequest"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=${testTwoIntent}&_include=MedicationRequest:medication"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the MedicationRequest resource is found in the Bundle"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(Medication).exists()"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="assert-by-path"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="jsonPath"/>
</extension>
<extension url="value">
<valueString value="$.entry[?(@.resource.resourceType == 'Medication')].resource"/>
</extension>
</extension>
<extension url="param">
<extension url="name">
<valueString value="profileId"/>
</extension>
<extension url="value">
<valueString value="MedicationProfile"/>
</extension>
</extension>
</extension>
<description value="Validate against Medication profile"/>
<direction value="response"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="09-Server returns Provenance resources from MedicationRequest search by patient + intent + _revIncludes: Provenance:target">
<name value="Server returns Provenance resources from MedicationRequest search by patient + intent + _revIncludes: Provenance:target"/>
<description value="Search for a MedicationRequest by patient and code and include Provenance"/>
<action>
<operation>
<type>
<system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="MedicationRequest"/>
<description value="Search for a MedicationRequest by patient and code and include Provenance"/>
<accept value="json"/>
<contentType value="json"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<params value="?patient=${patientId}&intent=${testTwoIntent}&_revinclude=Provenance:target"/>
</operation>
</action>
<action>
<assert>
<description value="Verify a response is returned"/>
<direction value="response"/>
<operator value="in"/>
<responseCode value="200,201"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify the response is a Bundle"/>
<direction value="response"/>
<resource value="Bundle"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description value="Verify Provenance is returned"/>
<direction value="response"/>
<expression value="Bundle.entry.resource.as(Provenance).exists()"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="11-Composite-Or-Search">
<name value="Composite-Or-Search"/>
<description value="Validate that the comma Or search paradigm can correctly return resources with both values."/>
<action>
<assert>
<extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule">
<extension url="ruleId">
<valueId value="CompositeOrSearch"/>
</extension>
<extension url="param">
<extension url="name">
<valueString value="sourcePrefix"/>
</extension>
<extension url="value">
<valueString value="testOneSearch"/>
</extension>
</extension>
</extension>
<description value="Rule assert to validate that the comma Or search paradigm can correctly return resources with both values."/>
<sourceId value="none"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
</TestScript>