R5: Abruf von Rechnungen (Rechnungsempfänger)

Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das eRg FdV als Client. Anwendungsfall AF_10138 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 18: Use Case Abruf von Rechnungen (Rechnungsempfänger)" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.

HTTP-Methode GET
Endpunkt /DocumentReference
Suchparameter _tag Kardinalität: 0..1
E-Rechnungsstatus
Type: token
Der FD MUSS den Modifier :not unterstützen.
Suchparameter subject:text Kardinalität: 0..1
Name Rechnungsempfänger/Behandelte Person
Type: string
Der Suchparameter MUSS durch den Client mit dem Modifier :text verwendet werden. Dieser Suchmodifier ermöglicht eine Suche auf DocumentReference.subject.display.
Suchparameter author:text Kardinalität: 0..1
Name des Leistungserbringer
Type: string
Der Suchparameter MUSS durch den Client mit dem Modifier :text verwendet werden. Dieser Suchmodifier ermöglicht eine Suche auf DocumentReference.author.display.
Suchparameter type Kardinalität: 0..1
Dokumententyp (z.B. Rechnung)
Type: token
Der FD MUSS den Modifier :not unterstützen.
Suchparameter ergpkv-makierung Kardinalität: 0..1
Manuelle Markierungen
Type: token
Suchresultatparameter _sort Als Sortierkriterien können die oben genannten Suchparameter inkl. Custom SearchParameter verwendet werden für die Inhalte die als Sortierkriterien in Tabelle 18: Use Case Abruf von Rechnungen (Rechnungsempfänger) - Feature-Dokument E-Rechnung genannt sind
Suchresultatparameter _count Durch den Client gewünschte Page-Size, der FD KANN Vorgaben für die Maximale Page-Size definieren
User-Kontext KVNR Kardinalität: 1..1
Hinweis: Die KVNR ist aus dem Claim urn:telematik:claims:id 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 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

Als Antwort MUSS der FD ein FHIR-SearchSet-Bundle zurückliefern, welches eingegrenzt ist auf die, durch den Client übermittelten Suchparameter.

Beispiele

Suche anhand der Art des Dokumentes (nur Rechnungen):

HTTP GET [fachdienst-endpunkt]/DocumentReference?type=ABRE

und/oder anhand des Status

HTTP GET [fachdienst-endpunkt]/DocumentReference?date=gt2024-01-01&_tag=offen

HTTP GET [fachdienst-endpunkt]/DocumentReference?date=gt2024-01-01&_tag:not=papierkorb

Antwort des Endpunktes im Erfolgsfall:

HTTP 200 OK

mit Body:

Bundle
<Bundle xmlns="http://hl7.org/fhir">
    <id value="ExampleR5Bundle" />
    <type value="searchset" />
    <total value="1" />
    <entry>
        <resource>
            <DocumentReference>
                <id value="ExampleR5DocumentReference" />
                <meta>
                    <profile value="https://gematik.de/fhir/erg/StructureDefinition/erg-dokumentenmetadaten" />
                    <tag>
                        <system value="https://gematik.de/fhir/erg/CodeSystem/erg-rechnungsstatus-cs" />
                        <code value="offen" />
                        <display value="Offen" />
                    </tag>
                </meta>
                <extension url="https://gematik.de/fhir/erg/StructureDefinition/erg-documentreference-rechnungsdatum">
                    <valueDateTime value="2023-09-28T13:00:00.123+02:00" />
                </extension>
                <extension url="https://gematik.de/fhir/erg/StructureDefinition/erg-documentreference-zahlungszieldatum">
                    <valueDateTime value="2023-10-28T13:00:00.123+02:00" />
                </extension>
                <extension url="https://gematik.de/fhir/erg/StructureDefinition/erg-documentreference-gesamtbetrag">
                    <valueMoney>
                        <value value="16.2" />
                        <currency value="EUR" />
                    </valueMoney>
                </extension>
                <identifier>
                    <system value="http://example.com/fhir/identifiers" />
                    <value value="123456789" />
                </identifier>
                <status value="current" />
                <type>
                    <coding>
                        <system value="http://dvmd.de/fhir/CodeSystem/kdl" />
                        <code value="AM010106" />
                        <display value="Rechnung ambulante/station&#228;re Behandlung" />
                    </coding>
                </type>
                <subject>
                    <display value="Max Mustermann" />
                </subject>
                <author>
                    <identifier>
                        <system value="https://gematik.de/fhir/sid/telematik-id" />
                        <value value="987654321" />
                    </identifier>
                    <display value="Dr. Hausarzt" />
                </author>
                <description value="Laborbefund vom 28.9.2023" />
                <content>
                    <attachment>
                        <contentType value="application/pdf" />
                        <data value="DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00" />
                        <url value="http://example.com/fhir/binary/123" />
                    </attachment>
                    <format>
                        <system value="https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs" />
                        <code value="erechnung" />
                    </format>
                </content>
                <content>
                    <attachment>
                        <contentType value="application/pdf" />
                        <url value="http://example.com/fhir/binary/456" />
                    </attachment>
                    <format>
                        <system value="https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs" />
                        <code value="angereichertesPDF" />
                    </format>
                </content>
                <content>
                    <attachment>
                        <contentType value="application/json" />
                        <data value="DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00" />
                        <url value="http://example.com/fhir/binary/789" />
                    </attachment>
                    <format>
                        <system value="https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs" />
                        <code value="rechnungsinhalt" />
                    </format>
                </content>
                <content>
                    <attachment>
                        <contentType value="application/pdf" />
                        <data value="DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00" />
                        <url value="http://example.com/fhir/binary/101112" />
                    </attachment>
                    <format>
                        <system value="https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs" />
                        <code value="rechnungsanhang" />
                    </format>
                </content>
            </DocumentReference>
        </resource>
        <search>
            <mode value="match" />
        </search>
    </entry>
