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.