FHIR-spezifische Anforderungen
Abhängige Implementation Guides und Pakete
Dieser Leitfaden ist abhängig von folgenden weiteren Leitfäden oder FHIR-Paketen:
FHIR Server-spezifische Festlegungen
Die folgenden Rahmenbedingungen hinsichtlich der FHIR-Spezifikation sind für den Medication Service festgelegt.
- Aufgrund der gesetzlich intendierten, fehlenden Leseberechtigung des E-Rezept-Fachdienstes kann keine FHIR-Ressource Patient in den zu übertragenden FHIR-Ressourcen referenziert werden, sodass lediglich eine Verknüpfung über einen übergebenen KVNR-Identifier eingesetzt wird. Konkret MÜSSEN E-Rezept-Fachdienst sowie Medication Service sicherstellen, dass die FHIR-Elemente
MedicationRequest.subject.identifier
sowieMedicationDispense.subject.identifier
an den von HL7 Deutschland e.V. definierten Datentyp Identifier für Patient gebunden ist. - Das Löschen von Verschreibungsdaten oder Dispensierinformationen innerhalb des E-Rezept-Fachdienstes wird im Medication Service über ein Ändern des Status (d.h. Status = "cancelled") umgesetzt.
- Für die FHIR Operations ist es erforderlich, dass eine Referenzierung der Ressourcen innerhalb des Parameters möglich ist.
Eindeutigkeit von FHIR-Ressourcen
Der Medication Service MUSS ausschließlich zeitbasierte Universally Unique IDentifier (UUID) gemäß RFC 4122 für logische IDs (d.h. FHIR-Element Resource.id
) verwenden.
De-Duplizierung
Die zentrale De-Duplizierung bei inhaltlich identischen Ressourcen im Medication Service ist von entscheidender Bedeutung, um sowohl den Nutzen als auch die Qualität der Daten im Medication Service zu gewährleisten. Durch den nachstehenden Ansatz wird vermieden, dass ePA-Clients eigene, möglicherweise unterschiedliche Aggregierungsalgorithmen dezentral implementieren, was zu Inkonsistenzen in den Daten des Medication Service führen könnte. Zusätzlich verbessert eine zentrale De-Duplizierung die Verknüpfbarkeit und Integration der vorhandenen FHIR-Ressourcen.
Zur eindeutigen Identifizierung werden im Rahmen einer Verschreibung und ihr zugeordnete Dispensierinformationen die folgenden Identifier erzeugt und den notwendigen FHIR-Ressourcen hinzugefügt:
RxPrescriptionProcessIdentifier
: Dieser im Medication Service erzeugte Identifier nach dem Schema (Prescription-ID + "_" + authoredOn[YYYYMMDD]) wird derMedicationRequest
-,MedicationDispense
- sowieMedication
-Ressource hinzugefügt.EPAMedicationUniqueIdentifier
: Dieser im Medication Service erzeugte Identifier anMedication
-Ressourcen stellt die Eindeutigkeit anhand von Hashwerten über Pharmazentralnummer (PZN), Wirkstoff oder Freitext sicher. Von der Hashwertbildung ausgenommen sind die FHIR-Elementeid
,identifier
,meta
,amount
,batch
sowiestatus
(siehe auch Anforderungen an den EPAMedicationUniqueIdentifier).RxOriginatorProcessIdentifier
: Dieser im Medication Service erzeugte Identifier verknüpft jede Prescription-ID mit der ursprünglichen Resource-ID des Erstellungssystems, um eine präzise Nachverfolgung und Koordination der Arzneimitteldaten zu gewährleisten. Die Erstellung erfolgt nach dem Schema Resource-ID + "_" + Prescription-ID
Damit können bei systeminternen Vergleichen in den Geschäftslogiken gleichartige Ressourcen erkannt und verknüpft werden, anstatt sie neu anzulegen. Bei eingestellten medizinischen Daten wird stets der Versicherte per KVNR referenziert. Im Medication Service selbst liegt eine korrespondierende Instanz der FHIR-Ressource Patient
vor, sodass bei Abruf von medizinischen Daten eine Auflösung erfolgen kann.
Versionierung
Versionierungsunterstützung
Jede Änderung an einer FHIR-Ressource resultiert in einer neuen Version dieser Ressource, wobei jede Version eine eindeutige Meta.versionId
und ein Meta.lastUpdated
erhält. Auch eine erstmalig registrierte FHIR-Ressource MUSS der Medication Service mit diesen Metadaten versehen. Dies ermöglicht es, den vollständigen Änderungsverlauf einer Ressource nachzuvollziehen. Der Medication Service ist damit in der Lage, die Historie aller Versionen einer Ressource zu speichern und zugänglich zu machen. Dies schließt das Abrufen früherer Versionen einer Ressource über die FHIR API unter Verwendung der Meta.versionId
ein. Bei einer gleichzeitigen Aktualisierung derselben Ressource muss der Medication Service Konflikte erkennen und lösen können.
Bei einer Aktualisierung einer FHIR-Instanz mit denselben Werten DARF der Medication Service NICHT neue Version der Instanz erstellen. Die FHIR-Instanz bleibt bei der aktuellen Version.
HTTP GET-Anfrage
Um eine spezifische Version einer Ressource abzurufen, kann eine einfache HTTP GET-Anfrage an den Medication Service gesendet werden. Die URL für den Abruf einer bestimmten Version einer Ressource folgt diesem allgemeinen Muster:
GET [base]/[resourceType]/[id]/_history/[versionId]
Dabei ist:
resourceType
der Typ der Ressource (z.B.Medication
,MedicationStatement
)id
die eindeutige ID der RessourceversionId
der spezifischeMeta.versionId
der abzurufenden Ressourcenversion
Beispiel
Um die 3. Version einer MedicationStatement
-Instanz mit der ID "391fc0c6-e045-48d9-8af6-3ac2466beb88" vom Medication Service abzurufen, muss die URL für die HTTP GET-Anfrage wie folgt aussehen:
GET [base]/epa/medication/api/v1/fhir/MedicationStatement/391fc0c6-e045-48d9-8af6-3ac2466beb88/_history/3
Versionierte Referenzen
Versionierte Referenzen in FHIR ermöglichen es, innerhalb einer FHIR-Ressource auf eine spezifische Version einer anderen Ressource zu verweisen. Dies ist besonders wichtig in Szenarien, in denen die Genauigkeit und der Kontext der bezogenen Daten über die Zeit erhalten bleiben müssen, wie zum Beispiel bei der Verifizierung einer Medikationsplanung.
In FHIR kann eine Referenz auf eine andere Ressource in der Regel durch die Angabe des Ressourcentyps und der ID erfolgen. Versionierte Referenzen erweitern dieses Konzept, indem sie es ermöglichen, zusätzlich die Version der referenzierten Ressource anzugeben. Dies stellt sicher, dass immer auf den exakten Zustand der referenzierten Ressource zum Zeitpunkt der Referenzerstellung Bezug genommen wird, unabhängig von späteren Änderungen oder Aktualisierungen dieser Ressource.
Eine versionierte Referenz in FHIR beinhaltet den Ressourcentyp, die Ressourcen-ID und die spezifische Meta.versionId
der referenzierten Ressource. Das Format sieht wie folgt aus:
[resourceType]/[id]/_history/[versionId]
Beispiel für eine versionierte Referenz auf eine spezifische Version einer MedicationStatement-Instanz:
MedicationStatement/391fc0c6-e045-48d9-8af6-3ac2466beb88/_history/4
In diesem Beispiel bezieht sich die Referenz auf die 4. Version der MedicationStatement-Instanz mit der ID "391fc0c6-e045-48d9-8af6-3ac2466beb88".
Löschen als Versionierungsergebnis
Im Medication Service wird das Löschen einer Ressource als ein weiteres Ereignis im Lebenszyklus einer Ressource behandelt. Das bedeutet: Anstatt die Ressource physisch zu entfernen, wird die Ressource als gelöscht markiert und eine neue Version der Ressource erstellt, welche diesen Zustand widerspiegelt. Obwohl eine Ressource als gelöscht markiert wurde, können frühere Versionen über die versionsspezifischen Endpunkte (s.o.) abgerufen werden.
Hard Delete
Der Medication Service setzt weiterhin eine Hard-Delete-Funktion um. Ein Hard Delete bezieht sich auf das vollständige und unwiederbringliche Entfernen einer Ressource aus dem Medication Service, ohne dass eine Versionshistorie verbleibt. Diese Funktion MUSS ausschließlich für die Task-Ressource angewendet werden, beispielsweise beim asynchronen Verlinken von Verschreibungsdaten mit Medikationsplanungsdaten.
Persistieren der Profilversion
Beim Erzeugen von FHIR-Ressourcen im Medication Service (üblicherweise als Reaktion auf die Anfrage eines Clients hin) MUSS der Medication Service jede zu speichernde Ressource gegen das dazugehörige aktuelle Profil validieren. Die Information, gegen welches Profil in welcher Version geprüft wurde, MUSS der Medication Service in der jeweiligen Ressource in Meta.profile
speichern.
Rückgabe des EPACapabilityStatementMedication
Der Medication Service MUSS die Funktion GET [base]/epa/medication/api/v1/fhir/metadata
implementieren. Diese Funktionalität stellt sicher, dass bei einem Aufruf von /metadata
das EPACapabilityStatementMedication des Servers zurückgegeben wird. Dieses Capability Statement bietet eine detaillierte Beschreibung der Fähigkeiten des Medication Service und ist entscheidend für das Verständnis der unterstützten FHIR-Funktionalitäten.
Must-Support
Als Must-Support deklarierte Elemente müssen durch jedes System, welches diese Spezifikation implementiert, unterstützt werden. Das bedeutet, dass das jeweilige System diese interpretieren und verarbeiten können muss. Die Deklarierung als Must-Support wird in der Anzeige der Profile auf Simplifier durch eine rotes "S" gekennzeichnet.
Festlegungen für die Medikationsplanung
Umgang mit Code/Bezeichnung beziehungsweise CodeableConcept
Es gibt an vielen Stellen die Möglichkeit ein Konzept, also den Wert eines Elementes, über eine Anzahl von Codes und/oder einem Freitext abzubilden. Dies heißt im Informationsmodell in der Regel Code/Bezeichnung und entspricht in HL7®-FHIR® dem Datentyp CodeableConcept. Dieser kann, vereinfacht gesagt, entweder aus einer textuellen Beschreibung des Konzeptes bestehen (nur Text), der Codierung mithilfe eines in einem Codesystem definiertem Codes mit dazugehörigem Wiedergabename (nur Code/mehrere Codes) oder aber aus einer Kombination aus beidem (Text und Codes). Die Verwendung mehrerer Codes aus unterschiedlichen Codesystemen und eines Freitextes für ein und dasselbe Konzept ist hier explizit erlaubt und je nach Kontext auch fachlich sinnvoll. Hierbei ist nur zu beachten, dass alle Repräsentationen genau dasselbe Konzept abbilden und sich in der Granularität unterscheiden können, jedoch inhaltlich keine andere Bedeutung haben dürfen.
Technisch kann (ohne zugrundeliegendes Mapping) nicht überprüft werden, ob die Unterelemente des Konzeptes (Codes und/oder Text) inhaltlich zusammenpassen. Daher liegt die Verantwortung der Prüfung und gegebenenfalls Anpassung oder Entfernung, dieser Elemente bei der bearbeitenden Person. Technisch können Funktionen des Primärsystems hierbei unterstützen.
Um die Zahl der Fehlzuordnungen möglichst gering zu halten, sollte bei Bearbeitung des Konzeptes oder dazugehörigen Unterelementen ein entsprechender Hinweis an die bearbeitende Person ausgegeben werden.
Beispiele für Mehrfachcodierung
Körpergröße
Die Codierung in LOINC® und SNOMED CT® erhöht in diesem Fall die Interoperabilität der Ressource, da SNOMED CT® und LOINC® vor allem im internationalen Kontext unterschiedlich weit verbreitet sind.
"code": {
"coding": [
{
"code": "8302-2",
"system": "http://loinc.org",
"version": "2.77",
"display": "Körpergröße"
},
{
"version": "http://snomed.info/sct/11000274103/version/20240515",
"code": "1153637007",
"system": "http://snomed.info/sct",
"display": "Körpergröße"
}
]
}
Medikationsinformation
Die Codierung in ICD-10-GM ist für den Austausch zwischen behandelnden Personen sinnvoll. Die Codierung in SNOMED CT® ist für den internationalen Austausch sinnvoll. Der Freitext in patientenverständlicher Form ist für Patient:innen sinnvoll.
"reasonCode": [{
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70422006",
"display": "Acute subendocardial infarction",
"version": "http://snomed.info/sct/11000274103/version/20240515"
},
{
"code": "I21.4",
"system": "http://fhir.de/CodeSystem/bfarm/icd-10-gm",
"version": "2020",
"display": "Akuter subendokardialer Myokardinfarkt"
}
],
"text": "Herzinfarkt"
}]
SNOMED CT® Codes
Alle Editionen von SNOMED CT® haben dieselbe URI (http://snomed.info/sct) zur Identifikation des CodeSystems. Es ist also nicht möglich, die verwendete Edition anhand der hinterlegten URI zu erkennen. Dies bedeutet, dass es technisch möglich ist, einen Code aus einer beliebigen Edition anzugeben, wenn die Verwendung des CodeSystems SNOMED CT® vorgegeben ist. Es kann nicht davon ausgegangen werden, dass empfangende Systeme mit allen Editionen umgehen können. Daher gilt, dass nur SNOMED CT® Codes aus der Germany Edition verwendet werden dürfen. Dies gilt insbesondere an den Stellen, an denen dies nicht schon anderweitig festgelegt ist (z.B. durch Festlegung einer bestimmten Version oder einem required ValueSet mit einer vorgegebenen Version). Dabei sollten die Codes, an den Stellen wo es keine andere Festlegung gibt, aus dem für das Projekt verwendeten Release der Germany Edition genutzt werden.
Verwendung der Referenzdatenbank für Fertigarzneimittel gemäß § 31b SGB V
Die Referenzdatenbank für Fertigarzneimittel gemäß § 31b SGB V stellt Informationen wie Darreichungsform, die Wirkstoffbezeichnung und die Wirkstärke des Arzneimittels in einheitlicher und patientenverständlicher Form zur Verfügung. Sie ist daher eine sinnvolle und begrüßenswerte Datenquelle, um langfristig die einheitliche Dokumentation von Medikationen zu fördern und einen unkomplizierten Austausch zwischen den Systemen zu gewährleisten.
Aktuell sind noch nicht alle Details zur Umsetzung der Datenbank abschließend geklärt. Es kann daher in nachfolgenden Versionen der Spezifikation des ePA Medication Service noch zu Anpassungen kommen, die eine optimierten Abbildung der Informationen aus der Datenbank ermöglichen. Dies betrifft zum Beispiel die eingebundenen ValueSets und Codesysteme.
Handlungsempfehlungen für Codesysteme
In der Spezifikation des ePA Medication Service werden an manchen Stellen mehrere Codesysteme ermöglicht (z.B. bei Medication.code
). Eine eindeutige Priorisierung eines bestimmten Codesystems bzw. einer Terminologie ist nicht pauschal möglich. Manche Codesysteme eignen sich inhaltlich besser zur Abbildung bestimmter Informationen, sind aber z.B. aufgrund mangelnder Verbreitung in der Versorgung aktuell schwer umsetzbar. Andere wiederum sind weit verbreitet und daher gut einsetzbar, aber aus medizinisch-fachlicher Perspektive nicht ganz passend oder nicht international nutzbar. Eine Entscheidung welches Codesystem wann anzuwenden ist, ist also immer auch vom Use-Case abhängig und davon welche Codesysteme in diesem Moment zur Verfügung stehen.
Nähere Informationen zu einzelnen Codesystemen finden Sie auch unter: https://www.bfarm.de/DE/Kodiersysteme/_node.html