Delen via


Voorbeelden van FHIR-zoekopdrachten voor Azure API for FHIR

Belangrijk

Azure API for FHIR wordt op 30 september 2026 buiten gebruik gesteld. Volg de migratiestrategieën om op die datum over te stappen naar de FHIR-service® van Azure Health Data Services. Vanwege de buitengebruikstelling van Azure API for FHIR zijn nieuwe implementaties vanaf 1 april 2025 niet toegestaan. De FHIR-service van Azure Health Data Services is de ontwikkelde versie van Azure API for FHIR waarmee klanten FHIR-, DICOM- en MedTech-services kunnen beheren met integraties in andere Azure-services.

Hieronder ziet u voorbeelden van het gebruik van FHIR-zoekbewerkingen® (Fast Healthcare Interoperability Resources), waaronder zoekparameters en modifiers, zoeken in ketens en omgekeerde ketens, samengestelde zoekopdrachten, het weergeven van de volgende invoerset voor zoekresultaten en het zoeken met een POST aanvraag. Zie Overzicht van FHIR Search voor meer informatie over zoeken.

Parameters voor zoekresultaat

_bevatten

_include zoekt naar resources voor de resources die de opgegeven parameter van de resource bevatten. U kunt bijvoorbeeld zoeken naar MedicationRequest resources om alleen de bronnen te vinden die informatie bevatten over de recepten voor een specifieke patiënt, wat de reference parameter patientis. In het volgende voorbeeld worden alle MedicationRequests en alle patiënten opgehaald waarnaar wordt verwezen uit de MedicationRequests.

 GET [your-fhir-server]/MedicationRequest?_include=MedicationRequest:patient

Notitie

_include en _revinclude zijn beperkt tot 100 items.

_revinclude

_revinclude hiermee kunt u in de tegenovergestelde richting zoeken als _include. U kunt bijvoorbeeld zoeken naar patiënten en vervolgens omkeren alle ontmoetingen die verwijzen naar de patiënten:

GET [your-fhir-server]/Patient?_revinclude=Encounter:subject

_Elementen

_elements beperkt het zoekresultaat tot een subset van velden om de antwoordgrootte te verkleinen door onnodige gegevens weg te laten. De parameter accepteert een door komma's gescheiden lijst met basiselementen.

GET [your-fhir-server]/Patient?_elements=identifier,active

Op basis van deze aanvraag krijgt u een bundel patiënten waarbij elke resource alleen de id's en de actieve status van de patiënt bevat. Resources in dit antwoord bevatten een meta.tag waarde om SUBSETTED aan te geven dat ze een onvolledige set resultaten zijn.

Zoekaanpassingen

:niet

:not hiermee kunt u resources vinden waar een kenmerk niet waar is. U kunt bijvoorbeeld zoeken naar patiënten waar het geslacht niet vrouwelijk is.

GET [your-fhir-server]/Patient?gender:not=female

Als retourwaarde krijgt u alle patiëntenvermeldingen waarbij het geslacht niet vrouwelijk is, inclusief lege waarden (vermeldingen die zijn opgegeven zonder geslacht). Dit is anders dan het zoeken naar patiënten waar geslacht mannelijk is, omdat dat de vermeldingen niet zou bevatten zonder een specifiek geslacht.

:vermist

:missing retourneert alle resources die geen waarde hebben voor het opgegeven element wanneer de waarde is trueen retourneert alle resources die het opgegeven element bevatten wanneer de waarde is false. Voor eenvoudige gegevenstype-elementen komt :missing=true dit overeen met alle resources waar het element aanwezig is met extensies, maar heeft een lege waarde. In het volgende voorbeeld ziet u hoe u alle Patient resources kunt vinden die informatie over de geboortedatum ontbreken.

GET [your-fhir-server]/Patient?birthdate:missing=true

:nauwkeurig

:exact wordt gebruikt voor string parameters en retourneert resultaten die exact overeenkomen met de parameter, zoals in hoofdlettergebruik en tekensamenvoeging.

