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 patient
is. 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 true
en 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 joN
had, 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.
Gekoppelde zoekopdracht
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 name
item 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. Patient
s hebben vaak een of meer Encounter
s met een onderwerp. Hieronder wordt gezocht naar alle Encounter
resources voor een Patient
met de opgegeven id
resources.
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.
Zoeken in omgekeerde keten
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 janedoe
heeft.
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.
Samengestelde zoekopdracht
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.