FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions

Example TestScript/testscript-example-multisystem (XML)

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

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

Jump past Narrative

Multisystem TestScript Example (id = "testscript-example-multisystem")

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

<TestScript xmlns="http://hl7.org/fhir">
  <id value="testscript-example-multisystem"/> 
  <text> <status value="extensions"/> <div xmlns="http://www.w3.org/1999/xhtml"><p> <b> Generated Narrative: TestScript</b> <a name="testscript-example-multisystem"> </a> <a name="hctestscript-example-multisystem"> </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-multisystem&quot; </p> </div> <p> <b> StructureDefinition Work Group</b> : fhir</p> <p> <b> url</b> : <code> http://hl7.org/fhir/TestScript/testscript-example-multisystem</code> </p> <p> <b> identifier</b> : <a href="http://terminology.hl7.org/5.5.0/NamingSystem-uri.html" title="As defined by RFC 3986 (http://www.ietf.org/rfc/rfc3986.txt)(with many schemes
         defined in many RFCs). For OIDs and UUIDs, use the URN form (urn:oid:(note: lowercase)
         and urn:uuid:). See http://www.ietf.org/rfc/rfc3001.txt and http://www.ietf.org/rfc/rfc4122.t
        xt 

This oid is used as an identifier II.root to indicate the the extension is an absolute
         URI (technically, an IRI). Typically, this is used for OIDs and GUIDs. Note that
         when this OID is used with OIDs and GUIDs, the II.extension should start with urn:oid
         or urn:uuid: 

Note that this OID is created to aid with interconversion between CDA and FHIR
         - FHIR uses urn:ietf:rfc:3986 as equivalent to this OID. URIs as identifiers appear
         more commonly in FHIR.

