Seiteninhalt:
Diese Seite beschreibt Standard-API-Zugriffe für eine clientseitige Suche und Bereitstellung von Daten eines FHIR Data Service. Im Detail bedeutet dies das Navigieren in Suchergebnisseiten, die kompakte Suche mit verknüpften FHIR-Ressourcen sowie die Suche unter Nutzung von Vergleichsoperatoren.
Die FHIR-Schnittstellen eines FHIR Data Service unterstützen standardmäßige [FHIR-Suchoperationen] gemäß den Vorgaben der FHIR-Spezifikation. Bei einer Suche wird ein Search Set Bundle zurückgegeben.
"Direkt den in der Suchanfrage angegebenen Kriterien entsprechen" heißt in diesem Fall, dass das entsprechende Ergebnis nicht über einen _include- oder _revinclude-Parameter der Ergebnismenge hinzugefügt wurde.
Beispiel
Eine UUID-basierte URI muss das Format urn:uuid:[UUID] haben, zum Beispiel:
urn:uuid:ea01ccbc-aa5d-4c34-8292-d95678d52c98
_id: Bezieht sich auf die logische ID der Ressource
GET [base]/epa/audit/api/v1/fhir/AuditEvent?_id=ea01ccbc-aa5d-4c34-8292-d95678d52c98
_lastUpdated: Kann verwendet werden, um Ressourcen basierend auf dem letzten Änderungszeitpunkt auszuwählen
GET [base]/epa/audit/api/v1/fhir/AuditEvent?_lastUpdated=2025-01-15
In der FHIR-Spezifikation wird der Suchparameter _include verwendet, um zu fordern, dass der Server nicht nur die angeforderten Ressourcen, sondern auch andere Ressourcen, die über eine angegebene Referenz mit ihnen verbunden sind, zurückgibt. Dieser Parameter ist besonders nützlich, um verknüpfte Ressourcen in einer einzigen Abfrage abzurufen, wodurch die Notwendigkeit nachfolgender Anfragen verringert wird. Wird beispielsweise eine Abfrage an MedicationRequest-Instanzen mit einem _include-Parameter wie MedicationRequest:medication durchgeführt, gibt der FHIR Data Service die angeforderten MedicationRequest-Instanzen zusammen mit verknüpften Medication-Instanzen zurück. Das bedeutet, dass eine Liste von Medication-Instanzen zusätzlich enthalten ist.
Beispiel
GET [base]/epa/medication/api/v1/fhir/MedicationRequest?_include=MedicationRequest:medication
In dieser Abfrage bedeutet:
MedicationRequest der FHIR-Ressourcentyp, der abgefragt wird
_include=MedicationRequest:medication die Anweisung an den FHIR Data Service, die Medication-Instanzen einzubeziehen, die in den MedicationRequest-Instanzen referenziert werden
Diese Abfrage gibt ein Search Set Bundle zurück, welches alle im FHIR Data Service verfügbaren MedicationRequest-Instanzen sowie die zugehörigen Medication-Instanzen enthält. Hinweis: Dies kann potenziell eine große Ergebnismenge bedeuten und ist davon abhängig, wie viele MedicationRequest-Datensätze gespeichert sind.
In der FHIR-Spezifikation ist _revinclude ein Suchparameter, der es ermöglicht, Ressourceninstanzen in die Ergebnismenge einzubeziehen, die jeweils auf die primäre Ressourceninstanz verweisen.
Beispiel
GET [base]/epa/medication/api/v1/fhir/MedicationRequest?_revinclude=MedicationDispense:prescription
In dieser Abfrage bedeutet:
MedicationRequest der FHIR-Ressourcentyp, der abgefragt wird
_revinclude=MedicationDispense:prescription die Anweisung an den FHIR Data Service, die MedicationDispense-Instanzen einzuschließen, die eine authorizingPrescription-Referenz haben, welche wiederum auf die MedicationRequest-Instanzen verweist
Diese Abfrage gibt ein Search Set Bundle zurück, welches die MedicationRequest-Instanzen zusammen mit den zugehörigen MedicationDispense-Instanzen enthält.
Der :iterate-Modifikator ermöglicht es, bei der Verwendung von _include und _revinclude die Einschlusslogik rekursiv anzuwenden. Dadurch werden nicht nur direkt referenzierte Ressourcen in das Suchergebnis aufgenommen, sondern auch alle Ressourcen, die durch die eingeschlossenen Ressourcen weiter referenziert werden. Dies ist besonders nützlich für mehrstufige Abhängigkeiten und zirkuläre Beziehungen.
Die folgende FHIR-Suchanfrage kombiniert _revinclude und _include:iterate, um sowohl rückverknüpfte als auch iterativ eingeschlossene Ressourcen in die Antwort aufzunehmen:
GET [base]/Medication?_revinclude=MedicationDispense:medication&_include:iterate=MedicationDispense:performer
In dieser Abfrage bedeutet:
Die folgende FHIR-Suchanfrage kombiniert _include und _include:iterate, um eine vollständige Abfrage aller MedicationRequest-Instanzen mit den relevanten Informationen zum verschreibenden LE und zur verschreibenden LEI durchzuführen. Diese Abfrage ermöglicht es, alle Verschreibungen (MedicationRequest) mit dem zugehörigen verschreibenden LE (Practitioner) und der verschreibenden LEI (Organization) abzurufen.
GET [base]/MedicationRequest?_include=MedicationRequest:medication
&_include=MedicationRequest:requester
&_include:iterate=PractitionerRole:organization
&_include:iterate=PractitionerRole:practitioner
In dieser Abfrage bedeutet:
Bei einer Suche, die numerische oder Datumsparameter umfasst, hängen die verwendeten Werte von der Präzision des bereitgestellten Parameters ab. Zum Beispiel erstreckt sich für das Datum 2025-02-11 der Bereich von 2025-02-11, um 00:00:00 Uhr (inklusive) bis 2025-02-12, um 00:00:00 Uhr (exklusive).
In FHIR werden Gleitkommazahlen durch Datentypen wie [FHIR decimal] und [FHIR Quantity] dargestellt, die die Präzision des gespeicherten Werts erfassen. Dies schließt jedoch einige Felder aus, die einfache Ganzzahlen verwenden. Suchoperationen in diesen Feldern führen zu exakten numerischen Übereinstimmungen. Bei numerischen Vergleichen ([FHIR Search number], [FHIR Search quantity]) mit einem einzelnen Wert gelten die nachfolgenden Präfixe. Wenn kein Präfix angegeben wird, wird standardmäßig eq verwendet. Weitere Details finden sich hier: [FHIR Search Prefixes]
| Präfix | Beschreibung |
|---|---|
eq |
Der Wert des Parameters in der Ressource ist gleich dem bereitgestellten Wert. |
ne |
Der Wert des Parameters in der Ressource ist nicht gleich dem bereitgestellten Wert. |
gt |
Der Wert des Parameters in der Ressource ist größer als der bereitgestellte Wert. |
lt |
Der Wert des Parameters in der Ressource ist kleiner als der bereitgestellte Wert. |
ge |
Der Wert des Parameters in der Ressource ist größer oder gleich dem bereitgestellten Wert. |
le |
Der Wert des Parameters in der Ressource ist kleiner oder gleich dem bereitgestellten Wert. |
Datumsangaben haben einen Bereich, der auf ihrer Präzision (Jahr, Monat, Tag) basiert. Für Typen wie [FHIR Range] oder [FHIR Period] sind eindeutige obere und untere Grenzen definiert. Es gibt spezifische Präfixe für derartige Vergleiche. Wird kein Präfix angegeben, ist eq die Standardwahl.
| Präfix | Beschreibung |
|---|---|
eq |
Der Bereich des Suchwerts enthält den Bereich des Zielwerts vollständig. |
ne |
Der Bereich des Suchwerts enthält den Bereich des Zielwerts nicht vollständig. |
gt |
Der Bereich oberhalb des Suchwerts überlappt mit dem Bereich des Zielwerts. |
lt |
Der Bereich unterhalb des Suchwerts überlappt mit dem Bereich des Zielwerts. |
ge |
Der Bereich oberhalb des Suchwerts überlappt mit oder schließt den Bereich des Zielwerts vollständig ein. |
le |
Der Bereich unterhalb des Suchwerts überlappt mit oder schließt den Bereich des Zielwerts vollständig ein. |
sa |
Der Bereich des Zielwerts liegt vollständig nach dem Bereich des Suchwerts. |
eb |
Der Bereich des Zielwerts liegt vollständig vor dem Bereich des Suchwerts. |
Beispiele
Alle AuditEvents, die vor dem 15. Januar 2025 aktualisiert oder erstellt wurden:
GET [base]/epa/audit/api/v1/fhir/AuditEvent?_lastUpdated=lt2025-01-15T00:00:00Z
Alle AuditEvents nach dem 15. Januar 2025:
GET [base]/epa/audit/api/v1/fhir/AuditEvent?date=gt2025-01-15
Alle AuditEvents seit dem 15. Januar 2025 und von der Allgemeinarztpraxis "Praxis Dr. John Doe":
GET [base]/epa/audit/api/v1/fhir/AuditEvent?date=ge2025-01-15&altid=1-883110000092404
Alle AuditEvents ab dem 15. Januar 2025, die eine Erstellung protokollieren:
GET [base]/epa/audit/api/v1/fhir/AuditEvent?date=ge2025-01-15&action=C
Alle AuditEvents für das IHE XDS-Dokument mit dem Titel Arztbrief4711:
GET [base]/epa/audit/api/v1/fhir/AuditEvent?entity-name=Arztbrief4711
Das Client-System kann in dem FHIR Data Service einen Referenzparameter mithilfe sogenannter "Chained Parameters" verwenden. Dabei wird ein Referenzparameter durch einen Punkt (.) mit dem Namen eines Suchparameters der Zielressource verknüpft. Diese Verkettung kann mehrstufig durchgeführt werden, indem ein logischer Pfad über mehrere verknüpfte Ressourcen definiert wird.
Die Syntax für eine verkettete Parametersuche sieht folgendermaßen aus:
[Referenzparameter]:[Ressourcentyp].[innerer Suchparameter]=[innerer Wert]
Wenn der Referenzparameter nur auf einen einzelnen Ressourcentyp verweist, kann :[Ressourcentyp] weggelassen werden. Die Syntax lautet dann:
[Referenzparameter].[innerer Suchparameter]=[innerer Wert]
Beispiel
In diesem Beispiel gibt der FHIR Data Service nur MedicationRequest-Instanzen zurück, die sich auf das Medikament Ibuprofen beziehen:
GET [base]/MedicationRequest?medication.code=http://fhir.de/CodeSystem/bfarm/atc|M01AE01
Das Client-System kann in dem FHIR Data Service den _has-Parameter verwenden, um eine umgekehrte verkettete Parametersuche durchzuführen. Bei einer umgekehrten verketteten Parametersuche werden Ressourceninstanzen basierend auf den Kriterien von anderen Ressourceninstanzen abgeglichen, die auf sie verweisen. Dies ist das Gegenteil der verketteten Parametersuche, bei der Instanzen basierend auf den Eigenschaften von Ressourcen ausgewählt werden, auf die sie verweisen.
Die Syntax für eine umgekehrte verkettete Parametersuche sieht folgendermaßen aus:
_has:[Ressourcentyp]:[Referenzparameter]:[Suchparameter]=[Wert]
Beispiele
In diesem Beispiel wird nach Medication-Ressourceninstanzen gesucht, die von MedicationStatement-Instanzen referenziert werden, deren Status auf "active" steht.
GET [base]/Medication?_has:MedicationStatement:medication:status=active
In diesem Beispiel wird nach Medication-Ressourceninstanzen gesucht, die von MedicationStatement-Instanzen referenziert werden, deren effective-Datum am oder nach dem 22. Juli 2025 liegt.
GET [base]/Medication?_has:MedicationStatement:medication:effective=ge2025-07-22
In diesem Beispiel wird nach Medication-Ressourceninstanzen gesucht, die von MedicationStatement-Instanzen referenziert werden, deren Status auf "stopped" steht. Mit dem _revinclude-Parameter werden zusätzlich alle zugehörigen MedicationStatement-Instanzen, die auf die jeweilige Medication-Ressource verweisen, in den Ergebnissen zurückgegeben.
GET [base]/Medication?_has:MedicationStatement:medication:status=stopped&_revinclude=MedicationStatement:medication
Beispiel
GET [base]/epa/audit/api/v1/fhir/AuditEvent?_sort=action,-date