R10: Nutzerprotokoll einsehen
Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das eRg FdV als Client. Anwendungsfall AF_10203 MUSS durch den FD über die spezifizierte API umgesetzt werden. Die Vorgaben aus "Tabelle 39: Use Case Nutzerprotokoll einsehen" des Feature-Dokumentes MÜSSEN eingehalten werden durch den FD.
HTTP-Methode | GET |
Endpunkt | /AuditEvent |
Suchparameter agent:text |
Kardinalität: 0..1 Name Rechnungsersteller/Kostenträger/FachdienstVersicherte Person Hinweis: Alle Akteure werden mit unterschiedlichen Rollen als agent erfasstType: string |
Suchparameter date |
Kardinalität: 0..1 Type: date |
Suchresultatparameter _sort |
Als Sortierkriterien können die oben genannten Suchparameter verwendet werden für die Inhalte die als Sortierkriterien in Tabelle 39: Use Case Nutzerprotokoll einsehen - 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
HTTP GET [fachdienst-endpunkt]/AuditEvent?agent:text=11223344
Antwort des Fachdienstes im Erfolgsfall:
HTTP 200 OK
mit Body:
Bundle |
id : BeispielNutzungsprotokollResultBundle |
type : searchset |
total : 1 |
entry |
fullUrl : [fachdienst-endpunkt]/AuditEvent/BeispielNutzungsprotokoll |
resource |
id : BeispielNutzungsprotokoll |
meta |
profile : https://gematik.de/fhir/erg/StructureDefinition/erg-nutzungsprotokoll |
type |
code : rest |
subtype |
code : erechnung-submit |
action : C |
recorded : 2024-05-29T11:25:54.123456+00:02 |
outcome : 0 |
agent |
type |
coding |
code : humanuser |
who |
identifier |
type |
coding |
system : http://terminology.hl7.org/CodeSystem/v2-0203 |
code : PRN |
system : https://gematik.de/fhir/sid/telematik-id |
value : 11223344 |
display : Beispiel Leistungsempfänmger |
requestor : True |
source |
observer |
display : FdV |
entity |
what |
reference : DocumentReference/BeispielDocumentReferenceRechnungRetrieve |
search |
mode : match |
<Bundle xmlns="http://hl7.org/fhir"> <id value="BeispielNutzungsprotokollResultBundle" /> <type value="searchset" /> <total value="1" /> <entry> <fullUrl value="[fachdienst-endpunkt]/AuditEvent/BeispielNutzungsprotokoll" /> <resource> <AuditEvent> <id value="BeispielNutzungsprotokoll" /> <meta> <profile value="https://gematik.de/fhir/erg/StructureDefinition/erg-nutzungsprotokoll" /> </meta> <type> <code value="rest" /> </type> <subtype> <code value="erechnung-submit" /> </subtype> <action value="C" /> <recorded value="2024-05-29T11:25:54.123456+00:02" /> <outcome value="0" /> <agent> <type> <coding> <code value="humanuser" /> </coding> </type> <who> <identifier> <type> <coding> <system value="http://terminology.hl7.org/CodeSystem/v2-0203" /> <code value="PRN" /> </coding> </type> <system value="https://gematik.de/fhir/sid/telematik-id" /> <value value="11223344" /> </identifier> <display value="Beispiel Leistungsempfänmger" /> </who> <requestor value="true" /> </agent> <source> <observer> <display value="FdV" /> </observer> </source> <entity> <what> <reference value="DocumentReference/BeispielDocumentReferenceRechnungRetrieve" /> </what> </entity> </AuditEvent> </resource> <search> <mode value="match" /> </search> </entry> </Bundle>
{ "resourceType": "Bundle", "id": "BeispielNutzungsprotokollResultBundle", "type": "searchset", "total": 1, "entry": [ { "fullUrl": "[fachdienst-endpunkt]/AuditEvent/BeispielNutzungsprotokoll", "resource": { "resourceType": "AuditEvent", "id": "BeispielNutzungsprotokoll", "meta": { "profile": [ "https://gematik.de/fhir/erg/StructureDefinition/erg-nutzungsprotokoll" ] }, "type": { "code": "rest" }, "subtype": [ { "code": "erechnung-submit" } ], "action": "C", "recorded": "05/29/2024 11:23:54", "outcome": "0", "agent": [ { "type": { "coding": [ { "code": "humanuser" } ] }, "who": { "identifier": { "type": { "coding": [ { "code": "PRN", "system": "http://terminology.hl7.org/CodeSystem/v2-0203" } ] }, "system": "https://gematik.de/fhir/sid/telematik-id", "value": "11223344" }, "display": "Beispiel Leistungsempfänmger" }, "requestor": true } ], "source": { "observer": { "display": "FdV" } }, "entity": [ { "what": { "reference": "DocumentReference/BeispielDocumentReferenceRechnungRetrieve" } } ] }, "search": { "mode": "match" } } ] }
Verarbeitungsschritte im FD
- Der FD MUSS die Suche auf AuditEvent-Ressourcen begrenzen die unter
AuditEvent.agent.who
auf einen Benutzer verweisen, welcher durch die KVNR aus dem Access-Token identifiziert wird, um sicherzustellen, dass nur persönliche AuditEvent-Ressourcen des angemeldeten Rechnungsempfänger zurückgegeben werden.