Exec Id: 202202280906543175186943
Start Time: 02/28/2022 09:29:24AM
End Time: 02/28/2022 09:29:44AM
Status: Passed
Duration: 20.630s
Version: 1 Latest: 2
Validator: FHIR 4.0.1
Description: FHIR Server MedicationDispense Basic Operation Tests - JSON - Server Assigned Resource Id - Create, Delete, History, Read, Search, Update, Vread. Support for referenced resource type Patient and Practitioner Create, Delete and Search is also required.
Executed By: Alexander Kiel
Organization: Samply
Origin:
TouchstoneFHIR
Destination:
Samply - BlazeC https://blaze.life.uni-leipzig.de/fhir
Test Script: /FHIR4-0-1-Basic/I-O/MedicationDispense/Server Assigned Id/MedicationDispense-server-id-json
Interactions
0% passed Pass Fail Warn Other Total
Summary
19 0 0 0 19
create Medication
1 0 0 0 1
search-type Medication
1 0 0 0 1
create MedicationDispense
1 0 0 0 1
delete MedicationDispense
1 0 0 0 1
history-instance MedicationDispense
1 0 0 0 1
read MedicationDispense
2 0 0 0 2
search-type MedicationDispense
2 0 0 0 2
update MedicationDispense
1 0 0 0 1
vread MedicationDispense
1 0 0 0 1
create MedicationRequest
1 0 0 0 1
search-type MedicationRequest
1 0 0 0 1
create Organization
1 0 0 0 1
search-type Organization
1 0 0 0 1
create Patient
1 0 0 0 1
search-type Patient
1 0 0 0 1
create Practitioner
1 0 0 0 1
search-type Practitioner
1 0 0 0 1

Setup

[show]Duration: 12.801sStatus: Passed

Tests

Test Name Description Status Duration
Create a new MedicationDispense in JSON format where the server assigns the resource id. The expected response code is 201 (Created) with a content of either the created MedicationDispense resource in JSON format, an OperationOutcome resource in JSON format or an empty payload. 1.278s
Read the MedicationDispense in JSON format created in step 1. The expected response code is 200 (OK) with a content of the found MedicationDispense resource in JSON format. 0.679s
Update the MedicationDispense created in step 1 in JSON format. The expected response code is 200 (OK) with a content of either the updated MedicationDispense resource in JSON format, an OperationOutcome resource in JSON format or an empty payload. 1.391s
Retrieve the updated MedicationDispense instance's history in JSON format. The expected response code is 200 (OK) with a Bundle resource in JSON format of type history containing the created and updated versions of the MedicationDispense. 0.717s
Retrieve a initially created version of a MedicationDispense instance in JSON format. The expected response code, if versioning is supported, is 200 (OK) with a content of the updated MedicationDispense resource in JSON format; if versioning is not supported, a 404 (Not Found) with an OperationOutcome resource in JSON format or an empty payload. 0.978s
Search for MedicationDispense resources in JSON format with an identifier equal to ${searchParamIdentifier}. The expected response code is 200 (OK) with a Bundle resource in JSON format of type history containing the found instances of the MedicationDispense. 0.732s
Delete a MedicationDispense instance in JSON format. The expected response is either a 200 (OK) with an optional OperationOutcome in JSON format or 204 (No Content) and the content is empty; i.e. no content. 0.675s

Static Fixtures

Id Resource Version Latest Type Contents
resource-create MedicationDispense 1 2 JSON Raw Resolved
resource-update MedicationDispense 1 2 JSON Raw Resolved
reference-patient-create Patient 1 1 JSON Raw Resolved
reference-practitioner-create Practitioner 1 1 JSON Raw Resolved
reference-organization-create Organization 1 1 JSON Raw Resolved
reference-medication-create Medication 1 1 JSON Raw Resolved
reference-medrequest-create MedicationRequest 1 1 JSON Raw Resolved

Profiles

Id Source Contents
bundle-profile http://hl7.org/fhir/StructureDefinition/Bundle XML JSON  
operationoutcome-profile http://hl7.org/fhir/StructureDefinition/OperationOutcome XML JSON  
resource-profile http://hl7.org/fhir/StructureDefinition/MedicationDispense XML JSON  

Variables