GET [your-fhir-server]/Patient?name:exact=Jon

Met deze aanvraag worden resources geretourneerd Patient die exact dezelfde naam hebben als Jon. Als de resource patiënten met namen zoals Jonathan of joNhad, zou de zoekopdracht de resource negeren en overslaan omdat deze niet exact overeenkomt met de opgegeven waarde.

:Bevat

:contains wordt gebruikt voor string parameters en zoekt naar resources met gedeeltelijke overeenkomsten van de opgegeven waarde ergens in de tekenreeks in het veld dat wordt doorzocht. contains is niet hoofdlettergevoelig en staat tekensamenvoeging toe. Voorbeeld:

GET [your-fhir-server]/Patient?address:contains=Meadow

Met deze aanvraag worden alle Patient resources geretourneerd met address velden met waarden die de tekenreeks 'Weide' bevatten. Dit betekent dat u adressen kunt hebben die waarden bevatten zoals 'Meadowers' of '59 Meadow ST' die als zoekresultaten worden geretourneerd.

Als u een reeks zoekbewerkingen wilt uitvoeren die betrekking hebben op meerdere referentieparameters, kunt u de reeks referentieparameters koppelen door ze één voor één toe te voegen aan de serveraanvraag met behulp van een punt .. Als u bijvoorbeeld alle DiagnosticReport resources wilt weergeven met een subject verwijzing naar een Patient resource die een bepaald nameitem bevat:

 GET [your-fhir-server]/DiagnosticReport?subject:Patient.name=Sarah

Deze aanvraag retourneert alle resources met een patiëntonderwerp met de DiagnosticReport naam Sarah. De periode . na het veld Patient voert de ketenzoekopdracht uit op de verwijzingsparameter van de subject parameter.

Een ander veelvoorkomend gebruik van een reguliere zoekopdracht (niet een geketende zoekopdracht) is het vinden van alle overeenkomsten voor een specifieke patiënt. Patients hebben vaak een of meer Encounters met een onderwerp. Hieronder wordt gezocht naar alle Encounter resources voor een Patient met de opgegeven idresources.

GET [your-fhir-server]/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f

Met behulp van Patient ketenzoekopdrachten kunt u alle Encounter resources vinden die overeenkomen met een bepaald stukje informatie, zoals de birthdate.

GET [your-fhir-server]/Encounter?subject:Patient.birthdate=1987-02-20

Hierdoor kunnen resources worden gezocht voor Encounter alle patiënten met de opgegeven geboortedatumwaarde.

Bovendien kan zoeken in een keten meer dan één keer in één aanvraag worden uitgevoerd met behulp van het symbool &, waarmee u in één aanvraag naar meerdere voorwaarden kunt zoeken. In dergelijke gevallen zoekt geketende zoekopdracht 'onafhankelijk' naar elke parameter, in plaats van te zoeken naar voorwaarden die alleen aan alle voorwaarden tegelijk voldoen:

GET [your-fhir-server]/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA

Hiermee worden alle Patient resources geretourneerd die 'Sarah' hebben als generalPractitioner de en een generalPractitioner die het adres heeft met de staat WA. Met andere woorden, als een patiënt Sarah van de staat NY en Bill van de staat WA had, worden beide geretourneerd als de patiënt generalPractitioner.

Voor scenario's waarin de zoekopdracht een AND bewerking moet zijn die alle voorwaarden als groep omvat, raadpleegt u het voorbeeld in Samengestelde zoekopdracht.

Met ketenzoekopdrachten kunt u zoeken naar resources op basis van de eigenschappen van resources waarnaar ze verwijzen. Met reverse chain search kunt u dit andersom doen. U kunt zoeken naar resources op basis van de eigenschappen van resources die ernaar verwijzen met behulp van _has de parameter. Een resource heeft bijvoorbeeld Observation een zoekparameter patient die verwijst naar een patiëntresource. Gebruik het volgende om alle patiëntbronnen te vinden waarnaar Observation wordt verwezen met een specifieke code.

