Übersicht über die Suche in Azure API für FHIR
Wichtig
Azure API for FHIR wird am 30. September 2026 eingestellt. Folgen Sie den Migrationsstrategien, um bis zu diesem Datum zum Azure Health Data Services-FHIR®-Dienst zu wechseln. Aufgrund der Einstellung von Azure API for FHIR werden neue Bereitstellungen ab dem 1. April 2025 nicht zugelassen. Der Azure Health Data Services-FHIR-Dienst ist die weiterentwickelte Version der Azure-API für FHIR, mit der Kundschaft FHIR-, DICOM- und Medizintechnikdienste mit Integrationen in andere Azure-Dienste verwalten kann.
Die Spezifikation der Fast Healthcare Interoperability Resources (FHIR®) definiert die Grundlagen der Suche nach FHIR-Ressourcen. Dieser Artikel führt Sie durch einige wichtige Aspekte der Suche nach Ressourcen in FHIR. Ausführliche Informationen zur Suche in FHIR-Ressourcen finden Sie unter Suche in der HL7 FHIR-Spezifikation. In diesem Artikel finden Sie Beispiele für die Suchsyntax. Jede Suche richtet sich an Ihren FHIR-Server, der in der Regel über eine URL von https://<FHIRSERVERNAME>.azurewebsites.net
. In den Beispielen verwenden wir den Platzhalter {{FHIR_URL}} für diese URL.
FHIR-Suchvorgänge können nach einem bestimmten Ressourcentyp, einem bestimmten Depot oder nach allen Ressourcen erfolgen. Die einfachste Möglichkeit zum Ausführen einer Suche in FHIR besteht darin, eine GET
-Anforderung zu verwenden. Wenn Sie beispielsweise alle Patienten in der Datenbank abrufen möchten, können Sie die folgende Anforderung verwenden.
GET {{FHIR_URL}}/Patient
Sie können auch mithilfe von POST
Suchvorgängen suchen, was nützlich ist, wenn die Abfragezeichenfolge lang ist. Für die Suche mit POST
können die Suchparameter als Formulartext übermittelt werden. Dies ermöglicht längere, komplexere Reihen von Abfrageparametern, die in einer Abfragezeichenfolge schwer zu sehen und zu verstehen wären.
Wenn die Suchanforderung erfolgreich ist, erhalten Sie eine FHIR-Paketantwort mit dem Typ searchset
. Wenn die Suche fehlschlägt, finden Sie die Fehlerdetails in der OperationOutcome
Liste, um zu verstehen, warum die Suche fehlgeschlagen ist.
In den folgenden Abschnitten behandeln wir die verschiedenen Aspekte der Suche. Wenn Sie diese Details überprüft haben, sehen Sie sich unsere Beispielseite an, auf der Sie Beispiele für Suchvorgänge finden, die Sie in der Azure API für FHIR durchführen können.
Suchparameter
Suchvorgänge basieren auf verschiedenen Attributen der Ressource. Diese Attribute werden als Suchparameter bezeichnet. Jede Ressource hat eine Reihe von definierten Suchparametern. Der Suchparameter muss in der Datenbank definiert und indiziert sein, damit Sie erfolgreich nach ihm suchen können.
Jeder Suchparameter verfügt über einen definierten Datentyp. In der folgenden Tabelle wird die Unterstützung für die verschiedenen Datentypen beschrieben.
Warnung
Es gibt derzeit ein Problem bei der Verwendung _sort
in der Azure-API für FHIR mit verketteter Suche. Weitere Informationen finden Sie im Open Source-Problem Nr. 2344. Dies wird mit der Veröffentlichung im Dezember 2021 behoben sein.
Suchparametertyp | Azure API for FHIR | FHIR-Dienst in Azure Health Data Services | Kommentar |
---|---|---|---|
Zahl | Ja | Ja | |
date | Ja | Ja | |
Zeichenfolge | Ja | Ja | |
token | Ja | Ja | |
Referenz | Ja | Ja | |
composite | Teilweise | Partial | Die Liste der unterstützten Verbundtypen wird weiter unten in diesem Artikel beschrieben. |
Menge | Ja | Ja | |
uri | Ja | Ja | |
speziell | No | No |
Allgemeine Suchparameter
Es gibt allgemeine Suchparameter, die für alle Ressourcen gelten. Diese befinden sich in der folgenden Liste sowie deren Unterstützung innerhalb der Azure-API für FHIR.
Allgemeiner Suchparameter | Azure API for FHIR | FHIR-Dienst in Azure Health Data Services | Kommentar |
---|---|---|---|
_id | Ja | Ja | |
_lastUpdated | Ja | Ja | |
_tag | Ja | Ja | |
_type | Ja | Ja | |
_security | Ja | Ja | |
_profile | Ja | Ja | |
_has | Partial | Ja | Unterstützung in _has MVP in der Azure-API für FHIR und der osS-Version, die von Azure Cosmos DB unterstützt wird. Weitere Details finden Sie im folgenden Verkettungsabschnitt. |
_query | No | No | |
_filter | No | No | |
-List | No | No | |
_text | No | No | |
_content | No | No |
Ressourcenspezifische Parameter
Mit der Azure API für FHIR unterstützen wir fast alle ressourcenspezifischen Suchparameter, die in der FHIR-Spezifikation definiert sind. Die einzigen Suchparameter, die wir nicht unterstützen, sind in den folgenden Links verfügbar.
Sie können auch die aktuelle Unterstützung für Suchparameter in der FHIR Capability Statement mit der folgenden Anforderung sehen.
GET {{FHIR_URL}}/metadata
Um die Suchparameter in der Funktionsanweisung anzuzeigen, navigieren Sie zu CapabilityStatement.rest.resource.searchParam
den Suchparametern für jede Ressource, und CapabilityStatement.rest.searchParam
suchen Sie die Suchparameter für alle Ressourcen.
Hinweis
Die Azure API für FHIR erstellt oder indiziert nicht automatisch Suchparameter, die nicht in der FHIR-Spezifikation definiert sind. Wir unterstützen Sie jedoch, ihre eigenen Suchparameter zu definieren.
Zusammengesetzte Suchparameter
Die zusammengesetzte Suche ermöglicht es Ihnen, nach Wertepaaren zu suchen. Wenn Sie beispielsweise nach einer Beobachtung zur Körpergröße suchen, bei der die Person 60 Zoll groß war, müssen Sie sicherstellen, dass eine einzelne Komponente der Beobachtung den Code für Größe und den Wert 60 enthält. Sie möchten sicher keine Beobachtung erhalten, bei der das Gewicht von 60 und die Größe von 48 abgespeichert wurde, auch wenn die Beobachtung Einträge enthält, die für den Wert 60 und den Code der Größe geeignet sind, nur eben in unterschiedlichen Komponenten-Abschnitten.
Mit der Azure-API für FHIR unterstützen wir die folgenden Suchparametertyppaarungen.
- Verweis, Token
- Token, Datum
- Token, Zahl, Zahl
- Token, Menge
- Token, Zeichenfolge
- Token, Token
Weitere Informationen finden Sie unter HL7 Zusammengesetzte Suchparameter.
Hinweis
Zusammengesetzte Suchparameter unterstützen keine Modifizierer gemäß der FHIR-Spezifikation.
Modifizierer und Präfixe
Modifiziererermöglichen es Ihnen, die Suchparameter zu ändern. Die folgende Tabelle enthält eine Übersicht über alle FHIR-Modifizierer und deren Unterstützung in der Azure-API für FHIR.
Modifizierer | Azure API for FHIR | FHIR-Dienst in Azure Health Data Services | Kommentar |
---|---|---|---|
:missing | Ja | Ja | |
:exact | Ja | Ja | |
:contains | Ja | Ja | |
:text | Ja | Ja | |
:type (reference) | Ja | Ja | |
:not | Ja | Ja | |
:below (uri) | Ja | Ja | |
:above (uri) | Ja | Ja | |
:in (Token) | No | No | |
:below (Token) | No | No | |
:above (Token) | No | No | |
:not-in (Token) | No | No |
Für Suchparameter, die eine bestimmte Reihenfolge haben (Zahlen, Daten und Mengen), können Sie ein Präfix für den Parameter verwenden, um die Suche nach Übereinstimmungen zu erleichtern. Die Azure API für FHIR unterstützt alle Präfixe.
Suchergebnisparameter
Um die zurückgegebenen Ressourcen zu verwalten, gibt es Suchergebnisparameter, die Sie verwenden können. Einzelheiten zur Verwendung der einzelnen Suchergebnisparameter finden Sie auf der HL7-Website.
Suchergebnisparameter | Azure API for FHIR | FHIR-Dienst in Azure Health Data Services | Kommentar |
---|---|---|---|
_elements | Ja | Ja | |
_zählen | Ja | Ja | _count ist auf 1000 Ressourcen beschränkt. Wenn sie höher als 1000 festgelegt sind, werden nur 1000 zurückgegeben, und eine Warnung wird im Bundle zurückgegeben. |
_include | Ja | Ja | Enthaltene Elemente sind auf 100 beschränkt. _include auf PaaS und OSS auf Azure Cosmos DB enthalten keinen :iterate Support (#2137). |
_revinclude | Ja | Ja | Enthaltene Elemente sind auf 100 beschränkt. _revinclude auf PaaS und OSS auf Azure Cosmos DB enthalten keinen :iterate Support (#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 von Azure API für FHIR und dem FHIR-Dienst 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 | No | No | |
_containedType | No | No | |
_score | No | Nein |
Hinweis
Standardmäßig sortiert _sort
den Datensatz in aufsteigender Reihenfolge. Sie können das Präfix '-'
verwenden, um in absteigender Reihenfolge zu sortieren. Außerdem können Sie mit dem FHIR-Dienst und der Azure API für FHIR jeweils nur nach einem einzigen Feld sortieren.
Standardmäßig ist die Azure API für FHIR auf nachsichtige Behandlung eingestellt. Dies bedeutet, dass der Server unbekannte oder nicht unterstützte Parameter ignoriert. Wenn Sie eine strikte Handhabung verwenden möchten, können Sie die Kopfzeile Prefer verwenden und die Option handling=strict
festlegen.
Verkettete und umgekehrte Verkettete Suche
Bei einer verketteten Suche können Sie mithilfe eines Suchparameters nach einer Ressource suchen, auf die von einer anderen Ressource verwiesen wird. 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
.
Ebenso können Sie eine umgekehrte verkettete Suche durchführen. Dadurch können Sie Ressourcen abrufen, bei denen Sie Kriterien für andere Ressourcen angeben, die auf sie verweisen. Weitere Beispiele für verkettete und umgekehrte verkettete Suchen finden Sie auf der Seite mit FHIR-Suchbeispielen.
Hinweis
In der Azure API für FHIR und der von Azure Cosmos DB unterstützten Open Source gibt es eine Einschränkung, bei der jede Unterabfrage, die für die verkettete und umgekehrt verkettete Suche erforderlich ist, nur 1000 Elemente zurückgibt. Wenn mehr als 1000 Elemente gefunden werden, erhalten Sie die folgende Fehlermeldung: „Unterabfragen in einem verketteten Ausdruck können nicht mehr als 1000 Ergebnisse liefern, bitte verwenden Sie ein gezielteres Kriterium.“ Um eine erfolgreiche Anfrage zu erhalten, müssen Sie genauer beschreiben, wonach Sie suchen.
Paginierung
Wie bereits erwähnt, sind die Ergebnisse einer Suche ein seitenseitiges Bündel. Standardmäßig gibt die Suche 10 Ergebnisse pro Seite zurück, dies kann jedoch durch Angabe _count
erhöht (oder verringert) werden. Innerhalb des Bundles gibt es einen Self-Link, der das aktuelle Ergebnis der Suche enthält. Wenn es weitere Übereinstimmungen gibt, enthält das Bundle einen weiteren Link. Sie können mit dem nächsten Link fortfahren, um die nachfolgenden Ergebnisseiten zu erhalten. _count
ist auf 1.000 Elemente oder weniger beschränkt.
Der nächste Link im Bundle hat eine Größenbeschränkung für Fortsetzungstoken von 3 KB. Sie haben die Flexibilität, die Größe des Fortsetzungstokens zwischen 1 KB und 3 KB mithilfe von Headern x-ms-documentdb-responsecontinuationtokenlimitinkb
zu optimieren.
Derzeit unterstützt die Azure API für FHIR nur den nächsten Link in Bundles, nicht aber den ersten, letzten oder vorherigen Link.
Nächste Schritte
Nachdem Sie sich nun mit den Grundlagen der Suche beschäftigt haben, finden Sie auf der Suchbeispielseite Details dazu, wie Sie mit verschiedenen Suchparametern, Modifizierern und anderen FHIR-Suchszenarien suchen können.
Hinweis
FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.