Release 4B 5 Ballot

This page is part of the FHIR Specification (v4.3.0: R4B (v5.0.0-ballot: R5 Ballot - STU see ballot notes ). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

Testscript-example.xml

Example TestScript/testscript-example (XML)

FHIR Infrastructure Work Group Maturity Level : N/A Standards Status : Informative Compartments : Not linked to any defined compartments

Raw XML ( canonical form + also see XML Format Specification )

Jump past Narrative

General TestScript Example (id = "testscript-example")

<?xml version="1.0" encoding="UTF-8"?>

<TestScript xmlns="http://hl7.org/fhir">
  <id value="testscript-example"/> 
  
    
    
      
        
      
      display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px
       solid #8da1b4; border-radius: 5px; line-height: 60%
        
      
      
        : 
        
      
      
        : id: urn:oid:1.3.6.1.4.1.21367.2005.3.7.9876
      
      
        : 1.0
      
      
        : TestScript Example
      
      
        : draft
      
      
        : true
      
      
        : 2017-01-18
      
      
        : HL7
      
      
        : Support: 
        
      
      
        : TestScript example resource with setup to delete if present and create a new instance
         of a Patient; and single test definition to read the created Patient with various asserts.
      
      
        : United States of America (the) 
        
      
      
        : Patient Conditional Create (Update), Read and Delete Operations
      
      
        : © HL7.org 2011+
      
      
        
          
        
        
        
          
            
            
              
            
            
              
            
          
          
            
            
              
            
            Demographics and other administrative information about an individual or animal receiving
               care or other health-related services.
          
        
        
        
          
            
            
              
            
            
              
            
            
              
            
            
              
            
            
              
            
          
          
            
            
            
            
            
              , 
              , 
              
            
            
              
            
          
        
      
      
        
          
        
        
          : false
        
        
          : false
        
        
          : 
           &quot;Peter CHALMERS&quot;
        
      
      
        
          
        
        
          : false
        
        
          : false
        
        
          : 
           &quot;Peter CHALMERS&quot;
        
      
      
        : 
         &quot;Patient&quot;
      
      
      
        
          
          
            
          
          
            
          
          
            
          
        
        
          
          
          
          
        
      
      
        
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Delete (Details: http://terminology.hl7.org/CodeSystem/testscript-operation-codes code
                 delete = 'Delete', stated as 'null')
              
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Update (Details: http://terminology.hl7.org/CodeSystem/testscript-operation-codes code
                 update = 'Update', stated as 'null')
              
              
              
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Read (Details: http://terminology.hl7.org/CodeSystem/testscript-operation-codes code read
                 = 'Read', stated as 'null')
              
              Read the created patient resource on the test server using the id from fixture-patient-create.
                 Verify contents.
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
                 compareToSourceId reference to fixture-patient-create used to create the Patient.
              
              
              
              
            
          
        
      
      
        
          
        
        
          : Read Patient
        
        
          : Read a Patient and validate response.
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Read (Details: http://terminology.hl7.org/CodeSystem/testscript-operation-codes code read
                 = 'Read', stated as 'null')
              
              Read the patient resource on the test server using the id from fixture-patient-create.
                 Prevent URL encoding of the request.
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server
                 might not support versioning.
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
            
            
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
            
            
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
                 sourceId reference to read responseId fixture.
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit
                 sourceId reference to read responseId fixture.
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
                 compareToSourceId reference to fixture-patient-create used to create the Patient and implicit
                 reference to read response payload.
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
                 compareToSourceId reference to fixture-patient-create used to create the Patient and explicit
                 reference to read response payload and default operator of 'equals'.
              
              
              
              
              
            
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
            
            
              
              Confirm that the returned resource contains the expected retained elements and values.
                 Warning only to provide users with reviewable results.
              
              
            
          
        
      
      
        
          
        
        
          
            
          
          
          
            
              
              
                
              
              
                
              
              
                
              
              
                
              
              
                
              
            
            
              
              Delete (Details: http://terminology.hl7.org/CodeSystem/testscript-operation-codes code
                 delete = 'Delete', stated as 'null')
              
              
              
              
            
          
        
      
    
  
  

  <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"><p> <b> Generated Narrative: TestScript</b> <a name="testscript-example"> </a> </p> <div style="display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border:
       1px solid #8da1b4; border-radius: 5px; line-height: 60%"><p style="margin-bottom: 0px">Resource TestScript &quot;testscript-example&quot; </p> </div> <p> <b> url</b> : <code> http://hl7.org/fhir/TestScript/testscript-example</code> </p> <p> <b> identifier</b> : id: urn:oid:2.16.840.1.113883.4.642.12.4</p> <p> <b> version</b> : 1.0</p> <p> <b> name</b> : TestScript Example</p> <p> <b> status</b> : draft</p> <p> <b> experimental</b> : true</p> <p> <b> date</b> : 2017-01-18</p> <p> <b> publisher</b> : HL7</p> <p> <b> contact</b> : Support: <a href="mailto:support@HL7.org">support@HL7.org</a> </p> <p> <b> description</b> : TestScript example resource with setup to delete if present and create a new
         instance of a Patient; and single test definition to read the created Patient with
         various asserts.</p> <h3> UseContexts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Code</b> </td> <td> <b> Value[x]</b> </td> </tr> <tr> <td> *</td> <td> Clinical Focus (Details: http://terminology.hl7.org/CodeSystem/usage-context-type
             code focus = 'Clinical Focus', stated as 'null')</td> <td> positive <span style="background: LightGoldenRodYellow; margin: 4px; border: 1px solid khaki"> (<a href="http://terminology.hl7.org/3.1.0/CodeSystem-variant-state.html">sequenceStatus</a> #positive)</span> </td> </tr> <tr> <td> *</td> <td> Program (Details: http://terminology.hl7.org/CodeSystem/usage-context-type code
             program = 'Program', stated as 'null')</td> <td> 2018-? year</td> </tr> </table> <p> <b> jurisdiction</b> : United States of America (the) <span style="background: LightGoldenRodYellow; margin: 4px; border: 1px solid khaki"> (unknown#US)</span> </p> <p> <b> purpose</b> : Patient Conditional Create (Update), Read and Delete Operations</p> <p> <b> copyright</b> : © HL7.org 2011+</p> <blockquote> <p> <b> metadata</b> </p> <h3> Links</h3> <table class="grid"><tr> <td> -</td> <td> <b> Url</b> </td> <td> <b> Description</b> </td> </tr> <tr> <td> *</td> <td> <a href="http://hl7.org/fhir/patient.html">http://hl7.org/fhir/patient.html</a> </td> <td> Demographics and other administrative information about an individual or animal
               receiving care or other health-related services.</td> </tr> </table> <h3> Capabilities</h3> <table class="grid"><tr> <td> -</td> <td> <b> Required</b> </td> <td> <b> Validated</b> </td> <td> <b> Description</b> </td> <td> <b> Link</b> </td> <td> <b> Capabilities</b> </td> </tr> <tr> <td> *</td> <td> true</td> <td> false</td> <td> Patient Update, Read and Delete Operations</td> <td> <a href="http://hl7.org/fhir/http.html#delete">http://hl7.org/fhir/http.html#delete</a> , <a href="http://hl7.org/fhir/http.html#read">http://hl7.org/fhir/http.html#read</a> , <a href="http://hl7.org/fhir/http.html#update">http://hl7.org/fhir/http.html#update</a> </td> <td> <a href="http://hl7.org/fhir/CapabilityStatement/example">http://hl7.org/fhir/CapabilityStatement/example</a> </td> </tr> </table> </blockquote> <blockquote> <p> <b> fixture</b> </p> <p> <b> autocreate</b> : false</p> <p> <b> autodelete</b> : false</p> <p> <b> resource</b> : <a href="patient-example.html">Patient/example: Peter Chalmers</a>  &quot;Peter CHALMERS&quot;</p> </blockquote> <blockquote> <p> <b> fixture</b> </p> <p> <b> autocreate</b> : false</p> <p> <b> autodelete</b> : false</p> <p> <b> resource</b> : <a href="patient-example.html">Patient/example: Peter Chalmers (minimum)</a>  &quot;Peter CHALMERS&quot;</p> </blockquote> <p> <b> profile</b> : <a href="http://hl7.org/fhir/StructureDefinition/Patient">http://hl7.org/fhir/StructureDefinition/Patient</a>  &quot;Patient&quot;</p> <h3> Variables</h3> <table class="grid"><tr> <td> -</td> <td> <b> Name</b> </td> <td> <b> Path</b> </td> <td> <b> SourceId</b> </td> </tr> <tr> <td> *</td> <td> createResourceId</td> <td> Patient/id</td> <td> fixture-patient-create</td> </tr> </table> <blockquote> <p> <b> setup</b> </p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td> -</td> <td> <b> Type</b> </td> <td> <b> Resource</b> </td> <td> <b> Label</b> </td> <td> <b> Description</b> </td> <td> <b> Accept</b> </td> <td> <b> EncodeRequestUrl</b> </td> <td> <b> Params</b> </td> </tr> <tr> <td> *</td> <td> delete (Details: http://hl7.org/fhir/restful-interaction code delete = 'delete',
                 stated as 'null')</td> <td> <a href="patient.html">Patient</a> </td> <td> SetupDeletePatient</td> <td> Execute a delete operation to insure the patient does not exist on the server.</td> <td> json</td> <td> true</td> <td> /${createResourceId}</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Operator</b> </td> <td> <b> ResponseCode</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned HTTP status is 200(OK) or 204(No Content).</td> <td> response</td> <td> in</td> <td> 200,204</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td> -</td> <td> <b> Type</b> </td> <td> <b> Resource</b> </td> <td> <b> Label</b> </td> <td> <b> Description</b> </td> <td> <b> Accept</b> </td> <td> <b> ContentType</b> </td> <td> <b> EncodeRequestUrl</b> </td> <td> <b> Params</b> </td> <td> <b> SourceId</b> </td> </tr> <tr> <td> *</td> <td> update (Details: http://hl7.org/fhir/restful-interaction code update = 'update',
                 stated as 'null')</td> <td> <a href="patient.html">Patient</a> </td> <td> SetupCreatePatient</td> <td> Create patient resource on test server using the contents of fixture-patient-create</td> <td> json</td> <td> json</td> <td> true</td> <td> /${createResourceId}</td> <td> fixture-patient-create</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> ResponseCode</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned HTTP status is 201(Created).</td> <td> response</td> <td> 201</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td> -</td> <td> <b> Type</b> </td> <td> <b> Resource</b> </td> <td> <b> Description</b> </td> <td> <b> EncodeRequestUrl</b> </td> <td> <b> TargetId</b> </td> </tr> <tr> <td> *</td> <td> read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated
                 as 'null')</td> <td> <a href="patient.html">Patient</a> </td> <td> Read the created patient resource on the test server using the id from fixture-patient-create
                . Verify contents.</td> <td> true</td> <td> fixture-patient-create</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Response</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned HTTP status is 200(OK).</td> <td> response</td> <td> okay</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> CompareToSourceId</b> </td> <td> <b> CompareToSourceExpression</b> </td> <td> <b> Operator</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned Patient contains the expected family name 'Chalmers'.
                 Uses explicit compareToSourceId reference to fixture-patient-create used to create
                 the Patient.</td> <td> fixture-patient-create</td> <td> Patient.name.first().family</td> <td> equals</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> </blockquote> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : Read Patient</p> <p> <b> description</b> : Read a Patient and validate response.</p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td> -</td> <td> <b> Type</b> </td> <td> <b> Resource</b> </td> <td> <b> Description</b> </td> <td> <b> EncodeRequestUrl</b> </td> <td> <b> ResponseId</b> </td> <td> <b> TargetId</b> </td> </tr> <tr> <td> *</td> <td> read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated
                 as 'null')</td> <td> <a href="patient.html">Patient</a> </td> <td> Read the patient resource on the test server using the id from fixture-patient-create.
                 Prevent URL encoding of the request.</td> <td> false</td> <td> fixture-patient-read</td> <td> fixture-patient-create</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Label</b> </td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Response</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> 01-ReadPatientOK</td> <td> Confirm that the returned HTTP status is 200(OK).</td> <td> response</td> <td> okay</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> HeaderField</b> </td> <td> <b> Operator</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned HTTP Header Last-Modified is present. Warning only as
                 the server might not support versioning.</td> <td> response</td> <td> Last-Modified</td> <td> notEmpty</td> <td> false</td> <td> true</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Resource</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned resource type is Patient.</td> <td> <a href="patient.html">Patient</a> </td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> ValidateProfileId</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned Patient conforms to the base FHIR specification.</td> <td> false</td> <td> patient-profile</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Operator</b> </td> <td> <b> Path</b> </td> <td> <b> SourceId</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> Value</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned Patient contains the expected family name 'Chalmers'.
                 Uses explicit sourceId reference to read responseId fixture.</td> <td> equals</td> <td> fhir:Patient/fhir:name/fhir:family/@value</td> <td> fixture-patient-read</td> <td> false</td> <td> Chalmers</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Operator</b> </td> <td> <b> Path</b> </td> <td> <b> SourceId</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> Value</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned Patient contains the expected given name 'Peter'. Uses
                 explicit sourceId reference to read responseId fixture.</td> <td> equals</td> <td> fhir:Patient/fhir:name/fhir:given/@value</td> <td> fixture-patient-read</td> <td> false</td> <td> Peter</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> CompareToSourceId</b> </td> <td> <b> CompareToSourcePath</b> </td> <td> <b> Operator</b> </td> <td> <b> Path</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned Patient contains the expected family name 'Chalmers'.
                 Uses explicit compareToSourceId reference to fixture-patient-create used to create
                 the Patient and implicit reference to read response payload.</td> <td> fixture-patient-create</td> <td> fhir:Patient/fhir:name/fhir:family/@value</td> <td> equals</td> <td> fhir:Patient/fhir:name/fhir:family/@value</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> CompareToSourceId</b> </td> <td> <b> CompareToSourcePath</b> </td> <td> <b> Path</b> </td> <td> <b> SourceId</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned Patient contains the expected family name 'Chalmers'.
                 Uses explicit compareToSourceId reference to fixture-patient-create used to create
                 the Patient and explicit reference to read response payload and default operator
                 of 'equals'.</td> <td> fixture-patient-create</td> <td> fhir:Patient/fhir:name/fhir:given/@value</td> <td> fhir:Patient/fhir:name/fhir:given/@value</td> <td> fixture-patient-read</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> MinimumId</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned resource contains the expected retained elements and
                 values. Warning only to provide users with reviewable results.</td> <td> fixture-patient-minimum</td> <td> false</td> <td> true</td> </tr> </table> </blockquote> </blockquote> <blockquote> <p> <b> teardown</b> </p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td> -</td> <td> <b> Type</b> </td> <td> <b> Resource</b> </td> <td> <b> Description</b> </td> <td> <b> EncodeRequestUrl</b> </td> <td> <b> TargetId</b> </td> </tr> <tr> <td> *</td> <td> delete (Details: http://hl7.org/fhir/restful-interaction code delete = 'delete',
                 stated as 'null')</td> <td> <a href="patient.html">Patient</a> </td> <td> Delete the patient resource on the test server using the id from fixture-patient-create.</td> <td> true</td> <td> fixture-patient-create</td> </tr> </table> </blockquote> </blockquote> </div> </text> <url value="http://hl7.org/fhir/TestScript/testscript-example"/> 

  <identifier> 
    <system value="urn:ietf:rfc:3986"/> 
    

    <value value="urn:oid:2.16.840.1.113883.4.642.12.4"/> 
  </identifier> 
  <version value="1.0"/> 
  <name value="TestScript Example"/> 
  <status value="draft"/> 
  <experimental value="true"/> 
  <date value="2017-01-18"/> 
  <publisher value="HL7"/> 
  <contact> 
    <name value="Support"/> 
    <telecom> 
      <system value="email"/> 
      <value value="support@HL7.org"/> 
      <use value="work"/> 
    </telecom> 
  </contact> 
  <description value="TestScript example resource with setup to delete if present and create a new instance
   of a Patient; and single test definition to read the created Patient with various asserts.

   of a Patient; and single test definition to read the created Patient with various
   asserts."/> 

  <useContext> 
    <code> 
      <system value="http://terminology.hl7.org/CodeSystem/usage-context-type"/> 
      <code value="focus"/> 
    </code> 
    <valueCodeableConcept> 
      <coding> 
        <system value="http://terminology.hl7.org/CodeSystem/variant-state"/> 
        <code value="positive"/> 
      </coding> 
    </valueCodeableConcept> 
  </useContext> 
  <useContext> 
    <code> 
      <system value="http://terminology.hl7.org/CodeSystem/usage-context-type"/> 
      <code value="program"/> 
    </code> 
    <valueRange> 
      <low> 
        <value value="2018"/> 
        <unit value="year"/> 
        <system value="http://unitsofmeasure.org"/> 
        <code value="a"/> 
      </low> 
    </valueRange> 
  </useContext> 
  <jurisdiction> 
    <coding> 
      <system value="urn:iso:std:iso:3166"/> 
      <code value="US"/> 
      <display value="United States of America (the)"/> 
    </coding> 
  </jurisdiction> 
  <purpose value="Patient Conditional Create (Update), Read and Delete Operations"/> 
  <copyright value="© HL7.org 2011+"/> 
  <metadata> 
    <link> 
      <url value="http://hl7.org/fhir/patient.html"/> 
      Demographics and other administrative information about an individual or animal receiving
       care or other health-related services.

      <description value="Demographics and other administrative information about an individual or animal
       receiving care or other health-related services."/> 

    </link> 
    <capability> 
      <required value="true"/> 
      <validated value="false"/> 
      <description value="Patient Update, Read and Delete Operations"/> 
      <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"/> 
      <capabilities value="http://hl7.org/fhir/CapabilityStatement/example"/> 
    </capability> 
  </metadata> 
  <fixture id="fixture-patient-create">
    <autocreate value="false"/> 
    <autodelete value="false"/> 
    <resource> 
      <reference value="Patient/example"/> 
      <display value="Peter Chalmers"/> 
    </resource> 
  </fixture> 
  <fixture id="fixture-patient-minimum">
    <autocreate value="false"/> 
    <autodelete value="false"/> 
    <resource> 
      <reference value="Patient/example"/> 
      <display value="Peter Chalmers (minimum)"/> 
    </resource> 
  </fixture> 
  <profile id="patient-profile">
    <reference value="http://hl7.org/fhir/StructureDefinition/Patient"/> 
  </profile> 
  <variable> 
    <name value="createResourceId"/> 
    <path value="Patient/id"/> 
    <sourceId value="fixture-patient-create"/> 
  </variable> 
  <setup> 
    <action> 
      <operation> 
        <type> 
          

          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="delete"/> 
        </type> 
        <resource value="Patient"/> 
        <label value="SetupDeletePatient"/> 
        <description value="Execute a delete operation to insure the patient does not exist on the server."/> 
        <accept value="json"/> 
        <encodeRequestUrl value="true"/> 
        <params value="/${createResourceId}"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 200(OK) or 204(No Content)."/> 
        <direction value="response"/> 
        <operator value="in"/> 
        <responseCode value="200,204"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <operation> 
        <type> 
          

          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="update"/> 
        </type> 
        <resource value="Patient"/> 
        <label value="SetupCreatePatient"/> 
        <description value="Create patient resource on test server using the contents of fixture-patient-create"/> 
        <accept value="json"/> 
        <contentType value="json"/> 
        <encodeRequestUrl value="true"/> 
        <params value="/${createResourceId}"/> 
        <sourceId value="fixture-patient-create"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 201(Created)."/> 
        <direction value="response"/> 
        <responseCode value="201"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <operation> 
        <type> 
          

          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        Read the created patient resource on the test server using the id from fixture-patient-create.
         Verify contents.

        <description value="Read the created patient resource on the test server using the id from fixture-patient-create
        . Verify contents."/> 

        <encodeRequestUrl value="true"/> 
        <targetId value="fixture-patient-create"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 200(OK)."/> 
        <direction value="response"/> 
        <response value="okay"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
         compareToSourceId reference to fixture-patient-create used to create the Patient.

        <description value="Confirm that the returned Patient contains the expected family name 'Chalmers'.
         Uses explicit compareToSourceId reference to fixture-patient-create used to create
         the Patient."/> 

        <compareToSourceId value="fixture-patient-create"/> 
        <compareToSourceExpression value="Patient.name.first().family"/> 
        <operator value="equals"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
  </setup> 
  <test id="01-ReadPatient">
    <name value="Read Patient"/> 
    <description value="Read a Patient and validate response."/> 
    <action> 
      <operation> 
        <type> 
          

          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Read the patient resource on the test server using the id from fixture-patient-create.
         Prevent URL encoding of the request."/> 
        <encodeRequestUrl value="false"/> 
        <responseId value="fixture-patient-read"/> 
        <targetId value="fixture-patient-create"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <label value="01-ReadPatientOK"/> 
        <description value="Confirm that the returned HTTP status is 200(OK)."/> 
        <direction value="response"/> 
        <response value="okay"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server
         might not support versioning.

        <description value="Confirm that the returned HTTP Header Last-Modified is present. Warning only as
         the server might not support versioning."/> 

        <direction value="response"/> 
        <headerField value="Last-Modified"/> 
        <operator value="notEmpty"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="true"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned resource type is Patient."/> 
        <resource value="Patient"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned Patient conforms to the base FHIR specification."/> 
        <stopTestOnFail value="false"/> 
        <validateProfileId value="patient-profile"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
         sourceId reference to read responseId fixture.

        <description value="Confirm that the returned Patient contains the expected family name 'Chalmers'.
         Uses explicit sourceId reference to read responseId fixture."/> 

        <operator value="equals"/> 
        <path value="fhir:Patient/fhir:name/fhir:family/@value"/> 
        <sourceId value="fixture-patient-read"/> 
        <stopTestOnFail value="false"/> 
        <value value="Chalmers"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit
         sourceId reference to read responseId fixture.

        <description value="Confirm that the returned Patient contains the expected given name 'Peter'. Uses
         explicit sourceId reference to read responseId fixture."/> 

        <operator value="equals"/> 
        <path value="fhir:Patient/fhir:name/fhir:given/@value"/> 
        <sourceId value="fixture-patient-read"/> 
        <stopTestOnFail value="false"/> 
        <value value="Peter"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
         compareToSourceId reference to fixture-patient-create used to create the Patient and implicit
         reference to read response payload.

        <description value="Confirm that the returned Patient contains the expected family name 'Chalmers'.
         Uses explicit compareToSourceId reference to fixture-patient-create used to create
         the Patient and implicit reference to read response payload."/> 

        <compareToSourceId value="fixture-patient-create"/> 
        <compareToSourcePath value="fhir:Patient/fhir:name/fhir:family/@value"/> 
        <operator value="equals"/> 
        <path value="fhir:Patient/fhir:name/fhir:family/@value"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit
         compareToSourceId reference to fixture-patient-create used to create the Patient and explicit
         reference to read response payload and default operator of 'equals'.

        <description value="Confirm that the returned Patient contains the expected family name 'Chalmers'.
         Uses explicit compareToSourceId reference to fixture-patient-create used to create
         the Patient and explicit reference to read response payload and default operator
         of 'equals'."/> 

        <compareToSourceId value="fixture-patient-create"/> 
        <compareToSourcePath value="fhir:Patient/fhir:name/fhir:given/@value"/> 
        <path value="fhir:Patient/fhir:name/fhir:given/@value"/> 
        <sourceId value="fixture-patient-read"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        Confirm that the returned resource contains the expected retained elements and values.
         Warning only to provide users with reviewable results.

        <description value="Confirm that the returned resource contains the expected retained elements and
         values. Warning only to provide users with reviewable results."/> 

        <minimumId value="fixture-patient-minimum"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="true"/> 
      </assert> 
    </action> 
  </test> 
  <teardown> 
    <action> 
      <operation> 
        <type> 
          

          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="delete"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Delete the patient resource on the test server using the id from fixture-patient-create."/> 
        <encodeRequestUrl value="true"/> 
        <targetId value="fixture-patient-create"/> 
      </operation> 
    </action> 
  </teardown> 


</

TestScript

>



Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.