GET [base]/Patient?_has:Observation:patient:code=527

Deze aanvraag retourneert patiëntenbronnen waarnaar wordt verwezen Observation met de code 527.

Bovendien kan reverse chain search een recursieve structuur hebben. Met de volgende zoekopdracht wordt bijvoorbeeld gezocht naar alle patiënten met Observation waar de observatie een controlegebeurtenis van een specifieke gebruiker janedoeheeft.

GET [base]/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe

Notitie

In de Azure API for FHIR en de opensource FHIR-server die wordt ondersteund door Azure Cosmos DB, is de ketenzoekopdracht en omgekeerde zoekopdracht een MVP-implementatie. Voor het uitvoeren van ketenzoekopdrachten in Azure Cosmos DB wordt de zoekexpressie beschreven en worden subquery's uitgevoerd om de overeenkomende resources op te lossen. Dit wordt gedaan voor elk niveau van de expressie. Als een query meer dan 100 resultaten retourneert, wordt er een fout gegenereerd.

Als u wilt zoeken naar resources die aan meerdere voorwaarden tegelijk voldoen, gebruikt u een samengestelde zoekopdracht waarmee een reeks enkele parameterwaarden wordt samengevoegd met een symbool $. Het resultaat is het snijpunt van de resources die voldoen aan alle voorwaarden die zijn opgegeven door de gekoppelde zoekparameters. Dergelijke zoekparameters worden samengestelde zoekparameters genoemd en ze definiëren een nieuwe parameter die de meerdere parameters in een geneste structuur combineert. Met de volgende zoekopdracht worden bijvoorbeeld alle DiagnosticReport resources gevonden die een kaliumwaarde kleiner dan of gelijk aan 9,2 bevatten Observation .

GET [your-fhir-server]/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2

Deze aanvraag specificeert het onderdeel met een code van 2823-3, die in dit geval kalium zou zijn. Na het $ symbool wordt het bereik opgegeven van de waarde voor het onderdeel dat wordt gebruikt lt voor 'kleiner dan of gelijk aan' en 9.2 voor het kaliumwaardebereik.

Zoeken in de volgende invoerset

Het maximum aantal vermeldingen dat per zoekquery kan worden geretourneerd, is 1000. Als meer dan 1000 vermeldingen overeenkomen met de zoekquery, kunt u de volgende procedure gebruiken om vermeldingen groter dan 1000 weer te geven.
Gebruik de vervolgtokenwaarde url in searchset, zoals in het volgende Bundle resultaat.

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

Voer vervolgens een GET-aanvraag uit voor de opgegeven URL onder het veld relation: next.

GET [your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd

Hiermee wordt de volgende set vermeldingen voor het zoekresultaat geretourneerd. Dit searchset is de volledige set zoekresultaten en het vervolgtoken url is de koppeling van de server waarmee u vermeldingen kunt ophalen die niet worden weergegeven in de eerste 1000.

Zoeken met POST

Alle eerder genoemde zoekvoorbeelden gebruikten GET aanvragen. U kunt ook zoekbewerkingen uitvoeren met behulp van POST aanvragen met behulp van _search.

POST [your-fhir-server]/Patient/_search?_id=45

Deze aanvraag retourneert Patient resources met de id waarde 45. Net als bij GET-aanvragen bepaalt de server welke van de set resources voldoet aan de voorwaarde en retourneert een bundelresource in het HTTP-antwoord.

Een ander voorbeeld van zoeken met BEHULP van POST, waarbij de queryparameters als hoofdtekst van het formulier worden verzonden, is als volgt.

POST [your-fhir-server]/Patient/_search
content-type: application/x-www-form-urlencoded

name=John

Volgende stappen

In dit artikel hebt u geleerd hoe u kunt zoeken met behulp van verschillende zoekparameters, modifiers en FHIR-zoekhulpprogramma's. Zie voor meer informatie over FHIR Search

Notitie

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