</Bundle>
{
    "resourceType": "Bundle",
    "id": "ExampleR5Bundle",
    "type": "searchset",
    "total": 1,
    "entry":  [
        {
            "resource": {
                "resourceType": "DocumentReference",
                "id": "ExampleR5DocumentReference",
                "meta": {
                    "tag":  [
                        {
                            "code": "offen",
                            "system": "https://gematik.de/fhir/erg/CodeSystem/erg-rechnungsstatus-cs",
                            "display": "Offen"
                        }
                    ],
                    "profile":  [
                        "https://gematik.de/fhir/erg/StructureDefinition/erg-dokumentenmetadaten"
                    ]
                },
                "status": "current",
                "type": {
                    "coding":  [
                        {
                            "system": "http://dvmd.de/fhir/CodeSystem/kdl",
                            "code": "AM010106",
                            "display": "Rechnung ambulante/stationäre Behandlung"
                        }
                    ]
                },
                "extension":  [
                    {
                        "url": "https://gematik.de/fhir/erg/StructureDefinition/erg-documentreference-rechnungsdatum",
                        "valueDateTime": "2023-09-28T13:00:00.123+02:00"
                    },
                    {
                        "url": "https://gematik.de/fhir/erg/StructureDefinition/erg-documentreference-zahlungszieldatum",
                        "valueDateTime": "2023-10-28T13:00:00.123+02:00"
                    },
                    {
                        "url": "https://gematik.de/fhir/erg/StructureDefinition/erg-documentreference-gesamtbetrag",
                        "valueMoney": {
                            "value": 16.2,
                            "currency": "EUR"
                        }
                    }
                ],
                "author":  [
                    {
                        "identifier": {
                            "system": "https://gematik.de/fhir/sid/telematik-id",
                            "value": "987654321"
                        },
                        "display": "Dr. Hausarzt"
                    }
                ],
                "content":  [
                    {
                        "format": {
                            "code": "erechnung",
                            "system": "https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs"
                        },
                        "attachment": {
                            "contentType": "application/pdf",
                            "data": "DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00",
                            "url": "http://example.com/fhir/binary/123"
                        }
                    },
                    {
                        "format": {
                            "code": "angereichertesPDF",
                            "system": "https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs"
                        },
                        "attachment": {
                            "contentType": "application/pdf",
                            "url": "http://example.com/fhir/binary/456"
                        }
                    },
                    {
                        "format": {
                            "code": "rechnungsinhalt",
                            "system": "https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs"
                        },
                        "attachment": {
                            "contentType": "application/json",
                            "data": "DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00",
                            "url": "http://example.com/fhir/binary/789"
                        }
                    },
                    {
                        "format": {
                            "code": "rechnungsanhang",
                            "system": "https://gematik.de/fhir/erg/CodeSystem/erg-attachment-format-cs"
                        },
                        "attachment": {
                            "contentType": "application/pdf",
                            "data": "DIESISTNUREINBEISPIELDIESISTKEINVALIDESPDF00",
                            "url": "http://example.com/fhir/binary/101112"
                        }
                    }
                ],
                "identifier":  [
                    {
                        "system": "http://example.com/fhir/identifiers",
                        "value": "123456789"
                    }
                ],
                "description": "Laborbefund vom 28.9.2023",
                "subject": {
                    "display": "Max Mustermann"
                }
            },
            "search": {
                "mode": "match"
            }
        }
    ]
}

Verarbeitungsschritte im FD

  • Der FD MUSS die Suche auf DocumentReference-Ressourcen begrenzen die unter DocumentReference.related auf einen Benutzer verweisen welcher durch die KVNR aus dem Access-Token identifiziert wird, um sicherzustellen, dass nur DocumentReference-Ressourcen aus dem Postfach des angemeldeten Rechnungsempfängers zurückgegeben werden.

  • Der FD MUSS die Signatur-Extension (DocumentReference.extension:docRef-signature) vor der Rückgabe an den Client entfernen.

  • Falls es sich bei der DocumentReference um ein Rechnungsdokument handelt, MUSS der FD das Content-Element für das Rechnungspdf entfernen, sodass nur die Content-Elemente für das angereicherte PDF/A, sowie die strukturierten Rechnungsinhalte zurückgegeben werden.

  • Der FD MUSS sicherstellen, dass die Abfrage einer Binary-Ressource, welche unter DocumentReference.content.attachment.url referenziert wird, nur erfolgen kann, wenn:

    • ein valides Access-Token mitgeliefert wird UND
    • DocumentReference.subject zeigt auf einen Benutzeraccount mit einer KVNR, die identisch ist mit der KVNR aus dem Access-Token.
  • Es gelten die Festlegungen der FHIR-Kernspezifikation zur Handhabung von Binary-Ressourcen.

  • Der FD MUSS unter DocumentReference.context.related:anhaenge Referenzen auf alle Anhänge zurückgeben die im Kontext der initialen Einreichung (vgl. R1: Rechnung mit Dokumenten validieren und versenden) übergeben wurden an den FD. Die Anhänge MÜSSEN als DocumentReference-Ressourcen im SearchResult-Bundle zurückgegeben werden mit einem Hinweis, dass diese zusätzlich inkludiert wurden (Bundle.entry.search.mode = include).