FHIR Testing IG, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0-SNAPSHOT built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-testing-ig/ and changes regularly. See the Directory of published versions
{
"resourceType" : "TestScript",
"resourceDefinition" : "http://hl7.org/fhir/StructureDefinition/TestScript|0.1.0-SNAPSHOT",
"id" : "testscript-example",
"language" : "en",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"><p class=\"res-header-id\"><b>Generated Narrative: TestScript testscript-example</b></p><a name=\"testscript-example\"> </a><a name=\"hctestscript-example\"> </a><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\">Language: en</p></div><p><b>url</b>: <a href=\"http://hl7.org/fhir/TestScript/testscript-example\">http://hl7.org/fhir/TestScript/testscript-example</a></p><p><b>identifier</b>: <a href=\"http://terminology.hl7.org/6.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.txt \r\n\r\nThis 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: \r\n\r\nNote 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.\r\n\r\nThis OID may also be used in CD.codeSystem.\">Uniform Resource Identifier (URI)</a>/urn:oid:2.16.840.1.113883.4.642.12.4</p><p><b>version</b>: 1.0</p><p><b>name</b>: TestScriptExample</p><p><b>title</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>: </p><div><p>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>\n</div><h3>UseContexts</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Code</b></td><td><b>Value[x]</b></td></tr><tr><td style=\"display: none\">*</td><td><a href=\"http://terminology.hl7.org/7.0.0/CodeSystem-usage-context-type.html#usage-context-type-focus\">UsageContextType: focus</a> (Clinical Focus)</td><td><span title=\"Codes:{http://terminology.hl7.org/CodeSystem/variant-state positive}\">positive</span></td></tr><tr><td style=\"display: none\">*</td><td><a href=\"http://terminology.hl7.org/7.0.0/CodeSystem-usage-context-type.html#usage-context-type-program\">UsageContextType: program</a> (Program)</td><td>2018-? year</td></tr></table><p><b>jurisdiction</b>: <span title=\"Codes:{urn:iso:std:iso:3166 US}\">United States of America</span></p><p><b>purpose</b>: </p><div><p>Patient Conditional Create (Update), Read and Delete Operations</p>\n</div><p><b>copyright</b>: </p><div><p>© HL7.org 2011+</p>\n</div><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 Update, Read and Delete Operations</p><p><b>link</b>: <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></p><p><b>capabilities</b>: <code>http://hl7.org/fhir/CapabilityStatement/example</code></p></blockquote></blockquote><blockquote><p><b>fixture</b></p><blockquote><p><b>id</b></p>fixture-patient-create</blockquote><p><b>autocreate</b>: false</p><p><b>autodelete</b>: false</p><p><b>resource</b>: <a href=\"Patient/example\">Peter Chalmers</a></p></blockquote><blockquote><p><b>fixture</b></p><blockquote><p><b>id</b></p>fixture-patient-minimum</blockquote><p><b>autocreate</b>: false</p><p><b>autodelete</b>: false</p><p><b>resource</b>: <a href=\"Patient/example\">Peter Chalmers (minimum)</a></p></blockquote><p><b>profile</b>: <a href=\"http://hl7.org/fhir/R5/patient.html\">Patient</a></p><blockquote><p><b>variable</b></p><p><b>name</b>: createResourceId</p><h3>Expressions</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style=\"display: none\">*</td><td>application/xml</td><td>Patient/id</td></tr></table><p><b>sourceId</b>: fixture-patient-create</p></blockquote><blockquote><p><b>setup</b></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>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 style=\"display: none\">*</td><td><a href=\"http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-delete\">FHIR Restful Interactions: delete</a> (delete)</td><td><a href=\"http://hl7.org/fhir/R5/patient.html\">http://hl7.org/fhir/StructureDefinition/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 style=\"display: none\">-</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 style=\"display: none\">*</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 style=\"display: none\">-</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 style=\"display: none\">*</td><td><a href=\"http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-update\">FHIR Restful Interactions: update</a> (update)</td><td><a href=\"http://hl7.org/fhir/R5/patient.html\">http://hl7.org/fhir/StructureDefinition/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 style=\"display: none\">-</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 style=\"display: none\">*</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 style=\"display: none\">-</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 style=\"display: none\">*</td><td><a href=\"http://hl7.org/fhir/R5/codesystem-restful-interaction.html#restful-interaction-read\">FHIR Restful Interactions: read</a> (read)</td><td><a href=\"http://hl7.org/fhir/R5/patient.html\">http://hl7.org/fhir/StructureDefinition/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 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>OK</td><td>false</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><blockquote><p><b>assert</b></p><p><b>description</b>: Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient.</p><p><b>compareToSourceId</b>: fixture-patient-create</p><h3>CompareToSourceExpressions</h3><table class=\"grid\"><tr><td style=\"display: none\">-</td><td><b>Language</b></td><td><b>Expression</b></td></tr><tr><td style=\"display: none\">*</td><td>text/fhirpath</td><td>Patient.name.first().family</td></tr></table><p><b>operator</b>: equals</p><p><b>stopTestOnFail</b>: false</p><p><b>warningOnly</b>: false</p></blockquote></blockquote></blockquote><blockquote><p><b>test</b></p><blockquote><p><b>id</b></p>01-ReadPatient</blockquote><p><b>name</b>: Read Patient</p><p><b>description</b>: Read a Patient and validate response.</p><blockquote><p><b>action</b></p></blockquote></blockquote><p><b style=\"color: maroon\">Exception Generating Narrative: Unable to resolve content reference http://hl7.org/fhir/StructureDefinition/TestScript#TestScript.setup.action.operation trying to resolve TestScript.test.action.operation </b></p></div>"
},
"url" : "http://hl7.org/fhir/TestScript/testscript-example",
"identifier" : [
{
"system" : "urn:ietf:rfc:3986",
"value" : "urn:oid:2.16.840.1.113883.4.642.12.4"
}
],
"version" : "1.0",
"name" : "TestScriptExample",
"title" : "TestScript Example",
"status" : "draft",
"experimental" : true,
"date" : "2017-01-18",
"publisher" : "HL7",
"contact" : [
{
"name" : "Support",
"telecom" : [
{
"system" : "email",
"value" : "support@HL7.org",
"use" : "work"
}
]
}
],
"description" : "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.",
"useContext" : [
{
"code" : {
"system" : "http://terminology.hl7.org/CodeSystem/usage-context-type",
"code" : "focus"
},
"valueCodeableConcept" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/variant-state",
"code" : "positive"
}
]
}
},
{
"code" : {
"system" : "http://terminology.hl7.org/CodeSystem/usage-context-type",
"code" : "program"
},
"valueRange" : {
"low" : {
"value" : 2018,
"unit" : "year",
"system" : "http://unitsofmeasure.org",
"code" : "a"
}
}
}
],
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"purpose" : "Patient Conditional Create (Update), Read and Delete Operations",
"copyright" : "© HL7.org 2011+",
"metadata" : {
"link" : [
{
"url" : "http://hl7.org/fhir/patient.html",
"description" : "Demographics and other administrative information about an individual or animal receiving care or other health-related services."
}
],
"capability" : [
{
"required" : true,
"validated" : false,
"description" : "Patient Update, Read and Delete Operations",
"link" : [
"http://hl7.org/fhir/http.html#delete",
"http://hl7.org/fhir/http.html#read",
"http://hl7.org/fhir/http.html#update"
],
"capabilities" : "http://hl7.org/fhir/CapabilityStatement/example"
}
]
},
"fixture" : [
{
"id" : "fixture-patient-create",
"autocreate" : false,
"autodelete" : false,
"resource" : {
"reference" : "Patient/example",
"display" : "Peter Chalmers"
}
},
{
"id" : "fixture-patient-minimum",
"autocreate" : false,
"autodelete" : false,
"resource" : {
"reference" : "Patient/example",
"display" : "Peter Chalmers (minimum)"
}
}
],
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Patient"
],
"_profile" : [
{
🔗 "id" : "patient-profile"
}
],
"variable" : [
{
"name" : "createResourceId",
"expression" : {
"language" : "application/xml",
"expression" : "Patient/id"
},
"sourceId" : "fixture-patient-create"
}
],
"setup" : {
"action" : [
{
"operation" : {
"type" : {
"system" : "http://hl7.org/fhir/restful-interaction",
"code" : "delete"
},
"resource" : "Patient",
"label" : "SetupDeletePatient",
"description" : "Execute a delete operation to insure the patient does not exist on the server.",
"accept" : "json",
"encodeRequestUrl" : true,
"params" : "/${createResourceId}"
}
},
{
"assert" : {
"description" : "Confirm that the returned HTTP status is 200(OK) or 204(No Content).",
"direction" : "response",
"operator" : "in",
"responseCode" : "200,204",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"operation" : {
"type" : {
"system" : "http://hl7.org/fhir/restful-interaction",
"code" : "update"
},
"resource" : "Patient",
"label" : "SetupCreatePatient",
"description" : "Create patient resource on test server using the contents of fixture-patient-create",
"accept" : "json",
"contentType" : "json",
"encodeRequestUrl" : true,
"params" : "/${createResourceId}",
"sourceId" : "fixture-patient-create"
}
},
{
"assert" : {
"description" : "Confirm that the returned HTTP status is 201(Created).",
"direction" : "response",
"responseCode" : "201",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"operation" : {
"type" : {
"system" : "http://hl7.org/fhir/restful-interaction",
"code" : "read"
},
"resource" : "Patient",
"description" : "Read the created patient resource on the test server using the id from fixture-patient-create. Verify contents.",
"encodeRequestUrl" : true,
"targetId" : "fixture-patient-create"
}
},
{
"assert" : {
"description" : "Confirm that the returned HTTP status is 200(OK).",
"direction" : "response",
"response" : "okay",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"assert" : {
"description" : "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" : "fixture-patient-create",
"compareToSourceExpression" : {
"language" : "text/fhirpath",
"expression" : "Patient.name.first().family"
},
"operator" : "equals",
"stopTestOnFail" : false,
"warningOnly" : false
}
}
]
},
"test" : [
{
"id" : "01-ReadPatient",
"name" : "Read Patient",
"description" : "Read a Patient and validate response.",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://hl7.org/fhir/restful-interaction",
"code" : "read"
},
"resource" : "Patient",
"description" : "Read the patient resource on the test server using the id from fixture-patient-create. Prevent URL encoding of the request.",
"encodeRequestUrl" : false,
"responseId" : "fixture-patient-read",
"targetId" : "fixture-patient-create"
}
},
{
"assert" : {
"label" : "01-ReadPatientOK",
"description" : "Confirm that the returned HTTP status is 200(OK).",
"direction" : "response",
"response" : "okay",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"assert" : {
"description" : "Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server might not support versioning.",
"direction" : "response",
"headerField" : "Last-Modified",
"operator" : "notEmpty",
"stopTestOnFail" : false,
"warningOnly" : true
}
},
{
"assert" : {
"description" : "Confirm that the returned resource type is Patient.",
"resource" : "Patient",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"assert" : {
"description" : "Confirm that the returned Patient conforms to the base FHIR specification.",
"stopTestOnFail" : false,
"validateProfileId" : "patient-profile",
"warningOnly" : false
}
},
{
"assert" : {
"description" : "Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit sourceId reference to read responseId fixture.",
"expression" : {
"language" : "application/xml",
"expression" : "fhir:Patient/fhir:name/fhir:family/@value"
},
"operator" : "equals",
"sourceId" : "fixture-patient-read",
"stopTestOnFail" : false,
"value" : "Chalmers",
"warningOnly" : false
}
},
{
"assert" : {
"description" : "Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit sourceId reference to read responseId fixture.",
"expression" : {
"language" : "application/xml",
"expression" : "fhir:Patient/fhir:name/fhir:given/@value"
},
"operator" : "equals",
"sourceId" : "fixture-patient-read",
"stopTestOnFail" : false,
"value" : "Peter",
"warningOnly" : false
}
},
{
"assert" : {
"description" : "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" : "fixture-patient-create",
"compareToSourceExpression" : {
"language" : "application/xml",
"expression" : "fhir:Patient/fhir:name/fhir:family/@value"
},
"expression" : {
"language" : "application/xml",
"expression" : "fhir:Patient/fhir:name/fhir:family/@value"
},
"operator" : "equals",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"assert" : {
"description" : "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" : "fixture-patient-create",
"compareToSourceExpression" : {
"language" : "application/xml",
"expression" : "fhir:Patient/fhir:name/fhir:given/@value"
},
"expression" : {
"language" : "application/xml",
"expression" : "fhir:Patient/fhir:name/fhir:given/@value"
},
"sourceId" : "fixture-patient-read",
"stopTestOnFail" : false,
"warningOnly" : false
}
},
{
"assert" : {
"description" : "Confirm that the returned resource contains the expected retained elements and values. Warning only to provide users with reviewable results.",
"minimumId" : "fixture-patient-minimum",
"stopTestOnFail" : false,
"warningOnly" : true
}
}
]
}
],
"teardown" : {
"action" : [
{
"operation" : {
"type" : {
"system" : "http://hl7.org/fhir/restful-interaction",
"code" : "delete"
},
"resource" : "Patient",
"description" : "Delete the patient resource on the test server using the id from fixture-patient-create.",
"encodeRequestUrl" : true,
"targetId" : "fixture-patient-create"
}
}
]
}
}