Name Definition
createResourceId sourceId: create-search-response path: .entry[0].resource.id
createVersionId sourceId: create-search-response path: .entry[0].resource.meta.versionId
searchParamIdentifier sourceId: resource-create path: .identifier[0].value
referencePatientResourceId sourceId: setup-create-patient-search-response path: .entry[0].resource.id
searchReferencePatientIdentifier sourceId: reference-patient-create path: .identifier[0].value
referencePractitionerResourceId sourceId: setup-create-practitioner-search-response path: .entry[0].resource.id
searchReferencePractitionerIdentifier sourceId: reference-practitioner-create path: .identifier[0].value
referenceOrganizationResourceId sourceId: setup-create-organization-search-response path: .entry[0].resource.id
searchReferenceOrganizationIdentifier sourceId: reference-organization-create path: .identifier[0].value
referenceMedicationResourceId sourceId: setup-create-medication-search-response path: .entry[0].resource.id
searchReferenceMedicationIdentifier sourceId: reference-medication-create path: .identifier[0].value
referenceMedRequestResourceId sourceId: setup-create-medrequest-search-response path: .entry[0].resource.id
searchReferenceMedRequestIdentifier sourceId: reference-medrequest-create path: .identifier[0].value

RuleSets

Id Version Latest Rules
ruleset-versioning-headers 2 2
Id Params Version Latest
assertETagIfSupported
header: 'ETag'
headerExpectedValue
headerOperator: 'notEmpty'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists())'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'versioning'
resource: 'MedicationDispense'
3 4
assertLastModifiedIfSupported
header: 'Last-Modified'
headerExpectedValue
headerOperator: 'notEmpty'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists())'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'versioning'
resource: 'MedicationDispense'
3 4
ruleset-createok-headers-body 1 1
Id Params Version Latest
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
3 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertResourceTypesIfBody
resource: 'MedicationDispense,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
3 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'MedicationDispense'
resourceOperator: 'equals'
2 3
ruleset-updateok-headers-body 3 3
Id Params Version Latest
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
3 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertResourceTypesIfBody
resource: 'MedicationDispense,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
3 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'MedicationDispense'
resourceOperator: 'equals'
2 3
assertVersionIdIfResourceAndSupported
fhirPath
xPath: 'meta/versionId'
jsonPath: '.meta.versionId'
pathOperator: 'notEmpty'
pathExpectedValue
resource: 'MedicationDispense'
resourceOperator: 'equals'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists())'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'versioning'
2 3
ruleset-vreadok-headers-body-if-versioning 4 4
Id Params Version Latest
assertResponseCodeOkIfVersioning
responseCode: '200'
responseCodeOperator: 'equals'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists())'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'versioning'
resource: 'MedicationDispense'
2 3
assertResponseCodeNotFoundIfNotVersioning
responseCode: '404'
responseCodeOperator: 'equals'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists()).not()'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'no versioning'
resource: 'MedicationDispense'
2 3
assertETagIfSupported
header: 'ETag'
headerExpectedValue
headerOperator: 'notEmpty'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists())'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'versioning'
resource: 'MedicationDispense'
3 4
assertLastModifiedIfSupported
header: 'Last-Modified'
headerExpectedValue
headerOperator: 'notEmpty'
confFhirPath: '(CapabilityStatement.rest.where(mode = 'server').resource.where(type = '${param.resource}').where(versioning = 'versioned' or versioning = 'versioned-update').exists())'
confXPath
confJsonPath
confOperator
confPathValue
confPathLabel: 'versioning'
resource: 'MedicationDispense'
3 4
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
3 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertResourceTypesIfBody
resource: 'MedicationDispense,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
3 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'MedicationDispense'
resourceOperator: 'equals'
2 3
assertPathIfResource
fhirPath
xPath
jsonPath
pathOperator: 'equals'
pathExpectedValue
resource
resourceOperator: 'equals'
2 3
ruleset-deletevalid-headers-body 1 1
Id Params Version Latest
assertResponseCodeOkIfBody
responseCode: '200'
responseCodeOperator: 'equals'
bodyOperator: 'notEmpty'
2 3
assertResponseCodeNoContentIfNoBody
responseCode: '204,404'
responseCodeOperator: 'in'
bodyOperator: 'empty'
2 3
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
3 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
3 4
assertOperationOutcomeIfError
resource: 'OperationOutcome'
resourceOperator: 'equals'
responseCode: '399'
responseCodeOperator: 'greaterThan'
2 3
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3