Freigeben über


FHIR-Suchbeispiele

Im Folgenden finden Sie Beispiele für FHIR-Such-API-Aufrufe® (Fast Healthcare Interoperability Resources) mit verschiedenen Suchparametern, Modifizierern, verketteten und umgekehrten verketteten Suchvorgängen, zusammengesetzten Suchvorgängen, POST Suchanforderungen und mehr. Eine allgemeine Einführung in FHIR-Suchkonzepte finden Sie in der Übersicht über die FHIR-Suche.

Suchergebnisparameter

_include

_include ermöglicht es Ihnen, nach Ressourceninstanzen zu suchen und in die Ergebnisse einzubeziehen, auf die von den Zielressourceninstanzen verwiesen wird. Sie können z. B. verwenden _include , um Ressourcen abzufragen MedicationRequest und die Suche auf Verschreibungen für einen bestimmten Patienten zu beschränken. Der FHIR-Dienst gibt dann die MedicationRequest Ressourcen und die referenzierte Patient Ressource zurück. Im folgenden Beispiel ruft die Anforderung alle MedicationRequest Ressourceninstanzen in der Datenbank und alle Patienten ab, auf die von den MedicationRequest Instanzen verwiesen wird.

 GET {{FHIR_URL}}/MedicationRequest?_include=MedicationRequest:patient

Hinweis

Der FHIR-Dienst in Azure Health Data Services beschränkt Suchvorgänge mit _include und _revinclude gibt maximal 100 Elemente zurück.

_revinclude

_revinclude ermöglicht es Ihnen, nach Ressourceninstanzen zu suchen und in die Ergebnisse andere Ressourcen einzuschließen, die auf die Zielressourceninstanzen verweisen. Beispielsweise können Sie nach Patienten suchen und dann alle Begegnungen umkehren, die auf die Patienten verweisen.

GET {{FHIR_URL}}/Patient?_revinclude=Encounter:subject

_elements

_elements schränkt die Informationen in den Suchergebnissen auf eine Teilmenge der für einen Ressourcentyp definierten Elemente ein. Der _elements Parameter akzeptiert eine durch Trennzeichen getrennte Liste von Basiselementen.

GET {{FHIR_URL}}/Patient?_elements=identifier,active

Die vorherige Anforderung gibt ein Bündel von Patienten zurück. Jeder Eintrag enthält nur die Bezeichner und den aktiven Status des Patienten. Die Einträge in der Antwort enthalten einen meta.tag Wert, der SUBSETTED angibt, dass nicht alle für die Ressource definierten Elemente enthalten sind.

Suchmodifizierer

:not

:not ermöglicht es Ihnen, Ressourcen mit einem Element zu finden, das keinen bestimmten Wert aufweist. So könnten Sie beispielsweise nach Patienten suchen, die nicht weiblich sind.

GET {{FHIR_URL}}/Patient?gender:not=female

Im Gegenzug erhalten Sie alle Patient Ressourcen, deren gender Elementwert nicht femaleangegeben ist, einschließlich aller Patienten ohne geschlechtsspezifischen Wert. Dies unterscheidet sich von der Suche nach Patient Ressourcen mit dem male Geschlechterwert, da die Patienten ohne bestimmtes Geschlecht ignoriert würden.

:missing

:missing gibt alle Ressourcen zurück, die keinen Wert für das angegebene Element haben, wenn :missing=true. Gibt außerdem alle Ressourcen zurück, :missing die das angegebene Element enthalten, wenn :missing=false. Bei einfachen Datentypelementen stimmt es mit allen Ressourcen überein, in denen ein Element vorhanden ist, :missing=true aber einen leeren Wert aufweist. Wenn Sie beispielsweise alle Patient Ressourcen finden möchten, zu birthdatedenen Informationen fehlen, können Sie den folgenden Aufruf ausführen.

GET {{FHIR_URL}}/Patient?birthdate:missing=true

:exact

:exact wird verwendet, um nach Elementen mit string Datentypen zu suchen und gibt positive Werte zurück, wenn der Parameterwert genau mit der Groß-/Kleinschreibung und der vollständigen Zeichenfolge des Elementwerts übereinstimmt.

GET {{FHIR_URL}}/Patient?name:exact=Jon

Diese Anforderung gibt Ressourcen zurückPatient, die den Namen oder family den given Namen aufweisenJon. Wenn Patienten mit Namen wie Jonathan oder JON, die Suche würde diese Ressourcen ignorieren, da ihre Namen nicht exakt mit dem angegebenen Wert übereinstimmen.

