Delen via


FHIR-zoekvoorbeelden

Hieronder volgen voorbeelden van FHIR-zoek-API-aanroepen® (Fast Healthcare Interoperability Resources) met verschillende zoekparameters, modifiers, gekoppelde en omgekeerde zoekopdrachten, samengestelde zoekopdrachten, POST zoekaanvragen en meer. Zie Overzicht van FHIR Search voor een algemene inleiding tot FHIR-zoekconcepten.

Parameters voor zoekresultaat

_include

_include hiermee kunt u zoeken naar resource-exemplaren en in de resultaten opnemen waarnaar wordt verwezen door de doelresource-exemplaren. U kunt _include bijvoorbeeld zoeken naar MedicationRequest resources en de zoekopdracht beperken tot recepten voor een specifieke patiënt. De FHIR-service retourneert vervolgens de MedicationRequest resources en de resource Patient waarnaar wordt verwezen. In het volgende voorbeeld haalt de aanvraag alle MedicationRequest resource-exemplaren op in de database en alle patiënten waarnaar wordt verwezen door de MedicationRequest exemplaren.

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

Notitie

De FHIR-service in Azure Health Data Services beperkt zoekopdrachten met _include en _revinclude retourneert maximaal 100 items.

_revinclude

_revinclude hiermee kunt u zoeken naar resource-exemplaren en deze opnemen in de resultaten van andere resources die verwijzen naar de doelresource-exemplaren. U kunt bijvoorbeeld zoeken naar patiënten en vervolgens omkeren alle ontmoetingen die verwijzen naar de patiënten.

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

_elements

_elements beperkt de informatie in de zoekresultaten tot een subset van de elementen die zijn gedefinieerd voor een resourcetype. De _elements parameter accepteert een door komma's gescheiden lijst met basiselementen.

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

De voorgaande aanvraag retourneert een bundel patiënten. Elke vermelding bevat alleen de id's en de actieve status van de patiënt. De vermeldingen in het antwoord bevatten een meta.tag waarde om SUBSETTED aan te geven dat niet alle elementen die voor de resource zijn gedefinieerd, zijn opgenomen.

Zoekaanpassingen

:not

:not hiermee kunt u resources zoeken met een element dat geen bepaalde waarde heeft. U kunt bijvoorbeeld zoeken naar patiënten die geen vrouw zijn.

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

Als resultaat krijgt u alle Patient resources waarvan gender de elementwaarde niet femaleis, inclusief patiënten zonder geslachtswaarde opgegeven. Dit verschilt van het zoeken Patient naar resources met de male geslachtswaarde, omdat patiënten zonder opgegeven geslacht worden genegeerd.

:missing

:missing retourneert alle resources die geen waarde hebben voor het opgegeven element wanneer :missing=true. Retourneert bovendien :missing alle resources die het opgegeven element bevatten wanneer :missing=false. Voor eenvoudige gegevenstype-elementen komt :missing=true deze overeen met alle resources waar een element aanwezig is, maar heeft deze een lege waarde. Als u bijvoorbeeld alle Patient resources wilt zoeken waarvoor informatie birthdateontbreekt, kunt u de volgende aanroep uitvoeren.

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

:exact

:exact wordt gebruikt om te zoeken naar elementen met string gegevenstypen en retourneert positief als de parameterwaarde exact overeenkomt met het hoofdlettergebruik en de volledige tekenreeks van de elementwaarde.

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

Deze aanvraag retourneert Patient resources met de naam of family de given naam van Jon. Als er patiënten waren met namen zoals Jonathan of JON, negeert de zoekopdracht deze resources omdat hun namen niet exact overeenkomen met de opgegeven waarde.

:contains

:contains wordt gebruikt om een query uit te voeren voor string typeelementen en kan overal in het veld overeenkomen met de opgegeven waarde. contains is niet hoofdlettergevoelig en herkent overeenkomende tekenreeksen die zijn samengevoegd met andere tekens. Voorbeeld:

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

Met deze aanvraag worden alle Patient resources geretourneerd met address elementvelden die de tekenreeks 'Weide' bevatten (hoofdlettergevoelig). Dit betekent dat u adressen kunt hebben met waarden zoals "Meadows Lane", "Pinemeadow Place" of "Meadowlark St" die positieve overeenkomsten retourneren.

Als u zoekbewerkingen wilt uitvoeren die betrekking hebben op elementen in een resource waarnaar wordt verwezen, kunt u een reeks parameters 'koppelen' samen met .. Als u bijvoorbeeld alle DiagnosticReport resources wilt weergeven met een subject verwijzing naar een patiënt die is opgegeven door name, gebruikt u de volgende query.

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

Deze aanvraag retourneert alle DiagnosticReport resources met een patiëntonderwerp met de naam Sarah. De . gekoppelde zoekopdracht verwijst naar het name element in de resource waarnaar wordt verwezen Patient .

Een ander veelvoorkomend gebruik van FHIR-zoekopdrachten is het vinden van alle overeenkomsten voor een specifieke patiënt. Als u regelmatig (niet-gekoppeld) wilt zoeken naar Encounter resources waarnaar wordt Patient verwezen met een bepaald id gebruik, gebruikt u het volgende.

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

Met behulp van ketenzoekopdrachten vindt u alle Encounter resources die verwijzen naar patiënten waarvan de details overeenkomen met een zoekparameter. In het volgende voorbeeld ziet u hoe u kunt zoeken naar personen die verwijzen naar patiënten die worden beperkt door birthdate.

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

