Exec Id: 202207081343145484029078
Start Time: 07/08/2022 01:44:27PM
End Time: 07/08/2022 01:44:28PM
Status: Failed
Duration: 0.866s
Version: 2 Latest: 3
Validator: FHIR 4.0.1
Description: FHIR Server ExplanationOfBenefit Basic Operation Tests - XML - Server Assigned Resource Id - Create, Delete, History, Read, Search, Update, Vread. Support for referenced resource type Patient, Practitioner, Coverage, Location, and Organization Create, Delete and Search is also required.
Executed By: John Smith
Organization: Aidbox
Origin:
TouchstoneFHIR
Destination:
Aidbox - Aidbox FHIR platformC https://cmpl.aidbox.app/fhir
Test Script: /FHIR4-0-1-Basic/D-H/ExplanationOfBenefit/Server Assigned Id/EOB-server-id-xml
Interactions
0% passed Pass Fail Warn Other Total
Summary
0 0 0 21 21
create Coverage
0 0 0 1 1
search-type Coverage
0 0 0 1 1
create ExplanationOfBenefit
0 0 0 1 1
delete ExplanationOfBenefit
0 0 0 1 1
history-instance ExplanationOfBenefit
0 0 0 1 1
read ExplanationOfBenefit
0 0 0 2 2
search-type ExplanationOfBenefit
0 0 0 2 2
update ExplanationOfBenefit
0 0 0 1 1
vread ExplanationOfBenefit
0 0 0 1 1
create Location
0 0 0 1 1
search-type Location
0 0 0 1 1
create Organization
0 0 0 2 2
search-type Organization
0 0 0 2 2
create Patient
0 0 0 1 1
search-type Patient
0 0 0 1 1
create Practitioner
0 0 0 1 1
search-type Practitioner
0 0 0 1 1

Setup

[hide]Duration: 0.071sStatus: Failed
Error:
Failed to prepare target server for test execution. OAuth2 Token Endpoint not defined for test system 'Aidbox-Aidbox_Mike'.

Tests

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

Static Fixtures

Id Resource Version Latest Type Contents
resource-create ExplanationOfBenefit 1 1 XML Raw Resolved
resource-update ExplanationOfBenefit 1 1 XML Raw Resolved
reference-patient-create Patient 1 1 XML Raw Resolved
reference-practitioner-create Practitioner 1 1 XML Raw Resolved
reference-organization1-create Organization 1 1 XML Raw Resolved
reference-organization2-create Organization 1 1 XML Raw Resolved
reference-location-create Location 1 1 XML Raw Resolved
reference-coverage-create Coverage 1 1 XML 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/ExplanationOfBenefit XML JSON  

Variables

Name Definition
createResourceId sourceId: create-search-response path: Bundle/entry[1]/resource/ExplanationOfBenefit/id
createVersionId sourceId: create-search-response path: Bundle/entry[1]/resource/ExplanationOfBenefit/meta/versionId
searchParamIdentifier sourceId: resource-create path: ExplanationOfBenefit/identifier/value
referencePatientResourceId sourceId: setup-create-patient-search-response path: Bundle/entry[1]/resource/Patient/id
searchReferencePatientIdentifier sourceId: reference-patient-create path: Patient/identifier/value
referencePractitionerResourceId sourceId: setup-create-practitioner-search-response path: Bundle/entry[1]/resource/Practitioner/id
searchReferencePractitionerIdentifier sourceId: reference-practitioner-create path: Practitioner/identifier/value
referenceOrganization1ResourceId sourceId: setup-create-organization1-search-response path: Bundle/entry[1]/resource/Organization/id
searchReferenceOrganization1Identifier sourceId: reference-organization1-create path: Organization/identifier/value
referenceOrganization2ResourceId sourceId: setup-create-organization2-search-response path: Bundle/entry[1]/resource/Organization/id
searchReferenceOrganization2Identifier sourceId: reference-organization2-create path: Organization/identifier/value
referenceLocationResourceId sourceId: setup-create-location-search-response path: Bundle/entry[1]/resource/Location/id
searchReferenceLocationIdentifier sourceId: reference-location-create path: Location/identifier/value
referenceCoverageResourceId sourceId: setup-create-coverage-search-response path: Bundle/entry[1]/resource/Coverage/id
searchReferenceCoverageIdentifier sourceId: reference-coverage-create path: Coverage/identifier/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: 'ExplanationOfBenefit'
4 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: 'ExplanationOfBenefit'
4 4
ruleset-createok-headers-body 1 1
Id Params Version Latest
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
4 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertResourceTypesIfBody
resource: 'ExplanationOfBenefit,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
4 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
3 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'ExplanationOfBenefit'
resourceOperator: 'equals'
3 3
ruleset-updateok-headers-body 3 3
Id Params Version Latest
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
4 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertResourceTypesIfBody
resource: 'ExplanationOfBenefit,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
4 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
3 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'ExplanationOfBenefit'
resourceOperator: 'equals'
3 3
assertVersionIdIfResourceAndSupported
fhirPath
xPath: 'meta/versionId'
jsonPath: '.meta.versionId'
pathOperator: 'notEmpty'
pathExpectedValue
resource: 'ExplanationOfBenefit'
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'
3 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: 'ExplanationOfBenefit'
3 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: 'ExplanationOfBenefit'
3 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: 'ExplanationOfBenefit'
4 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: 'ExplanationOfBenefit'
4 4
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
4 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertResourceTypesIfBody
resource: 'ExplanationOfBenefit,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
4 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
3 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'ExplanationOfBenefit'
resourceOperator: 'equals'
3 3
assertPathIfResource
fhirPath
xPath
jsonPath
pathOperator: 'equals'
pathExpectedValue
resource
resourceOperator: 'equals'
3 3
ruleset-deletevalid-headers-body 1 1
Id Params Version Latest
assertResponseCodeOkIfBody
responseCode: '200'
responseCodeOperator: 'equals'
bodyOperator: 'notEmpty'
3 3
assertResponseCodeNoContentIfNoBody
responseCode: '204,404'
responseCodeOperator: 'in'
bodyOperator: 'empty'
3 3
assertContentTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'notEmpty'
bodyOperator: 'notEmpty'
4 4
assertContentTypeMimeTypeIfBody
header: 'Content-Type'
headerExpectedValue
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertContentTypeCharsetIfBody
header: 'Content-Type'
headerExpectedValue: 'charset=utf-8'
headerOperator: 'contains'
bodyOperator: 'notEmpty'
4 4
assertOperationOutcomeIfError
resource: 'OperationOutcome'
resourceOperator: 'equals'
responseCode: '399'
responseCodeOperator: 'greaterThan'
3 3
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
3 3