R10: Nutzerprotokoll einsehen

Die nachfolgende Interaktion ist relevant für den FD als Server, sowie für das DiPag 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 erfasst
Type: 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 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

HTTP GET [fachdienst-endpunkt]/AuditEvent?agent:text=11223344

Antwort des Fachdienstes im Erfolgsfall:

HTTP 200 OK

mit Body:

Bundle
<Bundle xmlns="http://hl7.org/fhir">
<id value="BeispielNutzungsprotokollResultBundle" />
<type value="searchset" />
<total value="1" />
<fullUrl value="[fachdienst-endpunkt]/AuditEvent/BeispielNutzungsprotokoll" />
<AuditEvent>
<id value="BeispielNutzungsprotokoll" />
<profile value="https://gematik.de/fhir/dipag/StructureDefinition/dipag-nutzungsprotokoll" />
</meta>
<code value="rest" />
</type>
<code value="invoice-submit" />
</subtype>
<action value="C" />
<recorded value="2024-05-29T11:25:54.123456+00:02" />
<outcome value="0" />
<code value="humanuser" />
</coding>
</type>
<who>
<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>
<display value="FdV" />
</observer>
</source>
<reference value="DocumentReference/BeispielDocumentReferenceRechnungRetrieve" />
</what>
</entity>
</AuditEvent>
</resource>
<mode value="match" />
</search>
</entry>
</Bundle>
{
"resourceType": "Bundle",
"id": "BeispielNutzungsprotokollResultBundle",
"type": "searchset",
"total": 1,
"entry": [
{
"fullUrl": "[fachdienst-endpunkt]/AuditEvent/BeispielNutzungsprotokoll",
"resourceType": "AuditEvent",
"id": "BeispielNutzungsprotokoll",
"meta": {
"profile": [
"https://gematik.de/fhir/dipag/StructureDefinition/dipag-nutzungsprotokoll"
]
},
"type": {
"code": "rest"
},
"subtype": [
{
"code": "invoice-submit"
}
],
"action": "C",
"recorded": "2024-05-29T11:25:54.123456+00:02",
"outcome": "0",
"agent": [
{
"type": {
"coding": [
{
"code": "humanuser"
}
]
},
"who": {
"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": {
"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.