Hiermee worden alle Encounter exemplaren geretourneerd die verwijzen naar patiënten met de opgegeven birthdate waarde.

Daarnaast kunt u meerdere gekoppelde zoekopdrachten initiëren met behulp van de & operator, waarmee u kunt zoeken op meerdere verwijzingen in één aanvraag. In gevallen waarbij &ketenzoekopdrachten 'onafhankelijk' worden gescand op elke elementwaarde.

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

Hiermee worden alle Patient resources geretourneerd die een verwijzing naar Sarah hebben als plus generalPractitioner een verwijzing naar een generalPractitioner adres in de staat Washington. Met andere woorden, als een patiënt een generalPractitioner genaamd Sarah uit New York staat en een andere generalPractitioner genaamd Bill uit Washington staat, beide voldoen aan de voorwaarden voor een positieve overeenkomst bij het uitvoeren van deze zoekopdracht.

Raadpleeg de volgende samengestelde zoekvoorbeelden voor scenario's waarin voor de zoekopdracht een logische AND-voorwaarde is vereist die strikt controleert op waarden voor gekoppelde elementen.

Met reverse chained search in FHIR kunt u zoeken naar doelresource-exemplaren waarnaar wordt verwezen door andere resources. Met andere woorden, u kunt zoeken naar resources op basis van de eigenschappen van resources die ernaar verwijzen. Dit wordt bereikt met de _has parameter. De Observation resource heeft bijvoorbeeld een zoekparameter patient waarmee wordt gecontroleerd op een verwijzing naar een Patient resource. Gebruik de volgende code om alle Patient resources te vinden waarnaar wordt verwezen door een Observation specifieke coderesource.

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

Met deze aanvraag worden resources geretourneerd Patient waarnaar wordt verwezen door Observation resources met de code 527.

Bovendien kan omgekeerde ketenzoekopdrachten een recursieve structuur hebben. Als u bijvoorbeeld wilt zoeken naar alle patiënten waarnaar wordt verwezen door een Observation waar de observatie wordt verwezen door een AuditEvent specifieke beoefenaar met de naam janedoe, gebruikt u:

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

Als u wilt zoeken naar resources die elementen bevatten die zijn gegroepeerd als logisch verbonden paren, definieert FHIR samengestelde zoekopdrachten, waarmee enkelvoudige parameterwaarden worden samengevoegd met de $ operator, die een verbonden paar parameters vormen. In een samengestelde zoekopdracht treedt een positieve overeenkomst op wanneer het snijpunt van elementwaarden voldoet aan alle voorwaarden die zijn ingesteld in de gekoppelde zoekparameters. In het volgende voorbeeld worden query's uitgevoerd voor alle DiagnosticReport resources die een kaliumwaarde bevatten die kleiner is dan 9.2:

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

De gekoppelde elementen in dit geval zijn het code element (van een Observation resource waarnaar wordt verwezen als de result) en het value element dat is verbonden met de code. Als u de code met de $ operator volgt, wordt de value voorwaarde ingesteld als lt (voor "kleiner dan") 9.2 (voor de kalium mmol/L-waarde).

Samengestelde zoekparameters kunnen ook worden gebruikt voor het filteren van hoeveelheden codewaarden van meerdere onderdelen met een logische OF. Als u bijvoorbeeld query's wilt uitvoeren op waarnemingen met diastolische bloeddruk groter dan 90 OF systolic bloeddruk groter dan 140:

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

Let op hoe , de logische OR-operator tussen de twee voorwaarden functioneert.

De volgende invoerset weergeven

Het maximum aantal resources dat tegelijk kan worden geretourneerd vanuit een zoekquery is 1000. Mogelijk hebt u echter meer dan 1000 resource-exemplaren die overeenkomen met de zoekquery en wilt u de volgende set resultaten ophalen na de eerste 1000 vermeldingen. In dit geval gebruikt u de vervolgtokenwaarde url (dat wil "next"gezegd) in de searchset bundel die als volgt wordt geretourneerd door de zoekopdracht.

    "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"
        }
    ],

U doet een GET aanvraag voor de opgegeven URL:

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

Hiermee wordt de volgende set vermeldingen voor uw zoekresultaten geretourneerd. De searchset bundel is de volledige set zoekresultaten en het vervolgtoken url is de koppeling van de FHIR-service om de vermeldingen op te halen die niet in de eerste subset passen (vanwege de beperking voor het maximum aantal vermeldingen dat voor één pagina wordt geretourneerd).

Zoeken met POST

Alle hier genoemde zoekvoorbeelden gebruiken GET aanvragen. U kunt echter ook FHIR-zoek-API-aanroepen uitvoeren met behulp van POST de _search parameter als volgt.

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

Deze aanvraag retourneert het Patient resource-exemplaar met de opgegeven id waarde. Net als bij GET aanvragen bepaalt de server welke resource-exemplaren voldoen aan de voorwaarden en retourneert een bundel in het HTTP-antwoord.

Een andere functie waarmee u kunt zoeken POST , is dat u hiermee de queryparameters kunt verzenden als hoofdtekst van een formulier.

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

name=John

Volgende stappen

In dit artikel hebt u geleerd hoe u in FHIR kunt zoeken met behulp van zoekparameters, modifiers en andere methoden. Zie voor meer informatie over FHIR zoeken

Notitie

FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.