Given the Test Description: "The system under test MUST be able to resolve the Patient and Encounter referenced in the DocumentReference. The embedded document MUST be extracted, persisted separately, and made available via the Binary endpoint of the API."
Given the Preconditions: This set of tests assumes that the system under test supports the create interaction for the DocumentReference resource.
The test dataset must be entered in the system under test according to the specifications (manually).
The following values from the configuration file must be used in the resource to be created:
When Get FHIR resource at "http://fhirserver/metadata" with content type "json"
And CapabilityStatement contains interaction "create" for resource "DocumentReference"
Given TGR set default header "Content-Type" to "application/fhir+json"
When TGR send POST request to "http://fhirserver/DocumentReference" with body "!{file('src/test/resources/features/Stufe5/Dokumentenaustausch/fixtures/DocumentReference-Post-Correct.json')}"
And TGR find the last request
Then TGR current response with attribute "$.responseCode" matches "20\d"
And FHIR current response body is a valid isik5 resource and conforms to profile "https://gematik.de/fhir/isik/StructureDefinition/ISiKDokumentenMetadaten"
And FHIR current response body evaluates the FHIRPath "masterIdentifier.where(system = 'urn:ietf:rfc:3986' and value = '${data.documentreference-post-master-identifier-value}').exists()" with error message 'The version-specific OID of the document does not match the expected value'
And FHIR current response body evaluates the FHIRPath "identifier.where(system = 'urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8' and value = '129.6.58.42.11111').exists()" with error message 'The identifier does not match the expected value'
And TGR current response with attribute "$.body.status.content" matches "current"
And TGR current response with attribute "$.body.docStatus.content" matches "final"
And FHIR current response body evaluates the FHIRPath "content.attachment.title = 'Molekularpathologiebefund vom 12.02.26'" with error message 'The document title does not match the expected value'
And FHIR current response body evaluates the FHIRPath "type.coding.where(system = 'http://dvmd.de/fhir/CodeSystem/kdl' and code = 'PT130102' and display = 'Molekularpathologiebefund').exists()" with error message 'The document type (KDL) code does not match the expected value'
And FHIR current response body evaluates the FHIRPath "type.coding.where(system = 'http://ihe-d.de/CodeSystems/IHEXDStypeCode' and code = 'PATH' and display = 'Pathologiebefundberichte').exists()" with error message 'The document type (XDS) code does not match the expected value'
And element "subject" references resource with ID "${data.documentreference-read-patient-id}" with error message "The patient reference does not match the expected value"
And element "context.encounter" references resource with ID "${data.documentreference-read-encounter-id}" with error message "The patient reference does not match the expected value"
And FHIR current response body evaluates the FHIRPath "author.display.contains('Harold Hippocrates')" with error message 'The document author does not match the expected value'
And FHIR current response body evaluates the FHIRPath "securityLabel.coding.where(code = 'N' and system = 'http://terminology.hl7.org/CodeSystem/v3-Confidentiality').exists()" with error message 'The confidentiality does not match the expected value'
And FHIR current response body evaluates the FHIRPath "content.where(attachment.where(contentType = 'application/pdf' and (language = 'de' or language.startsWith('de-')) and url.exists() and data.exists().not() and creation = @2026-02-12T12:50:50+01:00).exists() and format.where(code = 'urn:ihe:iti:xds:2017:mimeTypeSufficient' and system = 'http://ihe.net/fhir/ihe.formatcode.fhir/CodeSystem/formatcode').exists()).exists()" with error message 'The attachment does not match the expected value'
And FHIR current response body evaluates the FHIRPath "context.where(facilityType.coding.where(code = 'KHS' and system = 'http://ihe-d.de/CodeSystems/PatientBezogenenGesundheitsversorgung').exists() and practiceSetting.where(coding.where(code = 'ALLG' and system = 'http://ihe-d.de/CodeSystems/AerztlicheFachrichtungen').exists()).exists()).exists()" with error message 'The context does not match the expected value'
And FHIR current response body evaluates the FHIRPath "category.coding.where(code = 'BEF' and system = 'http://ihe-d.de/CodeSystems/IHEXDSclassCode' and display = 'Befundbericht').exists()" with error message 'The document class does not match the expected value'
Given TGR set default header "Content-Type" to "application/fhir+json"
When TGR send POST request to "http://fhirserver/DocumentReference" with body "!{file('src/test/resources/features/Stufe5/Dokumentenaustausch/fixtures/{inputFile}')}"
And TGR find the last request
Then TGR current response with attribute "$.responseCode" matches "{responseCode}"
And FHIR current response body evaluates the FHIRPath "issue.where(severity = 'error' or 'fatal').count() }= 1" with error message 'The OperationOutcome does not contain the required issue(s)'
| Number of Scenarios | 4 | Total Duration | 12s |
| Total Number of Test Cases | 6 | Fastest Test | 431ms |
| Number of Manual Test Cases | 0 | Slowest Test | 4s |
| Tests Started | März 23, 2026 09:40:12 | Average Execution Time | 2s |
| Tests Finished | März 23, 2026 09:40:25 | Total Execution Time | 12s |
| feature | Scenario | Context | Steps | Started | Total Duration | Result |
|---|---|---|---|---|---|---|
| Upload of a DocumentReference with POST Operation (Dokumentenbereitstellung) (@DocumentReference-Post) | Precondition | 2 | 09:40:12 | 431ms | ||
| Upload of a DocumentReference with POST Operation (Dokumentenbereitstellung) (@DocumentReference-Post) | Read and Validation of the CapabilityStatement | 2 | 09:40:13 | 944ms | ||
| Upload of a DocumentReference with POST Operation (Dokumentenbereitstellung) (@DocumentReference-Post) | POST a DocumentBundle with known patient and encounter | 19 | 09:40:14 | 4s 608ms | ||
| Upload of a DocumentReference with POST Operation (Dokumentenbereitstellung) (@DocumentReference-Post) |
POST an incorrect DocumentBundle
3 passing test cases |
5 | 09:40:18 | 6s 298ms |