This page is part of the FHIR Specification (v4.5.0: R5 Preview #3). 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
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)
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="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"><p> <b> Generated Narrative</b> </p> <p> <b> id</b> : testscript-example-multisystem</p> <p> <b> url</b> : <a> http://hl7.org/fhir/TestScript/testscript-example-multisystem</a> </p> <p> <b> identifier</b> : id: urn:oid:1.3.6.1.4.1.21367.2005.3.7.9878</p> <p> <b> version</b> : 1.0</p> <p> <b> name</b> : testscript-example-multisystem</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</p> <p> <b> contact</b> : Support: support@HL7.org(WORK)</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> : <span> United States of America (the)</span> </p> <p> <b> purpose</b> : Patient Read Operation</p> <p> <b> copyright</b> : © HL7.org 2011+</p> <h3> Origins</h3> <table> <tr> <td> -</td> <td> <b> Index</b> </td> <td> <b> Profile</b> </td> </tr> <tr> <td> *</td> <td> 1</td> <td> <span> FHIR-Client</span> </td> </tr> </table> <blockquote> <p> <b> destination</b> </p> <p> <b> index</b> : 1</p> <p> <b> profile</b> : <span> FHIR-Server</span> </p> </blockquote> <blockquote> <p> <b> destination</b> </p> <p> <b> index</b> : 2</p> <p> <b> profile</b> : <span> FHIR-Server</span> </p> </blockquote> <blockquote> <p> <b> metadata</b> </p> <h3> Links</h3> <table> <tr> <td> -</td> <td> <b> Url</b> </td> <td> <b> Description</b> </td> </tr> <tr> <td> *</td> <td> <a> 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> http://hl7.org/fhir/http.html#read</a> </p> <p> <b> capabilities</b> : <a> 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> http://hl7.org/fhir/http.html#read</a> </p> <p> <b> capabilities</b> : <a> 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> <tr> <td> -</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> *</td> <td> <span> Read</span> </td> <td> Patient</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> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> RequestMethod</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the request method GET was sent by the client system under test.</td> <td> get</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <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> Value</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the client requested an Accept of xml.</td> <td> request</td> <td> Accept</td> <td> contains</td> <td> xml</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Response</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> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> ContentType</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned format is XML.</td> <td> response</td> <td> xml</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Resource</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned resource type is Patient.</td> <td> response</td> <td> Patient</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> </blockquote> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <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> Value</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the client requested an Accept of xml.</td> <td> request</td> <td> Accept</td> <td> contains</td> <td> xml</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Response</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> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> ContentType</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned format is XML.</td> <td> response</td> <td> xml</td> <td> false</td> </tr> </table> </blockquote> <blockquote> <p> <b> action</b> </p> <h3> Asserts</h3> <table> <tr> <td> -</td> <td> <b> Description</b> </td> <td> <b> Direction</b> </td> <td> <b> Resource</b> </td> <td> <b> WarningOnly</b> </td> </tr> <tr> <td> *</td> <td> Confirm that the returned resource type is Patient.</td> <td> response</td> <td> Patient</td> <td> false</td> </tr> </table> </blockquote> </blockquote> </div> </text> <url value="http://hl7.org/fhir/TestScript/testscript-example-multisystem"/> <identifier> <system value="urn:ietf:rfc:3986"/> <value value="urn:oid:1.3.6.1.4.1.21367.2005.3.7.9878"/> </identifier> <version value="1.0"/> <name value="testscript-example-multisystem"/> <title value="Multisystem Test Script"/> <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 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 (the)"/> </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> </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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> <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"/> <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"/> <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"/> <warningOnly value="false"/> </assert> </action> <action> <assert> <description value="Confirm that the returned format is XML."/> <direction value="response"/> <contentType value="xml"/> <warningOnly value="false"/> </assert> </action> <action> <assert> <description value="Confirm that the returned resource type is Patient."/> <direction value="response"/> <resource value="Patient"/> <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://terminology.hl7.org/CodeSystem/testscript-operation-codes"/> <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"/> <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"/> <warningOnly value="false"/> </assert> </action> <action> <assert> <description value="Confirm that the returned format is XML."/> <direction value="response"/> <contentType value="xml"/> <warningOnly value="false"/> </assert> </action> <action> <assert> <description value="Confirm that the returned resource type is Patient."/> <direction value="response"/> <resource value="Patient"/> <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.