This is the Version 1.4.0 Release of the Touchstone Testing Implementation Guide, based on FHIR Version 4.0.1. See the Directory of published versions
XML Format: TestScript-ndjson-assertion-prefix
Raw xml
<TestScript xmlns="http://hl7.org/fhir">
<id value="ndjson-assertion-prefix"/>
<meta>
<profile
value="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript"/>
</meta>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p><b>Generated Narrative</b></p><p><b>url</b>: <code>http://touchstone.aegis.net/touchstone/fhir/testing/TestScript/ndjson-assertion-prefix</code></p><p><b>version</b>: 1.4.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>: <span title="Codes: {urn:iso:std:iso:3166 US}">United States of America</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>: <span title="{http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types FHIR-Server}">FHIR Server</span></p></blockquote><p><b>profile</b>: </p><ul><li><a href="http://hl7.org/fhir/StructureDefinition/Patient">Generated Summary: url: http://hl7.org/fhir/StructureDefinition/Patient; version: 4.0.1; name: Patient; ACTIVE; date: Oct 31, 2019 6:29:23 PM; publisher: Health Level Seven International (Patient Administration); http://hl7.org/fhir, http://www.hl7.org/Special/com...; description: Demographics and other administrative information about an individual or animal receiving care or other health-related services.; purpose: Tracking patient is the center of the healthcare process.; 4.0.1; RESOURCE; type: Patient; baseDefinition: http://hl7.org/fhir/StructureDefinition/DomainResource; SPECIALIZATION</a></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><span title="{http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes get}">GET</span></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><span title="{http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes get}">GET</span></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><span title="{http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes get}">GET</span></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><span title="{http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes get}">GET</span></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><span title="{http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes get}">GET</span></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><span title="{http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes get}">GET</span></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>
</text>
<url
value="http://touchstone.aegis.net/touchstone/fhir/testing/TestScript/ndjson-assertion-prefix"/>
<version value="1.4.0"/>
<name value="NDJSONAssertionPrefixSyntax"/>
<title value="Demonstrate NDJSON Assertion Prefix Syntax"/>
<status value="active"/>
<date value="2020-12-06"/>
<publisher value="AEGIS.net, Inc."/>
<contact>
<name value="Touchstone Support"/>
<telecom>
<system value="email"/>
<value value="Touchstone_Support@aegis.net"/>
<use value="work"/>
</telecom>
</contact>
<description value="Demonstrate NDJSON Assertion Prefix Syntax"/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="US"/>
<display value="United States of America"/>
</coding>
</jurisdiction>
<copyright value="(c) AEGIS.net, Inc. 2015+"/>
<destination id="Server">
<index value="1"/>
<profile>
<system
value="http://terminology.hl7.org/CodeSystem/testscript-profile-destination-types"/>
<code value="FHIR-Server"/>
</profile>
</destination>
<profile id="resource-profile">
<reference value="http://hl7.org/fhir/StructureDefinition/Patient"/>
</profile>
<profile id="resource-profile-for-any">
<reference value="{any}http://hl7.org/fhir/StructureDefinition/Patient"/>
</profile>
<profile id="resource-profile-for-first">
<reference value="{1}http://hl7.org/fhir/StructureDefinition/Patient"/>
</profile>
<profile id="resource-profile-for-Gracia">
<reference
value="{.name[?(@.family=='Gracia')]}http://hl7.org/fhir/StructureDefinition/Patient"/>
</profile>
<variable>
<name value="outputBaseUrl"/>
<defaultValue value="http://localhost:33000/bulk-api/output"/>
</variable>
<test id="AssertContentTypeResourceAndValidation">
<name value="AssertContentTypeResourceAndValidation"/>
<description
value="Demonstrates contentType, resource and validateProfile assertions with no filters."/>
<action>
<operation>
<type>
<system
value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>
<code value="get"/>
</type>
<description value="Request BulkData"/>
<accept value="ndjson"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<url value="${outputBaseUrl}/1/Patient.ndjson"/>
</operation>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="Confirm that the client requested an Accept of the FHIR JSON mime type 'application/fhir+json'."/>
<direction value="request"/>
<headerField value="Accept"/>
<operator value="contains"/>
<value value="ndjson"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Confirm that the returned HTTP status is 200."/>
<direction value="response"/>
<operator value="equals"/>
<responseCode value="200"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<direction value="response"/>
<contentType value="ndjson"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<direction value="response"/>
<resource value="Patient"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>
<direction value="response"/>
<validateProfileId value="resource-profile"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="AssertResourceType">
<name value="AssertResourceType"/>
<description value="Demonstrates resource assertions."/>
<action>
<operation>
<type>
<system
value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>
<code value="get"/>
</type>
<description
value="Retrieve invalid NDJSON that contains mix of Patient and Person resource types."/>
<accept value="ndjson"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<url value="${outputBaseUrl}/2/patient-person-mix.ndjson"/>
</operation>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Confirm that the returned HTTP status is 200."/>
<direction value="response"/>
<operator value="equals"/>
<responseCode value="200"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="<resource value="Patient"/>"/>
<direction value="response"/>
<resource value="Patient"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="AssertResourceCount">
<name value="AssertResourceCount"/>
<description
value="Demonstrates resource-count assertions (only works with NDJSON responses)."/>
<action>
<operation>
<type>
<system
value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>
<code value="get"/>
</type>
<description
value="Retrieve NDJSON response that contains 5 Patient resources."/>
<accept value="ndjson"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<url value="${outputBaseUrl}/1/Patient.ndjson"/>
</operation>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Confirm that the returned HTTP status is 200."/>
<direction value="response"/>
<operator value="equals"/>
<responseCode value="200"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<description
value="<path value="resource-count"/> <operator value="equals"/> <value value="5"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path value="resource-count"/>
<value value="5"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="resource-count"/> <operator value="equals"/> <value value="6"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path value="resource-count"/>
<value value="6"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="resource-count"/> <operator value="greaterThan"/> <value value="4"/>"/>
<direction value="response"/>
<operator value="greaterThan"/>
<path value="resource-count"/>
<value value="4"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner}resource-count"/> <operator value="greaterThan"/> <value value="4"/>"/>
<direction value="response"/>
<operator value="greaterThan"/>
<path value="{generalPractitioner}resource-count"/>
<value value="4"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count"/> <operator value="greaterThan"/> <value value="4"/>"/>
<direction value="response"/>
<operator value="greaterThan"/>
<path
value="{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count"/>
<value value="4"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count"/> <operator value="equals"/> <value value="1"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path
value="{generalPractitioner[?(@.reference=='Practitioner/4')]}resource-count"/>
<value value="1"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="AssertPath">
<name value="AssertPath"/>
<description value="Demonstrates path assertions."/>
<action>
<operation>
<type>
<system
value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>
<code value="get"/>
</type>
<description
value="Retrieve NDJSON response that contains 5 Patient resources."/>
<accept value="ndjson"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<url value="${outputBaseUrl}/1/Patient.ndjson"/>
</operation>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Confirm that the returned HTTP status is 200."/>
<direction value="response"/>
<operator value="equals"/>
<responseCode value="200"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="generalPractitioner.reference"/> <operator value="contains"/> <value value="Practitioner/"/>"/>
<direction value="response"/>
<operator value="contains"/>
<path value="generalPractitioner.reference"/>
<value value="Practitioner/"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="generalPractitioner.reference"/> <operator value="equals"/> <value value="Practitioner/2"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path value="generalPractitioner.reference"/>
<value value="Practitioner/2"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{any}generalPractitioner.reference"/> <operator value="equals"/> <value value="Practitioner/2"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path value="{any}generalPractitioner.reference"/>
<value value="Practitioner/2"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{2}generalPractitioner.reference"/> <operator value="equals"/> <value value="Practitioner/2"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path value="{2}generalPractitioner.reference"/>
<value value="Practitioner/2"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{3}generalPractitioner.reference"/> <operator value="equals"/> <value value="Practitioner/2"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path value="{3}generalPractitioner.reference"/>
<value value="Practitioner/2"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{2-5}generalPractitioner.reference"/> <operator value="contains"/> <value value="Practitioner/"/>"/>
<direction value="response"/>
<operator value="contains"/>
<path value="{2-5}generalPractitioner.reference"/>
<value value="Practitioner/"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{2-100}generalPractitioner.reference"/> <operator value="contains"/> <value value="Practitioner/"/>"/>
<direction value="response"/>
<operator value="contains"/>
<path value="{2-100}generalPractitioner.reference"/>
<value value="Practitioner/"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{6-100}generalPractitioner.reference"/> <operator value="contains"/> <value value="Practitioner/"/>"/>
<direction value="response"/>
<operator value="contains"/>
<path value="{6-100}generalPractitioner.reference"/>
<value value="Practitioner/"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family"/> <operator value="equals"/> <value value="Allen"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path
value="{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family"/>
<value value="Allen"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family"/> <operator value="equals"/> <value value="Gracia"/>"/>
<direction value="response"/>
<operator value="equals"/>
<path
value="{generalPractitioner[?(@.reference=='Practitioner/3')]}name.family"/>
<value value="Gracia"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner}name.family"/> <operator value="in"/> <value value="Gracia,McKay,Allen,Williams,Hill"/>"/>
<direction value="response"/>
<operator value="in"/>
<path value="{generalPractitioner}name.family"/>
<value value="Gracia,McKay,Allen,Williams,Hill"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner}name.family"/> <operator value="in"/> <value value="a,b,c,d,e"/>"/>
<direction value="response"/>
<operator value="in"/>
<path value="{generalPractitioner}name.family"/>
<value value="a,b,c,d,e"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{generalPractitioner}name.family"/> <operator value="in"/> <value value="a,b,Allen,d,e"/>"/>
<direction value="response"/>
<operator value="in"/>
<path value="{generalPractitioner}name.family"/>
<value value="a,b,Allen,d,e"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{any|generalPractitioner}name.family"/> <operator value="in"/> <value value="a,b,Allen,d,e"/>"/>
<direction value="response"/>
<operator value="in"/>
<path value="{any|generalPractitioner}name.family"/>
<value value="a,b,Allen,d,e"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<path value="{any|generalPractiXXXXXXXXXXXXXioner}name.family"/> <operator value="in"/> <value value="a,b,Allen,d,e"/>"/>
<direction value="response"/>
<operator value="in"/>
<path value="{any|generalPractiXXXXXXXXXXXXXioner}name.family"/>
<value value="a,b,Allen,d,e"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="AssertFhirPath">
<name value="AssertFhirPath"/>
<description value="Demonstrates expression assertions."/>
<action>
<operation>
<type>
<system
value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>
<code value="get"/>
</type>
<description
value="Retrieve NDJSON response that contains 5 Patient resources."/>
<accept value="ndjson"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<url value="${outputBaseUrl}/1/Patient.ndjson"/>
</operation>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Confirm that the returned HTTP status is 200."/>
<direction value="response"/>
<operator value="equals"/>
<responseCode value="200"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="Patient.name.family"/> <operator value="in"/> <value value="Allen,Gracia"/>"/>
<direction value="response"/>
<expression value="Patient.name.family"/>
<operator value="in"/>
<value value="Allen,Gracia"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{any}Patient.name.family"/> <operator value="in"/> <value value="Allen,Gracia"/>"/>
<direction value="response"/>
<expression value="{any}Patient.name.family"/>
<operator value="in"/>
<value value="Allen,Gracia"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{all}Patient.name.family"/> <operator value="equals"/> <value value="Allen"/>"/>
<direction value="response"/>
<expression value="{all}Patient.name.family"/>
<operator value="equals"/>
<value value="Allen"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{1-3}Patient.name.family"/> <operator value="in"/> <value value="McKay,Gracia,Allen"/>"/>
<direction value="response"/>
<expression value="{1-3}Patient.name.family"/>
<operator value="in"/>
<value value="McKay,Gracia,Allen"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{1-100}Patient.name.family"/> <operator value="in"/> <value value="McKay,Gracia,Allen"/>"/>
<direction value="response"/>
<expression value="{1-100}Patient.name.family"/>
<operator value="in"/>
<value value="McKay,Gracia,Allen"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="Patient.name.given"/> <operator value="in"/> <value value="Joshua,P"/>"/>
<direction value="response"/>
<expression value="Patient.name.given"/>
<operator value="in"/>
<value value="Joshua,P"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{any}Patient.name.given"/> <operator value="equals"/> <value value="George"/>"/>
<direction value="response"/>
<expression value="{any}Patient.name.given"/>
<operator value="equals"/>
<value value="George"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{1-3}Patient.name.given"/> <operator value="in"/> <value value="Brian,Q,George,Carol,G"/>"/>
<direction value="response"/>
<expression value="{1-3}Patient.name.given"/>
<operator value="in"/>
<value value="Brian,Q,George,Carol,G"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{1-100}Patient.name.given"/> <operator value="in"/> <value value="Brian,Q,George,Carol,G"/>"/>
<direction value="response"/>
<expression value="{1-100}Patient.name.given"/>
<operator value="in"/>
<value value="Brian,Q,George,Carol,G"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{1-100}Patient.name.given"/> <operator value="in"/> <value value="Brian,Q,George,Carol,G,Joshua,H,P"/>"/>
<direction value="response"/>
<expression value="{1-100}Patient.name.given"/>
<operator value="in"/>
<value value="Brian,Q,George,Carol,G,Joshua,H,P"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{.name[?(@.family=='Allen')]}Patient.name.given"/> <operator value="in"/> <value value="Carol,G"/>"/>
<direction value="response"/>
<expression
value="{.name[?(@.family=='Allen')]}Patient.name.given"/>
<operator value="in"/>
<value value="Carol,G"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{.name[?(@.family=='McKay')]}Patient.name.given"/> <operator value="equals"/> <value value="George"/>"/>
<direction value="response"/>
<expression
value="{.name[?(@.family=='McKay')]}Patient.name.given"/>
<operator value="equals"/>
<value value="George"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="Patient.name.where(family='Gracia')"/>"/>
<direction value="response"/>
<expression value="Patient.name.where(family='Gracia')"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="<expression value="{any}Patient.name.where(family='Gracia')"/>"/>
<direction value="response"/>
<expression value="{any}Patient.name.where(family='Gracia')"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
<test id="AssertProfileValidation">
<name value="AssertProfileValidation"/>
<description value="Demonstrates validateProfileId assertions."/>
<action>
<operation>
<type>
<system
value="http://touchstone.aegis.net/touchstone/fhir/testing/CodeSystem/codesystem-testscript-operation-codes"/>
<code value="get"/>
</type>
<description
value="Retrieve NDJSON response that contains 5 Patient resources. Some of the resources are invalid (will fail AEGIS Validator validation)"/>
<accept value="ndjson"/>
<destination value="1"/>
<encodeRequestUrl value="true"/>
<url value="${outputBaseUrl}/3/patient-some-invalid.ndjson"/>
</operation>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description value="Confirm that the returned HTTP status is 200."/>
<direction value="response"/>
<operator value="equals"/>
<responseCode value="200"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>
<direction value="response"/>
<validateProfileId value="resource-profile"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>
<direction value="response"/>
<validateProfileId value="resource-profile-for-any"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>
<direction value="response"/>
<validateProfileId value="resource-profile-for-first"/>
<warningOnly value="false"/>
</assert>
</action>
<action>
<assert>
<extension
url="http://touchstone.aegis.net/touchstone/fhir/testing/StructureDefinition/testscript-assert-stopTestOnFail">
<valueBoolean value="false"/>
</extension>
<description
value="Validate that the returned resource conforms to the corresponding FHIR resource profile."/>
<direction value="response"/>
<validateProfileId value="resource-profile-for-Gracia"/>
<warningOnly value="false"/>
</assert>
</action>
</test>
</TestScript>