This page is part of the FHIR Specification (v4.3.0: R4B - STU). 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 Turtle (+ also see Turtle/RDF Format Specification)
Search TestScript Example
@prefix fhir: <http://hl7.org/fhir/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . # - resource ------------------------------------------------------------------- [] a fhir:TestScript; fhir:Resource.id [ fhir:value "testscript-example-search"]; fhir:DomainResource.text [ fhir:Narrative.status [ fhir:value "generated" ] ]; fhir:TestScript.url [ fhir:value "http://hl7.org/fhir/TestScript/testscript-example-search"]; fhir:TestScript.identifier [ fhir:Identifier.system [ fhir:value "urn:ietf:rfc:3986" ]; fhir:Identifier.value [ fhir:value "urn:oid:1.3.6.1.4.1.21367.2005.3.7.9881" ] ]; fhir:TestScript.version [ fhir:value "1.0"]; fhir:TestScript.name [ fhir:value "TestScript Example Search"]; fhir:TestScript.status [ fhir:value "draft"]; fhir:TestScript.experimental [ fhir:value "true"]; fhir:TestScript.date [ fhir:value "2017-01-18"]; fhir:TestScript.publisher [ fhir:value "HL7"]; fhir:TestScript.contact [ fhir:index 0; fhir:ContactDetail.name [ fhir:value "Support" ]; fhir:ContactDetail.telecom [ fhir:index 0; fhir:ContactPoint.system [ fhir:value "email" ]; fhir:ContactPoint.value [ fhir:value "support@HL7.org" ]; fhir:ContactPoint.use [ fhir:value "work" ] ] ]; fhir:TestScript.description [ fhir:value "TestScript example resource with simple Patient search test. The read tests will utilize user defined dynamic variables that will hold the Patient search parameter values."]; fhir:TestScript.jurisdiction [ fhir:index 0; fhir:CodeableConcept.coding [ fhir:index 0; fhir:Coding.system [ fhir:value "urn:iso:std:iso:3166" ]; fhir:Coding.code [ fhir:value "US" ]; fhir:Coding.display [ fhir:value "United States of America (the)" ] ] ]; fhir:TestScript.purpose [ fhir:value "Patient Search Operation"]; fhir:TestScript.copyright [ fhir:value "© HL7.org 2011+"]; fhir:TestScript.metadata [ fhir:TestScript.link [ fhir:index 0; fhir:TestScript.url [ fhir:value "http://hl7.org/fhir/patient.html" ]; fhir:TestScript.description [ fhir:value "Demographics and other administrative information about an individual or animal receiving care or other health-related services." ] ]; fhir:TestScript.capability [ fhir:index 0; fhir:TestScript.required [ fhir:value "true" ]; fhir:TestScript.validated [ fhir:value "false" ]; fhir:TestScript.description [ fhir:value "Patient Search Operation" ]; fhir:TestScript.link [ fhir:value "http://hl7.org/fhir/http.html#search"; fhir:index 0 ]; fhir:TestScript.capabilities [ fhir:value "http://hl7.org/fhir/CapabilityStatement/example" ] ] ]; fhir:TestScript.fixture [ fhir:index 0; fhir:Element.id [ fhir:value "fixture-patient-create" ]; fhir:TestScript.autocreate [ fhir:value "false" ]; fhir:TestScript.autodelete [ fhir:value "false" ]; fhir:TestScript.resource [ fhir:Reference.reference [ fhir:value "Patient/example" ]; fhir:Reference.display [ fhir:value "Peter Chalmers" ] ] ]; fhir:TestScript.profile [ fhir:index 0; fhir:Element.id [ fhir:value "bundle-profile" ]; fhir:Reference.reference [ fhir:value "http://hl7.org/fhir/StructureDefinition/Bundle" ] ]; fhir:TestScript.variable [ fhir:index 0; fhir:TestScript.name [ fhir:value "PatientCreateLocation" ]; fhir:TestScript.headerField [ fhir:value "Location" ]; fhir:TestScript.sourceId [ fhir:value "PatientCreateResponse" ] ], [ fhir:index 1; fhir:TestScript.name [ fhir:value "PatientSearchFamilyName" ]; fhir:TestScript.description [ fhir:value "Enter patient search criteria for a known family name on the target system" ]; fhir:TestScript.hint [ fhir:value "[Family name]" ] ], [ fhir:index 2; fhir:TestScript.name [ fhir:value "PatientSearchGivenName" ]; fhir:TestScript.description [ fhir:value "Enter patient search criteria for a known given name on the target system" ]; fhir:TestScript.hint [ fhir:value "[Given name]" ] ], [ fhir:index 3; fhir:TestScript.name [ fhir:value "PatientSearchBundleTotal" ]; fhir:TestScript.description [ fhir:value "Evaluate the returned Patient searchset Bundle.total value" ]; fhir:TestScript.expression [ fhir:value "Bundle.total.toInteger()" ] ]; fhir:TestScript.setup [ fhir:TestScript.action [ fhir:index 0; fhir:TestScript.operation [ fhir:TestScript.type [ fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/testscript-operation-codes" ]; fhir:Coding.code [ fhir:value "search" ] ]; fhir:TestScript.resource [ fhir:value "Patient" ]; fhir:TestScript.description [ fhir:value "Test simple search to verify server support." ]; fhir:TestScript.accept [ fhir:value "xml" ]; fhir:TestScript.encodeRequestUrl [ fhir:value "true" ]; fhir:TestScript.params [ fhir:value "?family=DONTEXPECTAMATCH&given=DONTEXPECTAMATCH" ] ] ], [ fhir:index 1; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the request url contains the family search parameter." ]; fhir:TestScript.direction [ fhir:value "request" ]; fhir:TestScript.operator [ fhir:value "contains" ]; fhir:TestScript.requestURL [ fhir:value "family" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 2; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned HTTP status is 200(OK)." ]; fhir:TestScript.direction [ fhir:value "response" ]; fhir:TestScript.responseCode [ fhir:value "200" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 3; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned resource type is Bundle." ]; fhir:TestScript.resource [ fhir:value "Bundle" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 4; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned Bundle correctly defines the navigation links." ]; fhir:TestScript.navigationLinks [ fhir:value "true" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ] ]; fhir:TestScript.test [ fhir:index 0; fhir:Element.id [ fhir:value "01-PatientCreateSearch" ]; fhir:TestScript.name [ fhir:value "Patient Create Search" ]; fhir:TestScript.description [ fhir:value "Create a Patient resource and capture the returned HTTP Header Location. Then search for (read) that Patient using the Location URL value and validate the response." ]; fhir:TestScript.action [ fhir:index 0; fhir:TestScript.operation [ fhir:TestScript.type [ fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/testscript-operation-codes" ]; fhir:Coding.code [ fhir:value "create" ] ]; fhir:TestScript.resource [ fhir:value "Patient" ]; fhir:TestScript.description [ fhir:value "Create a Patient resource and capture the returned HTTP Header Location." ]; fhir:TestScript.accept [ fhir:value "xml" ]; fhir:TestScript.contentType [ fhir:value "xml" ]; fhir:TestScript.encodeRequestUrl [ fhir:value "true" ]; fhir:TestScript.responseId [ fhir:value "PatientCreateResponse" ]; fhir:TestScript.sourceId [ fhir:value "fixture-patient-create" ] ] ], [ fhir:index 1; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned HTTP status is 201(Created)." ]; fhir:TestScript.response [ fhir:value "created" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 2; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned HTTP Header Location is present." ]; fhir:TestScript.direction [ fhir:value "response" ]; fhir:TestScript.headerField [ fhir:value "Location" ]; fhir:TestScript.operator [ fhir:value "notEmpty" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 3; fhir:TestScript.operation [ fhir:TestScript.type [ fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/testscript-operation-codes" ]; fhir:Coding.code [ fhir:value "read" ] ]; fhir:TestScript.description [ fhir:value "Read the created Patient using the captured Location URL value." ]; fhir:TestScript.accept [ fhir:value "xml" ]; fhir:TestScript.encodeRequestUrl [ fhir:value "true" ]; fhir:TestScript.url [ fhir:value "${PatientCreateLocation}" ] ] ], [ fhir:index 4; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned HTTP status is 200(OK)." ]; fhir:TestScript.response [ fhir:value "okay" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 5; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned resource type is Patient." ]; fhir:TestScript.resource [ fhir:value "Patient" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ] ], [ fhir:index 1; fhir:Element.id [ fhir:value "02-PatientSearchDynamic" ]; fhir:TestScript.name [ fhir:value "Patient Search Dynamic" ]; fhir:TestScript.description [ fhir:value "Search for Patient resources using the user defined dynamic variables ${PatientSearchFamilyName} and ${PatientSearchGivenName} and validate response." ]; fhir:TestScript.action [ fhir:index 0; fhir:TestScript.operation [ fhir:TestScript.type [ fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/testscript-operation-codes" ]; fhir:Coding.code [ fhir:value "search" ] ]; fhir:TestScript.resource [ fhir:value "Patient" ]; fhir:TestScript.description [ fhir:value "Search for Patient resources on the destination test system." ]; fhir:TestScript.accept [ fhir:value "xml" ]; fhir:TestScript.encodeRequestUrl [ fhir:value "true" ]; fhir:TestScript.params [ fhir:value "?family=${PatientSearchFamilyName}&given=${PatientSearchGivenName}" ] ] ], [ fhir:index 1; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned HTTP status is 200(OK)." ]; fhir:TestScript.response [ fhir:value "okay" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 2; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned format is XML." ]; fhir:TestScript.contentType [ fhir:value "xml" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 3; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned resource type is Bundle." ]; fhir:TestScript.resource [ fhir:value "Bundle" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 4; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned Bundle conforms to the base FHIR specification." ]; fhir:TestScript.validateProfileId [ fhir:value "bundle-profile" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 5; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned Bundle type equals 'searchset'." ]; fhir:TestScript.operator [ fhir:value "equals" ]; fhir:TestScript.path [ fhir:value "fhir:Bundle/fhir:type/@value" ]; fhir:TestScript.value [ fhir:value "searchset" ]; fhir:TestScript.warningOnly [ fhir:value "false" ] ] ], [ fhir:index 6; fhir:TestScript.assert [ fhir:TestScript.description [ fhir:value "Confirm that the returned Bundle total is greater than or equal to the number of returned entries." ]; fhir:TestScript.expression [ fhir:value "Bundle.total.toInteger() >= entry.count()" ]; fhir:TestScript.warningOnly [ fhir:value "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.