Implementation Guide
ePA Medication Service
Version 1.0.5-1 - release

## Query API: Medication (Medikation)

Die Query API: Medication ermöglicht den Abruf von Medikationsdaten eines Versicherten im Medication Service.

### Nachricht

Die Nachricht zum Abruf von Medikationsdaten wird als HTTP GET-Anfrage an den Medication Service gesendet, um eine Liste der hinterlegten Medication-Instanzen abzurufen.

#### Auslösung

Wenn das ePA-Client-System eine Suche nach Medikationsdaten durchführen und dazu die korrespondierenden Medication-Ressourcen ermitteln möchte, sendet es eine Query API: Medication-Nachricht an den Medication Service.

#### Resource API

Anfragen an die Medication-Ressource können über die RESTful API mittels HTTP GET-Anfragen durchgeführt werden. Dabei können spezifische Suchparameter genutzt werden, um die Anfragen zu verfeinern. Zum Beispiel:

- Durch die Verwendung von `?code=[code]` kann nach Medikationen gesucht werden, die einem bestimmten Code entsprechen.
- Die Verwendung von `?status=active` kann genutzt werden, um nur aktive Medikationen zu suchen.

Bei Anfragen an die QueryAPI für die Medication-Ressource wird die Antwort als ein FHIR Bundle des Typs searchset zurückgegeben. Dieses Bundle enthält eine Sammlung von Einträgen, die jeweils eine Instanz der Medication-Ressource oder weitere Ressourcen im Zusammenhang mit der Abfrage enthalten können.

contentTypes: - "application/fhir+json" headerParams: - name: "x-insurantid" expectation: "MUSS" type: "string" description: "Health Record Identifier" - name: "x-useragent" expectation: "MUSS" type: "string" description: "User Agent Information" - name: "X-Request-ID" expectation: "MUSS" type: "string" description: "UUID der Nachricht" responses: - statusCode: '200' description: "Successful operation" errorCode: "-" note: "-" - statusCode: '400' description: "Unknown search parameter" errorCode: "-" note: "EPAOperationOutcome" - statusCode: '400' description: "Invalid query parameter(s)" errorCode: "-" note: "EPAOperationOutcome" - statusCode: '400' description: "Invalid request" errorCode: "-" note: "EPAOperationOutcome" - statusCode: '404' description: "Unknown resource type" errorCode: "-" note: "EPAOperationOutcome" responses: - statusCode: '200' description: "Successful operation" errorCode: "-" note: "-" - statusCode: '400' description: "Invalid request" errorCode: "malformedRequest" note: "-" - statusCode: '400' description: "Invalid request" errorCode: "-" note: "EPAOperationOutcome" - statusCode: '404' description: "Unknown resource type" errorCode: "-" note: "EPAOperationOutcome" - statusCode: '404' description: "Resource is not known" errorCode: "-" note: "EPAOperationOutcome" base: "[base]" paths: /epa/medication/api/v1/fhir/Medication: get: include: - "#default-api" - "#query-responses" operationId: "listMedications_MedicationSvc" fhir: capabilityStatement: url: "CapabilityStatement-epa-medication-service-server.json" forResourceType: "Medication" responseExamples: - name: "application/fhir+json" type: JSON url: './Bundle-example-searchset-medication.json' Der Medication Service MUSS die Suchparameter der Ressource Medication verarbeiten können, wie sie im CapabilityStatement mit dem Namen EPAMedicationServiceServer festgelegt sind. Die Standardsortierung des Medication Service für die Ressource Medication MUSS anhand des Attributs _lastUpdated erfolgen.

#### Instance API

Um spezifische Details zu einer einzelnen Medication-Instanz mittels der RESTful API zu erhalten, wird die Medication Instance API verwendet, indem eine HTTP GET-Anfrage an den Endpunkt /Medication/[id] gestellt wird.

base: "[base]" paths: /epa/medication/api/v1/fhir/Medication/[id]: get: include: - "#default-api" - "#instance-responses" operationId: "getMedicationById_MedicationSvc"

#### Verarbeitung

Der Medication Service verarbeitet die Anfrage, um die Medication-Einträge zu ermitteln, die den angegebenen Suchparametern entsprechen. Darüber hinaus gibt er einen zur Verarbeitung passenden HTTP Status Code sowie ein FHIR Bundle der passenden Medication-Ressourcen zurück.

### Sicherheitsanforderungen

Generelle Sicherheitsanforderungen werden hier festgehalten.