Test Script

Name/FHIR4-0-1-Advanced/Patient/02-vread/fhir-api-r4-patient-vread-03-deleted
DescriptionFHIR API R4 (v4.0.1) Advanced Operation Tests - Patient vread test suite against a single server for a known, deleted resource instance. All tests perform the read operation for a specified Patient resource id representing a known valid Patient where the specified version is deleted. Assertions test all required and optional response HTTP Headers and validate the returned payload.
Version5Latest5
Content
<?xml version="1.0" encoding="UTF-8"?>

<TestScript xmlns="http://hl7.org/fhir">  
    <id value="fhir-api-r4-patient-vread-03-deleted"/>  
    <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>FHIR API R4 (v4.0.1) - Patient Version Read Deleted Resource Suite</p> 
        </div> 
    </text>  
    <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-rule"> 
        <extension url="ruleId"> 
            <valueId value="rule-AssertResourceIfBody"/> 
        </extension>  
        <extension url="path"> 
            <valueString value="/FHIRCommon/_reference/rule/AssertResourceIfBody.groovy"/> 
        </extension>  
        <extension url="param"> 
            <extension url="name"> 
                <valueString value="resourceOperator"/> 
            </extension>  
            <extension url="value"> 
                <valueString value="equals"/> 
            </extension> 
        </extension>  
        <extension url="param"> 
            <extension url="name"> 
                <valueString value="bodyOperator"/> 
            </extension>  
            <extension url="value"> 
                <valueString value="notEmpty"/> 
            </extension> 
        </extension> 
    </extension>  
    <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-ruleset"> 
        <extension url="rulesetId"> 
            <valueId value="ruleset-readdeleted-headers"/> 
        </extension>  
        <extension url="path"> 
            <valueString value="/FHIRCommon/_reference/ruleset/RuleSet-ReadNotFoundHeaders-Groovy.xml"/> 
        </extension>  
        <extension url="rule"> 
            <extension url="ruleId"> 
                <valueId value="assertContentTypeIfBody"/> 
            </extension> 
        </extension>  
        <extension url="rule"> 
            <extension url="ruleId"> 
                <valueId value="assertContentTypeMimeTypeIfBody"/> 
            </extension> 
        </extension>  
        <extension url="rule"> 
            <extension url="ruleId"> 
                <valueId value="assertContentTypeCharsetIfBody"/> 
            </extension> 
        </extension> 
    </extension>  
    <url value="http://wildfhir.aegis.net/fhir4-0-1/TestScript/fhir-api-r4-patient-vread-03-deleted"/>  
    <name value="FHIR API R4 (v4.0.1) - Patient Read Version Deleted Resource Suite"/>  
    <status value="active"/>  
    <date value="2020-02-02"/>  
    <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="FHIR API R4 (v4.0.1) Advanced Operation Tests - Patient vread test suite against a single server for a known, deleted resource instance. All tests perform the read operation for a specified Patient resource id representing a known valid Patient where the specified version is deleted. Assertions test all required and optional response HTTP Headers and validate the returned payload."/>  
    <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>  
    <fixture id="resource-read-json-min"> 
        <autocreate value="false"/>  
        <autodelete value="false"/>  
        <resource> 
            <reference value="./_reference/resources/Patient-read-json-min.json"/> 
        </resource> 
    </fixture>  
    <fixture id="resource-read-xml-min"> 
        <autocreate value="false"/>  
        <autodelete value="false"/>  
        <resource> 
            <reference value="./_reference/resources/Patient-read-xml-min.xml"/> 
        </resource> 
    </fixture>  
    <profile id="resource-profile"> 
        <reference value="http://hl7.org/fhir/StructureDefinition/Patient"/> 
    </profile>  
    <variable> 
        <name value="DeletedPatientResourceId"/>  
        <description value="Enter a resource id for a currently deleted Patient resource on the destination system."/>  
        <hint value="[Deleted Resource Id]"/> 
    </variable>  
    <variable> 
        <name value="DeletedPatientVersionId"/>  
        <description value="Enter a version id for a currently deleted Patient resource on the destination system. Make sure that the version number given in the variable is one more than the version number of the resource before it got deleted."/>  
        <hint value="[Deleted Version Id]"/> 
    </variable>  
    <test id="01-VreadDeletedJSON"> 
        <name value="VreadDeletedJSON"/>  
        <description value="Test the vread operation for a known, deleted Patient resource instance. The expected HTTP response is 410 (Gone) and optional content of an OperationOutcome resource in JSON format."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>  
                    <code value="vread"/> 
                </type>  
                <resource value="Patient"/>  
                <description value="Patient vread operation for a known, deleted resource instance."/>  
                <accept value="json"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <origin value="1"/>  
                <params value="/${DeletedPatientResourceId}/_history/${DeletedPatientVersionId}"/> 
            </operation> 
        </action>  
        <action> 
            <assert> 
                <description value="Confirm that the returned HTTP status is 410(Gone)."/>  
                <direction value="response"/>  
                <responseCode value="410"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action>  
        <action> 
            <assert> 
                <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset"> 
                    <extension url="rulesetId"> 
                        <valueId value="ruleset-readdeleted-headers"/> 
                    </extension>  
                    <extension url="rule"> 
                        <extension url="ruleId"> 
                            <valueId value="assertContentTypeMimeTypeIfBody"/> 
                        </extension>  
                        <extension url="param"> 
                            <extension url="name"> 
                                <valueString value="headerExpectedValue"/> 
                            </extension>  
                            <extension url="value"> 
                                <valueString value="application/fhir+json"/> 
                            </extension> 
                        </extension> 
                    </extension> 
                </extension>  
                <description value="Complex ruleset assertion to conditionally validate expected HTTP Header Content-Type."/>  
                <direction value="response"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action>  
        <action> 
            <assert> 
                <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> 
                    <extension url="ruleId"> 
                        <valueId value="rule-AssertResourceIfBody"/> 
                    </extension>  
                    <extension url="param"> 
                        <extension url="name"> 
                            <valueString value="resource"/> 
                        </extension>  
                        <extension url="value"> 
                            <valueString value="OperationOutcome"/> 
                        </extension> 
                    </extension> 
                </extension>  
                <description value="Complex rule assertion to conditionally validate that the returned resource type is OperationOutcome."/>  
                <direction value="response"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test>  
    <test id="02-VreadDeletedXML"> 
        <name value="VreadDeletedXML"/>  
        <description value="Test the vread operation for a known, deleted Patient resource instance. The expected HTTP response is 410 (Gone) and optional content of an OperationOutcome resource in XML format."/>  
        <action> 
            <operation> 
                <type> 
                    <system value="http://terminology.hl7.org/CodeSystem/testscript-operation-codes"/>  
                    <code value="vread"/> 
                </type>  
                <resource value="Patient"/>  
                <description value="Patient vread operation for a known, deleted resource instance."/>  
                <accept value="xml"/>  
                <destination value="1"/>  
                <encodeRequestUrl value="true"/>  
                <origin value="1"/>  
                <params value="/${DeletedPatientResourceId}/_history/${DeletedPatientVersionId}"/> 
            </operation> 
        </action>  
        <action> 
            <assert> 
                <description value="Confirm that the returned HTTP status is 410(Gone)."/>  
                <direction value="response"/>  
                <responseCode value="410"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action>  
        <action> 
            <assert> 
                <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-ruleset"> 
                    <extension url="rulesetId"> 
                        <valueId value="ruleset-readdeleted-headers"/> 
                    </extension>  
                    <extension url="rule"> 
                        <extension url="ruleId"> 
                            <valueId value="assertContentTypeMimeTypeIfBody"/> 
                        </extension>  
                        <extension url="param"> 
                            <extension url="name"> 
                                <valueString value="headerExpectedValue"/> 
                            </extension>  
                            <extension url="value"> 
                                <valueString value="application/fhir+xml"/> 
                            </extension> 
                        </extension> 
                    </extension> 
                </extension>  
                <description value="Complex ruleset assertion to conditionally validate expected HTTP Header Content-Type."/>  
                <direction value="response"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action>  
        <action> 
            <assert> 
                <extension url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-rule"> 
                    <extension url="ruleId"> 
                        <valueId value="rule-AssertResourceIfBody"/> 
                    </extension>  
                    <extension url="param"> 
                        <extension url="name"> 
                            <valueString value="resource"/> 
                        </extension>  
                        <extension url="value"> 
                            <valueString value="OperationOutcome"/> 
                        </extension> 
                    </extension> 
                </extension>  
                <description value="Complex rule assertion to conditionally validate that the returned resource type is OperationOutcome."/>  
                <direction value="response"/>  
                <warningOnly value="false"/> 
            </assert> 
        </action> 
    </test> 
</TestScript>