R5: Abruf von Rechnungen (Rechnungsempfänger)

Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das DiPag 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
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 dipag-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 Digitale Patientenrechnung 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?_tag=offen

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