Release 5 R6 Ballot (1st Draft)

This page is part of the FHIR Specification (v5.0.0: R5 - STU v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes ). This is the The current published version in it's permanent home (it will always be available at this URL). is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

Example TestScript/testscript-example-readtest (XML)

FHIR Infrastructure Work Group Maturity Level : N/A Standards Status : Informative Compartments : No defined compartments

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

Jump past Narrative

Read TestScript Example (id = "testscript-example-readtest")

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

  
  display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border:
       1px solid #8da1b4; border-radius: 5px; line-height: 60%: TestScript example resource with ported Sprinkler basic read tests R001, R002,

<TestScript xmlns="http://hl7.org/fhir">
  <id value="testscript-example-readtest"/> 
  <text> <status value="extensions"/> <div xmlns="http://www.w3.org/1999/xhtml"><p> <b> Generated Narrative: TestScript</b> <a name="testscript-example-readtest"> </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-readtest&quot; </p> </div> <p> <b> StructureDefinition Work Group</b> : fhir</p> <p> <b> url</b> : <code> http://hl7.org/fhir/TestScript/testscript-example-readtest</code> </p> <p> <b> identifier</b> : id: <a href="http://terminology.hl7.org/5.4.0/NamingSystem-uri.html">#</a> urn:oid:2.16.840.1.113883.4.642.12.2</p> <p> <b> version</b> : 1.0</p> <p> <b> name</b> : TestScript Example Read Test</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 International / FHIR Infrastructure</p> <p> <b> contact</b> : Support: <a href="http://www.hl7.org/Special/committees/fiwg">http://www.hl7.org/Special/committees/fiwg</a> </p> <p> <b> description</b> : TestScript example resource with ported Sprinkler basic read tests R001, R002,

         R003, R004. The read tests will utilize user defined dynamic variables that will
         hold the Patient resource id values.ISO 3166-1 Codes for the representation of names of countries and their subdivisions
             — Part 1: Country codeDemographics and other administrative information about an individual or animal
               receiving care or other health-related services.read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated

         hold the Patient resource id values.</p> <p> <b> jurisdiction</b> : United States of America <span style="background: LightGoldenRodYellow; margin: 4px; border: 1px solid khaki"> (<a href="http://terminology.hl7.org/5.4.0/CodeSystem-ISO3166Part1.html">ISO 3166-1 Codes for the representation of names of countries and their subdivisions
             — Part 1: Country code</a> #US)</span> </p> <p> <b> purpose</b> : Patient Read Operation</p> <p> <b> copyright</b> : © HL7.org 2011+</p> <blockquote> <p> <b> metadata</b> </p> <h3> Links</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Url</b> </td> <td> <b> Description</b> </td> </tr> <tr> <td style="display: none">*</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 style="display: none">-</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 style="display: none">*</td> <td> true</td> <td> false</td> <td> Patient Read Operation</td> <td> <a href="http://hl7.org/fhir/http.html#read">http://hl7.org/fhir/http.html#read</a> </td> <td> <a href="http://hl7.org/fhir/CapabilityStatement/example">http://hl7.org/fhir/CapabilityStatement/example</a> </td> </tr> </table> </blockquote> <h3> Scopes</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Artifact</b> </td> <td> <b> Conformance</b> </td> <td> <b> Phase</b> </td> </tr> <tr> <td style="display: none">*</td> <td> <a href="patient.html">Patient</a> </td> <td> Optional <span style="background: LightGoldenRodYellow; margin: 4px; border: 1px solid khaki"> (<a href="codesystem-testscript-scope-conformance-codes.html">Test Script Scope Conformance Type</a> #optional)</span> </td> <td> Unit <span style="background: LightGoldenRodYellow; margin: 4px; border: 1px solid khaki"> (<a href="codesystem-testscript-scope-phase-codes.html">Test Script Scope Phase Type</a> #unit)</span> </td> </tr> </table> <p> <b> profile</b> : <a href="patient.html">Patient</a> </p> <blockquote> <p> <b> variable</b> </p> <p> <b> name</b> : KnownPatientResourceId</p> <p> <b> defaultValue</b> : example</p> </blockquote> <blockquote> <p> <b> variable</b> </p> <p> <b> name</b> : NonExistsPatientResourceId</p> <p> <b> defaultValue</b> : does-not-exist</p> </blockquote> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : Sprinkler Read Test R001</p> <p> <b> description</b> : Read a known Patient and validate response.</p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Type</b> </td> <td> <b> Resource</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 style="display: none">*</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 known Patient resource on the destination test system using the user defined
                 dynamic variable ${KnownPatientResourceId}.Confirm that the returned HTTP Header Last-Modified is present. Warning only as
                 the server might not support versioning.read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated

                 dynamic variable ${KnownPatientResourceId}.</td> <td> xml</td> <td> true</td> <td> /${KnownPatientResourceId}</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Response</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the returned HTTP status is 200(OK).</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 style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> ContentType</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the returned format is XML.</td> <td> xml</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Description</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 style="display: none">*</td> <td> Confirm that the returned HTTP Header Last-Modified is present. Warning only as
                 the server might not support versioning.</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 style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Resource</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</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 style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> ValidateProfileId</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</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> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : Sprinkler Read Test R002</p> <p> <b> description</b> : Read an unknown Resource Type and validate response.</p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Type</b> </td> <td> <b> Resource</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 style="display: none">*</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> Attempt to read the Parameters resource type. What we really want here is an illegal
                 type but the build process won't allow that. Parameters is a valid resource which
                 doesn't have an end-point so, this should fail.read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated

                 doesn't have an end-point so, this should fail.</td> <td> xml</td> <td> true</td> <td> /1</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Response</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the returned HTTP status is 404(Not Found).</td> <td> notFound</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> </blockquote> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : Sprinkler Read Test R003</p> <p> <b> description</b> : Read a known, non-existing Patient and validate response.</p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Type</b> </td> <td> <b> Resource</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 style="display: none">*</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> Attempt to read the non-existing Patient resource on the destination test system
                 using the user defined dynamic variable ${NonExistsPatientResourceId}.read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated

                 using the user defined dynamic variable ${NonExistsPatientResourceId}.</td> <td> xml</td> <td> true</td> <td> /${NonExistsPatientResourceId}</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Response</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the returned HTTP status is 404(Not Found).</td> <td> notFound</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> </blockquote> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : Sprinkler Read Test R004</p> <p> <b> description</b> : Read a Patient using a known bad formatted resource id and validate response.</p> <blockquote> <p> <b> action</b> </p> <h3> Operations</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Type</b> </td> <td> <b> Resource</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 style="display: none">*</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> Attempt to read a Patient resource on the destination test system using known bad
                 formatted resource id.
  
    
    
  
  
  
  
  
  
  
  
    
    
      
      
      
    
  

                 formatted resource id.</td> <td> xml</td> <td> true</td> <td> /ID-may-not-contain-CAPITALS</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Response</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the returned HTTP status is 400(Bad Request).</td> <td> badRequest</td> <td> false</td> <td> false</td> </tr> </table> </blockquote> </blockquote> </div> </text> <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"><valueCode value="fhir"/> </extension> 
  <url value="http://hl7.org/fhir/TestScript/testscript-example-readtest"/> 
  <identifier> 
    <system value="urn:ietf:rfc:3986"/> 
    <value value="urn:oid:2.16.840.1.113883.4.642.12.2"/> 
  </identifier> 
  <version value="1.0"/> 
  <name value="TestScript Example Read Test"/> 
  <status value="draft"/> 
  <experimental value="true"/> 
  <date value="2017-01-18"/> 
  <publisher value="HL7 International / FHIR Infrastructure"/> 
  <contact> 
    <name value="Support"/> 
    <telecom> 
      <system value="url"/> 
      <value value="http://www.hl7.org/Special/committees/fiwg"/> 
      <use value="work"/> 
    </telecom> 
  </contact> 
  <description value="TestScript example resource with ported Sprinkler basic read tests R001, R002,
   R003, R004. The read tests will utilize user defined dynamic variables that will
   hold the Patient resource id values.
  
    
      
      
      
    
  
  
  
  
    
      

   hold the Patient resource id values."/> 
  <jurisdiction> 
    <coding> 
      <system value="urn:iso:std:iso:3166"/> 
      <code value="US"/> 
      <display value="United States of America"/> 
    </coding> 
  </jurisdiction> 
  <purpose value="Patient Read Operation"/> 
  <copyright value="© HL7.org 2011+"/> 
  <metadata> 
    <link> 
      <url value="http://hl7.org/fhir/patient.html"/> 
      <description value="Demographics and other administrative information about an individual or animal
       receiving care or other health-related services.
    
    
      
      
      
      
      
    
  
  
    
    
      
        
        
      
    
    
      
        
        
      
    
  
  
  
    
    
  
  
    
    
  
  
    
    
    
      
        
          
          
        
        

       receiving care or other health-related services."/> 
    </link> 
    <capability> 
      <required value="true"/> 
      <validated value="false"/> 
      <description value="Patient Read Operation"/> 
      <link value="http://hl7.org/fhir/http.html#read"/> 
      <capabilities value="http://hl7.org/fhir/CapabilityStatement/example"/> 
    </capability> 
  </metadata> 
  <scope> 
    <artifact value="http://hl7.org/fhir/StructureDefinition/Patient"/> 
    <conformance> 
      <coding> 
        <system value="http://hl7.org/fhir/testscript-scope-conformance-codes"/> 
        <code value="optional"/> 
      </coding> 
    </conformance> 
    <phase> 
      <coding> 
        <system value="http://hl7.org/fhir/testscript-scope-phase-codes"/> 
        <code value="unit"/> 
      </coding> 
    </phase> 
  </scope> 
  <profile id="patient-profile" value="http://hl7.org/fhir/StructureDefinition/Patient"/> 
  <variable> 
    <name value="KnownPatientResourceId"/> 
    <defaultValue value="example"/> 
  </variable> 
  <variable> 
    <name value="NonExistsPatientResourceId"/> 
    <defaultValue value="does-not-exist"/> 
  </variable> 
  <test id="R001">
    <name value="Sprinkler Read Test R001"/> 
    <description value="Read a known 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 known Patient resource on the destination test system using the user defined
         dynamic variable ${KnownPatientResourceId}.
        
        
        
      
    
    
      
        
        
        
        
      
    
    
      
        
        
        
        
      
    
    
      

         dynamic variable ${KnownPatientResourceId}."/> 
        <accept value="xml"/> 
        <encodeRequestUrl value="true"/> 
        <params value="/${KnownPatientResourceId}"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 200(OK)."/> 
        <response value="okay"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned format is XML."/> 
        <contentType value="xml"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP Header Last-Modified is present. Warning only as
         the server might not support versioning.
        
        
        
        
      
    
    
      
        
        
        
        
      
    
    
      
        
        
        
        
      
    
  
  
    
    
    
      
        
          
          
        
        

         the server might not support versioning."/> 
        <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> 
  </test> 
  <test id="R002">
    <name value="Sprinkler Read Test R002"/> 
    <description value="Read an unknown Resource Type and validate response."/> 
    <action> 
      <operation> 
        <type> 
          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Attempt to read the Parameters resource type. What we really want here is an illegal
         type but the build process won't allow that. Parameters is a valid resource which
         doesn't have an end-point so, this should fail.
        
        
        
      
    
    
      
        
        
        
        
      
    
  
  
    
    
    
      
        
          
          
        
        

         doesn't have an end-point so, this should fail."/> 
        <accept value="xml"/> 
        <encodeRequestUrl value="true"/> 
        <params value="/1"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 404(Not Found)."/> 
        <response value="notFound"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
  </test> 
  <test id="R003">
    <name value="Sprinkler Read Test R003"/> 
    <description value="Read a known, non-existing Patient and validate response."/> 
    <action> 
      <operation> 
        <type> 
          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Attempt to read the non-existing Patient resource on the destination test system
         using the user defined dynamic variable ${NonExistsPatientResourceId}.
        
        
        
      
    
    
      
        
        
        
        
      
    
  
  
    
    
    
      
        
          
          
        
        

         using the user defined dynamic variable ${NonExistsPatientResourceId}."/> 
        <accept value="xml"/> 
        <encodeRequestUrl value="true"/> 
        <params value="/${NonExistsPatientResourceId}"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 404(Not Found)."/> 
        <response value="notFound"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
  </test> 
  <test id="R004">
    <name value="Sprinkler Read Test R004"/> 
    <description value="Read a Patient using a known bad formatted resource id and validate response."/> 
    <action> 
      <operation> 
        <type> 
          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Attempt to read a Patient resource on the destination test system using known bad
         formatted resource id.
        
        
        
      
    
    
      
        
        
        
        
      
    
  

         formatted resource id."/> 
        <accept value="xml"/> 
        <encodeRequestUrl value="true"/> 
        <params value="/ID-may-not-contain-CAPITALS"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned HTTP status is 400(Bad Request)."/> 
        <response value="badRequest"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
  </test> 


</

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.