# Create FHIR r4 test script Endpoint: POST /site/{siteId}/fhir/test-script Version: 1.0 Security: bearer, bearer ## Path parameters: - `siteId` (string, required) Site identifier ## Request fields (application/json): - `resourceType` (any, required) This is a TestScript resource Enum: "TestScript" - `id` (string) Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive. Example: "example-id" - `meta` (object) The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource. - `meta.id` (string) An extension object type #string. Example: "example-string" - `meta.extension` (array) May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. - `meta.versionId` (object) An extension object type #id. - `meta._versionId` (object) An extension object type #Element. - `meta.lastUpdated` (object) An extension object type #instant. - `meta._lastUpdated` (object) An extension object type #Element. - `meta.source` (string) An extension object type #uri. Example: "https://example.org/resource" - `meta._source` (object) An extension object type #Element. - `meta.profile` (array) A list of profiles (references to [[[StructureDefinition]]] resources) that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. Example: ["http://example.org/Profile"] - `meta.security` (array) Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure. - `meta.tag` (array) Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. - `implicitRules` (string) String of characters used to identify a name or a resource Example: "https://example.org/resource" - `_implicitRules` (object) Base definition for all elements in a resource. - `language` (string) A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents Example: "sample-code" - `_language` (object) Base definition for all elements in a resource. - `text` (object) A human-readable summary of the resource conveying the essential clinical and business information for the resource. - `text.status` (any) The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data. Enum: "generated", "extensions", "additional", "empty" - `text._status` (object) An extension object type #Element. - `text.div` (string, required) An extension object type #xhtml. Example: "
Example
" - `contained` (array) These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope. - `extension` (array) May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. - `extension.url` (string) An extension object type #uri. Example: "https://example.org/resource" - `extension._url` (object) An extension object type #Element. - `extension.valueBase64Binary` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "U2FtcGxl" - `extension._valueBase64Binary` (object) An extension object type #Element. - `extension.valueBoolean` (boolean) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: true - `extension._valueBoolean` (object) An extension object type #Element. - `extension.valueCanonical` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "http://example.org/Profile" - `extension._valueCanonical` (object) An extension object type #Element. - `extension.valueCode` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "sample-code" - `extension._valueCode` (object) An extension object type #Element. - `extension.valueDate` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "2024-01-01" - `extension._valueDate` (object) An extension object type #Element. - `extension.valueDateTime` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "2024-01-01T00:00:00Z" - `extension._valueDateTime` (object) An extension object type #Element. - `extension.valueDecimal` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: 1.23 - `extension._valueDecimal` (object) An extension object type #Element. - `extension.valueId` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "example-id" - `extension._valueId` (object) An extension object type #Element. - `extension.valueInstant` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "2024-01-01T00:00:00Z" - `extension._valueInstant` (object) An extension object type #Element. - `extension.valueInteger` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: 1 - `extension._valueInteger` (object) An extension object type #Element. - `extension.valueMarkdown` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "Sample markdown text" - `extension._valueMarkdown` (object) An extension object type #Element. - `extension.valueOid` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "urn:oid:1.2.3.4.5" - `extension._valueOid` (object) An extension object type #Element. - `extension.valuePositiveInt` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: 1 - `extension._valuePositiveInt` (object) An extension object type #Element. - `extension.valueString` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "example-string" - `extension._valueString` (object) An extension object type #Element. - `extension.valueTime` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "12:00:00" - `extension._valueTime` (object) An extension object type #Element. - `extension.valueUnsignedInt` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). - `extension._valueUnsignedInt` (object) An extension object type #Element. - `extension.valueUri` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "https://example.org/resource" - `extension._valueUri` (object) An extension object type #Element. - `extension.valueUrl` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "https://example.org" - `extension._valueUrl` (object) An extension object type #Element. - `extension.valueUuid` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "urn:uuid:123e4567-e89b-12d3-a456-426614174000" - `extension._valueUuid` (object) An extension object type #Element. - `extension.valueAddress` (object) An extension object type #Address. - `extension.valueAge` (object) An extension object type #Age. - `extension.valueAnnotation` (object) An extension object type #Annotation. - `extension.valueAttachment` (object) An extension object type #Attachment. - `extension.valueCodeableConcept` (object) An extension object type #CodeableConcept. - `extension.valueCoding` (object) An extension object type #Coding. - `extension.valueContactPoint` (object) An extension object type #ContactPoint. - `extension.valueCount` (object) An extension object type #Count. - `extension.valueDistance` (object) An extension object type #Distance. - `extension.valueDuration` (object) An extension object type #Duration. - `extension.valueHumanName` (object) An extension object type #HumanName. - `extension.valueIdentifier` (object) An extension object type #Identifier. - `extension.valueMoney` (object) An extension object type #Money. - `extension.valuePeriod` (object) An extension object type #Period. - `extension.valueQuantity` (object) An extension object type #Quantity. - `extension.valueRange` (object) An extension object type #Range. - `extension.valueRatio` (object) An extension object type #Ratio. - `extension.valueReference` (object) An extension object type #Reference. - `extension.valueSampledData` (object) An extension object type #SampledData. - `extension.valueSignature` (object) An extension object type #Signature. - `extension.valueTiming` (object) An extension object type #Timing. - `extension.valueContactDetail` (object) An extension object type #ContactDetail. - `extension.valueContributor` (object) An extension object type #Contributor. - `extension.valueDataRequirement` (object) An extension object type #DataRequirement. - `extension.valueExpression` (object) An extension object type #Expression. - `extension.valueParameterDefinition` (object) An extension object type #ParameterDefinition. - `extension.valueRelatedArtifact` (object) An extension object type #RelatedArtifact. - `extension.valueTriggerDefinition` (object) An extension object type #TriggerDefinition. - `extension.valueUsageContext` (object) An extension object type #UsageContext. - `extension.valueDosage` (object) An extension object type #Dosage. - `extension.valueMeta` (object) An extension object type #Meta. - `modifierExtension` (array) May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). - `url` (string) String of characters used to identify a name or a resource Example: "https://example.org/resource" - `_url` (object) Base definition for all elements in a resource. - `identifier` (object) An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers. - `identifier.use` (any) The purpose of this identifier. Enum: "usual", "official", "temp", "secondary", "old" - `identifier._use` (object) An extension object type #Element. - `identifier.type` (object) An extension object type #CodeableConcept. - `identifier.system` (string) An extension object type #uri. Example: "https://example.org/resource" - `identifier._system` (object) An extension object type #Element. - `identifier.value` (string) An extension object type #string. Example: "example-string" - `identifier._value` (object) An extension object type #Element. - `identifier.period` (object) An extension object type #Period. - `identifier.assigner` (object) An extension object type #Reference. - `version` (string) A sequence of Unicode characters Example: "example-string" - `_version` (object) Base definition for all elements in a resource. - `name` (string) A sequence of Unicode characters Example: "example-string" - `_name` (object) Base definition for all elements in a resource. - `title` (string) A sequence of Unicode characters Example: "example-string" - `_title` (object) Base definition for all elements in a resource. - `status` (any) The status of this test script. Enables tracking the life-cycle of the content. Enum: "draft", "active", "retired", "unknown" - `_status` (object) Base definition for all elements in a resource. - `experimental` (boolean) Value of "true" or "false" Example: true - `_experimental` (object) Base definition for all elements in a resource. - `date` (string) A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates. Example: "2024-01-01T00:00:00Z" - `_date` (object) Base definition for all elements in a resource. - `publisher` (string) A sequence of Unicode characters Example: "example-string" - `_publisher` (object) Base definition for all elements in a resource. - `contact` (array) Contact details to assist a user in finding and communicating with the publisher. Example: [{"name":"Support","telecom":[{"system":"email","value":"support@HL7.org","use":"work"}]}] - `contact.name` (string) An extension object type #string. Example: "example-string" - `contact._name` (object) An extension object type #Element. - `contact.telecom` (array) The contact details for the individual (if a name was provided) or the organization. - `description` (string) A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine Example: "Sample markdown text" - `_description` (object) Base definition for all elements in a resource. - `useContext` (array) The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate test script instances. Example: [{"code":{"system":"http://terminology.hl7.org/CodeSystem/usage-context-type","code":"focus"},"valueCodeableConcept":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/variant-state","code":"positive"}]}}] - `useContext.code` (object, required) An extension object type #Coding. - `jurisdiction` (array) A legal or geographic region in which the test script is intended to be used. Example: [{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America (the)"}]}] - `jurisdiction.coding` (array) A reference to a code defined by a terminology system. - `jurisdiction.text` (string) An extension object type #string. Example: "example-string" - `jurisdiction._text` (object) An extension object type #Element. - `purpose` (string) A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine Example: "Sample markdown text" - `_purpose` (object) Base definition for all elements in a resource. - `copyright` (string) A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine Example: "Sample markdown text" - `_copyright` (object) Base definition for all elements in a resource. - `origin` (array) An abstract server used in operations within this test script in the origin element. - `origin.modifierExtension` (array) May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). - `origin.index` (integer) An extension object type #integer. Example: 1 - `origin._index` (object) An extension object type #Element. - `origin.profile` (object, required) An extension object type #Coding. - `destination` (array) An abstract server used in operations within this test script in the destination element. - `metadata` (object) A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification. - `metadata.link` (array) A link to the FHIR specification that this test is covering. - `metadata.capability` (array, required) Capabilities that must exist and are assumed to function correctly on the FHIR server being tested. - `fixture` (array) Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute. Example: [{"id":"fixture-patient-create","autocreate":false,"autodelete":false,"resource":{"reference":"Patient/example","display":"Peter Chalmers"}},{"id":"fixture-patient-minimum","autocreate":false,"autodelete":false,"resource":{"reference":"Patient/example","display":"Peter Chalmers (minimum)"}}] - `fixture.autocreate` (boolean) An extension object type #boolean. Example: true - `fixture._autocreate` (object) An extension object type #Element. - `fixture.autodelete` (boolean) An extension object type #boolean. Example: true - `fixture._autodelete` (object) An extension object type #Element. - `fixture.resource` (object) An extension object type #Reference. Example: {"resourceType":"Resource","id":"example"} - `profile` (array) Reference to the profile to be used for validation. Example: [{"id":"patient-profile","reference":"http://hl7.org/fhir/StructureDefinition/Patient"}] - `profile.reference` (string) An extension object type #string. Example: "example-string" - `profile._reference` (object) An extension object type #Element. - `profile.type` (string) An extension object type #uri. Example: "https://example.org/resource" - `profile._type` (object) An extension object type #Element. - `profile.identifier` (object) An extension object type #Identifier. - `profile.display` (string) An extension object type #string. Example: "example-string" - `profile._display` (object) An extension object type #Element. - `variable` (array) Variable is set based either on element value in response body or on header field value in the response headers. Example: [{"name":"createResourceId","path":"Patient/id","sourceId":"fixture-patient-create"}] - `variable.defaultValue` (string) An extension object type #string. Example: "example-string" - `variable._defaultValue` (object) An extension object type #Element. - `variable.description` (string) An extension object type #string. Example: "example-string" - `variable._description` (object) An extension object type #Element. - `variable.expression` (string) An extension object type #string. Example: "example-string" - `variable._expression` (object) An extension object type #Element. - `variable.headerField` (string) An extension object type #string. Example: "example-string" - `variable._headerField` (object) An extension object type #Element. - `variable.hint` (string) An extension object type #string. Example: "example-string" - `variable._hint` (object) An extension object type #Element. - `variable.path` (string) An extension object type #string. Example: "example-string" - `variable._path` (object) An extension object type #Element. - `variable.sourceId` (object) An extension object type #id. - `variable._sourceId` (object) An extension object type #Element. - `setup` (object) A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification. - `setup.action` (array, required) Action would contain either an operation or an assertion. - `test` (array) A test in this script. Example: [{"id":"01-ReadPatient","name":"Read Patient","description":"Read a Patient and validate response.","action":[{"operation":{"type":{"system":"http://terminology.hl7.org/CodeSystem/testscript-operation-codes","code":"read"},"resource":"Patient","description":"Read the patient resource on the test server using the id from fixture-patient-create. Prevent URL encoding of the request.","encodeRequestUrl":false,"responseId":"fixture-patient-read","targetId":"fixture-patient-create"}},{"assert":{"label":"01-ReadPatientOK","description":"Confirm that the returned HTTP status is 200(OK).","direction":"response","response":"okay","warningOnly":false}},{"assert":{"description":"Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server might not support versioning.","direction":"response","headerField":"Last-Modified","operator":"notEmpty","warningOnly":true}},{"assert":{"description":"Confirm that the returned resource type is Patient.","resource":"Patient","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient conforms to the base FHIR specification.","validateProfileId":"patient-profile","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit sourceId reference to read responseId fixture.","operator":"equals","path":"fhir:Patient/fhir:name/fhir:family/@value","sourceId":"fixture-patient-read","value":"Chalmers","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit sourceId reference to read responseId fixture.","operator":"equals","path":"fhir:Patient/fhir:name/fhir:given/@value","sourceId":"fixture-patient-read","value":"Peter","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and implicit reference to read response payload.","compareToSourceId":"fixture-patient-create","compareToSourcePath":"fhir:Patient/fhir:name/fhir:family/@value","operator":"equals","path":"fhir:Patient/fhir:name/fhir:family/@value","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and explicit reference to read response payload and default operator of 'equals'.","compareToSourceId":"fixture-patient-create","compareToSourcePath":"fhir:Patient/fhir:name/fhir:given/@value","path":"fhir:Patient/fhir:name/fhir:given/@value","sourceId":"fixture-patient-read","warningOnly":false}},{"assert":{"description":"Confirm that the returned resource contains the expected retained elements and values. Warning only to provide users with reviewable results.","minimumId":"fixture-patient-minimum","warningOnly":true}}]}] - `teardown` (object) A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification. - `teardown.action` (array, required) The teardown action will only contain an operation. ## Response 200 fields (application/json): - `resourceType` (any, required) This is a TestScript resource Enum: "TestScript" - `id` (string) Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive. Example: "example-id" - `meta` (object) The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource. - `meta.id` (string) An extension object type #string. Example: "example-string" - `meta.extension` (array) May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. - `meta.versionId` (object) An extension object type #id. - `meta._versionId` (object) An extension object type #Element. - `meta.lastUpdated` (object) An extension object type #instant. - `meta._lastUpdated` (object) An extension object type #Element. - `meta.source` (string) An extension object type #uri. Example: "https://example.org/resource" - `meta._source` (object) An extension object type #Element. - `meta.profile` (array) A list of profiles (references to [[[StructureDefinition]]] resources) that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. Example: ["http://example.org/Profile"] - `meta.security` (array) Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure. - `meta.tag` (array) Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. - `implicitRules` (string) String of characters used to identify a name or a resource Example: "https://example.org/resource" - `_implicitRules` (object) Base definition for all elements in a resource. - `language` (string) A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents Example: "sample-code" - `_language` (object) Base definition for all elements in a resource. - `text` (object) A human-readable summary of the resource conveying the essential clinical and business information for the resource. - `text.status` (any) The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data. Enum: "generated", "extensions", "additional", "empty" - `text._status` (object) An extension object type #Element. - `text.div` (string, required) An extension object type #xhtml. Example: "
Example
" - `contained` (array) These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope. - `extension` (array) May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. - `extension.url` (string) An extension object type #uri. Example: "https://example.org/resource" - `extension._url` (object) An extension object type #Element. - `extension.valueBase64Binary` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "U2FtcGxl" - `extension._valueBase64Binary` (object) An extension object type #Element. - `extension.valueBoolean` (boolean) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: true - `extension._valueBoolean` (object) An extension object type #Element. - `extension.valueCanonical` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "http://example.org/Profile" - `extension._valueCanonical` (object) An extension object type #Element. - `extension.valueCode` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "sample-code" - `extension._valueCode` (object) An extension object type #Element. - `extension.valueDate` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "2024-01-01" - `extension._valueDate` (object) An extension object type #Element. - `extension.valueDateTime` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "2024-01-01T00:00:00Z" - `extension._valueDateTime` (object) An extension object type #Element. - `extension.valueDecimal` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: 1.23 - `extension._valueDecimal` (object) An extension object type #Element. - `extension.valueId` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "example-id" - `extension._valueId` (object) An extension object type #Element. - `extension.valueInstant` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "2024-01-01T00:00:00Z" - `extension._valueInstant` (object) An extension object type #Element. - `extension.valueInteger` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: 1 - `extension._valueInteger` (object) An extension object type #Element. - `extension.valueMarkdown` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "Sample markdown text" - `extension._valueMarkdown` (object) An extension object type #Element. - `extension.valueOid` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "urn:oid:1.2.3.4.5" - `extension._valueOid` (object) An extension object type #Element. - `extension.valuePositiveInt` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: 1 - `extension._valuePositiveInt` (object) An extension object type #Element. - `extension.valueString` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "example-string" - `extension._valueString` (object) An extension object type #Element. - `extension.valueTime` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "12:00:00" - `extension._valueTime` (object) An extension object type #Element. - `extension.valueUnsignedInt` (number) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). - `extension._valueUnsignedInt` (object) An extension object type #Element. - `extension.valueUri` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "https://example.org/resource" - `extension._valueUri` (object) An extension object type #Element. - `extension.valueUrl` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "https://example.org" - `extension._valueUrl` (object) An extension object type #Element. - `extension.valueUuid` (string) Value of extension - must be one of a constrained set of the data types (see [Extensibility](https://hl7.org/fhir/extensibility.html) for a list). Example: "urn:uuid:123e4567-e89b-12d3-a456-426614174000" - `extension._valueUuid` (object) An extension object type #Element. - `extension.valueAddress` (object) An extension object type #Address. - `extension.valueAge` (object) An extension object type #Age. - `extension.valueAnnotation` (object) An extension object type #Annotation. - `extension.valueAttachment` (object) An extension object type #Attachment. - `extension.valueCodeableConcept` (object) An extension object type #CodeableConcept. - `extension.valueCoding` (object) An extension object type #Coding. - `extension.valueContactPoint` (object) An extension object type #ContactPoint. - `extension.valueCount` (object) An extension object type #Count. - `extension.valueDistance` (object) An extension object type #Distance. - `extension.valueDuration` (object) An extension object type #Duration. - `extension.valueHumanName` (object) An extension object type #HumanName. - `extension.valueIdentifier` (object) An extension object type #Identifier. - `extension.valueMoney` (object) An extension object type #Money. - `extension.valuePeriod` (object) An extension object type #Period. - `extension.valueQuantity` (object) An extension object type #Quantity. - `extension.valueRange` (object) An extension object type #Range. - `extension.valueRatio` (object) An extension object type #Ratio. - `extension.valueReference` (object) An extension object type #Reference. - `extension.valueSampledData` (object) An extension object type #SampledData. - `extension.valueSignature` (object) An extension object type #Signature. - `extension.valueTiming` (object) An extension object type #Timing. - `extension.valueContactDetail` (object) An extension object type #ContactDetail. - `extension.valueContributor` (object) An extension object type #Contributor. - `extension.valueDataRequirement` (object) An extension object type #DataRequirement. - `extension.valueExpression` (object) An extension object type #Expression. - `extension.valueParameterDefinition` (object) An extension object type #ParameterDefinition. - `extension.valueRelatedArtifact` (object) An extension object type #RelatedArtifact. - `extension.valueTriggerDefinition` (object) An extension object type #TriggerDefinition. - `extension.valueUsageContext` (object) An extension object type #UsageContext. - `extension.valueDosage` (object) An extension object type #Dosage. - `extension.valueMeta` (object) An extension object type #Meta. - `modifierExtension` (array) May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). - `url` (string) String of characters used to identify a name or a resource Example: "https://example.org/resource" - `_url` (object) Base definition for all elements in a resource. - `identifier` (object) An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers. - `identifier.use` (any) The purpose of this identifier. Enum: "usual", "official", "temp", "secondary", "old" - `identifier._use` (object) An extension object type #Element. - `identifier.type` (object) An extension object type #CodeableConcept. - `identifier.system` (string) An extension object type #uri. Example: "https://example.org/resource" - `identifier._system` (object) An extension object type #Element. - `identifier.value` (string) An extension object type #string. Example: "example-string" - `identifier._value` (object) An extension object type #Element. - `identifier.period` (object) An extension object type #Period. - `identifier.assigner` (object) An extension object type #Reference. - `version` (string) A sequence of Unicode characters Example: "example-string" - `_version` (object) Base definition for all elements in a resource. - `name` (string) A sequence of Unicode characters Example: "example-string" - `_name` (object) Base definition for all elements in a resource. - `title` (string) A sequence of Unicode characters Example: "example-string" - `_title` (object) Base definition for all elements in a resource. - `status` (any) The status of this test script. Enables tracking the life-cycle of the content. Enum: "draft", "active", "retired", "unknown" - `_status` (object) Base definition for all elements in a resource. - `experimental` (boolean) Value of "true" or "false" Example: true - `_experimental` (object) Base definition for all elements in a resource. - `date` (string) A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates. Example: "2024-01-01T00:00:00Z" - `_date` (object) Base definition for all elements in a resource. - `publisher` (string) A sequence of Unicode characters Example: "example-string" - `_publisher` (object) Base definition for all elements in a resource. - `contact` (array) Contact details to assist a user in finding and communicating with the publisher. Example: [{"name":"Support","telecom":[{"system":"email","value":"support@HL7.org","use":"work"}]}] - `contact.name` (string) An extension object type #string. Example: "example-string" - `contact._name` (object) An extension object type #Element. - `contact.telecom` (array) The contact details for the individual (if a name was provided) or the organization. - `description` (string) A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine Example: "Sample markdown text" - `_description` (object) Base definition for all elements in a resource. - `useContext` (array) The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate test script instances. Example: [{"code":{"system":"http://terminology.hl7.org/CodeSystem/usage-context-type","code":"focus"},"valueCodeableConcept":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/variant-state","code":"positive"}]}}] - `useContext.code` (object, required) An extension object type #Coding. - `jurisdiction` (array) A legal or geographic region in which the test script is intended to be used. Example: [{"coding":[{"system":"urn:iso:std:iso:3166","code":"US","display":"United States of America (the)"}]}] - `jurisdiction.coding` (array) A reference to a code defined by a terminology system. - `jurisdiction.text` (string) An extension object type #string. Example: "example-string" - `jurisdiction._text` (object) An extension object type #Element. - `purpose` (string) A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine Example: "Sample markdown text" - `_purpose` (object) Base definition for all elements in a resource. - `copyright` (string) A string that may contain Github Flavored Markdown syntax for optional processing by a mark down presentation engine Example: "Sample markdown text" - `_copyright` (object) Base definition for all elements in a resource. - `origin` (array) An abstract server used in operations within this test script in the origin element. - `origin.modifierExtension` (array) May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself). - `origin.index` (integer) An extension object type #integer. Example: 1 - `origin._index` (object) An extension object type #Element. - `origin.profile` (object, required) An extension object type #Coding. - `destination` (array) An abstract server used in operations within this test script in the destination element. - `metadata` (object) A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification. - `metadata.link` (array) A link to the FHIR specification that this test is covering. - `metadata.capability` (array, required) Capabilities that must exist and are assumed to function correctly on the FHIR server being tested. - `fixture` (array) Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute. Example: [{"id":"fixture-patient-create","autocreate":false,"autodelete":false,"resource":{"reference":"Patient/example","display":"Peter Chalmers"}},{"id":"fixture-patient-minimum","autocreate":false,"autodelete":false,"resource":{"reference":"Patient/example","display":"Peter Chalmers (minimum)"}}] - `fixture.autocreate` (boolean) An extension object type #boolean. Example: true - `fixture._autocreate` (object) An extension object type #Element. - `fixture.autodelete` (boolean) An extension object type #boolean. Example: true - `fixture._autodelete` (object) An extension object type #Element. - `fixture.resource` (object) An extension object type #Reference. Example: {"resourceType":"Resource","id":"example"} - `profile` (array) Reference to the profile to be used for validation. Example: [{"id":"patient-profile","reference":"http://hl7.org/fhir/StructureDefinition/Patient"}] - `profile.reference` (string) An extension object type #string. Example: "example-string" - `profile._reference` (object) An extension object type #Element. - `profile.type` (string) An extension object type #uri. Example: "https://example.org/resource" - `profile._type` (object) An extension object type #Element. - `profile.identifier` (object) An extension object type #Identifier. - `profile.display` (string) An extension object type #string. Example: "example-string" - `profile._display` (object) An extension object type #Element. - `variable` (array) Variable is set based either on element value in response body or on header field value in the response headers. Example: [{"name":"createResourceId","path":"Patient/id","sourceId":"fixture-patient-create"}] - `variable.defaultValue` (string) An extension object type #string. Example: "example-string" - `variable._defaultValue` (object) An extension object type #Element. - `variable.description` (string) An extension object type #string. Example: "example-string" - `variable._description` (object) An extension object type #Element. - `variable.expression` (string) An extension object type #string. Example: "example-string" - `variable._expression` (object) An extension object type #Element. - `variable.headerField` (string) An extension object type #string. Example: "example-string" - `variable._headerField` (object) An extension object type #Element. - `variable.hint` (string) An extension object type #string. Example: "example-string" - `variable._hint` (object) An extension object type #Element. - `variable.path` (string) An extension object type #string. Example: "example-string" - `variable._path` (object) An extension object type #Element. - `variable.sourceId` (object) An extension object type #id. - `variable._sourceId` (object) An extension object type #Element. - `setup` (object) A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification. - `setup.action` (array, required) Action would contain either an operation or an assertion. - `test` (array) A test in this script. Example: [{"id":"01-ReadPatient","name":"Read Patient","description":"Read a Patient and validate response.","action":[{"operation":{"type":{"system":"http://terminology.hl7.org/CodeSystem/testscript-operation-codes","code":"read"},"resource":"Patient","description":"Read the patient resource on the test server using the id from fixture-patient-create. Prevent URL encoding of the request.","encodeRequestUrl":false,"responseId":"fixture-patient-read","targetId":"fixture-patient-create"}},{"assert":{"label":"01-ReadPatientOK","description":"Confirm that the returned HTTP status is 200(OK).","direction":"response","response":"okay","warningOnly":false}},{"assert":{"description":"Confirm that the returned HTTP Header Last-Modified is present. Warning only as the server might not support versioning.","direction":"response","headerField":"Last-Modified","operator":"notEmpty","warningOnly":true}},{"assert":{"description":"Confirm that the returned resource type is Patient.","resource":"Patient","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient conforms to the base FHIR specification.","validateProfileId":"patient-profile","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit sourceId reference to read responseId fixture.","operator":"equals","path":"fhir:Patient/fhir:name/fhir:family/@value","sourceId":"fixture-patient-read","value":"Chalmers","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected given name 'Peter'. Uses explicit sourceId reference to read responseId fixture.","operator":"equals","path":"fhir:Patient/fhir:name/fhir:given/@value","sourceId":"fixture-patient-read","value":"Peter","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and implicit reference to read response payload.","compareToSourceId":"fixture-patient-create","compareToSourcePath":"fhir:Patient/fhir:name/fhir:family/@value","operator":"equals","path":"fhir:Patient/fhir:name/fhir:family/@value","warningOnly":false}},{"assert":{"description":"Confirm that the returned Patient contains the expected family name 'Chalmers'. Uses explicit compareToSourceId reference to fixture-patient-create used to create the Patient and explicit reference to read response payload and default operator of 'equals'.","compareToSourceId":"fixture-patient-create","compareToSourcePath":"fhir:Patient/fhir:name/fhir:given/@value","path":"fhir:Patient/fhir:name/fhir:given/@value","sourceId":"fixture-patient-read","warningOnly":false}},{"assert":{"description":"Confirm that the returned resource contains the expected retained elements and values. Warning only to provide users with reviewable results.","minimumId":"fixture-patient-minimum","warningOnly":true}}]}] - `teardown` (object) A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification. - `teardown.action` (array, required) The teardown action will only contain an operation. ## Response 401 fields (application/json): - `message` (string, required) Error message indicating unauthorized access. Example: "Unauthorized" - `statusCode` (number, required) HTTP status code for unauthorized access. Example: 401 ## Response 400 fields ## Response 404 fields