Implementation Guide
ePA Medication Service
Version 1.0.5-1 - release

Operation API: Verschreibungsdaten einstellen (E-Rezept-Fachdienst)

Die Operation Verschreibungsdaten einstellen wird vom E-Rezept-Fachdienst ausgeführt und ist eine spezielle Funktion, die dazu dient, bereits erstellte elektronische Verschreibungen in den Medication Service zu übertragen. Sie beinhaltet nicht das Erstellen der Verschreibungsdaten, sondern konzentriert sich darauf, eine bereits erzeugte Verschreibung sicher in den Medication Service hochzuladen und dauerhaft zu speichern. Die nachstehende Abbildung verdeutlicht die Kommunikationsflüsse für das Einstellen einer Verschreibung in den Medication Service per FHIR Operation Verschreibungsdaten einstellen.

ePA-AktensystemePA-Aktensystem / VAUPVS/KISE-Rezept-FachdienstInformation ServiceVAUSessionManagementMedication Service1Anfrage: Verordnungsdaten übermitteln2Durchführen der standardmäßigen Workflow-Logik des E-Rezept-Fachdienstes3Antwort: Erfolg4Persistieren der Verordnungsdaten in einer Warteschlangefür die asynchrone ÜbertragungrefLokalisierung der Service-Endpunkte der ePA und der Akte eines Versicherten5Anfrage: Widerspruchsinformationen zum Einstellen durch E-Rezept-Fachdienst6Antwort: Widerspruchsinformationenalt[Widerspruch zum Einstellen durch E-Rezept-Fachdienst vorhanden]7Abbruch. Löschen der Verordnungsdaten aus der Warteschlange[Kein Widerspruch zum Einstellen durch E-Rezept-Fachdienst]refLogin in die Akte des Versicherten8Erzeugen der FHIR-Ressourcen MedicationRequest, Medication, Practitioner, Organizationauf Grundlage der Verordnungsdaten sowie rxPrescriptionProcessIdentifier9Übermittlung der erzeugten FHIR-Ressourcen als FHIR Operation per HTTP POST10FHIR-Ressourcenpersistierenalt[successful case]11Antwort: Transaktion erfolgreich12Löschen der Verordnungsdaten aus der Warteschlange13Abbruch. Die Verordnungsdaten bleiben in der Warteschlange für eine spätere Übertragung
Abbildung: Anwendungsfall Verschreibungsdaten einstellen

Nachricht

Die Nachricht zum Übertragen von Verschreibungsdaten wird als HTTP POST-Anfrage an den Medication Service gesendet.

Auslösung

Der E-Rezept-Fachdienst sendet eine Verschreibungsdaten einstellen-Nachricht an den Medication Service, um eine bereits erstellte elektronische Verschreibung zu übertragen. Der Medication Service verarbeitet die empfangenen Daten und speichert die Verschreibung dauerhaft.

FHIR Operation API

Der Medication Service MUSS die Operation API: Verschreibungsdaten einstellen (E-Rezept-Fachdienst) gemäß der FHIR OperationDefinition Provide Prescription eRP ausführen. Die Verarbeitung der Verschreibungsdaten MUSS entsprechend den in der OperationDefinition festgelegten Regeln und Strukturen erfolgen. Der Medication Service MUSS die Operation Verschreibungsdaten einstellen (E-Rezept-Fachdienst) mittels einer HTTP POST-Anfrage verarbeiten. Die empfangenen Verschreibungsdaten MÜSSEN entsprechend verarbeitet und die Informationen zu den Verschreibungen dauerhaft gespeichert werden. Der Medication Service MUSS für die Operation Verschreibungsdaten einstellen (E-Rezept-Fachdienst) einen Partial Success ermöglichen.
  • Falls einzelne elektronische Verschreibungen erfolgreich verarbeitet wurden, MUSS der Medication Service die zugehörigen prescriptionId und authoredOn Werte in der Antwort zurückgeben.
  • Falls einzelne Verschreibungen nicht verarbeitet werden können, MUSS der Medication Service für diese ein OperationOutcome in der Antwort bereitstellen.
  • Auch bei einer erfolgreichen Verarbeitung MUSS der Medication Service ein OperationOutcome mit einer entsprechenden Bestätigung bereitstellen.
  • Der HTTP Response Code MUSS 200 OK sein, unabhängig davon, ob ein oder mehrere Verschreibungen fehlschlagen.