:contains

:contains wird verwendet, um Typenelemente abzufragen string und Übereinstimmungen mit dem angegebenen Wert an einer beliebigen Stelle im Feld zu ermöglichen. contains die Groß-/Kleinschreibung nicht beachtet wird und erkennt übereinstimmende Zeichenfolgen, die mit anderen Zeichen verkettet sind. Zum Beispiel:

GET {{FHIR_URL}}/Patient?address:contains=Meadow

Diese Anforderung würde alle Patient Ressourcen mit address Elementfeldern zurückgeben, die die Zeichenfolge "Wiesen" enthalten (Groß-/Kleinschreibung wird nicht beachtet). Dies bedeutet, dass Sie Adressen mit Werten wie "Wiesengasse", "Pinemeadow Place" oder "Meadowlark St" haben könnten, die positive Übereinstimmungen zurückgeben.

Um Suchvorgänge auszuführen, die Elemente abdecken, die in einer referenzierten Ressource enthalten sind, können Sie eine Reihe von Parametern zusammen mit "verketten" .. Wenn Sie beispielsweise alle DiagnosticReport Ressourcen mit einem Verweis auf einen subject von nameihnen angegebenen Patienten anzeigen möchten, verwenden Sie die folgende Abfrage.

 GET {{FHIR_URL}}/DiagnosticReport?subject:Patient.name=Sarah

Diese Anforderung gibt alle DiagnosticReport Ressourcen mit einem Patientenbetreff namens "Sarah" zurück. Die . verkettete Suche wird auf das name Element innerhalb der referenzierten Ressource verwiesen Patient .

Eine weitere häufige Verwendung der FHIR-Suche ist das Auffinden aller Begegnungen für einen bestimmten Patienten. To do a regular (non-chained) search for Encounter resources that reference a Patient with a given id use the following.

GET {{FHIR_URL}}/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f

Mithilfe der verketteten Suche finden Sie alle Encounter Ressourcen, die auf Patienten verweisen, deren Details mit einem Suchparameter übereinstimmen. Im folgenden Beispiel wird veranschaulicht, wie Sie nach Begegnungen suchen, die auf Patienten verweisen, die durch birthdateeingeschränkt sind.

GET {{FHIR_URL}}/Encounter?subject:Patient.birthdate=1987-02-20

Dadurch würden alle Encounter Instanzen zurückgegeben, die auf Patienten mit dem angegebenen birthdate Wert verweisen.

Darüber hinaus können Sie mehrere verkettete Suchvorgänge mithilfe des & Operators initiieren, wodurch die Suche nach mehreren Verweisen in einer Anforderung ermöglicht wird. In Fällen, in denen &die verkettete Suche "unabhängig" nach jedem Elementwert sucht.

GET {{FHIR_URL}}/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA

Dadurch werden alle Patient Ressourcen zurückgegeben, die einen Verweis auf "Sarah" haben, sowie generalPractitioner einen Verweis auf eine generalPractitioner Adresse im Bundesstaat Washington. Mit anderen Worten, wenn ein Patient eine generalPractitioner benannte Sarah aus dem Bundesstaat New York und ein anderer generalPractitioner benannter Bill aus Washington state hatte, erfüllten beide die Bedingungen für eine positive Übereinstimmung bei dieser Suche.

Für Szenarien, in denen die Suche eine logische AND-Bedingung erfordert, die streng auf gekoppelte Elementwerte überprüft, finden Sie in den folgenden zusammengesetzten Suchbeispielen .

Mithilfe der umgekehrten verketteten Suche in FHIR können Sie nach Zielressourceninstanzen suchen, auf die von anderen Ressourcen verwiesen wird. Mit anderen Worten, Sie können basierend auf den Eigenschaften von Ressourcen, die auf sie verweisen, nach Ressourcen suchen. Dies wird mit dem _has Parameter erreicht. Beispielsweise verfügt die Observation Ressource über einen Suchparameter patient , der nach einem Verweis auf eine Patient Ressource sucht. Verwenden Sie den folgenden Code, um nach allen Patient Ressourcen zu suchen, auf die von einem Observation bestimmten codeObjekt verwiesen wird.

GET {{FHIR_URL}}/Patient?_has:Observation:patient:code=527

Diese Anforderung gibt Ressourcen zurück Patient , auf die von Observation Ressourcen mit dem Code 527verwiesen wird.