This OID may also be used in CD.codeSystem.">URI</a> /urn:oid:2.16.840.1.113883.4.642.12.6</p> <p> <b> version</b> : 1.0</p> <p> <b> name</b> : Testscriptexamplemultisystem</p> <p> <b> title</b> : Multisystem Test Script</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 showing use of origin and destination for multisystem
         support. The single origin will execute a Patient read against the two destination
         systems using user defined dynamic variables. The test engine will wait at each
         operation action with a defined origin and destination for the origin test system
         to send the expected FHIR operation to the destination test system. Once the expected
         request and response is observed, the test engine will continue with the test execution.</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.5.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> <h3> Origins</h3> <table class="grid"><tr> <td style="display: none">-</td> <td> <b> Index</b> </td> <td> <b> Profile</b> </td> </tr> <tr> <td style="display: none">*</td> <td> 1</td> <td> FHIR-Client (Details: [not stated] code FHIR-Client = 'FHIR-Client', stated as
             'null')</td> </tr> </table> <blockquote> <p> <b> destination</b> </p> <p> <b> index</b> : 1</p> <p> <b> profile</b> : FHIR-Server (Details: [not stated] code FHIR-Server = 'FHIR-Server', stated as
           'null')</p> <p> <b> url</b> : <a href="http://acme.com/fhir/test">http://acme.com/fhir/test</a> </p> </blockquote> <blockquote> <p> <b> destination</b> </p> <p> <b> index</b> : 2</p> <p> <b> profile</b> : FHIR-Server (Details: [not stated] code FHIR-Server = 'FHIR-Server', stated as
           'null')</p> </blockquote> <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> <blockquote> <p> <b> capability</b> </p> <p> <b> required</b> : true</p> <p> <b> validated</b> : false</p> <p> <b> description</b> : Patient Read Operation</p> <p> <b> origin</b> : 1</p> <p> <b> destination</b> : 1</p> <p> <b> link</b> : <a href="http://hl7.org/fhir/http.html#read">http://hl7.org/fhir/http.html#read</a> </p> <p> <b> capabilities</b> : <a href="http://hl7.org/fhir/CapabilityStatement/example">http://hl7.org/fhir/CapabilityStatement/example</a> </p> </blockquote> <blockquote> <p> <b> capability</b> </p> <p> <b> required</b> : true</p> <p> <b> validated</b> : false</p> <p> <b> description</b> : Patient Read Operation</p> <p> <b> origin</b> : 1</p> <p> <b> destination</b> : 2</p> <p> <b> link</b> : <a href="http://hl7.org/fhir/http.html#read">http://hl7.org/fhir/http.html#read</a> </p> <p> <b> capabilities</b> : <a href="http://hl7.org/fhir/CapabilityStatement/example">http://hl7.org/fhir/CapabilityStatement/example</a> </p> </blockquote> </blockquote> <blockquote> <p> <b> variable</b> </p> <p> <b> name</b> : Dest1PatientResourceId</p> <p> <b> defaultValue</b> : example</p> </blockquote> <blockquote> <p> <b> variable</b> </p> <p> <b> name</b> : Dest2PatientResourceId</p> <p> <b> defaultValue</b> : example</p> </blockquote> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : ReadPatient-Destination1</p> <p> <b> description</b> : Read a Patient from the first destination test system using the user defined
           dynamic variable ${Dest1PatientResourceId}. Perform basic validation.</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> ContentType</b> </td> <td> <b> Destination</b> </td> <td> <b> EncodeRequestUrl</b> </td> <td> <b> Origin</b> </td> <td> <b> Params</b> </td> <td> <b> RequestId</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 a Patient from the first destination test system and perform basic validation.</td> <td> xml</td> <td> xml</td> <td> 1</td> <td> true</td> <td> 1</td> <td> /${Dest1PatientResourceId}</td> <td> request-read-patient-01</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> RequestMethod</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the request method GET was sent by the client system under test.</td> <td> get</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> Direction</b> </td> <td> <b> HeaderField</b> </td> <td> <b> Operator</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> Value</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the client requested an Accept of xml.</td> <td> request</td> <td> Accept</td> <td> contains</td> <td> false</td> <td> xml</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> Direction</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> 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 style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Direction</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> response</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> Direction</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> response</td> <td> <a href="patient.html">Patient</a> </td> <td> false</td> <td> false</td> </tr> </table> </blockquote> </blockquote> <blockquote> <p> <b> test</b> </p> <p> <b> name</b> : ReadPatient-Destination2</p> <p> <b> description</b> : Read a Patient from the second destination test system using the user defined
           dynamic variable ${Dest2PatientResourceId}. Perform basic validation.</p> <blockquote> <p> <b> action</b> </p> <blockquote> <p> <b> operation</b> </p> <p> <b> type</b> : read (Details: http://hl7.org/fhir/restful-interaction code read = 'read', stated
               as 'null')</p> <p> <b> resource</b> : <a href="patient.html">Patient</a> </p> <p> <b> description</b> : Read a Patient from the second destination test system and perform basic validation.</p> <p> <b> accept</b> : xml</p> <p> <b> contentType</b> : xml</p> <p> <b> destination</b> : 2</p> <p> <b> encodeRequestUrl</b> : true</p> <p> <b> origin</b> : 1</p> <p> <b> params</b> : /${Dest2PatientResourceId}</p> <blockquote> <p> <b> requestHeader</b> </p> </blockquote> </blockquote> </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> Direction</b> </td> <td> <b> HeaderField</b> </td> <td> <b> Operator</b> </td> <td> <b> StopTestOnFail</b> </td> <td> <b> Value</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td style="display: none">*</td> <td> Confirm that the client requested an Accept of xml.</td> <td> request</td> <td> Accept</td> <td> contains</td> <td> false</td> <td> xml</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> Direction</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> 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 style="display: none">-</td> <td> <b> Description</b> </td> <td> <b> Direction</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> response</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> Direction</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> response</td> <td> <a href="patient.html">Patient</a> </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-multisystem"/> 
  <identifier> 
    <system value="urn:ietf:rfc:3986"/> 
    <value value="urn:oid:2.16.840.1.113883.4.642.12.6"/> 
  </identifier> 
  <version value="1.0"/> 
  <name value="Testscriptexamplemultisystem"/> 
  <title value="Multisystem Test Script"/> 
  <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 showing use of origin and destination for multisystem
   support. The single origin will execute a Patient read against the two destination
   systems using user defined dynamic variables. The test engine will wait at each
   operation action with a defined origin and destination for the origin test system
   to send the expected FHIR operation to the destination test system. Once the expected
   request and response is observed, the test engine will continue with the test execution."/> 
  <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+"/> 
  <origin> 
    <index value="1"/> 
    <profile> 
      <code value="FHIR-Client"/> 
    </profile> 
  </origin> 
  <destination> 
    <index value="1"/> 
    <profile> 
      <code value="FHIR-Server"/> 
    </profile> 
    <url value="http://acme.com/fhir/test"/> 
  </destination> 
  <destination> 
    <index value="2"/> 
    <profile> 
      <code value="FHIR-Server"/> 
    </profile> 
  </destination> 
  <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."/> 
    </link> 
    <capability> 
      <required value="true"/> 
      <validated value="false"/> 
      <description value="Patient Read Operation"/> 
      <origin value="1"/> 
      <destination value="1"/> 
      <link value="http://hl7.org/fhir/http.html#read"/> 
      <capabilities value="http://hl7.org/fhir/CapabilityStatement/example"/> 
    </capability> 
    <capability> 
      <required value="true"/> 
      <validated value="false"/> 
      <description value="Patient Read Operation"/> 
      <origin value="1"/> 
      <destination value="2"/> 
      <link value="http://hl7.org/fhir/http.html#read"/> 
      <capabilities value="http://hl7.org/fhir/CapabilityStatement/example"/> 
    </capability> 
  </metadata> 
  <variable> 
    <name value="Dest1PatientResourceId"/> 
    <defaultValue value="example"/> 
  </variable> 
  <variable> 
    <name value="Dest2PatientResourceId"/> 
    <defaultValue value="example"/> 
  </variable> 
  <test id="01-ReadPatient-Destination1">
    <name value="ReadPatient-Destination1"/> 
    <description value="Read a Patient from the first destination test system using the user defined dynamic
     variable ${Dest1PatientResourceId}. Perform basic validation."/> 
    <action> 
      <operation> 
        <type> 
          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Read a Patient from the first destination test system and perform basic validation."/> 
        <accept value="xml"/> 
        <contentType value="xml"/> 
        <destination value="1"/> 
        <encodeRequestUrl value="true"/> 
        <origin value="1"/> 
        <params value="/${Dest1PatientResourceId}"/> 
        <requestId value="request-read-patient-01"/> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the request method GET was sent by the client system under test."/> 
        <requestMethod value="get"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the client requested an Accept of xml."/> 
        <direction value="request"/> 
        <headerField value="Accept"/> 
        <operator value="contains"/> 
        <stopTestOnFail value="false"/> 
        <value value="xml"/> 
        <warningOnly value="false"/> 
      </assert> 
    </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> 
        <description value="Confirm that the returned format is XML."/> 
        <direction value="response"/> 
        <contentType value="xml"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned resource type is Patient."/> 
        <direction value="response"/> 
        <resource value="Patient"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
  </test> 
  <test id="02-ReadPatient-Destination2">
    <name value="ReadPatient-Destination2"/> 
    <description value="Read a Patient from the second destination test system using the user defined dynamic
     variable ${Dest2PatientResourceId}. Perform basic validation."/> 
    <action> 
      <operation> 
        <type> 
          <system value="http://hl7.org/fhir/restful-interaction"/> 
          <code value="read"/> 
        </type> 
        <resource value="Patient"/> 
        <description value="Read a Patient from the second destination test system and perform basic validation."/> 
        <accept value="xml"/> 
        <contentType value="xml"/> 
        <destination value="2"/> 
        <encodeRequestUrl value="true"/> 
        <origin value="1"/> 
        <params value="/${Dest2PatientResourceId}"/> 
        <requestHeader> 
          <field value="Accept-Charset"/> 
          <value value="utf-8"/> 
        </requestHeader> 
      </operation> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the client requested an Accept of xml."/> 
        <direction value="request"/> 
        <headerField value="Accept"/> 
        <operator value="contains"/> 
        <stopTestOnFail value="false"/> 
        <value value="xml"/> 
        <warningOnly value="false"/> 
      </assert> 
    </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> 
        <description value="Confirm that the returned format is XML."/> 
        <direction value="response"/> 
        <contentType value="xml"/> 
        <stopTestOnFail value="false"/> 
        <warningOnly value="false"/> 
      </assert> 
    </action> 
    <action> 
      <assert> 
        <description value="Confirm that the returned resource type is Patient."/> 
        <direction value="response"/> 
        <resource value="Patient"/> 
        <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.