Geschäftslogik

Das folgende Aktivitätsdiagramm illustriert die Geschäftslogik der Operation Verschreibungsdaten einstellen (E-Rezept-Fachdienst) im Medication Service.

$provide-prescription-erpReturn errorOperationOutcomewith code forbidden and detailsSVC_IDENTITY_MISMATCHno Check if the KVNR-based logical reference(s) inthe subject element of the MedicationRequest resourcecorrespond(s) to the x-insurant value in the HTTP header. ValidateMedicationRequest,Medication,OrganizationandPractitionerfromInput-Parameters[x].RxPrescription.partValidation successfullyesnoGenerateRxPrescriptionProcessIdentifierfrom values of Input-Parameters[x].RxPrescription.part.authoredOnand Input-Parameters[x].RxPrescription.part.PrescriptionId Check whether there is aMedicationRequestwithRxPrescriptionProcessIdentifier yesnoAdd errorOperationOutcome(MEDICATIONSVC_PRESCRIPTION_DUPLICATE)or (MEDICATIONSVC_PRESCRIPTION_STATUS) toOutput-ParameterstransactionCheck for existingOrganizationwith TelematikID from Input-Parameters[x].RxPrescription.part.OrganizationOrganizationexists?yesno«Update»OrganizationfromInput-Parameters[x].RxPrescription.part.Organization identifier[TelematikID] = Value(TelematikID)Replace all other elements with given resource instance«Create»OrganizationfromInput-Parameters[x].RxPrescription.part.Organization identifier[TelematikID] = Value(TelematikID)Set all other elements with given resource instanceCheck for ExistingPractitionerwith TelematikId from Input-Parameters[x].RxPrescription.part.PractitionerPractitionerexists?yesno«Update»PractitionerfromInput-Parameters[x].RxPrescription.part.Practitioner identifier[TelematikID] = Value(TelematikID)Replace all other elements with given resource instance«Create»PractitionerfromInput-Parameters[x].RxPrescription.part.Practitioner identifier[TelematikID] = Value(TelematikID)Set all other elements with given resource instanceCheck for ExistingPractitionerRolewith references to specificOrganizationandPractitioner«Create»PractitionerRolepractitioner = Reference(Practitioner)organization = Reference(Organization)noPractitionerRoleexists?yesGenerate forRxOriginatorProcessIdentifierfrom values ofInput-Parameters[x].RxPrescription.part.Medication.Id and Input-PrescriptionIdGenerate forEPAMedicationUniqueIdentifierfrom hashedInput-Parameters[x].RxPrescription.part.Medication«Create»MedicationfromInput-Parameters[x].RxPrescription.part.Medicationidentifier[EPAMedicationUniqueIdentifier] = Value(EPAMedicationUniqueIdentifier)identifier[RxOriginatorProcessIdentifier] = Value(RxOriginatorProcessIdentifier)extension[RxPrescriptionProcessIdentifier] = Value(RxPrescriptionProcessIdentifier)status =inactiveSet all other elements with given resource instanceGenerate forRxOriginatorProcessIdentifierfrom values ofInput-Parameters[x].RxPrescription.part.MedicationRequest.IdandInput-Parameters[x].RxPrescription.part.PrescriptionId«Create»MedicationRequestfromInput-Parameters[x].RxPrescription.part.MedicationRequestidentifier[RxPrescriptionProcessIdentifier] = Value(RxPrescriptionProcessIdentifier)identifier[RxOriginatorProcessIdentifier] = Value(RxOriginatorProcessIdentifier)status=activeintent=filler-ordersubject=IdentifierKvid10medicationReference = Reference(Medication)requester = Reference(PractitionerRole)Add informationOperationOutcome(MEDICATIONSVC_OPERATION_SUCCESS) toOutput-ParametersAdd errorOperationOutcome(MEDICATIONSVC_NO_VALID_STRUCTURE) toOutput-ParametersGet nextRxPrescriptionfromInput-ParametersnoIf nextInput-ParametersexistsyesReturn "Output-Parameters"
Abbildung: Geschäftslogik des Medication Service für die Operation Verschreibungsdaten einstellen (E-Rezept-Fachdienst)

Sicherheitsanforderungen

Generelle Sicherheitsanforderungen werden hier festgehalten.