Darüber hinaus kann die umgekehrte verkettete Suche eine rekursive Struktur aufweisen. Wenn Sie z. B. nach allen Patienten suchen möchten, auf die durch eine Observation Stelle verwiesen wird, auf die die Beobachtung von einem AuditEvent bestimmten Arzt mit dem Namen janedoeverwiesen wird, verwenden Sie:

GET {{FHIR_URL}}/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe

Um nach Ressourcen zu suchen, die Elemente enthalten, die als logisch verbundene Paare gruppiert sind, definiert FHIR die zusammengesetzte Suche, die einzelne Parameterwerte zusammen mit dem $ Operator verbindet – um ein verbundenes Parameterpaar zu bilden. Bei einer zusammengesetzten Suche tritt eine positive Übereinstimmung auf, wenn die Schnittmenge von Elementwerten alle bedingungen erfüllt, die in den Paarsuchparametern festgelegt sind. Das folgende Beispiel fragt nach allen DiagnosticReport Ressourcen ab, die einen Kaliumwert kleiner als :9.2

GET {{FHIR_URL}}/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2

Die gekoppelten Elemente in diesem Fall wären das code Element (aus einer Observation Ressource, auf die resultverwiesen wird) und das value mit dem codeElement verbundene Element . Nach dem Code mit dem $ Operator wird die value Bedingung als lt (für "kleiner als") (für den Kalium mmol/L-Wert) 9.2 festgelegt.

Zusammengesetzte Suchparameter können auch verwendet werden, um mehrere Komponentencodewertmengen mit einem logischen OR zu filtern. So können Sie beispielsweise Beobachtungen mit diastolischem Blutdruck abfragen, der größer als 90 ODER systolischer Blutdruck ist, der größer als 140 ist:

GET {{FHIR_URL}}/Observation?component-code-value-quantity=http://loinc.org|8462-4$gt90,http://loinc.org|8480-6$gt140

Beachten Sie, wie , sie als logischer OR-Operator zwischen den beiden Bedingungen funktioniert.

Anzeigen des nächsten Eintragssatzes

Die maximale Anzahl von Ressourcen, die gleichzeitig aus einer Suchabfrage zurückgegeben werden können, beträgt 1000. Möglicherweise verfügen Sie jedoch über mehr als 1.000 Ressourceninstanzen, die der Suchabfrage entsprechen, und Sie möchten den nächsten Ergebnissatz nach den ersten 1.000 Einträgen abrufen. In diesem Fall würden Sie den Fortsetzungswert (d. h. den ) Tokenwert url im Bündel verwenden, "next"das searchset von der Suche wie folgt zurückgegeben wird.

    "resourceType": "Bundle",
    "id": "98731cb7-3a39-46f3-8a72-afe945741bd9",
    "meta": {
        "lastUpdated": "2021-04-22T09:58:16.7823171+00:00"
    },
    "type": "searchset",
    "link": [
        {
            "relation": "next",
            "url": "{{FHIR_URL}}/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd"
        },
        {
            "relation": "self",
            "url": "{{FHIR_URL}}/Patient?_sort=_lastUpdated"
        }
    ],

Sie würden eine GET Anforderung für die angegebene URL stellen:

GET {{FHIR_URL}}/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd

Dadurch wird der nächste Satz von Einträgen für Ihre Suchergebnisse zurückgegeben. Das searchset Bündel ist der vollständige Satz von Suchergebniseinträgen, und das Fortsetzungstoken url ist der Link, der vom FHIR-Dienst bereitgestellt wird, um die Einträge abzurufen, die nicht in die erste Teilmenge passen (aufgrund der Einschränkung der maximalen Anzahl von Einträgen, die für eine Seite zurückgegeben werden).

Suchen mithilfe von POST

Alle hier erwähnten Suchbeispiele verwenden GET Anforderungen. Sie können jedoch auch FHIR-Such-API-Aufrufe mit POST dem _search Parameter wie folgt ausführen.

POST {{FHIR_URL}}/Patient/_search?_id=45

Diese Anforderung gibt die Patient Ressourceninstanz mit dem angegebenen id Wert zurück. Wie bei GET Anforderungen bestimmt der Server, welche Ressourceninstanzen die Bedingungen erfüllen, und gibt ein Bundle in der HTTP-Antwort zurück.

Ein weiteres Feature der Suche besteht POST darin, dass Sie die Abfrageparameter als Formulartext übermitteln können.

POST {{FHIR_URL}}/Patient/_search
content-type: application/x-www-form-urlencoded

name=John

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie in FHIR mithilfe von Suchparametern, Modifizierern und anderen Methoden suchen. Weitere Informationen zur FHIR-Suche finden Sie unter

Hinweis

FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.