RE-PS als Akteur
Folgende Interaktionen können durch das RE-PS als Akteur ausgeführt werden, um eine Rechnung zu validieren und in den Digitale Patientenrechnung Fachdienst einzustellen.
R0: Abfrage des Rechnungsempfängers und dessen Einwilligung zum Rechnungsversand
Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das RE-PS als Client. Anforderung AF_10132 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 14: Use Case Abfrage des Rechnungsempfängers und dessen Einwilligung zum Rechnungsversand" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.
Abfrage des Rechnungsempfängers (Behandelter ist Rechnungsempfänger)
| HTTP-Methode | GET |
| Endpunkt | /Patient |
Suchparameter identifier |
Kardinalität: 1..1 Type: Token Hinweis: Hierbei handelt es sich immer um eine KVNR, das System http://fhir.de/sid/gkv/kvid-10 MUSS durch den FD ergänzt werden, falls der Client dies nicht mitliefert. |
Suchparameter birthdate |
Kardinalität: 1..1 Type: date Das Geburtsdatum MUSS taggenau übergeben werden. Such-Modifier, wie z.B. 'le', 'ge' sind in diesem Kontext nicht vorgesehen. |
User-Kontext Telematik-ID |
Kardinalität: 1..1 Hinweis: Die Telematik-ID ist aus dem Claim idNummer des mitzusendenen Access-Token zu extrahieren. |
| API-Zustand | HTTP-Status-Code |
|---|---|
| Erfolgsfall | 200 - OK |
| Weitere Parameter in HTTP-Anfrage enthalten | 400 - Bad Request |
| Syntax für FHIR-Suchanfrage ist nicht korrekt oder Kardinalitäten werden nicht eingehalten | 400 - Bad Request |
| KVNR ist syntaktisch nicht korrekt | 400 - Bad Request |
| Kein valides Access-Token wird mitgesendet | 401 - Unauthorized |
| Autorisierter Benutzer verfügt über keine ausreichende Berechtigung die Interaktion auszuführen | 403 - Forbidden |
| Rechnungsempfänger hat dem Rechnungsversand durch diesen Rechnungsersteller widersprochen | 404 - Not Found. In diesem Fall: OperationOutcome mit Hinweis, dass Einwilligung nicht vorliegt oder Benutzer nicht vorhanden ist. |
| Mehr als ein Postfach unter Angabe der Suchparameter gefunden. | 404 - Not Found. Dies stellt einen internen Fehler bei der Verwaltung der Postfächer dar. |
| Rechnungsempfänger verfügt über kein Konto | 404 - Not Found. In diesem Fall: OperationOutcome mit Hinweis, dass Einwilligung nicht vorliegt oder Benutzer nicht vorhanden ist |
| Plausibilisierung zwischen Geburtsdatum und KVNR schlägt fehl | 404 - Not Found |
| Andere HTTP-Methode wird verwendet | 405 - Method Not Allowed |
Optional als Batch
Um mehrere Abfragen zeitgleich durchzuführen, kann auf die batch Funktionalität in der FHIR Core Spec zurückgegriffen werden.
Beispiel:
{
"resourceType": "Bundle",
"id": "bundle-request",
"type": "batch",
"entry": [
{
"request": {
"method": "GET",
"url": "/Patient?identifier=A000000000&birthdate=1970-01-01"
}
},
{
"request": {
"method": "GET",
"url": "/Patient?identifier=A000000010&birthdate=1970-01-02"
}
}
]
}
Beispiele
HTTP GET [fachdienst-endpunkt]/Patient?identifier=A000000000&birthdate=1970-01-01
Antwort des Endpunktes im Erfolgsfall:
HTTP 200 OK
mit Body:
| Bundle |
| id : PatientenBundle |
| type : searchset |
| total : 1 |
| entry |
| resource |
| id : PatientVater |
| identifier |
| type |
| coding |
| system : http://fhir.de/CodeSystem/identifier-type-de-basis |
| code : KVZ10 |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| active : True |
| name |
| family : Mustermann |
| given : Manfred |
| gender : male |
| birthDate : 1970-01-01 |
| search |
| mode : match |
Es MUSS durch den FD sichergestellt werden, dass die zurückgegebene Patient-Ressourcen eine stabile id besitzten.
Die zurückgegebene Patient-Ressource MUSS valide gegen das Profil DiPagPatient sein.
| Canonical | Status | Version | Basis |
|---|---|---|---|
| https://gematik.de/fhir/dipag/StructureDefinition/dipag-patient | active | 1.0.2 | http://hl7.org/fhir/StructureDefinition/Patient |
| DiPagPatient (Patient) | C | Patient | |
| id | Σ | 0..1 | string |
| meta | Σ | 0..1 | Meta |
| implicitRules | Σ ?! | 0..1 | uri |
| language | 0..1 | codeBinding | |
| text | 0..1 | Narrative | |
| contained | 0..* | Resource | |
| extension | C | 0..* | Extension |
| modifierExtension | ?! C | 0..* | Extension |
| identifier | S Σ | 0..* | Identifier |
| KVNR | S Σ | 0..1 | IdentifierKvid10Pattern |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| use | Σ ?! | 0..1 | codeBinding |
| type | S Σ C | 1..1 | CodeableConceptBindingPattern |
| system | S Σ | 1..1 | uriFixed Value |
| value | S Σ C | 1..1 | string |
| period | Σ | 0..1 | Period |
| assigner | S Σ | 0..1 | Reference(Organization) |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| reference | Σ C | 0..1 | string |
| type | Σ | 0..1 | uriBinding |
| identifier | S Σ | 0..1 | IdentifierIknr |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| use | Σ ?! | 0..1 | codeBinding |
| type | S Σ | 1..1 | CodeableConceptBindingPattern |
| system | S Σ | 1..1 | uriFixed Value |
| value | S Σ C | 1..1 | string |
| period | Σ | 0..1 | Period |
| assigner | Σ | 0..1 | Reference(Organization) |
| display | Σ | 0..1 | string |
| active | Σ ?! | 0..1 | boolean |
| name | S Σ C | 0..* | HumannameDeBasis |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| use | S Σ ?! | 0..1 | codeBinding |
| text | S Σ | 0..1 | string |
| family | S Σ | 0..1 | string |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| namenszusatz | S C | 0..1 | Extension(string) |
| nachname | S C | 0..1 | Extension(string) |
| vorsatzwort | S C | 0..1 | Extension(string) |
| value | 0..1 | System.String | |
| given | S Σ | 0..* | string |
| prefix | S Σ | 0..* | string |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| prefix-qualifier | S C | 0..1 | Extension(code) |
| value | 0..1 | System.String | |
| suffix | Σ | 0..* | string |
| period | Σ | 0..1 | Period |
| telecom | Σ | 0..* | ContactPoint |
| gender | Σ | 0..1 | codeBinding |
| birthDate | S Σ | 0..1 | date |
| deceased[x] | Σ ?! | 0..1 | |
| deceasedBoolean | boolean | ||
| deceasedDateTime | dateTime | ||
| address | S Σ | 0..* | Address |
| Strassenanschrift | S Σ C | 0..* | AddressDeBasisPattern |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| Stadtteil | C | 0..1 | Extension(string) |
| use | Σ ?! | 0..1 | codeBinding |
| type | S Σ | 0..1 | codeBindingPattern |
| text | Σ | 0..1 | string |
| line | S Σ | 0..3 | string |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| Strasse | S C | 0..1 | Extension(string) |
| Hausnummer | S C | 0..1 | Extension(string) |
| Adresszusatz | S C | 0..1 | Extension(string) |
| Postfach | C | 0..0 | Extension(string) |
| value | 0..1 | System.String | |
| city | S Σ | 0..1 | string |
| district | Σ | 0..0 | string |
| state | Σ | 0..1 | stringBinding |
| postalCode | S Σ | 0..1 | string |
| country | S Σ | 0..1 | stringBinding |
| period | Σ | 0..1 | Period |
| Postfach | S Σ C | 0..* | AddressDeBasisPattern |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| Stadtteil | C | 0..1 | Extension(string) |
| use | Σ ?! | 0..1 | codeBinding |
| type | S Σ | 0..1 | codeBindingPattern |
| text | Σ | 0..1 | string |
| line | S Σ | 0..3 | string |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| Strasse | C | 0..0 | Extension(string) |
| Hausnummer | C | 0..0 | Extension(string) |
| Adresszusatz | C | 0..0 | Extension(string) |
| Postfach | S C | 0..1 | Extension(string) |
| value | 0..1 | System.String | |
| city | S Σ | 0..1 | string |
| district | Σ | 0..0 | string |
| state | Σ | 0..1 | stringBinding |
| postalCode | S Σ | 0..1 | string |
| country | S Σ | 0..1 | stringBinding |
| period | Σ | 0..1 | Period |
| maritalStatus | 0..1 | CodeableConceptBinding | |
| multipleBirth[x] | 0..1 | ||
| multipleBirthBoolean | boolean | ||
| multipleBirthInteger | integer | ||
| photo | 0..* | Attachment | |
| contact | C | 0..* | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| relationship | 0..* | CodeableConceptBinding | |
| name | 0..1 | HumanName | |
| telecom | 0..* | ContactPoint | |
| address | 0..1 | Address | |
| gender | 0..1 | codeBinding | |
| organization | C | 0..1 | Reference(Organization) |
| period | 0..1 | Period | |
| communication | 0..* | BackboneElement | |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| language | 1..1 | CodeableConceptBinding | |
| preferred | 0..1 | boolean | |
| generalPractitioner | 0..* | Reference(Organization | Practitioner | PractitionerRole) | |
| managingOrganization | Σ | 0..1 | Reference(Organization) |
| link | Σ ?! | 0..* | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| other | Σ | 1..1 | Reference(Patient | RelatedPerson) |
| type | Σ | 1..1 | codeBinding |
Folgende Implementierungshinweise sind zu beachten:
| Patient.identifier | Die KVNR MUSS vorkommen, wenn eine Person die Rolle des 'Rechnungsempfänger' inne hat. |
| Patient.identifier.system | Das System des KVZ10 Code MUSS vorhanden sein. |
| Patient.identifier.assigner.identifier | Bei GKV-Versicherten Personen SOLL die IK-Nummer der Krankenkasse angegeben werden. |
| Patient.identifier.assigner.identifier.system | Das System der IK-Nummer MUSS vorhanden sein. |
| Patient.name | Der Name SOLL vorhanden sein. |
| Patient.name.text | Die Anrede SOLLEN vorhanden sein. |
| Patient.name.family | Der Nachname MUSS in der Rolle einer 'Behandelte Person' vorhanden sein. Der Nachname SOLL in der Rolle eines 'Rechnungsempfänger' vorhanden sein. Die Extensions zur strukurierten Erfassung KÖNNEN vorhanden sein. |
| Patient.name.family.extension | Die Extension zur strukurierten Erfassung des Namenszusatz KANN vorhanden sein. |
| Patient.name.family.extension | Die Extension zur strukurierten Erfassung des Nachnamen KANN vorhanden sein. |
| Patient.name.family.extension | Die Extension zur strukurierten Erfassung des Vorsatzwort KANN vorhanden sein. |
| Patient.name.given | Der Vorname MUSS in der Rolle einer 'Behandelte Person' vorhanden sein. Der Vorname SOLL in der Rolle eines 'Rechnungsempfänger' vorhanden sein. |
| Patient.name.prefix | Der Titel SOLL vorhanden sein, die Extension zur Qualifizierung KANN vorhanden sein. |
| Patient.name.prefix.extension | Die Extension zur Qualifizierung des Titeks KANN vorhanden sein. |
| Patient.birthDate | Das Geburtsdatum SOLL vorhanden sein. |
| Patient.address | Die Strassenanschrift SOLL vorhanden sein. |
| Patient.address.line | Straße und Hausnummer SOLLEN angegeben werden, die Extensions zur strukurierten Erfassung KÖNNEN vorhanden sein. |
| Patient.address.line.extension | Die Extension zur strukurierten Erfassung der Straße KANN vorhanden sein. |
| Patient.address.line.extension | Die Extension zur strukurierten Erfassung der Hausnummer KANN vorhanden sein. |
| Patient.address.line.extension | Die Extension zur strukurierten Erfassung des Adresszusatz KANN vorhanden sein. |
| Patient.address.city | Der Ort SOLL vorhanden sein. |
| Patient.address.postalCode | Die Postleitzahl SOLL vorhanden sein. |
| Patient.address.country | Das Länderkennzeichen KANN vorhanden sein. |
| Patient.address | Das Postfach SOLL vorhanden sein. |
| Patient.address.line | Die Postfach-Angabe SOLL angegeben werden, die Extensions zur strukurierten Erfassung KANN vorhanden sein. |
| Patient.address.line.extension | Die Extension zur strukurierten Erfassung des Postfach KANN vorhanden sein. |
| Patient.address.city | Der Ort SOLL vorhanden sein. |
| Patient.address.postalCode | Die Postleitzahl SOLL vorhanden sein. |
| Patient.address.country | Das Länderkennzeichen KANN vorhanden sein. |
R1: Rechnung mit Dokumenten validieren und versenden
Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das RE-PS als Client. Anwendungsfall AF_10136 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 15: Use Case Rechnung mit Dokumenten validieren und versenden" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.
| HTTP-Methode | POST |
| Endpunkt | /Patient/[id-des-ermittelten-Rechnungsempfängers] |
Die Input- und Output-Parameter werden durch die OperationDefinition https://gematik.de/fhir/dipag/OperationDefinition/Submit beschrieben. Die ID des Rechnungsempfängers ist zuvor per R0: Abfrage des Rechnungsempfängers und dessen Einwilligung zum Rechnungsversand zu ermitteln.
Invocations
URL: [base]/Patient/[id]/$invoice-submit
This operation changes content
Parameters (In)
| Name | Cardinality | Type | Binding | Documentation |
|---|---|---|---|---|
| rechnung | 1..1 | DocumentReference | Vollständige Digitale Patientenrechnung mit verschiedenen Attachments: 1) Rechnungs-PDF 2) Strukturierte Daten OHNE Signatur. | |
| anhang | 0..* | DocumentReference | Weitere Anhänge zur Digitalen Patientenrechnung als PDF. | |
| modus | 0..1 | code | DiPagRechnungSubmitModusVS (required) | Verarbeitungshinweis für die Digitale Patientenrechnung. Default: normal. |
| angereichertesPDF | 0..1 | boolean | Indikation ob nur das durch den FD erstellte Dokumententoken zurückgegeben werden soll oder das gesamte PDF inkl. Dokumententoken. Default: false. |
Return Values (Out)
| Name | Cardinality | Type | Documentation |
|---|---|---|---|
| token | 0..* | Token(s) zur eineindeutigen Identifizierung der Rechnungsdokumente/-anhänge (unabhängig von returnTokenPDF). Dieser Parameter ist NUR optional falls modus = 'test'. | |
| token.id | 1..1 | id | Randomisiertes Token zur Identifikation eines Dokumentes. |
| token.docRef | 1..1 | Identifier | Eindeutiger Identifikatior der Rechnung und Anhänge auf welche sich das Token bezieht. |
| token.angereichertesPDF | 0..1 | Binary | PDF mit eingebetteten Token und strukturierten Daten, in Abhängigkeit vom angereichertesPDF-Parameter. Vgl. 4.1 Einreichung per Post des Feature-Dokumentes Digitale Patientenrechnung. |
| warnungen | 0..1 | OperationOutcome | Warnhinweise und Fehlern zur Validierung der Digitalen Patientenrechnung. Diese MÜSSEN in jedem Verarbeitungsmodus ausgegeben werden. |
| API-Zustand | HTTP-Status-Code |
|---|---|
| Erfolgsfall | 200 - OK |
| Eine DocumentReferenz mit dem selben Identifier extistiert bereits | 200 - OK In diesem Fall wird der ursprüngliche Response mit Rechnungs-Token erneut zurück gegeben |
| Weitere Parameter in HTTP-Anfrage enthalten | 400 - Bad Request |
| Syntax für Parameter ist nicht korrekt oder Kardinalitäten werden nicht eingehalten | 400 - Bad Request |
| Gravierende Fehler treten während der Validierung auf - Mode = 'normal' | 400 - Bad Request |
| Kein valides Access-Token wird mitgesendet | 401 - Unauthorized |
| Autorisierter Benutzer verfügt über keine ausreichende Berechtigung die Interaktion auszuführen | 403 - Forbidden |
| Fehlende Berechtigung für den Leistungserbringer das Postfach zu verwenden | 404 - Not Found In diesem Fall: OperationOutcome mit Hinweis, dass Einwilligung nicht vorliegt oder Benutzer nicht vorhanden ist |
| Andere HTTP-Methode wird verwendet | 405 - Method Not Allowed |
Dokumentenvalidierung
Der FD muss die syntaktischen und semantischen Prüfungen der Rechnung durchführen welche in AF_10136 unter 'Ablauf' beschrieben sind. Bei der Verarbeitung einer Rechnungen mit einer bereits im FD bekannten Signatur MUSS eine Validierungswarnung durch den FD herausgegeben werden. Zudem MÜSSEN die übermittelten Dokumente ein valides PDF/A sein. Andernfalls ist der Request mit 400 - Bad Request abzulehnen.
Signatur
Die Signatur wird durch den FD über die Konkatenation aller Base64-kodierten Inhalte der Rechnung (d.h. Rechnungrepräsentation in PDF/A-Form und den strukturierten Rechnungsinhalten) gebildet werden, in der Reihenfolge:
- Attachment mit contentType = application/pdf
- Attachment mit contentType = application/fhir+xml
- Attachment mit contentType = application/fhir+json
Weitere Details zur Signatur, siehe gemSpec_DiPag_FD - Abschnitt 6.5 Signatur.
Rechnungsrepräsentation
Die DocumentReference-Ressourcen welche über die Parameter rechnung und anhang übermittelt werden MÜSSEN dem Profil https://gematik.de/fhir/StructureDefinition/dipag-dokumentenmetadaten entsprechen.
| Canonical | Status | Version | Basis |
|---|---|---|---|
| https://gematik.de/fhir/dipag/StructureDefinition/dipag-dokumentenmetadaten | active | 1.0.2 | http://hl7.org/fhir/StructureDefinition/DocumentReference |
| DiPagDokumentenmetadaten (DocumentReference) | C | DocumentReference | |
| id | Σ | 0..1 | string |
| meta | Σ | 0..1 | Meta |
| id | 0..1 | string | |
| extension | S C | 0..* | Extension |
| markierung | S C | 0..* | Extension(Complex) |
| versionId | Σ | 0..1 | id |
| lastUpdated | Σ | 0..1 | instant |
| source | Σ | 0..1 | uri |
| profile | Σ | 0..* | canonical(StructureDefinition) |
| security | Σ | 0..* | CodingBinding |
| tag | S Σ | 0..* | Coding |
| dipag-rechnungsstatus | S Σ | 0..1 | CodingBinding |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| system | S Σ | 1..1 | uri |
| version | Σ | 0..1 | string |
| code | S Σ | 1..1 | code |
| display | Σ | 0..1 | string |
| userSelected | Σ | 0..1 | boolean |
| implicitRules | Σ ?! | 0..1 | uri |
| language | 0..1 | codeBinding | |
| text | 0..1 | Narrative | |
| contained | 0..* | Resource | |
| extension | S C | 0..* | Extension |
| docRef-signature | S C | 0..1 | Extension(Signature) |
| rechnungsdatum | S C | 0..1 | Extension(dateTime) |
| zahlungszieldatum | S C | 0..1 | Extension(dateTime) |
| gesamtbetrag | S C | 0..1 | Extension(Money) |
| fachrichtung | S C | 0..1 | Extension(Coding) |
| leistungsart | S C | 0..1 | Extension(Coding) |
| behandlungsart | S C | 0..1 | Extension(Coding) |
| modifierExtension | ?! C | 0..* | Extension |
| masterIdentifier | Σ | 0..1 | Identifier |
| identifier | S Σ | 1..* | Identifier |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| use | Σ ?! | 0..1 | codeBinding |
| type | Σ | 0..1 | CodeableConceptBinding |
| system | S Σ | 1..1 | uri |
| value | S Σ | 1..1 | string |
| period | Σ | 0..1 | Period |
| assigner | Σ | 0..1 | Reference(Organization) |
| status | S Σ ?! | 1..1 | codeBindingPattern |
| docStatus | Σ | 0..1 | codeBinding |
| type | S Σ | 1..1 | CodeableConceptBinding |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| coding | Σ | 1..* | Coding |
| DokumentenKlassifizierung | S Σ | 0..1 | CodingBindingPattern |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| system | S Σ | 1..1 | uriPattern |
| version | Σ | 0..1 | string |
| code | S Σ | 1..1 | code |
| display | S Σ | 1..1 | string |
| userSelected | Σ | 0..1 | boolean |
| Rechnungstyp | S Σ | 0..1 | CodingPattern |
| text | Σ | 0..1 | string |
| category | Σ | 0..* | CodeableConcept |
| subject | S Σ | 1..1 | Reference(Patient | Practitioner | Group | Device) |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| reference | Σ C | 0..1 | string |
| type | Σ | 0..1 | uriBinding |
| identifier | Σ | 0..1 | Identifier |
| display | S Σ | 1..1 | string |
| date | Σ | 0..1 | instant |
| author | S Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| reference | Σ C | 0..1 | string |
| type | Σ | 0..1 | uriBinding |
| identifier | S Σ | 1..1 | IdentifierTelematikId |
| display | S Σ | 1..1 | string |
| authenticator | 0..1 | Reference(Practitioner | PractitionerRole | Organization) | |
| custodian | 0..1 | Reference(Organization) | |
| relatesTo | Σ | 0..* | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| code | Σ | 1..1 | codeBinding |
| target | Σ | 1..1 | Reference(DocumentReference) |
| description | S Σ | 1..1 | string |
| securityLabel | Σ | 0..* | CodeableConceptBinding |
| content | S Σ | 1..* | BackboneElement |
| (All Slices) | |||
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| attachment | Σ | 1..1 | Attachment |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| contentType | Σ | 0..1 | codeBinding |
| language | Σ | 0..1 | codeBinding |
| data | 0..1 | base64Binary | |
| url | Σ | 0..1 | url |
| size | Σ | 0..1 | unsignedInt |
| hash | Σ | 0..1 | base64Binary |
| title | Σ | 0..1 | string |
| creation | Σ | 0..1 | dateTime |
| format | Σ | 0..1 | CodingBinding |
| rechnungspdf | S Σ | 0..1 | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| attachment | S Σ | 1..1 | Attachment |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| contentType | S Σ | 1..1 | codeBindingPattern |
| language | Σ | 0..1 | codeBinding |
| data | S | 1..1 | base64Binary |
| url | S Σ | 0..1 | url |
| size | Σ | 0..1 | unsignedInt |
| hash | Σ | 0..1 | base64Binary |
| title | Σ | 0..1 | string |
| creation | Σ | 0..1 | dateTime |
| format | S Σ | 1..1 | CodingBindingPattern |
| angereicherteRechnung | S Σ | 0..1 | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| attachment | S Σ | 1..1 | Attachment |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| contentType | S Σ | 1..1 | codeBindingPattern |
| language | Σ | 0..1 | codeBinding |
| data | 0..0 | base64Binary | |
| url | S Σ | 0..1 | url |
| size | Σ | 0..1 | unsignedInt |
| hash | Σ | 0..1 | base64Binary |
| title | Σ | 0..1 | string |
| creation | Σ | 0..1 | dateTime |
| format | S Σ | 1..1 | CodingBindingPattern |
| strukturierterRechnungsinhalt | S Σ | 0..1 | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| attachment | S Σ | 1..1 | Attachment |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| contentType | S Σ | 1..1 | codeBinding |
| language | Σ | 0..1 | codeBinding |
| data | S | 1..1 | base64Binary |
| url | S Σ | 0..1 | url |
| size | Σ | 0..1 | unsignedInt |
| hash | Σ | 0..1 | base64Binary |
| title | Σ | 0..1 | string |
| creation | Σ | 0..1 | dateTime |
| format | S Σ | 1..1 | CodingBindingPattern |
| anhang | S Σ | 0..1 | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| attachment | S Σ | 1..1 | Attachment |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| contentType | S Σ | 1..1 | codeBindingPattern |
| language | Σ | 0..1 | codeBinding |
| data | S | 1..1 | base64Binary |
| url | S Σ | 0..1 | url |
| size | Σ | 0..1 | unsignedInt |
| hash | Σ | 0..1 | base64Binary |
| title | Σ | 0..1 | string |
| creation | Σ | 0..1 | dateTime |
| format | S Σ | 1..1 | CodingBindingPattern |
| context | S Σ | 0..1 | BackboneElement |
| id | 0..1 | string | |
| extension | C | 0..* | Extension |
| modifierExtension | Σ ?! C | 0..* | Extension |
| encounter | 0..* | Reference(Encounter | EpisodeOfCare) | |
| event | 0..* | CodeableConcept | |
| period | Σ | 0..1 | Period |
| facilityType | 0..1 | CodeableConcept | |
| practiceSetting | 0..1 | CodeableConcept | |
| sourcePatientInfo | 0..1 | Reference(Patient) | |
| related | S | 1..* | Reference(Resource) |
| patient | S | 1..1 | Reference(Patient) |
| anhaenge | S | 0..* | Reference(DocumentReference) |
Folgende Implementierungshinweise sind zu beachten:
| DocumentReference.meta.extension:markierung | Vgl. Abschnitt '4.4.2 Markierungen' des Feature-Dokuments Digitale Patientenrechnung |
| DocumentReference.meta.tag | Metaangaben zur Digitalen Patientenrechnung die sich auf das Rechnungsdokument als Ganzes beziehen und nicht Teil des durch den RE-PS erstellten Dokuments sind. |
| DocumentReference.meta.tag:dipag-rechnungsstatus | Vgl. Abschnitt 4.4.1 Workflow einer Rechnung des Feature-Dokuments Digitale Patientenrechnung |
| DocumentReference.extension:rechnungsdatum | Siehe Abschnitt '4.8.1.1 Rechnung' des Feature-Dokuments Digitale Patientenrechnung |
| DocumentReference.extension:zahlungszieldatum | Siehe Abschnitt '4.8.1.1 Rechnung' des Feature-Dokuments Digitale Patientenrechnung |
| DocumentReference.extension:gesamtbetrag | Siehe Abschnitt '4.8.1.1 Rechnung' des Feature-Dokuments Digitale Patientenrechnung |
| DocumentReference.identifier | Eindeutiger Identifikator vergeben durch das RE-PS (z.B. Interne Dokumentennummer). Das System MUSS eindeutig pro Leistungserbringer:in vergeben werden. |
| DocumentReference.status | Versionierung von Dokumenten ist nicht unterstützt. Nur jeweils die aktuelle Version des Dokumentes wird akzeptiert. |
| DocumentReference.type | Kodierung des Dokumentes als 'Rechnung', sowie darüber hinausgehende Klassifizierung per KDL |
| DocumentReference.subject | Vollständiger Name der behandelten Person. Siehe Abschnitt '4.8.1.1 Rechnung' des Feature-Dokuments Digitale Patientenrechnung. |
| DocumentReference.author | Der Fachdienst verknüpft alle Rechnungsdokumente mit der Telematik-ID des einreichenden Akteurs. |
| DocumentReference.description | Menschenlesbarer Titel des Dokumentes, der dem Versicherten in der UI angezeigt wird. Der Titel kann manuell erfasst oder vom Dateinamen/Metadaten abgeleitet werden. z.B. "Laborbefund vom 28.9.2023". |
| DocumentReference.content.attachment.url | Der FD muss die Base64-kodierten Daten aus attachment.data extrahieren und in eine Binary-Ressource auslagern. |
| DocumentReference.content:rechnungspdf.attachment.contentType | Zum Zeitpunkt der Veröffentlichung werden nur PDF-Dokumente als Rechnung seitens der Leistungserbringer:in unterstützt. |
| DocumentReference.content:rechnungspdf.attachment.data | Base64-kodiertes PDF. Dieses Feld muss durch die Applikation der Leistungserbringer:in gefüllt werden. |
| DocumentReference.content:angereicherteRechnung.attachment.contentType | Zum Zeitpunkt der Veröffentlichung werden nur PDF-Dokumente als Rechnung seitens der Leistungserbringer:in unterstützt. |
| DocumentReference.content:angereicherteRechnung.attachment.data | Die angereicherte Rechnung wird durch den FD direkt als Binary-Ressource unter attachment.url referenziert. |
| DocumentReference.content:strukturierterRechnungsinhalt.attachment.contentType | Strukturierte Rechnungsinhalte können seitens der Leistungserbringer:in sowohl als JSON als auch XML übergeben werden. |
| DocumentReference.content:strukturierterRechnungsinhalt.attachment.data | Base64-kodierte Repräsentation der Rechnungsinhalte. Dieses Feld muss durch die Applikation der Leistungserbringer:in gefüllt werden. |
| DocumentReference.content:anhang.attachment.contentType | Zum Zeitpunkt der Veröffentlichung werden nur PDF-Dokumente als Rechnungsanhänge seitens der Leistungserbringer:in unterstützt. |
| DocumentReference.content:anhang.attachment.data | Base64-kodiertes PDF. Dieses Feld muss durch die Applikation der Leistungserbringer:in gefüllt werden. |
| DocumentReference.context.related | Der Fachdienst verknüpft alle Rechnungsdokumente mit der Rechnungsempfänger:in. |
Beispiele
| DocumentReference |
| id : BeispielDocumentReferenceRechnung3-LE |
| extension |
| url : http://example.org/StructureDefinition/signatur |
| value |
| type |
| system : urn:iso-astm:E1762-95:2013 |
| code : 1.2.840.10065.1.12.1.1 |
| display : Author's Signature |
| when : 2015-02-07T13:28:17.239+02:00 |
| who |
| display : Arzt |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
| content |
| attachment |
| contentType : application/xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : gematik-dipag |
HTTP POST [fachdienst-endpunkt]/Patient/[id-des-ermittelten-Rechnungsempfängers]/$invoice-submit
| Parameters |
| id : BeispielParameterSubmitInput3-LE |
| parameter |
| name : rechnung |
| resource |
| id : BeispielDocumentReferenceRechnung3-LE |
| extension |
| url : http://example.org/StructureDefinition/signatur |
| value |
| type |
| system : urn:iso-astm:E1762-95:2013 |
| code : 1.2.840.10065.1.12.1.1 |
| display : Author's Signature |
| when : 2015-02-07T13:28:17.239+02:00 |
| who |
| display : Arzt |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
| content |
| attachment |
| contentType : application/xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : gematik-dipag |
| parameter |
| name : anhang |
| resource |
| id : BeispielDocumentReferenceSonstigesDokument3-LE |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| description : Molekularpathologiebefund vom 31.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
Antwort des Fachdienstes im Erfolgsfall:
Rückgabe von Rechnung und Anhang jeweils mit aufgebrachtem Token und separiertem Inhalt. Bei Verwendung des Parameters "returnTokenPDF" werden die Binaries mit den PDF/A-Dokumenten (incl. Token-Barcode) als Parameter direkt mit ausgegeben.
HTTP 200 OK
mit Body:
| Parameters |
| id : BeispielParameterSubmitOutput3-FD |
| parameter |
| name : rechnung |
| resource |
| id : BeispielDocumentReferenceRechnung3-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-789 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceRechnung3-LE |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/pdf-mit-token-barcode |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| url : [FD-endpunkt]/Binary/invoice |
| format |
| code : dipag |
| parameter |
| name : anhang |
| resource |
| id : BeispielDocumentReferenceSonstigesDokument3-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 987-654-321 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceSonstigesDokument3-LE |
| description : Molekularpathologiebefund vom 31.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/patho-mit-token-barcode |
Verarbeitungsschritte im FD
Bei der Entgegennahme der Dokumente MÜSSEN durch den FD die nachfolgenden Schritte durchgeführt werden. Es ist zu beachten, dass dies asynchron durchgeführt werden kann durch den FD. Lediglich MUSS der FD sicherstellen, dass dieser Prozess vor dem Abruf der Dokumente durch das DiPag FdV oder dem RE-PS abgearbeitet wurde.
DocumentReference.attachment.datamuss aus der übermittelten DocumentReference herausgelöst werden. Der Inhalt MUSS in einer durch den FD neu angelegten Binary-Ressource gespeichert werden. Die Binary-Ressource MUSS unterattachment.urlmit einer absoluten URL referenziert werden.DocumentReference.attachment.dataist anschließend zu löschen. Dies gilt für alle durch den Client übermittelte Dokumente.Die originale Rechnung (
DocumentReference.type = IHEXDStypeCode#ABRE) MUSS angereichert werden mit den strukturierten Rechnungsinhalten. Der FD MUSS die Inhalte strukturiert im FHIR-Format innerhalb eines PDF/A einbetten.Das neu erzeugte PDF/A muss als Binary nach den Vorgaben von
DocumentReference.content:angereicherteRechnungaus dem oben aufgeführten Profil hinterlegt werden.Für jedes PDF/A-Dokument MUSS der FD ein Token unter Einhaltung einer ausreichenden Entropie erstellen. Der FD MUSS zusätzlich einen Barcode auf dem Rechnungs- oder Anhangdokument unterbringen welcher das Dokumententoken kodiert enthält. Die Lesbarkeit der Inhalte des Dokumtes darf hierdurch nicht eingeschränkt werden. Die Zugehörigkeit eines Tokens zu einem Dokument MUSS gespeichert werden, um den Abruf eines Dokumentes mit diesem Token zu ermöglichen.
DocumentReference.context.relatedMUSS durch den FD auf die ID des ermittelten Rechnungsempfängers gesetzt werden.DocumentReference.author.identifierMUSS durch den FD auf die im Access-Token enthaltene Telematik-ID gesetzt werden. Durch den Client übermittelte Angaben in DocumentReference.author sind zu überschreiben.Hinweis: In der FHIR-Repräsentation erfolgt keine Differenzierung zwischen dem Datenobjekt für die Rechnungsdokumente und dem Rechnungsworkflow. Der Workflowstatus wird somit innerhalb der DocumentReference abgebildet.
DocumentReference.meta.tag:dipag-rechnungsstatusMUSS durch den FD auf "Offen" gesetzt werden beim Empfang der Rechnung.
Hinweise zur Abbildung des Workflow-Objektes (fachliches Datenmodell)
Im fachlichen Datenmodell des Feature-Dokuments Digitale Patientenrechnung ist dargestellt, dass jede Rechnung,sowie jedes ergänzende Dokument mit einem Rechnungsworkflow-Objekt verbunden ist. Dieses Workflow-Objekt bündelt das Rechnungsdokument sowie die Anhänge zusammen und gibt diesen Dokumenten einen gemeinsamen Status. Zur Vereinfachung der Implementierung seitens des FD und des DiPag FDV wird in der FHIR-Repräsentation kein weiteres Datenobjekt hierfür verwendet. Hingegen enthält das Profil 'DiPagDokumentenmetadaten' eine Extension 'dipag-rechnungsstatus' für diesen Zweck. Der Status zusammenhängender Dokumente MUSS stets synchron gehalten werden. Diese Extension gilt für das Rechnungsdokument sowie alle Anhänge, die innerhalb einer Submit-Operation im gleichen Kontext übermittelt worden sind wie die Rechnung. Der FD MUSS den Zusammenhang zwischen diesen Dokumenten in der Verarbeitungslogik vorhalten.
Beispiele
Beispiel: Rechnungsdokument nach Verarbeitung auf Server
| DocumentReference |
| id : BeispielDocumentReferenceRechnung3-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-789 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceRechnung3-LE |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/pdf-mit-token-barcode |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| url : [FD-endpunkt]/Binary/invoice |
| format |
| code : dipag |
Beispiel: sonstiges Dokument nach Verarbeitung auf Server
| DocumentReference |
| id : BeispielDocumentReferenceSonstigesDokument3-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 987-654-321 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceSonstigesDokument3-LE |
| description : Molekularpathologiebefund vom 31.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/patho-mit-token-barcode |
R2: Rechnung validieren/einreichen (Bulk)
Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das RE-PS als Client. Anwendungsfall AF_10136 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 15: Use Case Rechnung mit Dokumenten validieren und versenden" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.
| HTTP-Methode | POST |
| Endpunkt | / (Root-Endpunkt) |
Für die Ausführung der Operation gelten die gleichen Vorgaben wie aus R1: Rechnung mit Dokumenten validieren und versenden. Die Operation $invoice-submit kann für innerhalb eines Batch-Bundles mehrfach, auch für unterschiedliche Dokumente aufgerufen werden. Es gelten die entsprechenden Vorgaben aus der FHIR-Kernspezifikation.
Asynchrone Verarbeitung
Diese Interaktion ist aufgrund potenziell großer Datenmengen asynchron vom FD auszuführen.
Dies MUSS der Client mittels eines Prefer: respond-async-Headers nach RFC7240 dem FD signalisieren.
| API-Zustand | HTTP-Status-Code |
|---|---|
| Erfolgsfall | 202 - Accepted |
| Eine DocumentReferenz mit dem selben Identifier extistiert bereits | 200 - OK In diesem Fall wird der ursprüngliche Response mit Rechnungs-Token erneut zurück gegeben |
| Weitere Parameter in HTTP-Anfrage enthalten | 400 - Bad Request |
| Syntax für Parameter ist nicht korrekt oder Kardinalitäten werden nicht eingehalten | 400 - Bad Request |
| Kein valides Access-Token wird mitgesendet | 401 - Unauthorized |
| Autorisierter Benutzer verfügt über keine ausreichende Berechtigung die Interaktion auszuführen | 403 - Forbidden |
| Andere HTTP-Methode wird verwendet | 405 - Method Not Allowed |
In einem Location-Header MUSS der FD dem RE-PS eine absolute URL mitteilen unter welcher das RE-PS per Polling prüfen kann, ob die Interaktion abgeschlossen wurde und entsprechende Rückgabewerte seitens der $retrieve-Operation vorliegen. Der Aufbau der Location-URL MUSS aus kryptografisch zufälligen Teilen bestehen, sodass der Aufbau nicht deterministisch ermittelt oder erraten werden kann. Der Server SOLLTE RE-PS-Clients mit einem HTTP-Status-Code 429 Too Many Requests abweisen, falls nach dem Ermessen des FDs die Location-URL zu häufig geprüft wird. Der FD SOLLTE einen Retry-After-Header entsprechend den Vorgaben aus der FHIR-Kernspezifikation verwenden.
Nach der Verarbeitung des batch-Bundles MUSS der FD das batch-response-Bundle unter der Location-URL bereitstellen, welches die Ergebnisse entsprechnd der Verarbeitung der einzelnen Dokumente nach AF_10271 enthält. Es ist zu beachten, dass der FD die Autorisierung für jedes Dokument gemäß den Vorgaben zu AF_10271 individuell prüfen MUSS. Der FD MUSS sicherstellen, dass das batch-response-Bundle nur einem validen Access-Token abgerufen werden kann.
Sollte die Location-URL unvorhergesehen nicht durch den RE-PS abfragbar sein (Systemausfall oder andere Fehler), kann das batch-Bundles erneut versendet werden. Bereits beim ersten Versand erfolgreich verarbeitete Daten werden in dem Fall mit 200 - OK bestätigt und die ursprüngliche Response wird zurückgegeben. Es kommt folglich nicht zu Dubletten. Der Abgleich erfolgt auf Basis des DocumentReference.identifier, welcher nur einmalig im FD vorkommen darf. Es wird ein Rate-Limit für die Bulk Schnittstelle geben.
Beispiel
HTTP POST [fachdienst-endpunkt]/
| Bundle |
| id : BulkSubmitExample |
| type : batch |
| entry |
| resource |
| id : BeispielParameterSubmitInput3-LE |
| parameter |
| name : rechnung |
| resource |
| id : BeispielDocumentReferenceRechnung3-LE |
| extension |
| url : http://example.org/StructureDefinition/signatur |
| value |
| type |
| system : urn:iso-astm:E1762-95:2013 |
| code : 1.2.840.10065.1.12.1.1 |
| display : Author's Signature |
| when : 2015-02-07T13:28:17.239+02:00 |
| who |
| display : Arzt |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
| content |
| attachment |
| contentType : application/xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : gematik-dipag |
| parameter |
| name : anhang |
| resource |
| id : BeispielDocumentReferenceSonstigesDokument3-LE |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| description : Molekularpathologiebefund vom 31.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
| request |
| method : POST |
| url : /Patient/BeispielPatient3-FD/$invoice-submit |
| entry |
| resource |
| id : BeispielParameterSubmitInput3.1-LE |
| parameter |
| name : rechnung |
| resource |
| id : BeispielDocumentReferenceRechnung3.1-LE |
| extension |
| url : http://example.org/StructureDefinition/signatur |
| value |
| type |
| system : urn:iso-astm:E1762-95:2013 |
| code : 1.2.840.10065.1.12.1.1 |
| display : Author's Signature |
| when : 2015-02-07T13:29:17.239+02:00 |
| who |
| display : Arzt |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
| content |
| attachment |
| contentType : application/xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESXML00 |
| format |
| code : gematik-dipag |
| parameter |
| name : anhang |
| resource |
| id : BeispielDocumentReferenceSonstigesDokument3.1-LE |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| description : Molekularpathologiebefund vom 30.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| data : DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00 |
| request |
| method : POST |
| url : /Patient/BeispielPatient3-FD/$invoice-submit |
Antwort des Fachdienstes nach der Verarbeitung des batch-Bundles:
HTTP 200 OK
mit Body:
| Bundle |
| id : BulkSubmitExampleOutput |
| type : batch-response |
| entry |
| fullUrl : [FD-endpunkt]/Parameters/BeispielParameterSubmitOutput3-FD |
| resource |
| id : BeispielParameterSubmitOutput3-FD |
| parameter |
| name : rechnung |
| resource |
| id : BeispielDocumentReferenceRechnung3-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-789 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceRechnung3-LE |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/pdf-mit-token-barcode |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| url : [FD-endpunkt]/Binary/invoice |
| format |
| code : dipag |
| parameter |
| name : anhang |
| resource |
| id : BeispielDocumentReferenceSonstigesDokument3-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 987-654-321 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceSonstigesDokument3-LE |
| description : Molekularpathologiebefund vom 31.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/patho-mit-token-barcode |
| entry |
| fullUrl : [FD-endpunkt]/Parameters/BeispielParameterSubmitOutput3.1-FD |
| resource |
| id : BeispielParameterSubmitOutput3.1-FD |
| parameter |
| name : rechnung |
| resource |
| id : BeispielDocumentReferenceRechnung3.1-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-987 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceRechnung3-LE |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/pdf-mit-token-barcode |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |
| content |
| attachment |
| contentType : application/fhir+xml |
| url : [FD-endpunkt]/Binary/invoice |
| format |
| code : gematik-dipag |
| parameter |
| name : anhang |
| resource |
| id : BeispielDocumentReferenceSonstigesDokument3.1-FD |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 987-654-321 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : PT130102 |
| display : Molekularpathologiebefund |
| subject |
| reference : Patient/BeispielPatient3-FD |
| relatesTo |
| code : transforms |
| target |
| reference : DocumentReference/BeispielDocumentReferenceSonstigesDokument3-LE |
| description : Molekularpathologiebefund vom 31.12.21 |
| content |
| attachment |
| contentType : application/pdf |
| url : [FD-endpunkt]/Binary/patho-mit-token-barcode |
R3: Abfrage von angereicherten PDF/A per Token (Rechnungsersteller)
Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das RE-PS als Client. Anwendungsfall AF_10271 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 17: Use Case Abfrage von angereicherten PDF/A per Token (Rechnungsersteller)" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.
| HTTP-Methode | POST |
| Endpunkt | /DocumentReference/$retrieve |
Die Input- und Output-Parameter werden durch die OperationDefinition https://gematik.de/fhir/dipag/OperationDefinition/Retrieve beschrieben.
Invocations
URL: [base]/DocumentReference/$retrieve
This operation does NOT change content
Parameters (In)
| Name | Cardinality | Type | Documentation |
|---|---|---|---|
| token | 1..1 | string | Dokumentoken zur Identifikation des Dokuments, welches abgerufen werden soll |
| strukturierterRechnungsinhalt | 0..1 | boolean | Angabe, ob die strukturierten Rechnungsinhalte neben dem angereicherten Rechnungsdokument zurückgegeben werden sollen als 'content'-Element. Default: false |
| originaleRechnung | 0..1 | boolean | Angabe ob die originale Rechnung inkl. Signatur neben dem angereicherten Rechnungsdokument zurückgegeben werden soll als 'content'-Element. Default: false. Die originale Rechnung ist nur vom FdV an das ITSys-KTR direkt weiterzugeben. Falls das Rechnungsdokument ausgedruckt werden sollte durch immer das angereicherte PDF inkl. Barcode zu verwenden. |
Return Values (Out)
| Name | Cardinality | Type | Documentation |
|---|---|---|---|
| dokument | 1..1 | DocumentReference | DocumentReference-Ressource die das angefragte Rechnungsdokument, sowie die strukturierten Rechnungsinhalte enthält (in Abhängigkeit vom strukturierterRechnungsinhalt- und originaleRechnung-Parameter). |
| API-Zustand | HTTP-Status-Code |
|---|---|
| Erfolgsfall | 200 - OK |
| Weitere Parameter in HTTP-Anfrage enthalten | 400 - Bad Request |
| Syntax für Parameter ist nicht korrekt oder Kardinalitäten werden nicht eingehalten | 400 - Bad Request |
| Kein valides Access-Token wird mitgesendet | 401 - Unauthorized |
| Autorisierter Benutzer verfügt über keine ausreichende Berechtigung die Interaktion auszuführen | 403 - Forbidden |
| Fehlende Berechtigung für den Leistungserbringer das Dokument abzurufen (z.B. falls ein invalides Rechnungstoken verwendet wird) | 404 - Not Found |
| Dokumnent kann anhand des Rechnungstokens nicht gefunden werden | 404 - Not Found |
| Andere HTTP-Methode wird verwendet | 405 - Method Not Allowed |
Anhand des übermittelten Dokumententokens MUSS der FD die entsprechende DocumentReference suchen. Das originale Rechnungsdokument MUSS durch den FD unter DocumentReference.content:rechnungspdf ausgeblendet werden. Dies gilt ebenfalls für die Signatur-Extension.
Die DocumentReference-Ressource KANN direkt an den Client zurückgegeben werden ohne, dass diese in eine Parameter-Ressource eingebettet wird.
Das Abrufen eines Rechnungsdokumentes durch ein RE-PS hat keine Auswirkungen auf den Rechnungsstatus (DocumentReference.meta.tag:dipag-rechnungsstatus) des Dokumentes.
Beispiele
HTTP GET [fachdienst-endpunkt]/DocumentReference/$retrieve
| Parameters |
| id : BeispielParameterRetrieveInput |
| parameter |
| name : token |
| value : 123-456-789 |
| parameter |
| name : strukturierterRechnungsinhalt |
| value : False |
| parameter |
| name : originaleRechnung |
| value : False |
Antwort des Fachdienstes im Erfolgsfall:
HTTP 200 OK
mit Body:
| DocumentReference |
| id : BeispielDocumentReferenceRechnungRetrieve |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-789 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |
Verarbeitungsschritte im FD
Der FD MUSS aus dem Access-Token die Telematik-ID extrahieren falls es sich bei dem anfragenden System um ein RE-PS handelt. Der FD MUSS sicherstellen, dass nur DocumentReference-Ressourcen abgerufen werden können in denen
DocumentReference.author.identifierauf die zugehörige Telematik-ID verweist.Der FD MUSS sicherstellen, dass bei einer Abfrage einer Binary-Ressource welche unter
DocumentReference.content.attachment.urlreferenziert wird nur erfolgen kann, wenn ein valides Access-Token mitgeliefert wird und das Binary in einer DocumentReference referenziert wird in derDocumentReference.author.identifieridentisch ist mit der Telematik-ID aus dem Access-Token.Es gelten die Festlegungen der FHIR-Kernspezifikation zur Handhabung von Binary-Ressourcen.
R4: Abfrage von angereicherten PDF/A per Token (Rechnungsersteller) (Bulk)
Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das RE-PS als Client. Anwendungsfall AF_10271 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 17: Use Case Abfrage von angereicherten PDF/A per Token (Rechnungsersteller)" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.
| HTTP-Methode | POST |
| Endpunkt | / (Root-Endpunkt) |
Für die Ausführung der Operation gelten die gleichen Vorgaben wie aus R1: Rechnung mit Dokumenten validieren und versenden. Die Operation $retrieve kann für innerhalb eines Batch-Bundles mehrfach, auch für unterschiedliche Dokumente aufgerufen werden. Es gelten die entsprechenden Vorgaben aus der FHIR-Kernspezifikation.
Asynchrone Verarbeitung
Diese Interaktion ist aufgrund potenziell großer Datenmengen asynchron vom FD auszuführen.
Dies MUSS der Client mittels eines Prefer: respond-async-Headers nach RFC7240 dem FD signalisieren.
| API-Zustand | HTTP-Status-Code |
|---|---|
| Erfolgsfall | 202 - Accepted |
| Weitere Parameter in HTTP-Anfrage enthalten | 400 - Bad Request |
| Syntax für Parameter ist nicht korrekt oder Kardinalitäten werden nicht eingehalten | 400 - Bad Request |
| Kein valides Access-Token wird mitgesendet | 401 - Unauthorized |
| Autorisierter Benutzer verfügt über keine ausreichende Berechtigung die Interaktion auszuführen | 403 - Forbidden |
| Andere HTTP-Methode wird verwendet | 405 - Method Not Allowed |
In einem Location-Header MUSS der FD dem RE-PS eine absolute URL mitteilen unter welcher das RE-PS per Polling prüfen kann, ob die Interaktion abgeschlossen wurde und entsprechende Rückgabewerte seitens der $retrieve-Operation vorliegen. Der Aufbau der Location-URL MUSS aus kryptografisch zufälligen Teilen bestehen, sodass der Aufbau nicht deterministisch ermittelt oder erraten werden kann. Der Server SOLLTE RE-PS-Clients mit einem HTTP-Status-Code 429 Too Many Requests abweisen, falls nach dem Ermessen des FDs die Location-URL zu häufig geprüft wird. Der FD SOLLTE einen Retry-After-Header entsprechend den Vorgaben aus der FHIR-Kernspezifikation verwenden.
Nach der Verarbeitung des batch-Bundles MUSS der FD das batch-response-Bundle unter der Location-URL bereitstellen, welches die Ergebnisse entsprechnd der Verarbeitung der einzelnen Dokumente nach AF_10271 enthält. Es ist zu beachten, dass der FD die Autorisierung für jedes Dokument gemäß den Vorgaben zu AF_10271 individuell prüfen MUSS. Der FD MUSS sicherstellen, dass das batch-response-Bundle nur einem validen Access-Token abgerufen werden kann.
Beispiel
HTTP POST [fachdienst-endpunkt]/
| Bundle |
| id : BulkRetrieveExampleInput |
| type : batch |
| entry |
| resource |
| id : BeispielParameterRetrieveInput |
| parameter |
| name : token |
| value : 123-456-789 |
| parameter |
| name : strukturierterRechnungsinhalt |
| value : False |
| parameter |
| name : originaleRechnung |
| value : False |
| request |
| method : POST |
| url : $retrieve |
| entry |
| resource |
| id : BeispielParameterRetrieveInput2 |
| parameter |
| name : token |
| value : 123-456-123 |
| request |
| method : POST |
| url : $retrieve |
Antwort des Fachdienstes nach der Verarbeitung des batch-Bundles:
HTTP 200 OK
mit Body:
| Bundle |
| id : BulkRetrieveExampleOutput |
| type : batch-response |
| entry |
| fullUrl : [FD-endpunkt]/DocumentReference/BeispielDocumentReferenceRechnungRetrieve |
| resource |
| id : BeispielDocumentReferenceRechnungRetrieve |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-789 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 10.01.2024 |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |
| entry |
| fullUrl : [FD-endpunkt]/DocumentReference/BeispielDocumentReferenceRechnungRetrieve2 |
| resource |
| id : BeispielDocumentReferenceRechnungRetrieve2 |
| identifier |
| system : https://gematik.de/fhir/sid/dipag-token |
| value : 123-456-123 |
| status : current |
| type |
| coding |
| system : http://dvmd.de/fhir/CodeSystem/kdl |
| code : AM010106 |
| display : Rechnung ambulante/stationäre Behandlung |
| subject |
| identifier |
| system : http://fhir.de/sid/gkv/kvid-10 |
| value : A000000000 |
| description : Rechnung Reiseimpfung vom 11.01.2024 |
| content |
| attachment |
| contentType : application/xml |
| url : [FD-endpunkt]/Binary/xrechnung |
| format |
| code : xrechnung |