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 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 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.

ToDo: Custom SearchParameter definieren

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" />
    <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&#228;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": "2024-05-29T11:25:54.123456+00:02",
                "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.