Name | /FHIR1-4-0-Basic/P-R/Patient/Server Assigned Id/Patient-server-id-json |
Description | FHIR Server Patient Basic Operation Tests - JSON - Server Assigned Resource Id - Create, Delete, History, Read, Search, Update, Vread. |
Version | 1 | Latest | 1 |
<?xml version="1.0" encoding="UTF-8"?>
<TestScript xmlns="http://hl7.org/fhir">
<id value="Patient-server-id-json"/>
<url value="http://wildfhir.aegis.net/fhir/TestScript/Patient-server-id-json"/>
<version value="2.2"/>
<name value="FHIR Server Patient Basic Operation Tests - JSON - Server Assigned Resource Id"/>
<status value="draft"/>
<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>
<date value="2016-03-31"/>
<description value="FHIR Server Patient Basic Operation Tests - JSON - Server Assigned Resource Id - Create, Delete, History, Read, Search, Update, Vread."/>
<useContext>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="US"/>
<display value="United States of America (the)"/>
</coding>
</useContext>
<requirements value="Patient Create, Delete, History, Read, Search, Update, Vread Operations"/>
<copyright value="© AEGIS.net, Inc. 2015+"/>
<metadata>
<capability>
<required value="true"/>
<description value="Create, Delete, Read, Update Operations"/>
<link value="http://hl7.org/fhir/http.html#create"/>
<link value="http://hl7.org/fhir/http.html#delete"/>
<link value="http://hl7.org/fhir/http.html#read"/>
<link value="http://hl7.org/fhir/http.html#update"/>
<conformance>
<reference value="../_reference/conformance/PatientCreateDeleteReadUpdate.xml"/>
</conformance>
</capability>
<capability>
<required value="true"/>
<description value="History Instance, Vread Operations"/>
<link value="http://hl7.org/fhir/http.html#history"/>
<link value="http://hl7.org/fhir/http.html#vread"/>
<conformance>
<reference value="../_reference/conformance/PatientHistoryInstanceVread.xml"/>
</conformance>
</capability>
<capability>
<required value="true"/>
<description value="Search Type Operation"/>
<link value="http://hl7.org/fhir/http.html#search"/>
<conformance>
<reference value="../_reference/conformance/PatientSearchType.xml"/>
</conformance>
</capability>
</metadata>
<fixture id="resource-create">
<resource>
<reference value="../_reference/resources/Patient-create.json"/>
</resource>
</fixture>
<fixture id="resource-create-min">
<resource>
<reference value="../_reference/resources/Patient-create-min.json"/>
</resource>
</fixture>
<fixture id="resource-update">
<resource>
<reference value="../_reference/resources/Patient-update.json"/>
</resource>
</fixture>
<fixture id="resource-update-min">
<resource>
<reference value="../_reference/resources/Patient-update-min.json"/>
</resource>
</fixture>
<profile id="bundle-profile">
<reference value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
</profile>
<profile id="resource-profile">
<reference value="http://hl7.org/fhir/StructureDefinition/Patient"/>
</profile>
<variable>
<name value="createResourceId"/>
<path value="Patient/id"/>
<sourceId value="create-search-response"/>
</variable>
<variable>
<name value="createVersionId"/>
<path value="Patient/meta/versionId"/>
<sourceId value="create-search-response"/>
</variable>
<variable>
<name value="searchParamIdentifier"/>
<path value="Patient/identifier/value"/>
<sourceId value="resource-create"/>
</variable>
<setup>
<!-- Patient Delete -->
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="delete"/>
</type>
<resource value="Patient"/>
<description value="Use a conditional delete operation to insure the Patient does not exist on the server."/>
<accept value="json"/>
<contentType value="json"/>
<params value="?identifier=${searchParamIdentifier}"/>
</operation>
</action>
</setup>
<test id="Step1-CreateNewPatient">
<name value="Step1-CreateNewPatient"/>
<description value="Create a new Patient in JSON format where the server assigns the resource id."/>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="create"/>
</type>
<accept value="json"/>
<contentType value="json"/>
<sourceId value="resource-create"/>
</operation>
</action>
<action>
<assert>
<operator value="in"/>
<responseCode value="200,201"/>
</assert>
</action>
<action>
<assert>
<contentType value="json"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="Patient"/>
<description value="Search for the created Patient by the unique identifier."/>
<accept value="json"/>
<contentType value="json"/>
<params value="?identifier=${searchParamIdentifier}"/>
<responseId value="create-search-response"/>
</operation>
</action>
<action>
<assert>
<response value="okay"/>
</assert>
</action>
<action>
<assert>
<contentType value="json"/>
</assert>
</action>
<action>
<assert>
<resource value="Bundle"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that returned bundle first entry contains the created version of the Patient."/>
<minimumId value="resource-create-min"/>
</assert>
</action>
</test>
<test id="Step2-ReadPatient">
<name value="Step2-ReadPatient"/>
<description value="Read the Patient in JSON format created in step 1."/>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="read"/>
</type>
<resource value="Patient"/>
<description value="Read using params element"/>
<accept value="json"/>
<contentType value="json"/>
<params value="/${createResourceId}"/>
</operation>
</action>
<action>
<assert>
<response value="okay"/>
</assert>
</action>
<action>
<assert>
<validateProfileId value="resource-profile"/>
</assert>
</action>
<action>
<assert>
<minimumId value="resource-create-min"/>
</assert>
</action>
</test>
<test id="Step3-UpdatePatient">
<name value="Step3-UpdatePatient"/>
<description value="Update the Patient in JSON format created in step 1 then Read it again for verification."/>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="update"/>
</type>
<resource value="Patient"/>
<accept value="json"/>
<contentType value="json"/>
<params value="/${createResourceId}"/>
<responseId value="update-response"/>
<sourceId value="resource-update"/>
</operation>
</action>
<action>
<assert>
<operator value="in"/>
<responseCode value="200,201"/>
</assert>
</action>
<action>
<assert>
<headerField value="Location"/>
<operator value="notEmpty"/>
<warningOnly value="true"/>
</assert>
</action>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="read"/>
</type>
<resource value="Patient"/>
<accept value="json"/>
<contentType value="json"/>
<params value="/${createResourceId}"/>
</operation>
</action>
<action>
<assert>
<validateProfileId value="resource-profile"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that read returns updated version and that update did not delete previously created fields."/>
<minimumId value="resource-update-min"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that the resource version is present. Warning only as the server may not support versioning."/>
<operator value="notEmpty"/>
<path value="Patient/meta/versionId"/>
<warningOnly value="true"/>
</assert>
</action>
</test>
<test id="Step4-PatientHistoryInstance">
<name value="Step4-PatientHistoryInstance"/>
<description value="Retrieve the updated Patient instance's history in JSON format."/>
<action>
<operation>
<resource value="Patient"/>
<description value="Retrieve the history for a single, known Patient using the known identifier."/>
<accept value="json"/>
<contentType value="json"/>
<params value="/${createResourceId}/_history"/>
</operation>
</action>
<action>
<assert>
<response value="okay"/>
</assert>
</action>
<action>
<assert>
<contentType value="json"/>
</assert>
</action>
<action>
<assert>
<resource value="Bundle"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that there is more than one record returned."/>
<operator value="greaterThan"/>
<path value="/Bundle/total"/>
<value value="1"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that returned bundle first entry contains the most recent updated version of the Patient."/>
<minimumId value="resource-update-min"/>
</assert>
</action>
</test>
<test id="Step5-PatientVersionRead">
<name value="Step5-PatientVersionRead"/>
<description value="Retrieve a specific version of a Patient instance in JSON format."/>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="vread"/>
</type>
<resource value="Patient"/>
<description value="Retrieve initially created version of the Patient instance."/>
<accept value="json"/>
<contentType value="json"/>
<params value="/${createResourceId}/_history/${createVersionId}"/>
</operation>
</action>
<action>
<assert>
<response value="okay"/>
</assert>
</action>
<action>
<assert>
<contentType value="json"/>
</assert>
</action>
<action>
<assert>
<resource value="Patient"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that returned resource contains the created version of the Patient."/>
<minimumId value="resource-create-min"/>
</assert>
</action>
</test>
<test id="Step6-PatientSearchType">
<name value="Step6-PatientSearchType"/>
<description value="Search for Patient resources in JSON format with a identifier = ${searchParamIdentifier}."/>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="search"/>
</type>
<resource value="Patient"/>
<description value="Search for the Patient by identifier."/>
<accept value="json"/>
<contentType value="json"/>
<params value="?identifier=${searchParamIdentifier}"/>
</operation>
</action>
<action>
<assert>
<response value="okay"/>
</assert>
</action>
<action>
<assert>
<contentType value="json"/>
</assert>
</action>
<action>
<assert>
<resource value="Bundle"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that there is at least one record returned. There could be other Patient records returned."/>
<operator value="greaterThan"/>
<path value="/Bundle/total"/>
<value value="0"/>
</assert>
</action>
<action>
<assert>
<description value="Confirm that returned bundle first entry contains the most recent updated version of the Patient."/>
<minimumId value="resource-update-min"/>
</assert>
</action>
</test>
<test id="Step7-PatientDelete">
<name value="Step7-PatientDelete"/>
<description value="Delete a Patient instance in JSON format."/>
<action>
<operation>
<type>
<system value="http://hl7.org/fhir/testscript-operation-codes"/>
<code value="delete"/>
</type>
<resource value="Patient"/>
<description value="Delete the Patient instance."/>
<accept value="json"/>
<contentType value="json"/>
<targetId value="update-response"/>
</operation>
</action>
<action>
<assert>
<operator value="in"/>
<responseCode value="200,204"/>
</assert>
</action>
</test>
</TestScript>