Operation API: AMTS-rZI Beobachtung invalidieren
Die Operation $entered-in-error
im Medication Service wird verwendet, um eine AMTS-rZI Observation als "entered-in-error" zu markieren. Diese Operation ermöglicht es, fälschlicherweise eingegebene Beobachtungsdaten zu kennzeichnen und zu verwalten, um die Datenintegrität im Medication Service zu gewährleisten. Die Operation $entered-in-error
MUSS auf der Instanz-Ebene der Ressource Observation ausgeführt werden. Die Operation stellt sicher, dass eine Observation als "entered-in-error" markiert wird und die Herkunft dieser Markierung durch die Angabe von Details über die durchführende Leistungserbringerinstitution und den Leistungserbringer nachvollziehbar ist.
- Diese Operation MUSS auf der Instanzebene der Observation ausgeführt werden.
- Diese Operation MUSS ausschließlich von derjenigen Leistungserbringerinstitution, die für die Erstellung der betreffenden Observation verantwortlich ist, durchgeführt werden.
- Eine andere Leistungserbringerinstitution DARF NICHT diese Operation für eine Observation ausführen.
OperationDefinition
Operation Definition: AMTS-rZI Observation Entered In Error
Geschäftslogik
Herkunftsnachweis
Der Herkunftsnachweis für die Werte aus den Input-Parametern (performer, enterer, author, unconfirmedAuthor und informant) MUSS in einer Provenance-Instanz mit dem Profil EPAProvenance gespeichert werden. Der Wert für den target
Parameter MUSS auf die spezifische Version der Ressourceninstanz verweisen.
Detaillierte Informationen zur Durchführung der Erstellung der Provenance-Instanz
Überprüfung der Telematik-ID bei einem Schreibvorgang
Jeder Lese- und Schreibvorgang erfordert die Authentifizierung der Leistungserbringerinstitution mittels OpenID Connect. Das signierte ID-Token des Identity Providers (IDP-Dienst) MUSS die Telematik-ID des zugreifenden Nutzers enthalten. Bei einem Schreibvorgang MUSS die Übereinstimmung der Telematik-ID des Nutzers überprüft und sichergestellt werden.
Voraussetzungen
Dem Medication 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 oder KVNR)
- 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 Medication 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 Nutzergruppen
professionOID |
---|
oid_versicherter |
oid_praxis_arzt |
oid_krankenhaus |
oid_institution |
oid_krankenhaus |
oid_institution-vorsorge-reha |
oid_zahnarztpraxis |
oid_praxis_psychotherapeut |
oid_institution-oegd |
oid_öffentliche_apotheke |
oid_institution-pflege |
oid_institution-geburtshilfe |
oid_praxis-physiotherapeut |
oid_institution-arbeitsmedizin |
Interaktion (Observation/[id]/$entered-in-error)
POST [base]/epa/medication/api/v1/fhir/Observation/[id]/$entered-in-error
OperationId: enteredInErrorObservation_MedicationSvc
Beispielanfrage
{ "resourceType": "Parameters", "id": "example-epa-op-entered-in-error-input-parameters-1", "meta": { "profile": [ "https://gematik.de/fhir/epa-medication/StructureDefinition/epa-op-entered-in-error-input-parameters" ] }, "parameter": [ { "name": "performer", "part": [ { "name": "organization", "resource": { "resourceType": "Organization", "id": "be51e0d2-783d-4e21-b16b-1a4cd7403515", "meta": { "tag": [ { "system": "https://gematik.de/fhir/directory/CodeSystem/Origin", "code": "ldap" } ], "profile": [ "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectory" ] }, "identifier": [ { "system": "https://gematik.de/fhir/sid/telematik-id", "value": "9-2.58.00000040" } ], "active": true, "type": [ { "coding": [ { "code": "1.2.276.0.76.4.58", "system": "https://gematik.de/fhir/directory/CodeSystem/OrganizationProfessionOID", "display": "Betriebsstätte gematik" } ] } ], "name": "gematik GmbH", "alias": [ "gematik" ], "address": [ { "text": "gematik GmbH\nFriedrichstr. 136, \n10117 Berlin", "line": [ "Friedrichstr. 136" ], "city": "Berlin", "district": "Mitte", "state": "Berlin", "postalCode": "10117", "country": "DE" } ], "contact": [ { "purpose": { "coding": [ { "code": "ADMIN", "system": "http://terminology.hl7.org/CodeSystem/contactentity-type" } ] }, "name": { "text": "gematik ITSM" }, "telecom": [ { "system": "email", "value": "betrieb@gematik.de" } ] } ] } }, { "name": "practitioner", "resource": { "resourceType": "Practitioner", "id": "498c345f-31f5-4da6-9f04-00fa2bc8af7c", "meta": { "tag": [ { "system": "https://gematik.de/fhir/directory/CodeSystem/Origin", "code": "ldap" } ], "profile": [ "https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectory" ] }, "identifier": [ { "system": "https://gematik.de/fhir/sid/telematik-id", "value": "1-1.58.00000040" }, { "system": "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR", "value": "123456789" } ], "active": true, "qualification": [ { "code": { "coding": [ { "code": "1.2.276.0.76.4.31", "system": "https://gematik.de/fhir/directory/CodeSystem/PractitionerProfessionOID" } ] } }, { "code": { "coding": [ { "code": "010", "system": "urn:oid:1.2.276.0.76.5.514", "display": "FA Allgemeinmedizin" } ] } }, { "code": { "coding": [ { "code": "523", "system": "urn:oid:1.2.276.0.76.5.514", "display": "FA Innere Medizin und (SP) Gastroenterologie" } ] } } ], "name": [ { "prefix": [ "Dr." ], "given": [ "Max", "Manfred" ], "family": "Musterman", "text": "Dr. Max Manfred Mustermann" } ] } }, { "name": "practitionerRole", "resource": { "resourceType": "PractitionerRole", "id": "ExampleEPAPractitionerRoleMax", "meta": { "versionId": "1", "lastUpdated": "2023-02-03T11:20:00+01:00", "profile": [ "https://gematik.de/fhir/epa/StructureDefinition/epa-practitioner-role" ] }, "organization": { "identifier": { "system": "https://gematik.de/fhir/sid/telematik-id", "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "PRN", "version": "2.9.0", "display": "Provider number" } ] }, "value": "9-2.58.00000040" }, "reference": "Organization/be51e0d2-783d-4e21-b16b-1a4cd7403515" }, "practitioner": { "reference": "Practitioner/498c345f-31f5-4da6-9f04-00fa2bc8af7c", "identifier": { "type": { "coding": [ { "version": "2.9.0", "code": "PRN", "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "display": "Provider number" } ] }, "system": "https://gematik.de/fhir/sid/telematik-id", "value": "1-1.58.00000040" } }, "code": [ { "coding": [ { "code": "API", "system": "https://gematik.de/fhir/terminology/CodeSystem/epa-role-care-cs", "display": "Ärztliche(r) PraxisinhaberIn", "version": "1.0.0" } ], "text": "Ärztlicher Praxisinhaber" } ], "specialty": [ { "coding": [ { "code": "01", "system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAR2_ARZTNRFACHGRUPPE", "display": "Allgemeinmedizin", "version": "1.03" } ], "text": "Allgemeinmedizin" } ], "telecom": [ { "system": "phone", "value": "0300000000000000" } ] } } ] } ] }
<Parameters xmlns="http://hl7.org/fhir"> <id value="example-epa-op-entered-in-error-input-parameters-1" /> <meta> <profile value="https://gematik.de/fhir/epa-medication/StructureDefinition/epa-op-entered-in-error-input-parameters" /> </meta> <parameter> <name value="performer" /> <part> <name value="organization" /> <resource> <Organization> <id value="be51e0d2-783d-4e21-b16b-1a4cd7403515" /> <meta> <profile value="https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectory" /> <tag> <system value="https://gematik.de/fhir/directory/CodeSystem/Origin" /> <code value="ldap" /> </tag> </meta> <identifier> <system value="https://gematik.de/fhir/sid/telematik-id" /> <value value="9-2.58.00000040" /> </identifier> <active value="true" /> <type> <coding> <system value="https://gematik.de/fhir/directory/CodeSystem/OrganizationProfessionOID" /> <code value="1.2.276.0.76.4.58" /> <display value="Betriebsstätte gematik" /> </coding> </type> <name value="gematik GmbH" /> <alias value="gematik" /> <address> <text value="gematik GmbH\nFriedrichstr. 136, \n10117 Berlin" /> <line value="Friedrichstr. 136" /> <city value="Berlin" /> <district value="Mitte" /> <state value="Berlin" /> <postalCode value="10117" /> <country value="DE" /> </address> <contact> <purpose> <coding> <system value="http://terminology.hl7.org/CodeSystem/contactentity-type" /> <code value="ADMIN" /> </coding> </purpose> <name> <text value="gematik ITSM" /> </name> <telecom> <system value="email" /> <value value="betrieb@gematik.de" /> </telecom> </contact> </Organization> </resource> </part> <part> <name value="practitioner" /> <resource> <Practitioner> <id value="498c345f-31f5-4da6-9f04-00fa2bc8af7c" /> <meta> <profile value="https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectory" /> <tag> <system value="https://gematik.de/fhir/directory/CodeSystem/Origin" /> <code value="ldap" /> </tag> </meta> <identifier> <system value="https://gematik.de/fhir/sid/telematik-id" /> <value value="1-1.58.00000040" /> </identifier> <identifier> <system value="https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR" /> <value value="123456789" /> </identifier> <active value="true" /> <name> <text value="Dr. Max Manfred Mustermann" /> <family value="Musterman" /> <given value="Max" /> <given value="Manfred" /> <prefix value="Dr." /> </name> <qualification> <code> <coding> <system value="https://gematik.de/fhir/directory/CodeSystem/PractitionerProfessionOID" /> <code value="1.2.276.0.76.4.31" /> </coding> </code> </qualification> <qualification> <code> <coding> <system value="urn:oid:1.2.276.0.76.5.514" /> <code value="010" /> <display value="FA Allgemeinmedizin" /> </coding> </code> </qualification> <qualification> <code> <coding> <system value="urn:oid:1.2.276.0.76.5.514" /> <code value="523" /> <display value="FA Innere Medizin und (SP) Gastroenterologie" /> </coding> </code> </qualification> </Practitioner> </resource> </part> <part> <name value="practitionerRole" /> <resource> <PractitionerRole> <id value="ExampleEPAPractitionerRoleMax" /> <meta> <versionId value="1" /> <lastUpdated value="2023-02-03T11:20:00+01:00" /> <profile value="https://gematik.de/fhir/epa/StructureDefinition/epa-practitioner-role" /> </meta> <practitioner> <reference value="Practitioner/498c345f-31f5-4da6-9f04-00fa2bc8af7c" /> <identifier> <type> <coding> <system value="http://terminology.hl7.org/CodeSystem/v2-0203" /> <version value="2.9.0" /> <code value="PRN" /> <display value="Provider number" /> </coding> </type> <system value="https://gematik.de/fhir/sid/telematik-id" /> <value value="1-1.58.00000040" /> </identifier> </practitioner> <organization> <reference value="Organization/be51e0d2-783d-4e21-b16b-1a4cd7403515" /> <identifier> <type> <coding> <system value="http://terminology.hl7.org/CodeSystem/v2-0203" /> <version value="2.9.0" /> <code value="PRN" /> <display value="Provider number" /> </coding> </type> <system value="https://gematik.de/fhir/sid/telematik-id" /> <value value="9-2.58.00000040" /> </identifier> </organization> <code> <coding> <system value="https://gematik.de/fhir/terminology/CodeSystem/epa-role-care-cs" /> <version value="1.0.0" /> <code value="API" /> <display value="Ärztliche(r) PraxisinhaberIn" /> </coding> <text value="Ärztlicher Praxisinhaber" /> </code> <specialty> <coding> <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAR2_ARZTNRFACHGRUPPE" /> <version value="1.03" /> <code value="01" /> <display value="Allgemeinmedizin" /> </coding> <text value="Allgemeinmedizin" /> </specialty> <telecom> <system value="phone" /> <value value="0300000000000000" /> </telecom> </PractitionerRole> </resource> </part> </parameter> </Parameters>
Beispielantwort
{ "resourceType": "OperationOutcome", "id": "255002c7-aa1b-4163-bdd4-ede482453cca", "meta": { "profile": [ "https://gematik.de/fhir/epa/StructureDefinition/epa-operation-outcome" ] }, "issue": [ { "severity": "information", "code": "informational", "details": { "coding": [ { "code": "MEDICATIONSVC_OPERATION_SUCCESS", "system": "https://gematik.de/fhir/epa/CodeSystem/epa-operation-outcome-codes-cs", "display": "Operation Successfully Completed in Medication Service" } ] } } ] }
<OperationOutcome xmlns="http://hl7.org/fhir"> <id value="255002c7-aa1b-4163-bdd4-ede482453cca" /> <meta> <profile value="https://gematik.de/fhir/epa/StructureDefinition/epa-operation-outcome" /> </meta> <issue> <severity value="information" /> <code value="informational" /> <details> <coding> <system value="https://gematik.de/fhir/epa/CodeSystem/epa-operation-outcome-codes-cs" /> <code value="MEDICATIONSVC_OPERATION_SUCCESS" /> <display value="Operation Successfully Completed in Medication Service" /> </coding> </details> </issue> </OperationOutcome>
Antwort-Status-Codes
Status Code | Bedingung | Error Code | Bemerkung |
---|---|---|---|
200 | Successful operation | EPA OperationOutcome | |
400 | Invalid request | EPA OperationOutcome | |
403 | Requestor role is not in the list of allowed user groups | invalidOid | |
403 | Requestor is not entitled | notEntitled | |
403 | ID-Token or Insurant-ID mismatch | EPA OperationOutcome | |
404 | Resource is not known | EPA OperationOutcome | |
404 | Unknown resource type | EPA OperationOutcome | |
404 | Not Found | EPA OperationOutcome | |
404 | Health record is in state UNKNOWN or INITIALIZED | noHealthRecord | (siehe 'Wiederholungsintervalle') |
409 | Health record is in state SUSPENDED | statusMismatch | (siehe 'Wiederholungsintervalle') |
423 | If the insurant objected to the medication process or objected to the submission of prescription and dispensation data into the ePA system, the Medication Service is locked. | locked | |
500 | Any other error | internalError | (siehe 'Wiederholungsintervalle') |
Serviceübergreifende Error Codes ohne Verweis auf EPA OperationOutcome MÜSSEN mit dem entsprechenden HTTP Status Code vom Medication Service mit dem Media Type application/json
nach folgendem Schema zurückgegeben werden:
{ "errorCode": "statusMismatch" }