Versicherteninformationen hinzufügen/aktualisieren

Das Hinzufügen und Aktualisieren einer Patient-Ressource wird vom zugehörigen Kostenträger über die RESTful API mittels HTTP PUT-Anfrage (s.u.) für den Versicherten durchgeführt. Der Patient Information Service MUSS die Semantik des Conditional Update umsetzten.

Das folgende UML-Sequenzdiagramm verdeutlicht das Einstellen einer Patient-Ressource sowie Nachnutzung in einem FHIR Service (hier: Medication Service).


Profile: EPAPatient Profile

Voraussetzungen

Dem Patient Information Service MÜSSEN zur Auswertung in Operationen für jede Aktivität die folgenden Informationen bereitstehen:

  • Name des Nutzers
  • Nutzergruppe/Rolle ((profession-)oid)
  • Kennung (Telematik-ID)
  • Hinweis auf eine gültige Befugnis des aktuellen Benutzers (requestor)

HTTP Header-Parameter

Ein ePA-Client MUSS die folgenden HTTP Header bei einer Anfrage an den Patient Information Service setzen:

Name Anforderung Datentyp Beschreibung
x-insurantid MUSS String Health Record Identifier
x-useragent KANN String User Agent Information
X-Request-ID MUSS String UUID der Nachricht

Wiederholungsintervalle

Die folgenden Wiederholungsintervalle werden im Falle einer Fehlerantwort definiert:

  • '409' Conflict (statusMismatch)
    • etwa 24 Stunden
  • '500' Internal Error
    • etwa 10 Minuten

Erlaubte Nutzergruppe

professionOID
oid_kostentraeger

Interaktion (Conditional Update Patient)

PUT [base]/epa/patient/api/v1/fhir/Patient?identifier=http://fhir.de/sid/gkv/kvid-10|G995030566

OperationId: upsertPatient_PatientInfoSvc

Beispielanfrage

{
    "resourceType": "Patient",
    "id": "ExampleEPAPatient",
    "meta": {
        "profile":  [
            "https://gematik.de/fhir/epa/StructureDefinition/epa-patient"
        ]
    },
    "name":  [
        {
            "use": "official",
            "family": "Gundlach",
            "given":  [
                "Monika"
            ],
            "prefix":  [
                "Dr."
            ],
            "_prefix":  [
                {
                    "extension":  [
                        {
                            "url": "http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier",
                            "valueCode": "AC"
                        }
                    ]
                }
            ]
        },
        {
            "use": "maiden",
            "family": "Blohm",
            "_family": {
                "extension":  [
                    {
                        "url": "http://hl7.org/fhir/StructureDefinition/humanname-own-name",
                        "valueString": "Blohm"
                    }
                ]
            }
        }
    ],
    "identifier":  [
        {
            "system": "http://fhir.de/sid/gkv/kvid-10",
            "value": "G995030566"
        }
    ],
    "active": true,
    "gender": "female",
    "birthDate": "1954-02-27"
}
<Patient xmlns="http://hl7.org/fhir">
    <id value="ExampleEPAPatient" />
    <meta>
        <profile value="https://gematik.de/fhir/epa/StructureDefinition/epa-patient" />
    </meta>
    <identifier>
        <system value="http://fhir.de/sid/gkv/kvid-10" />
        <value value="G995030566" />
    </identifier>
    <active value="true" />
    <name>
        <use value="official" />
        <family value="Gundlach" />
        <given value="Monika" />
        <prefix value="Dr.">
            <extension url="http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier">
                <valueCode value="AC" />
            </extension>
        </prefix>
    </name>
    <name>
        <use value="maiden" />
        <family value="Blohm">
            <extension url="http://hl7.org/fhir/StructureDefinition/humanname-own-name">
                <valueString value="Blohm" />
            </extension>
        </family>
    </name>
    <gender value="female" />
    <birthDate value="1954-02-27" />
</Patient>

Antwort-Status-Codes

Status Code Bedingung Error Code Bemerkung
200 Successful operation
400 Unknown search parameter
403 Requestor role is not in the list of allowed user groups invalidOid
403 Insurant-ID mismatch
404 Unknown resource type Addressed resource is not of type Patient
404 Health record is in state UNKNOWN or INITIALIZED noHealthRecord (siehe 'Wiederholungsintervalle')
409 Health record is in state SUSPENDED statusMismatch (siehe 'Wiederholungsintervalle')
500 Any other error internalError (siehe 'Wiederholungsintervalle')

Error Codes MÜSSEN mit dem entsprechenden HTTP Status Code vom Patient Information Service mit dem Media Type application/json nach folgendem Schema zurückgegeben werden:

{
  "errorCode": "statusMismatch"
}

Überprüfung der Aktenidentität bei einem Schreibvorgang

Jeder Schreibvorgang in das Aktenkonto des Versicherten MUSS durch den Patient Information Service dahingehend geprüft werden, dass der durch den HTTP Header angegebene Parameter x-insurantid (Health Record Identifier) mit der übergebenen KVNR übereinstimmt.