Exec Id: 202202280906543175186943
Start Time: 02/28/2022 09:10:11AM
End Time: 02/28/2022 09:10:20AM
Status: Passed
Duration: 9.051s
Version: 4 Latest: 5
Validator: FHIR 4.0.1
Description: FHIR Server AppointmentResponse Basic Operation Tests - XML - Client Assigned Resource Id - Create, Delete, History, Read, Search, Update, Vread. Support for referenced resource type Appointment Update, 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/A-C/AppointmentResponse/Client Assigned Id/AppointmentResponse-client-id-xml
Interactions
0% passed Pass Fail Warn Other Total
Summary
13 0 0 0 13
delete Appointment
1 0 0 0 1
updateCreate Appointment
1 0 0 0 1
delete AppointmentResponse
2 0 0 0 2
history-instance AppointmentResponse
1 0 0 0 1
read AppointmentResponse
2 0 0 0 2
search-type AppointmentResponse
1 0 0 0 1
update AppointmentResponse
1 0 0 0 1
updateCreate AppointmentResponse
1 0 0 0 1
vread AppointmentResponse
1 0 0 0 1
delete Practitioner
1 0 0 0 1
updateCreate Practitioner
1 0 0 0 1

Setup

[show]Duration: 2.480sStatus: Passed

Tests

Test Name Description Status Duration
Create a new AppointmentResponse in XML format where the client assigns the resource id. The expected response code is 201 (Created) with a content of either the created AppointmentResponse resource in XML format, an OperationOutcome resource in XML format or an empty payload. 0.679s
Read the AppointmentResponse in XML format created in step 1. The expected response code is 200 (OK) with a content of the found AppointmentResponse resource in XML format. 0.653s
Update the AppointmentResponse created in step 1 in XML format. The expected response code is 200 (OK) with a content of either the updated AppointmentResponse resource in XML format, an OperationOutcome resource in XML format or an empty payload. 1.456s
Retrieve the updated AppointmentResponse 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 AppointmentResponse. 0.670s
Retrieve a initially created version of a AppointmentResponse instance in XML format. The expected response code, if versioning is supported, is 200 (OK) with a content of the updated AppointmentResponse resource in XML format; if versioning is not supported, a 404 (Not Found) with an OperationOutcome resource in XML format or an empty payload. 1.043s
Search for AppointmentResponse 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 AppointmentResponse. 0.644s
Delete a AppointmentResponse 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. 0.551s

Static Fixtures

Id Resource Version Latest Type Contents
resource-create AppointmentResponse 1 1 XML Raw Resolved
resource-update AppointmentResponse 1 1 XML Raw Resolved
reference-appointment-create Appointment 1 1 XML Raw Resolved
reference-practitioner-create Practitioner 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/AppointmentResponse XML JSON  

Variables

Name Definition
createResourceId sourceId: resource-create path: AppointmentResponse/id
createVersionId sourceId: create-read-response path: AppointmentResponse/meta/versionId
searchParamIdentifier sourceId: resource-create path: AppointmentResponse/identifier/value
referenceAppointmentResourceId sourceId: reference-appointment-create path: Appointment/id
referencePractitionerResourceId sourceId: reference-practitioner-create path: Practitioner/id

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: 'AppointmentResponse'
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: 'AppointmentResponse'
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: 'AppointmentResponse,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
3 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'AppointmentResponse'
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: 'AppointmentResponse,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
3 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'AppointmentResponse'
resourceOperator: 'equals'
2 3
assertVersionIdIfResourceAndSupported
fhirPath
xPath: 'meta/versionId'
jsonPath: '.meta.versionId'
pathOperator: 'notEmpty'
pathExpectedValue
resource: 'AppointmentResponse'
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: 'AppointmentResponse'
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: 'AppointmentResponse'
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: 'AppointmentResponse'
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: 'AppointmentResponse'
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: 'AppointmentResponse,OperationOutcome'
resourceOperator: 'in'
bodyOperator: 'notEmpty'
3 4
assertProfileIfOperationOutcome
validateProfileId: 'operationoutcome-profile'
resource: 'OperationOutcome'
resourceOperator: 'equals'
2 3
assertProfileIfResource
validateProfileId: 'resource-profile'
resource: 'AppointmentResponse'
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