Ü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 wichtige Aspekte der Abfrage von Daten in FHIR. Ausführliche Informationen zur FHIR-Such-API finden Sie in der HL7-Dokumentation zur FHIR-Suche.
In diesem Artikel wird die FHIR-Suchsyntax in Beispiel-API-Aufrufen mit dem {{FHIR_URL}}
Platzhalter zur Darstellung der FHIR-Server-URL veranschaulicht. Wenn sich der FHIR-Dienst in Azure Health Data Services befindet, lautet https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com
diese URL .
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 abrufen möchten, können 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.
POST
GET
Wenn die Suchanforderung erfolgreich ist, erhalten Sie entweder ein FHIR-Bündelsearchset
, das die von der Suche zurückgegebenen Ressourceninstanzen enthält. Wenn die Suche fehlschlägt, finden Sie die Fehlerdetails in einer OperationOutcome
-Antwort.
In den folgenden Abschnitten behandeln wir die verschiedenen Aspekte der Abfrage von Ressourcen in FHIR. 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 Kriterien 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 Ressourceninstanzen enthält, deren Elemente die Suchkriterien erfüllt haben.
Für jeden Suchparameter definiert die FHIR-Spezifikation den Datentyp, der verwendet werden kann. 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 | |
date | Ja | Ja | |
Zeichenfolge | Ja | Ja | |
token | Ja | Ja | |
Referenz | Ja | Ja | |
composite | Teilweise | Partial | Die Liste der unterstützten zusammengesetzten Typen folgt in diesem Artikel. |
Menge | Ja | Ja | |
uri | Ja | Ja | |
speziell | No | No |
Allgemeine Suchparameter
Es gibt allgemeine Suchparameter, die für alle Ressourcen in FHIR gelten. Diese werden wie folgt aufgeführt, zusammen mit ihrer Unterstützung im FHIR-Dienst.
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. | No |
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 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 würden beispielsweise keine positive Übereinstimmung für eine Beobachtung mit dem Höhencode und einem Armlängencode über 60 Zoll wünschen. 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 Suchparametertyppaarungen für zusammengesetzte Suchvorgänge.
- 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 Tabelle mit FHIR-Modifizierern und deren Unterstützung im FHIR-Dienst.
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) |
No | No | |
:below (Token) |
No | No | |
:above (Token) |
No | No | |
:not-in (Token) |
No | Nr. | |
:identifier |
Nr. | No |
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äfix gt
"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 Tabelle mit FHIR-Suchergebnisparametern und deren Unterstützung im FHIR-Dienst.
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 unter Azure Cosmos DB wird (#2137) nicht unterstützt.:iterate |
_revinclude |
Ja | Ja | Elemente, die mit _revinclude abgerufen werden, sind auf 100 begrenzt. _revinclude auf PaaS und OSS unter Azure Cosmos DB wird (#2137) nicht unterstützt.:iterate Es gibt auch einen falschen 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 |
No | Nr. | |
_containedType |
Nr. | Nr. | |
_score |
Nr. | No |
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 Wildcardsuchvorgänge mit "Neuigkeit". Durch Hinzufügen eines Abfrageparameters "." in einer erneuten Abfrage wird der FHIR-Dienst aufgefordert, auf alle Ressourcen zu verweisen, 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
Die .
oben genannte Anforderung steuert den Pfad der verketteten Suche zum Zielparameter (name
in diesem Fall).
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 bereits erwähnt, stehen die Ergebnisse einer FHIR-Suche in paginierter Form auf einem Link im searchset
Bundle zur Verfügung. 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.
Häufig gestellte Fragen
Was bedeutet "partielle Unterstützung" in R4 Nicht unterstützte Suchparameter?
Einige der ressourcenspezifischen Suchparameter decken mehr als einen Datentyp ab, und der FHIR-Dienst in Azure Health Data Services unterstützt möglicherweise nur diesen Suchparameter für einen dieser Datentypen. Beispielsweise decken bedingungsabatement-alter und Condition-onset-age zwei verschiedene Datentypen, Alter und Bereich ab; Allerdings unterstützt der FHIR-Dienst in Azure Health Data Services diese beiden Suchparameter im Bereich, aber nicht im Alter.
Wird der $lastn-Vorgang für Beobachtungen unterstützt?
Dieser Vorgang wird nicht unterstützt. Der alternative Ansatz wäre die Verwendung von _count zum Einschränken der pro Seite zurückgegebenen Ressourcen und _sort, um Ergebnisse in absteigender Reihenfolge bereitzustellen.
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.
Hinweis
FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.