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-readtest (JSON)

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

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

Read TestScript Example

{
  "resourceType" : "TestScript",
  "id" : "testscript-example-readtest",
  "text" : {
    "status" : "extensions",
    "div" : "<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:\u00a0<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.</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}.</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.</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}.</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.</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>"
  },
  "extension" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
    "valueCode" : "fhir"
  }],
  "url" : "http://hl7.org/fhir/TestScript/testscript-example-readtest",
  "identifier" : [{
    "system" : "urn:ietf:rfc:3986",
    "value" : "urn:oid:2.16.840.1.113883.4.642.12.2"
  }],
  "version" : "1.0",
  "name" : "TestScript Example Read Test",
  "status" : "draft",
  "experimental" : true,
  "date" : "2017-01-18",
  "publisher" : "HL7 International / FHIR Infrastructure",
  "contact" : [{
    "name" : "Support",
    "telecom" : [{
      "system" : "url",
      "value" : "http://www.hl7.org/Special/committees/fiwg",
      "use" : "work"
    }]
  }],
  "description" : "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.",
  "jurisdiction" : [{
    "coding" : [{
      "system" : "urn:iso:std:iso:3166",
      "code" : "US",
      "display" : "United States of America"
    }]
  }],
  "purpose" : "Patient Read Operation",
  "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 Read Operation",
      "link" : ["http://hl7.org/fhir/http.html#read"],
      "capabilities" : "http://hl7.org/fhir/CapabilityStatement/example"
    }]
  },
  "scope" : [{
    "artifact" : "http://hl7.org/fhir/StructureDefinition/Patient",
    "conformance" : {
      "coding" : [{
        "system" : "http://hl7.org/fhir/testscript-scope-conformance-codes",
        "code" : "optional"
      }]
    },
    "phase" : {
      "coding" : [{
        "system" : "http://hl7.org/fhir/testscript-scope-phase-codes",
        "code" : "unit"
      }]
    }
  }],
  "profile" : ["http://hl7.org/fhir/StructureDefinition/Patient"],
  "_profile" : [{
    "id" : "patient-profile"
  }],
  "variable" : [{
    "name" : "KnownPatientResourceId",
    "defaultValue" : "example"
  },
  {
    "name" : "NonExistsPatientResourceId",
    "defaultValue" : "does-not-exist"
  }],
  "test" : [{
    "id" : "R001",
    "name" : "Sprinkler Read Test R001",
    "description" : "Read a known Patient and validate response.",
    "action" : [{
      "operation" : {
        "type" : {
          "system" : "http://hl7.org/fhir/restful-interaction",
          "code" : "read"
        },
        "resource" : "Patient",
        "description" : "Read the known Patient resource on the destination test system using the user defined dynamic variable ${KnownPatientResourceId}.",
        "accept" : "xml",
        "encodeRequestUrl" : true,
        "params" : "/${KnownPatientResourceId}"
      }
    },
    {
      "assert" : {
        "description" : "Confirm that the returned HTTP status is 200(OK).",
        "response" : "okay",
        "stopTestOnFail" : false,
        "warningOnly" : false
      }
    },
    {
      "assert" : {
        "description" : "Confirm that the returned format is XML.",
        "contentType" : "xml",
        "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.",
        "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
      }
    }]
  },
  {
    "id" : "R002",
    "name" : "Sprinkler Read Test R002",
    "description" : "Read an unknown Resource Type and validate response.",
    "action" : [{
      "operation" : {
        "type" : {
          "system" : "http://hl7.org/fhir/restful-interaction",
          "code" : "read"
        },
        "resource" : "Patient",
        "description" : "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.",
        "accept" : "xml",
        "encodeRequestUrl" : true,
        "params" : "/1"
      }
    },
    {
      "assert" : {
        "description" : "Confirm that the returned HTTP status is 404(Not Found).",
        "response" : "notFound",
        "stopTestOnFail" : false,
        "warningOnly" : false
      }
    }]
  },
  {
    "id" : "R003",
    "name" : "Sprinkler Read Test R003",
    "description" : "Read a known, non-existing Patient and validate response.",
    "action" : [{
      "operation" : {
        "type" : {
          "system" : "http://hl7.org/fhir/restful-interaction",
          "code" : "read"
        },
        "resource" : "Patient",
        "description" : "Attempt to read the non-existing Patient resource on the destination test system using the user defined dynamic variable ${NonExistsPatientResourceId}.",
        "accept" : "xml",
        "encodeRequestUrl" : true,
        "params" : "/${NonExistsPatientResourceId}"
      }
    },
    {
      "assert" : {
        "description" : "Confirm that the returned HTTP status is 404(Not Found).",
        "response" : "notFound",
        "stopTestOnFail" : false,
        "warningOnly" : false
      }
    }]
  },
  {
    "id" : "R004",
    "name" : "Sprinkler Read Test R004",
    "description" : "Read a Patient using a known bad formatted resource id and validate response.",
    "action" : [{
      "operation" : {
        "type" : {
          "system" : "http://hl7.org/fhir/restful-interaction",
          "code" : "read"
        },
        "resource" : "Patient",
        "description" : "Attempt to read a Patient resource on the destination test system using known bad formatted resource id.",
        "accept" : "xml",
        "encodeRequestUrl" : true,
        "params" : "/ID-may-not-contain-CAPITALS"
      }
    },
    {
      "assert" : {
        "description" : "Confirm that the returned HTTP status is 400(Bad Request).",
        "response" : "badRequest",
        "stopTestOnFail" : false,
        "warningOnly" : false
      }
    }]
  }]
}

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.