Übersicht über FHIR-Suche
Die FHIR®-Spezifikation (Fast Healthcare Interoperability Resources) definiert eine API zum Abfragen von Ressourcen in einer FHIR-Serverdatenbank. Dieser Artikel führt Sie durch einige wichtige Aspekte der Abfrage von Daten in FHIR. Ausführliche Informationen zur FHIR-Such-API finden Sie in der HL7-Dokumentation zur FHIR-Suche.
Im Verlauf dieses Artikels veranschaulichen wir die FHIR-Suchsyntax in API-Beispielaufrufen mit dem {{FHIR_URL}}
-Platzhalter, um die FHIR-Server-URL darzustellen. Im Falle des FHIR-Diensts in Azure Health Data Services würde diese URL https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com
lauten.
FHIR-Suchvorgänge können auf einen bestimmten Ressourcentyp erfolgen, ein angegebenes Depot oder auf alle Ressourcen in der FHIR-Serverdatenbank. Die einfachste Möglichkeit zum Ausführen einer Suche in FHIR besteht darin, eine GET
-Anforderung zu verwenden. Wenn Sie beispielsweise alle Patient
-Ressourcen in der Datenbank pullen möchten, könnten Sie die folgende Anforderung verwenden:
GET {{FHIR_URL}}/Patient
Sie können auch mithilfe von POST
suchen. Um mithilfe von POST
zu suchen, werden die Suchparameter im Textkörper der Anforderung übermittelt. Dies erleichtert das Senden von Abfragen mit längeren, komplexeren Abfolgen von Parametern.
Wenn die Suchanforderung erfolgreich ist, erhalten Sie mit POST
oder GET
ein FHIR-searchset
-Bündel, das die von der Suche zurückgegebene(n) Ressourceninstanz(en) enthält. Wenn die Suche fehlschlägt, finden Sie die Fehlerdetails in einer OperationOutcome
-Antwort.
In den folgenden Abschnitten werden die verschiedenen Aspekte des Abfragens von Ressourcen in FHIR behandelt. Nachdem Sie diese Themen gelesen haben, finden Sie auf der Seite mit den FHIR-Suchbeispielen Beispiele für verschiedene FHIR-Suchmethoden.
Suchparameter
Wenn Sie eine Suche in FHIR durchführen, durchsuchen Sie die Datenbank nach Ressourcen, die bestimmten Suchkriterien entsprechen. Die FHIR-API stellt einen umfangreichen Satz von Suchparametern zum Optimieren der Suchkriterien bereit. Jede Ressource in FHIR enthält Informationen als einen Satz von Elementen, und Suchparameter dienen dem Zweck, die Informationen in diesen Elementen abzufragen. Wenn in einem FHIR-Such-API-Aufruf eine positive Übereinstimmung zwischen den Suchparametern der Anforderung und den entsprechenden Elementwerten gefunden wird, die in einer Ressourceninstanz gespeichert sind, gibt der FHIR-Server ein Bündel zurück, das die Ressourceninstanz(en) enthält, deren Elemente die Suchkriterien erfüllt haben.
Für jeden Suchparameter definiert die FHIR-Spezifikation die Datentypen, die verwendet werden können. Die Unterstützung verschiedener Datentypen im FHIR-Dienst wird unten beschrieben.
Suchparametertyp | FHIR-Dienst in Azure Health Data Services | Azure API for FHIR | Kommentar |
---|---|---|---|
Zahl | Ja | Ja | |
Datum | Ja | Ja | |
Zeichenfolge | Ja | Ja | |
token | Ja | Ja | |
reference | Ja | Ja | |
composite | Teilweise | Partial | Die Liste der unterstützten zusammengesetzten Typen finden Sie weiter unten in diesem Artikel. |
Menge | Ja | Ja | |
uri | Ja | Ja | |
speziell | Nein | Nein |
Allgemeine Suchparameter
Es gibt allgemeine Suchparameter, die für alle Ressourcen in FHIR gelten. Diese sind unten aufgeführt, zusammen mit der Information, ob sie im FHIR-Dienst unterstützt werden:
Allgemeiner Suchparameter | FHIR-Dienst in Azure Health Data Services | Azure API for FHIR | Kommentar |
---|---|---|---|
_id |
Ja | Ja | |
_lastUpdated |
Ja | Ja | |
_tag |
Ja | Ja | |
_type |
Ja | Ja | |
_security |
Ja | Ja | |
_profile |
Ja | Ja | |
_has |
Ja | Ja | |
_query |
Nr. | Nr. | |
_filter |
Nr. | Nr. | |
_list |
Nr. | Nr. | |
_text |
Nr. | Nr. | |
_content |
Nr. | Nein |
Ressourcenspezifische Parameter
Der FHIR-Dienst in Azure Health Data Services unterstützt fast alle ressourcenspezifischen Suchparameter, die in der FHIR-Spezifikation definiert sind. Suchparameter, die nicht unterstützt werden, werden in den folgenden Links aufgeführt:
Sie können auch die aktuelle Unterstützung für Suchparameter in der FHIR-Funktionsbestätigung mit der folgenden Anforderung anzeigen:
GET {{FHIR_URL}}/metadata
Um die unterstützten Suchparameter in der Funktionsbestätigung anzuzeigen, navigieren Sie für die ressourcenspezifischen Suchparameter zu CapabilityStatement.rest.resource.searchParam
und für Suchparameter, die für alle Ressourcen gelten, zu CapabilityStatement.rest.searchParam
.
Hinweis
Der FHIR-Dienst in Azure Health Data Services indiziert nicht automatisch Suchparameter, die nicht in der Basis-FHIR-Spezifikation definiert sind. Der FHIR-Dienst unterstützt jedoch benutzerdefinierte Suchparameter.
Zusammengesetzte Suchparameter
Zusammengesetzte Suchen in FHIR ermöglichen es Ihnen, nach Elementpaaren als logische verbundene Einheiten zu suchen. Wenn Sie beispielsweise nach Beobachtungen suchen, bei denen die Größe des Patienten über 152,5 cm (60 Zoll) lag, sollten Sie sicherstellen, dass eine einzelne Eigenschaft der Beobachtung den Größencode und einen Wert größer als 152,5 cm (60 Zoll) enthielt (der Wert sollte sich nur auf die Größe beziehen). Sie möchten schließlich keine positive Übereinstimmung für eine Beobachtung mit dem Größencode und beispielsweise einer Armspannnweite von über 152,5 cm (60 Zoll) zurückgeben. Zusammengesetzte Suchparameter verhindern dieses Problem, indem sie nach vordefinierten Paaren von Elementen suchen, deren Werte beide die Suchkriterien erfüllen müssen, damit es zu einer positiven Übereinstimmung kommt.
Der FHIR-Dienst in Azure Health Data Services unterstützt die folgenden Paarungen von Suchparametertypen für zusammengesetzte Suchen:
- Verweis, Token
- Token, Datum
- Token, Zahl, Zahl
- Token, Menge
- Token, Zeichenfolge
- Token, Token
Weitere Informationen finden Sie in der HL7-Dokumentation zu zusammengesetzten Suchparametern.
Hinweis
Zusammengesetzte Suchparameter unterstützen keine Modifizierer gemäß der FHIR-Spezifikation.
Modifizierer und Präfixe
Modifizierer ermöglichen es Ihnen, Suchparameter mit zusätzlichen Bedingungen zu qualifizieren. Nachfolgend finden Sie eine Liste der FHIR-Modifizierer und ob sie im FHIR-Dienst unterstützt werden:
Modifizierer | FHIR-Dienst in Azure Health Data Services | Azure API for FHIR | Kommentar |
---|---|---|---|
:missing |
Ja | Ja | |
:exact |
Ja | Ja | |
:contains |
Ja | Ja | |
:text |
Ja | Ja | |
:type (Referenz) |
Ja | Ja | |
:not |
Ja | Ja | |
:below (URI) |
Ja | Ja | |
:above (URI) |
Ja | Ja | |
:in (Token) |
Nein | Nein | |
:below (Token) |
Nein | Nein | |
:above (Token) |
Nein | Nein | |
:not-in (Token) |
Nein | Nein |
Bei Suchparametern mit einer bestimmten Reihenfolge (Zahlen, Datumsangaben und Mengen) können Sie ein Präfix vor dem Parameterwert verwenden, Patient?_lastUpdated=gt2022-08-01
um die Suchkriterien zu verfeinern (z. B. wenn das Präfixgt
"größer als"). Der FHIR-Dienst in Azure Health Data Services unterstützt alle Präfixe, die im FHIR-Standard definiert sind.
Suchergebnisparameter
FHIR gibt einen Satz von Suchergebnisparametern an, die bei der Verwaltung der von einer Suche zurückgegebenen Informationen helfen sollen. Ausführliche Informationen zur Verwendung von Suchergebnisparametern in FHIR finden Sie auf der HL7-Website. Nachfolgend finden Sie eine Liste der FHIR-Suchergebnisparameter und ob sie im FHIR-Dienst unterstützt werden.
Suchergebnisparameter | FHIR-Dienst in Azure Health Data Services | Azure API for FHIR | Kommentar |
---|---|---|---|
_elements |
Ja | Ja | |
_count |
Ja | Ja | _count ist auf 1000 Ressourcen beschränkt. Wenn sie höher als 1000 festgelegt ist, werden nur 1000 zurückgegeben, und eine Warnung wird im Bundle enthalten. |
_include |
Ja | Ja | Elemente, die mit _include abgerufen werden, sind auf 100 begrenzt. _include auf PaaS und OSS in Azure Cosmos DB unterstützt :iterate nicht, (#2137). |
_revinclude |
Ja | Ja | Elemente, die mit _revinclude abgerufen werden, sind auf 100 begrenzt. _revinclude auf PaaS und OSS in Azure Cosmos DB unterstützt :iterate nicht, (#2137). Es gibt auch einen fehlerhaften Statuscode für eine ungültige Anforderung, #1319. |
_summary |
Ja | Ja | |
_total |
Teilweise | Partial | _total=none und _total=accurate |
_sort |
Teilweise | Partial | sort=_lastUpdated wird im FHIR-Dienst unterstützt. Für den FHIR-Dienst und die SQL DB FHIR-OSS-Server wird das Sortieren nach Zeichenfolgen und dateTime-Feldern unterstützt. Für Azure API für FHIR- und Azure Cosmos DB-OSS-Datenbanken, die nach dem 20. April 2021 erstellt wurden, wird das Sortieren nach Vorname, Nachname, Geburtsdatum und klinischem Datum unterstützt. |
_contained |
Nein | Nr. | |
_containedType |
Nr. | Nr. | |
_score |
Nr. | Nein |
Hinweis:
- Standardmäßig ordnet
_sort
Datensätze in aufsteigender Reihenfolge an. Sie können auch das Präfix-
verwenden, um in absteigender Reihenfolge zu sortieren. Der FHIR-Dienst gestattet es Ihnen nur, jeweils nach einem einzelnen Feld zu sortieren. - Der FHIR-Dienst unterstützt wilden Karte Suchvorgängen mit Neuzurücksicht. Durch Hinzufügen des Abfrageparameters "." in der Abfrage wird der FHIR-Dienst direkt auf alle Ressourcen verwiesen, die der Quellressource zugeordnet sind.
Standardmäßig ist der FHIR-Dienst in Azure Health Data Services auf eine großzügige Handhabung festgelegt. Dies bedeutet, dass der Server unbekannte oder nicht unterstützte Parameter ignoriert. Wenn Sie eine strenge Handhabung verwenden möchten, können Sie den Prefer
-Header einschließen und handling=strict
festlegen.
Verkettete und umgekehrte Verkettete Suche
Mithilfe einer verketteten Suche können Sie sehr differenziert gezielte Abfragen nach Ressourcen ausführen, die über einen Verweis auf eine andere Ressource verfügen. Wenn Sie beispielsweise Untersuchungen finden möchten, bei denen der Name der Patientin „Jane“ ist, verwenden Sie:
GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane
Durch den .
in der oben stehenden Anforderung wird der Pfad der verketteten Suche zu dem Zielparameter (name
in diesem Fall) gelenkt.
Ebenso können Sie eine umgekehrte verkettete Suche mit dem Parameter _has
durchführen. Auf diese Weise können Sie Ressourceninstanzen abrufen, indem Sie Kriterien für andere Ressourcen angeben, die auf die Sie interessierenden Ressourcen verweisen. Beispiele für verkettete und umgekehrte verkettete Suchen finden Sie auf der Seite mit FHIR-Suchbeispielen.
Paginierung
Wie oben Erwähnung, sind die Ergebnisse einer FHIR-Suche in paginierter Form in einem Link im searchset
Bundle verfügbar. Standardmäßig zeigt der FHIR-Dienst 10 Suchergebnisse pro Seite an, dies kann jedoch durch Festlegen des _count
Parameters erhöht (oder verringert werden). Wenn mehr Übereinstimmungen vorhanden sind als auf einer Seite passen, enthält das Bündel einen next
Link. Beim wiederholten Abrufen aus dem next
Link werden die nachfolgenden Seiten der Ergebnisse zurückgegeben. Beachten Sie, dass der _count
Parameterwert 1000 nicht überschreiten kann.
Aktuell unterstützt der FHIR-Dienst in Azure Health Data Services nur den next
-Link und unterstützt keine first
-, last
- oder previous
-Links in Bündeln, die von einer Suche zurückgegeben werden.
Nächste Schritte
Nachdem Sie nun die Grundlagen der FHIR-Suche kennengelernt haben, finden Sie auf der Seite mit Suchbeispielen detaillierte Informationen dazu, wie Sie mithilfe von Suchparametern, Modifizierern und anderen FHIR-Suchmethoden suchen können.
FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.