This is the Version 1.5.0 Release of the Touchstone Testing Implementation Guide, based on FHIR Version 4.0.1. See the Directory of published versions
JSON Format: TestScript-ndjson-assertion-prefix
Raw json
{
"resourceType" : "TestScript",
"id" : "ndjson-assertion-prefix",
"meta" : {
"profile" : [
"http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p><b>Generated Narrative</b></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 \"ndjson-assertion-prefix\" </p><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-testscript.html\">AEGIS Touchstone Testing TestScript Profile</a></p></div><p><b>url</b>: <code>http://touchstone.aegis.net/touchstone/fhir/testing/TestScript/ndjson-assertion-prefix</code></p><p><b>version</b>: 1.5.0</p><p><b>name</b>: NDJSONAssertionPrefixSyntax</p><p><b>title</b>: Demonstrate NDJSON Assertion Prefix Syntax</p><p><b>status</b>: active</p><p><b>date</b>: 2020-12-06</p><p><b>publisher</b>: AEGIS.net, Inc.</p><p><b>contact</b>: Touchstone Support: <a href=\"mailto:Touchstone_Support@aegis.net\">Touchstone_Support@aegis.net</a></p><p><b>description</b>: Demonstrate NDJSON Assertion Prefix Syntax</p><p><b>jurisdiction</b>: US <span style=\"background: LightGoldenRodYellow; margin: 4px; border: 1px solid khaki\"> (unknown#US)</span></p><p><b>copyright</b>: (c) AEGIS.net, Inc. 2015+</p><blockquote><p><b>destination</b></p><p><b>index</b>: 1</p><p><b>profile</b>: FHIR Server (Details: http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types code FHIR-Server = 'FHIR Server', stated as 'null')</p></blockquote><p><b>profile</b>: </p><ul><li><a href=\"http://hl7.org/fhir/StructureDefinition/Patient\">http://hl7.org/fhir/StructureDefinition/Patient</a> \"Patient\"</li><li><a href=\"{any}http://hl7.org/fhir/StructureDefinition/Patient\">{any}http://hl7.org/fhir/StructureDefinition/Patient</a></li><li><a href=\"{1}http://hl7.org/fhir/StructureDefinition/Patient\">{1}http://hl7.org/fhir/StructureDefinition/Patient</a></li><li><a href=\"{.name[?(@.family=='Gracia')]}http://hl7.org/fhir/StructureDefinition/Patient\">{.name[?(@.family=='Gracia')]}http://hl7.org/fhir/StructureDefinition/Patient</a></li></ul><h3>Variables</h3><table class=\"grid\"><tr><td>-</td><td><b>Name</b></td><td><b>DefaultValue</b></td></tr><tr><td>*</td><td>outputBaseUrl</td><td>http://localhost:33000/bulk-api/output</td></tr></table><blockquote><p><b>test</b></p><p><b>name</b>: AssertContentTypeResourceAndValidation</p><p><b>description</b>: Demonstrates contentType, resource and validateProfile assertions with no filters.</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class=\"grid\"><tr><td>-</td><td><b>Type</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Url</b></td></tr><tr><td>*</td><td>GET (Details: http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes code get = 'GET', stated as 'null')</td><td>Request BulkData</td><td>ndjson</td><td>1</td><td>true</td><td>${outputBaseUrl}/1/Patient.ndjson</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></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></td><td>Confirm that the client requested an Accept of the FHIR JSON mime type 'application/fhir+json'.</td><td>request</td><td>Accept</td><td>contains</td><td>ndjson</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Confirm that the returned HTTP status is 200.</td><td>response</td><td>equals</td><td>200</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Direction</b></td><td><b>ContentType</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>response</td><td>ndjson</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Direction</b></td><td><b>Resource</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>response</td><td>Patient</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Validate that the returned resource conforms to the corresponding FHIR resource profile.</td><td>response</td><td>resource-profile</td><td>false</td></tr></table></blockquote></blockquote><blockquote><p><b>test</b></p><p><b>name</b>: AssertResourceType</p><p><b>description</b>: Demonstrates resource assertions.</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class=\"grid\"><tr><td>-</td><td><b>Type</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Url</b></td></tr><tr><td>*</td><td>GET (Details: http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes code get = 'GET', stated as 'null')</td><td>Retrieve invalid NDJSON that contains mix of Patient and Person resource types.</td><td>ndjson</td><td>1</td><td>true</td><td>${outputBaseUrl}/2/patient-person-mix.ndjson</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Confirm that the returned HTTP status is 200.</td><td>response</td><td>equals</td><td>200</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></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></td><td><resource value=\"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>: AssertResourceCount</p><p><b>description</b>: Demonstrates resource-count assertions (only works with NDJSON responses).</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class=\"grid\"><tr><td>-</td><td><b>Type</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Url</b></td></tr><tr><td>*</td><td>GET (Details: http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes code get = 'GET', stated as 'null')</td><td>Retrieve NDJSON response that contains 5 Patient resources.</td><td>ndjson</td><td>1</td><td>true</td><td>${outputBaseUrl}/1/Patient.ndjson</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Confirm that the returned HTTP status is 200.</td><td>response</td><td>equals</td><td>200</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td><path value=\"resource-count\"/> <operator value=\"equals\"/> <value value=\"5\"/></td><td>response</td><td>equals</td><td>resource-count</td><td>5</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"resource-count\"/> <operator value=\"equals\"/> <value value=\"6\"/></td><td>response</td><td>equals</td><td>resource-count</td><td>6</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"resource-count\"/> <operator value=\"greaterThan\"/> <value value=\"4\"/></td><td>response</td><td>greaterThan</td><td>resource-count</td><td>4</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner}resource-count\"/> <operator value=\"greaterThan\"/> <value value=\"4\"/></td><td>response</td><td>greaterThan</td><td>{generalPractitioner}resource-count</td><td>4</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count\"/> <operator value=\"greaterThan\"/> <value value=\"4\"/></td><td>response</td><td>greaterThan</td><td>{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count</td><td>4</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count\"/> <operator value=\"equals\"/> <value value=\"1\"/></td><td>response</td><td>equals</td><td>{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count</td><td>1</td><td>false</td></tr></table></blockquote></blockquote><blockquote><p><b>test</b></p><p><b>name</b>: AssertPath</p><p><b>description</b>: Demonstrates path assertions.</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class=\"grid\"><tr><td>-</td><td><b>Type</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Url</b></td></tr><tr><td>*</td><td>GET (Details: http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes code get = 'GET', stated as 'null')</td><td>Retrieve NDJSON response that contains 5 Patient resources.</td><td>ndjson</td><td>1</td><td>true</td><td>${outputBaseUrl}/1/Patient.ndjson</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Confirm that the returned HTTP status is 200.</td><td>response</td><td>equals</td><td>200</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/></td><td>response</td><td>contains</td><td>generalPractitioner.reference</td><td>Practitioner/</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/></td><td>response</td><td>equals</td><td>generalPractitioner.reference</td><td>Practitioner/2</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{any}generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/></td><td>response</td><td>equals</td><td>{any}generalPractitioner.reference</td><td>Practitioner/2</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{2}generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/></td><td>response</td><td>equals</td><td>{2}generalPractitioner.reference</td><td>Practitioner/2</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{3}generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/></td><td>response</td><td>equals</td><td>{3}generalPractitioner.reference</td><td>Practitioner/2</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{2-5}generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/></td><td>response</td><td>contains</td><td>{2-5}generalPractitioner.reference</td><td>Practitioner/</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{2-100}generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/></td><td>response</td><td>contains</td><td>{2-100}generalPractitioner.reference</td><td>Practitioner/</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{6-100}generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/></td><td>response</td><td>contains</td><td>{6-100}generalPractitioner.reference</td><td>Practitioner/</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family\"/> <operator value=\"equals\"/> <value value=\"Allen\"/></td><td>response</td><td>equals</td><td>{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family</td><td>Allen</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family\"/> <operator value=\"equals\"/> <value value=\"Gracia\"/></td><td>response</td><td>equals</td><td>{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family</td><td>Gracia</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"Gracia,McKay,Allen,Williams,Hill\"/></td><td>response</td><td>in</td><td>{generalPractitioner}name.family</td><td>Gracia,McKay,Allen,Williams,Hill</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,c,d,e\"/></td><td>response</td><td>in</td><td>{generalPractitioner}name.family</td><td>a,b,c,d,e</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,Allen,d,e\"/></td><td>response</td><td>in</td><td>{generalPractitioner}name.family</td><td>a,b,Allen,d,e</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{any|generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,Allen,d,e\"/></td><td>response</td><td>in</td><td>{any|generalPractitioner}name.family</td><td>a,b,Allen,d,e</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>Path</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><path value=\"{any|generalPractiXXXXXXXXXXXXXioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,Allen,d,e\"/></td><td>response</td><td>in</td><td>{any|generalPractiXXXXXXXXXXXXXioner}name.family</td><td>a,b,Allen,d,e</td><td>false</td></tr></table></blockquote></blockquote><blockquote><p><b>test</b></p><p><b>name</b>: AssertFhirPath</p><p><b>description</b>: Demonstrates expression assertions.</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class=\"grid\"><tr><td>-</td><td><b>Type</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Url</b></td></tr><tr><td>*</td><td>GET (Details: http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes code get = 'GET', stated as 'null')</td><td>Retrieve NDJSON response that contains 5 Patient resources.</td><td>ndjson</td><td>1</td><td>true</td><td>${outputBaseUrl}/1/Patient.ndjson</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Confirm that the returned HTTP status is 200.</td><td>response</td><td>equals</td><td>200</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"Patient.name.family\"/> <operator value=\"in\"/> <value value=\"Allen,Gracia\"/></td><td>response</td><td>Patient.name.family</td><td>in</td><td>Allen,Gracia</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{any}Patient.name.family\"/> <operator value=\"in\"/> <value value=\"Allen,Gracia\"/></td><td>response</td><td>{any}Patient.name.family</td><td>in</td><td>Allen,Gracia</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{all}Patient.name.family\"/> <operator value=\"equals\"/> <value value=\"Allen\"/></td><td>response</td><td>{all}Patient.name.family</td><td>equals</td><td>Allen</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{1-3}Patient.name.family\"/> <operator value=\"in\"/> <value value=\"McKay,Gracia,Allen\"/></td><td>response</td><td>{1-3}Patient.name.family</td><td>in</td><td>McKay,Gracia,Allen</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{1-100}Patient.name.family\"/> <operator value=\"in\"/> <value value=\"McKay,Gracia,Allen\"/></td><td>response</td><td>{1-100}Patient.name.family</td><td>in</td><td>McKay,Gracia,Allen</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Joshua,P\"/></td><td>response</td><td>Patient.name.given</td><td>in</td><td>Joshua,P</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{any}Patient.name.given\"/> <operator value=\"equals\"/> <value value=\"George\"/></td><td>response</td><td>{any}Patient.name.given</td><td>equals</td><td>George</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{1-3}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Brian,Q,George,Carol,G\"/></td><td>response</td><td>{1-3}Patient.name.given</td><td>in</td><td>Brian,Q,George,Carol,G</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{1-100}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Brian,Q,George,Carol,G\"/></td><td>response</td><td>{1-100}Patient.name.given</td><td>in</td><td>Brian,Q,George,Carol,G</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{1-100}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Brian,Q,George,Carol,G,Joshua,H,P\"/></td><td>response</td><td>{1-100}Patient.name.given</td><td>in</td><td>Brian,Q,George,Carol,G,Joshua,H,P</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{.name[?(@.family=='Allen')]}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Carol,G\"/></td><td>response</td><td>{.name[?(@.family=='Allen')]}Patient.name.given</td><td>in</td><td>Carol,G</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>Operator</b></td><td><b>Value</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{.name[?(@.family=='McKay')]}Patient.name.given\"/> <operator value=\"equals\"/> <value value=\"George\"/></td><td>response</td><td>{.name[?(@.family=='McKay')]}Patient.name.given</td><td>equals</td><td>George</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"Patient.name.where(family='Gracia')\"/></td><td>response</td><td>Patient.name.where(family='Gracia')</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Expression</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td><expression value=\"{any}Patient.name.where(family='Gracia')\"/></td><td>response</td><td>{any}Patient.name.where(family='Gracia')</td><td>false</td></tr></table></blockquote></blockquote><blockquote><p><b>test</b></p><p><b>name</b>: AssertProfileValidation</p><p><b>description</b>: Demonstrates validateProfileId assertions.</p><blockquote><p><b>action</b></p><h3>Operations</h3><table class=\"grid\"><tr><td>-</td><td><b>Type</b></td><td><b>Description</b></td><td><b>Accept</b></td><td><b>Destination</b></td><td><b>EncodeRequestUrl</b></td><td><b>Url</b></td></tr><tr><td>*</td><td>GET (Details: http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes code get = 'GET', stated as 'null')</td><td>Retrieve NDJSON response that contains 5 Patient resources. Some of the resources are invalid (will fail AEGIS Validator validation)</td><td>ndjson</td><td>1</td><td>true</td><td>${outputBaseUrl}/3/patient-some-invalid.ndjson</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>Operator</b></td><td><b>ResponseCode</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Confirm that the returned HTTP status is 200.</td><td>response</td><td>equals</td><td>200</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Validate that the returned resource conforms to the corresponding FHIR resource profile.</td><td>response</td><td>resource-profile</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Validate that the returned resource conforms to the corresponding FHIR resource profile.</td><td>response</td><td>resource-profile-for-any</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Validate that the returned resource conforms to the corresponding FHIR resource profile.</td><td>response</td><td>resource-profile-for-first</td><td>false</td></tr></table></blockquote><blockquote><p><b>action</b></p><h3>Asserts</h3><table class=\"grid\"><tr><td>-</td><td><b>Extension</b></td><td><b>Description</b></td><td><b>Direction</b></td><td><b>ValidateProfileId</b></td><td><b>WarningOnly</b></td></tr><tr><td>*</td><td></td><td>Validate that the returned resource conforms to the corresponding FHIR resource profile.</td><td>response</td><td>resource-profile-for-Gracia</td><td>false</td></tr></table></blockquote></blockquote></div>"
},
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/TestScript/ndjson-assertion-prefix",
"version" : "1.5.0",
"name" : "NDJSONAssertionPrefixSyntax",
"title" : "Demonstrate NDJSON Assertion Prefix Syntax",
"status" : "active",
"date" : "2020-12-06",
"publisher" : "AEGIS.net, Inc.",
"contact" : [
{
"name" : "Touchstone Support",
"telecom" : [
{
"system" : "email",
"value" : "Touchstone_Support@aegis.net",
"use" : "work"
}
]
}
],
"description" : "Demonstrate NDJSON Assertion Prefix Syntax",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US"
}
]
}
],
"copyright" : "(c) AEGIS.net, Inc. 2015+",
"destination" : [
{
"id" : "Server",
"index" : 1,
"profile" : {
"system" : "http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types",
"code" : "FHIR-Server"
}
}
],
"profile" : [
{
"id" : "resource-profile",
"reference" : "http://hl7.org/fhir/StructureDefinition/Patient"
},
{
"id" : "resource-profile-for-any",
"reference" : "{any}http://hl7.org/fhir/StructureDefinition/Patient"
},
{
"id" : "resource-profile-for-first",
"reference" : "{1}http://hl7.org/fhir/StructureDefinition/Patient"
},
{
"id" : "resource-profile-for-Gracia",
"reference" : "{.name[?(@.family=='Gracia')]}http://hl7.org/fhir/StructureDefinition/Patient"
}
],
"variable" : [
{
"name" : "outputBaseUrl",
"defaultValue" : "http://localhost:33000/bulk-api/output"
}
],
"test" : [
{
"id" : "AssertContentTypeResourceAndValidation",
"name" : "AssertContentTypeResourceAndValidation",
"description" : "Demonstrates contentType, resource and validateProfile assertions with no filters.",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes",
"code" : "get"
},
"description" : "Request BulkData",
"accept" : "ndjson",
"destination" : 1,
"encodeRequestUrl" : true,
"url" : "${outputBaseUrl}/1/Patient.ndjson"
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the client requested an Accept of the FHIR JSON mime type 'application/fhir+json'.",
"direction" : "request",
"headerField" : "Accept",
"operator" : "contains",
"value" : "ndjson",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the returned HTTP status is 200.",
"direction" : "response",
"operator" : "equals",
"responseCode" : "200",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"direction" : "response",
"contentType" : "ndjson",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"direction" : "response",
"resource" : "Patient",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Validate that the returned resource conforms to the corresponding FHIR resource profile.",
"direction" : "response",
"validateProfileId" : "resource-profile",
"warningOnly" : false
}
}
]
},
{
"id" : "AssertResourceType",
"name" : "AssertResourceType",
"description" : "Demonstrates resource assertions.",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes",
"code" : "get"
},
"description" : "Retrieve invalid NDJSON that contains mix of Patient and Person resource types.",
"accept" : "ndjson",
"destination" : 1,
"encodeRequestUrl" : true,
"url" : "${outputBaseUrl}/2/patient-person-mix.ndjson"
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the returned HTTP status is 200.",
"direction" : "response",
"operator" : "equals",
"responseCode" : "200",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<resource value=\"Patient\"/>",
"direction" : "response",
"resource" : "Patient",
"warningOnly" : false
}
}
]
},
{
"id" : "AssertResourceCount",
"name" : "AssertResourceCount",
"description" : "Demonstrates resource-count assertions (only works with NDJSON responses).",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes",
"code" : "get"
},
"description" : "Retrieve NDJSON response that contains 5 Patient resources.",
"accept" : "ndjson",
"destination" : 1,
"encodeRequestUrl" : true,
"url" : "${outputBaseUrl}/1/Patient.ndjson"
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the returned HTTP status is 200.",
"direction" : "response",
"operator" : "equals",
"responseCode" : "200",
"warningOnly" : false
}
},
{
"assert" : {
"description" : "<path value=\"resource-count\"/> <operator value=\"equals\"/> <value value=\"5\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "resource-count",
"value" : "5",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"resource-count\"/> <operator value=\"equals\"/> <value value=\"6\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "resource-count",
"value" : "6",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"resource-count\"/> <operator value=\"greaterThan\"/> <value value=\"4\"/>",
"direction" : "response",
"operator" : "greaterThan",
"path" : "resource-count",
"value" : "4",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner}resource-count\"/> <operator value=\"greaterThan\"/> <value value=\"4\"/>",
"direction" : "response",
"operator" : "greaterThan",
"path" : "{generalPractitioner}resource-count",
"value" : "4",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count\"/> <operator value=\"greaterThan\"/> <value value=\"4\"/>",
"direction" : "response",
"operator" : "greaterThan",
"path" : "{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count",
"value" : "4",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count\"/> <operator value=\"equals\"/> <value value=\"1\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count",
"value" : "1",
"warningOnly" : false
}
}
]
},
{
"id" : "AssertPath",
"name" : "AssertPath",
"description" : "Demonstrates path assertions.",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes",
"code" : "get"
},
"description" : "Retrieve NDJSON response that contains 5 Patient resources.",
"accept" : "ndjson",
"destination" : 1,
"encodeRequestUrl" : true,
"url" : "${outputBaseUrl}/1/Patient.ndjson"
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the returned HTTP status is 200.",
"direction" : "response",
"operator" : "equals",
"responseCode" : "200",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/>",
"direction" : "response",
"operator" : "contains",
"path" : "generalPractitioner.reference",
"value" : "Practitioner/",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "generalPractitioner.reference",
"value" : "Practitioner/2",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{any}generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "{any}generalPractitioner.reference",
"value" : "Practitioner/2",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{2}generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "{2}generalPractitioner.reference",
"value" : "Practitioner/2",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{3}generalPractitioner.reference\"/> <operator value=\"equals\"/> <value value=\"Practitioner/2\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "{3}generalPractitioner.reference",
"value" : "Practitioner/2",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{2-5}generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/>",
"direction" : "response",
"operator" : "contains",
"path" : "{2-5}generalPractitioner.reference",
"value" : "Practitioner/",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{2-100}generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/>",
"direction" : "response",
"operator" : "contains",
"path" : "{2-100}generalPractitioner.reference",
"value" : "Practitioner/",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{6-100}generalPractitioner.reference\"/> <operator value=\"contains\"/> <value value=\"Practitioner/\"/>",
"direction" : "response",
"operator" : "contains",
"path" : "{6-100}generalPractitioner.reference",
"value" : "Practitioner/",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family\"/> <operator value=\"equals\"/> <value value=\"Allen\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family",
"value" : "Allen",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family\"/> <operator value=\"equals\"/> <value value=\"Gracia\"/>",
"direction" : "response",
"operator" : "equals",
"path" : "{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family",
"value" : "Gracia",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"Gracia,McKay,Allen,Williams,Hill\"/>",
"direction" : "response",
"operator" : "in",
"path" : "{generalPractitioner}name.family",
"value" : "Gracia,McKay,Allen,Williams,Hill",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,c,d,e\"/>",
"direction" : "response",
"operator" : "in",
"path" : "{generalPractitioner}name.family",
"value" : "a,b,c,d,e",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,Allen,d,e\"/>",
"direction" : "response",
"operator" : "in",
"path" : "{generalPractitioner}name.family",
"value" : "a,b,Allen,d,e",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{any|generalPractitioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,Allen,d,e\"/>",
"direction" : "response",
"operator" : "in",
"path" : "{any|generalPractitioner}name.family",
"value" : "a,b,Allen,d,e",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<path value=\"{any|generalPractiXXXXXXXXXXXXXioner}name.family\"/> <operator value=\"in\"/> <value value=\"a,b,Allen,d,e\"/>",
"direction" : "response",
"operator" : "in",
"path" : "{any|generalPractiXXXXXXXXXXXXXioner}name.family",
"value" : "a,b,Allen,d,e",
"warningOnly" : false
}
}
]
},
{
"id" : "AssertFhirPath",
"name" : "AssertFhirPath",
"description" : "Demonstrates expression assertions.",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes",
"code" : "get"
},
"description" : "Retrieve NDJSON response that contains 5 Patient resources.",
"accept" : "ndjson",
"destination" : 1,
"encodeRequestUrl" : true,
"url" : "${outputBaseUrl}/1/Patient.ndjson"
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the returned HTTP status is 200.",
"direction" : "response",
"operator" : "equals",
"responseCode" : "200",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"Patient.name.family\"/> <operator value=\"in\"/> <value value=\"Allen,Gracia\"/>",
"direction" : "response",
"expression" : "Patient.name.family",
"operator" : "in",
"value" : "Allen,Gracia",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{any}Patient.name.family\"/> <operator value=\"in\"/> <value value=\"Allen,Gracia\"/>",
"direction" : "response",
"expression" : "{any}Patient.name.family",
"operator" : "in",
"value" : "Allen,Gracia",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{all}Patient.name.family\"/> <operator value=\"equals\"/> <value value=\"Allen\"/>",
"direction" : "response",
"expression" : "{all}Patient.name.family",
"operator" : "equals",
"value" : "Allen",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{1-3}Patient.name.family\"/> <operator value=\"in\"/> <value value=\"McKay,Gracia,Allen\"/>",
"direction" : "response",
"expression" : "{1-3}Patient.name.family",
"operator" : "in",
"value" : "McKay,Gracia,Allen",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{1-100}Patient.name.family\"/> <operator value=\"in\"/> <value value=\"McKay,Gracia,Allen\"/>",
"direction" : "response",
"expression" : "{1-100}Patient.name.family",
"operator" : "in",
"value" : "McKay,Gracia,Allen",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Joshua,P\"/>",
"direction" : "response",
"expression" : "Patient.name.given",
"operator" : "in",
"value" : "Joshua,P",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{any}Patient.name.given\"/> <operator value=\"equals\"/> <value value=\"George\"/>",
"direction" : "response",
"expression" : "{any}Patient.name.given",
"operator" : "equals",
"value" : "George",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{1-3}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Brian,Q,George,Carol,G\"/>",
"direction" : "response",
"expression" : "{1-3}Patient.name.given",
"operator" : "in",
"value" : "Brian,Q,George,Carol,G",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{1-100}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Brian,Q,George,Carol,G\"/>",
"direction" : "response",
"expression" : "{1-100}Patient.name.given",
"operator" : "in",
"value" : "Brian,Q,George,Carol,G",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{1-100}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Brian,Q,George,Carol,G,Joshua,H,P\"/>",
"direction" : "response",
"expression" : "{1-100}Patient.name.given",
"operator" : "in",
"value" : "Brian,Q,George,Carol,G,Joshua,H,P",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{.name[?(@.family=='Allen')]}Patient.name.given\"/> <operator value=\"in\"/> <value value=\"Carol,G\"/>",
"direction" : "response",
"expression" : "{.name[?(@.family=='Allen')]}Patient.name.given",
"operator" : "in",
"value" : "Carol,G",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{.name[?(@.family=='McKay')]}Patient.name.given\"/> <operator value=\"equals\"/> <value value=\"George\"/>",
"direction" : "response",
"expression" : "{.name[?(@.family=='McKay')]}Patient.name.given",
"operator" : "equals",
"value" : "George",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"Patient.name.where(family='Gracia')\"/>",
"direction" : "response",
"expression" : "Patient.name.where(family='Gracia')",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "<expression value=\"{any}Patient.name.where(family='Gracia')\"/>",
"direction" : "response",
"expression" : "{any}Patient.name.where(family='Gracia')",
"warningOnly" : false
}
}
]
},
{
"id" : "AssertProfileValidation",
"name" : "AssertProfileValidation",
"description" : "Demonstrates validateProfileId assertions.",
"action" : [
{
"operation" : {
"type" : {
"system" : "http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes",
"code" : "get"
},
"description" : "Retrieve NDJSON response that contains 5 Patient resources. Some of the resources are invalid (will fail AEGIS Validator validation)",
"accept" : "ndjson",
"destination" : 1,
"encodeRequestUrl" : true,
"url" : "${outputBaseUrl}/3/patient-some-invalid.ndjson"
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Confirm that the returned HTTP status is 200.",
"direction" : "response",
"operator" : "equals",
"responseCode" : "200",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Validate that the returned resource conforms to the corresponding FHIR resource profile.",
"direction" : "response",
"validateProfileId" : "resource-profile",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Validate that the returned resource conforms to the corresponding FHIR resource profile.",
"direction" : "response",
"validateProfileId" : "resource-profile-for-any",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Validate that the returned resource conforms to the corresponding FHIR resource profile.",
"direction" : "response",
"validateProfileId" : "resource-profile-for-first",
"warningOnly" : false
}
},
{
"assert" : {
"extension" : [
{
"url" : "http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail",
"valueBoolean" : false
}
],
"description" : "Validate that the returned resource conforms to the corresponding FHIR resource profile.",
"direction" : "response",
"validateProfileId" : "resource-profile-for-Gracia",
"warningOnly" : false
}
}
]
}
]
}