R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

Example TestScript/testscript-example-multisystem (Turtle)

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

Raw Turtle (+ also see Turtle/RDF Format Specification)

Multisystem TestScript Example

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

[a fhir:TestScript ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "testscript-example-multisystem"] ; # 
  fhir:text [
     fhir:status [ fhir:v "extensions" ] ;
     fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p><b>Generated Narrative: TestScript</b><a name=\"testscript-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>: id: <a href=\"http://terminology.hl7.org/5.4.0/NamingSystem-uri.html\">#</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.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><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>"
  ] ; # 
  fhir:extension ( [
     fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg"^^xsd:anyURI ] ;
     fhir:value [ fhir:v "fhir" ]
  ] ) ; # 
  fhir:url [ fhir:v "http://hl7.org/fhir/TestScript/testscript-example-multisystem"^^xsd:anyURI] ; # 
  fhir:identifier ( [
     fhir:system [ fhir:v "urn:ietf:rfc:3986"^^xsd:anyURI ] ;
     fhir:value [ fhir:v "urn:oid:2.16.840.1.113883.4.642.12.6" ]
  ] ) ; # 
  fhir:version [ fhir:v "1.0"] ; # 
  fhir:name [ fhir:v "Testscriptexamplemultisystem"] ; # 
  fhir:title [ fhir:v "Multisystem Test Script"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v "true"^^xsd:boolean] ; # 
  fhir:date [ fhir:v "2017-01-18"^^xsd:date] ; # 
  fhir:publisher [ fhir:v "HL7 International / FHIR Infrastructure"] ; # 
  fhir:contact ( [
     fhir:name [ fhir:v "Support" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "http://www.hl7.org/Special/committees/fiwg" ] ;
       fhir:use [ fhir:v "work" ]
     ] )
  ] ) ; # 
  fhir:description [ fhir:v "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."] ; # 
  fhir:jurisdiction ( [
     fhir:coding ( [
       fhir:system [ fhir:v "urn:iso:std:iso:3166"^^xsd:anyURI ] ;
       fhir:code [ fhir:v "US" ] ;
       fhir:display [ fhir:v "United States of America" ]
     ] )
  ] ) ; # 
  fhir:purpose [ fhir:v "Patient Read Operation"] ; # 
  fhir:copyright [ fhir:v "© HL7.org 2011+"] ; # 
  fhir:origin ( [
     fhir:index [ fhir:v "1"^^xsd:integer ] ;
     fhir:profile [
       fhir:code [ fhir:v "FHIR-Client" ]
     ]
  ] ) ; # 
  fhir:destination ( [
     fhir:index [ fhir:v "1"^^xsd:integer ] ;
     fhir:profile [
       fhir:code [ fhir:v "FHIR-Server" ]
     ] ;
     fhir:url [ fhir:v "http://acme.com/fhir/test"^^xsd:anyURI ]
  ] [
     fhir:index [ fhir:v "2"^^xsd:integer ] ;
     fhir:profile [
       fhir:code [ fhir:v "FHIR-Server" ]
     ]
  ] ) ; # 
  fhir:metadata [
     fhir:link ( [
       fhir:url [ fhir:v "http://hl7.org/fhir/patient.html"^^xsd:anyURI ] ;
       fhir:description [ fhir:v "Demographics and other administrative information about an individual or animal receiving care or other health-related services." ]
     ] ) ;
     fhir:capability ( [
       fhir:required [ fhir:v "true"^^xsd:boolean ] ;
       fhir:validated [ fhir:v "false"^^xsd:boolean ] ;
       fhir:description [ fhir:v "Patient Read Operation" ] ;
       fhir:origin ( [ fhir:v "1"^^xsd:integer ] ) ;
       fhir:destination [ fhir:v "1"^^xsd:integer ] ;
       fhir:link ( [ fhir:v "http://hl7.org/fhir/http.html#read"^^xsd:anyURI ] ) ;
       fhir:capabilities [
         fhir:v "http://hl7.org/fhir/CapabilityStatement/example"^^xsd:anyURI ;
         fhir:link <http://hl7.org/fhir/CapabilityStatement/example>
       ]
     ] [
       fhir:required [ fhir:v "true"^^xsd:boolean ] ;
       fhir:validated [ fhir:v "false"^^xsd:boolean ] ;
       fhir:description [ fhir:v "Patient Read Operation" ] ;
       fhir:origin ( [ fhir:v "1"^^xsd:integer ] ) ;
       fhir:destination [ fhir:v "2"^^xsd:integer ] ;
       fhir:link ( [ fhir:v "http://hl7.org/fhir/http.html#read"^^xsd:anyURI ] ) ;
       fhir:capabilities [
         fhir:v "http://hl7.org/fhir/CapabilityStatement/example"^^xsd:anyURI ;
         fhir:link <http://hl7.org/fhir/CapabilityStatement/example>
       ]
     ] )
  ] ; # 
  fhir:variable ( [
     fhir:name [ fhir:v "Dest1PatientResourceId" ] ;
     fhir:defaultValue [ fhir:v "example" ]
  ] [
     fhir:name [ fhir:v "Dest2PatientResourceId" ] ;
     fhir:defaultValue [ fhir:v "example" ]
  ] ) ; # 
  fhir:test ( [
     fhir:id [ fhir:v "01-ReadPatient-Destination1" ] ;
     fhir:name [ fhir:v "ReadPatient-Destination1" ] ;
     fhir:description [ fhir:v "Read a Patient from the first destination test system using the user defined dynamic variable ${Dest1PatientResourceId}. Perform basic validation." ] ;
     fhir:action ( [
       fhir:operation [
         fhir:type [
           fhir:system [ fhir:v "http://hl7.org/fhir/restful-interaction"^^xsd:anyURI ] ;
           fhir:code [ fhir:v "read" ]
         ] ;
         fhir:resource [ fhir:v "Patient"^^xsd:anyURI ] ;
         fhir:description [ fhir:v "Read a Patient from the first destination test system and perform basic validation." ] ;
         fhir:accept [ fhir:v "xml" ] ;
         fhir:contentType [ fhir:v "xml" ] ;
         fhir:destination [ fhir:v "1"^^xsd:integer ] ;
         fhir:encodeRequestUrl [ fhir:v "true"^^xsd:boolean ] ;
         fhir:origin [ fhir:v "1"^^xsd:integer ] ;
         fhir:params [ fhir:v "/${Dest1PatientResourceId}" ] ;
         fhir:requestId [ fhir:v "request-read-patient-01" ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the request method GET was sent by the client system under test." ] ;
         fhir:requestMethod [ fhir:v "get" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the client requested an Accept of xml." ] ;
         fhir:direction [ fhir:v "request" ] ;
         fhir:headerField [ fhir:v "Accept" ] ;
         fhir:operator [ fhir:v "contains" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:value [ fhir:v "xml" ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the returned HTTP status is 200(OK)." ] ;
         fhir:direction [ fhir:v "response" ] ;
         fhir:response [ fhir:v "okay" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the returned format is XML." ] ;
         fhir:direction [ fhir:v "response" ] ;
         fhir:contentType [ fhir:v "xml" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the returned resource type is Patient." ] ;
         fhir:direction [ fhir:v "response" ] ;
         fhir:resource [ fhir:v "Patient"^^xsd:anyURI ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] )
  ] [
     fhir:id [ fhir:v "02-ReadPatient-Destination2" ] ;
     fhir:name [ fhir:v "ReadPatient-Destination2" ] ;
     fhir:description [ fhir:v "Read a Patient from the second destination test system using the user defined dynamic variable ${Dest2PatientResourceId}. Perform basic validation." ] ;
     fhir:action ( [
       fhir:operation [
         fhir:type [
           fhir:system [ fhir:v "http://hl7.org/fhir/restful-interaction"^^xsd:anyURI ] ;
           fhir:code [ fhir:v "read" ]
         ] ;
         fhir:resource [ fhir:v "Patient"^^xsd:anyURI ] ;
         fhir:description [ fhir:v "Read a Patient from the second destination test system and perform basic validation." ] ;
         fhir:accept [ fhir:v "xml" ] ;
         fhir:contentType [ fhir:v "xml" ] ;
         fhir:destination [ fhir:v "2"^^xsd:integer ] ;
         fhir:encodeRequestUrl [ fhir:v "true"^^xsd:boolean ] ;
         fhir:origin [ fhir:v "1"^^xsd:integer ] ;
         fhir:params [ fhir:v "/${Dest2PatientResourceId}" ] ;
         fhir:requestHeader ( [
           fhir:field [ fhir:v "Accept-Charset" ] ;
           fhir:value [ fhir:v "utf-8" ]
         ] )
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the client requested an Accept of xml." ] ;
         fhir:direction [ fhir:v "request" ] ;
         fhir:headerField [ fhir:v "Accept" ] ;
         fhir:operator [ fhir:v "contains" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:value [ fhir:v "xml" ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the returned HTTP status is 200(OK)." ] ;
         fhir:direction [ fhir:v "response" ] ;
         fhir:response [ fhir:v "okay" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the returned format is XML." ] ;
         fhir:direction [ fhir:v "response" ] ;
         fhir:contentType [ fhir:v "xml" ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] [
       fhir:assert [
         fhir:description [ fhir:v "Confirm that the returned resource type is Patient." ] ;
         fhir:direction [ fhir:v "response" ] ;
         fhir:resource [ fhir:v "Patient"^^xsd:anyURI ] ;
         fhir:stopTestOnFail [ fhir:v "false"^^xsd:boolean ] ;
         fhir:warningOnly [ fhir:v "false"^^xsd:boolean ]
       ]
     ] )
  ] )] . # 

# -------------------------------------------------------------------------------------


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.