FHIR-sökexempel för Azure API för FHIR
Viktigt!
Azure API för FHIR avvecklas den 30 september 2026. Följ migreringsstrategierna för att övergå till Azure Health Data Services FHIR-tjänsten® senast det datumet. På grund av tillbakadragandet av Azure API för FHIR tillåts inte nya distributioner från och med den 1 april 2025. Azure Health Data Services FHIR-tjänsten är den utvecklade versionen av Azure API för FHIR som gör det möjligt för kunder att hantera FHIR-, DICOM- och MedTech-tjänster med integreringar i andra Azure-tjänster.
Följande är exempel på hur du använder FHIR-sökåtgärder® (Fast Healthcare Interoperability Resources), inklusive sökparametrar och modifierare, sökning i kedja och omvänd kedja, sammansatt sökning, visning av nästa postuppsättning för sökresultat och sökning med en POST
begäran. Mer information om sökning finns i Översikt över FHIR-sökning.
Sökresultatparametrar
_inbegripa
_include
söker efter de resurser som innehåller den angivna parametern för resursen. Du kan till exempel söka bland MedicationRequest
resurser för att bara hitta de som innehåller information om recepten för en specifik patient, vilket är parametern reference
patient
. I följande exempel hämtas alla MedicationRequests
och alla patienter som refereras från MedicationRequests
.
GET [your-fhir-server]/MedicationRequest?_include=MedicationRequest:patient
Kommentar
_include och _revinclude är begränsade till 100 objekt.
_revinclude
_revinclude
gör att du kan söka i motsatt riktning som _include
. Du kan till exempel söka efter patienter och sedan omvända inkludera alla möten som refererar till patienterna:
GET [your-fhir-server]/Patient?_revinclude=Encounter:subject
_element
_elements
begränsar sökresultatet till en delmängd fält för att minska svarsstorleken genom att utelämna onödiga data. Parametern accepterar en kommaavgränsad lista med baselement.
GET [your-fhir-server]/Patient?_elements=identifier,active
Från den här begäran får du ett paket med patienter där varje resurs endast innehåller identifierarna och patientens aktiva status. Resurser i det här svaret innehåller värdet meta.tag
SUBSETTED
för för att indikera att de är en ofullständig uppsättning resultat.
Sökmodifierare
:inte
:not
gör att du kan hitta resurser där ett attribut inte är sant. Du kan till exempel söka efter patienter där könet inte är kvinnligt.
GET [your-fhir-server]/Patient?gender:not=female
Som ett returvärde får du alla patientposter där könet inte är kvinnligt, inklusive tomma värden (poster som anges utan kön). Detta skiljer sig från att söka efter patienter där kön är man, eftersom det inte skulle inkludera posterna utan ett specifikt kön.
:försvunnen
:missing
returnerar alla resurser som inte har något värde för det angivna elementet när värdet är true
och returnerar alla resurser som innehåller det angivna elementet när värdet är false
. För enkla datatypselement :missing=true
matchar på alla resurser där elementet finns med tillägg men har ett tomt värde. I följande exempel visas hur du hittar alla Patient
resurser som saknar information om födelsedatum.
GET [your-fhir-server]/Patient?birthdate:missing=true
:exakt
:exact
används för string
parametrar och returnerar resultat som matchar parametern exakt, till exempel i hölje och teckensammanfogning.
GET [your-fhir-server]/Patient?name:exact=Jon
Den här begäran returnerar Patient
resurser som har namnet exakt samma som Jon
. Om resursen hade Patienter med namn som Jonathan
eller joN
skulle sökningen ignorera och hoppa över resursen eftersom den inte exakt matchar det angivna värdet.
:Innehåller
:contains
används för string
parametrar och söker efter resurser med partiella matchningar av det angivna värdet var som helst i strängen i fältet som genomsöks. contains
är inte skiftlägeskänslig och tillåter teckensammanfogning. Till exempel:
GET [your-fhir-server]/Patient?address:contains=Meadow
Den här begäran returnerar alla Patient
resurser med address
fält som har värden som innehåller strängen "Meadow". Det innebär att du kan ha adresser som innehåller värden som "Meadowers" eller "59 Meadow ST" som returneras som sökresultat.
Länkad sökning
Om du vill utföra en serie sökåtgärder som omfattar flera referensparametrar kan du "kedja" serien med referensparametrar genom att lägga till dem i serverbegäran en i taget med hjälp av en punkt .
. Om du till exempel vill visa alla DiagnosticReport
resurser med en subject
referens till en Patient
resurs som innehåller en viss name
:
GET [your-fhir-server]/DiagnosticReport?subject:Patient.name=Sarah
Den här begäran returnerar alla DiagnosticReport
resurser med ett patientämne med namnet "Sarah". Perioden .
efter fältet Patient
utför den länkade sökningen på parameterns referensparameter subject
.
En annan vanlig användning av en vanlig sökning (inte en länkad sökning) är att hitta alla möten för en specifik patient. Patient
s har ofta ett eller flera Encounter
s med ett ämne. Följande söker efter alla Encounter
resurser efter en Patient
med den angivna id
.
GET [your-fhir-server]/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f
Med hjälp av Patient
länkad sökning kan du hitta alla Encounter
resurser som matchar en viss information, till exempel birthdate
.
GET [your-fhir-server]/Encounter?subject:Patient.birthdate=1987-02-20
Detta skulle göra det möjligt att söka resurser Encounter
över alla patienter som har det angivna födelsedatumvärdet.
Dessutom kan länkad sökning göras mer än en gång i en begäran med hjälp av symbolen &
, som gör att du kan söka efter flera villkor i en begäran. I sådana fall söker länkad sökning "oberoende" efter varje parameter, i stället för att söka efter villkor som endast uppfyller alla villkor på en gång:
GET [your-fhir-server]/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA
Detta skulle returnera alla Patient
resurser som har "Sarah" som generalPractitioner
och har en generalPractitioner
som har adressen med tillståndet WA. Med andra ord, om en patient hade Sarah från staten NY och Bill från delstaten WA båda refereras som patientens generalPractitioner
, båda returneras.
För scenarier där sökningen måste vara en AND
åtgärd som täcker alla villkor som en grupp, se exemplet i Sammansatt sökning.
Sökning i omvänd kedja
Med kedjesökning kan du söka efter resurser baserat på egenskaperna för de resurser som de refererar till. Med omvänd kedja kan du göra det tvärtom. Du kan söka efter resurser baserat på egenskaperna för resurser som refererar till dem med hjälp av _has
parametern . En resurs har till exempel Observation
en sökparameter patient
som refererar till en patientresurs. Använd följande för att hitta alla patientresurser som refereras av Observation
med en specifik code
.
GET [base]/Patient?_has:Observation:patient:code=527
Den här begäran returnerar patientresurser som refereras av Observation
med koden 527
.
Dessutom kan sökning i omvänd kedja ha en rekursiv struktur. Till exempel söker följande efter alla patienter som har Observation
där observationen har en granskningshändelse från en specifik användare janedoe
.
GET [base]/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe
Kommentar
I Azure API för FHIR och FHIR-servern med öppen källkod som backas upp av Azure Cosmos DB är den länkade sökningen och den omvända länkade sökningen en MVP-implementering. För att utföra länkad sökning i Azure Cosmos DB går implementeringen igenom sökuttrycket och utfärdar underfrågor för att lösa de matchade resurserna. Detta görs för varje nivå i uttrycket. Om någon fråga returnerar fler än 100 resultat utlöses ett fel.
Sammansatt sökning
Om du vill söka efter resurser som uppfyller flera villkor samtidigt använder du en sammansatt sökning som kopplar en sekvens med enskilda parametervärden med en symbol $
. Resultatet blir skärningspunkten mellan de resurser som matchar alla villkor som anges av de anslutna sökparametrarna. Sådana sökparametrar kallas sammansatta sökparametrar och definierar en ny parameter som kombinerar flera parametrar i en kapslad struktur. Följande sökning hittar till exempel alla DiagnosticReport
resurser som innehåller Observation
med ett kaliumvärde som är mindre än eller lika med 9,2.
GET [your-fhir-server]/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2
Den här begäran anger komponenten som innehåller en kod för 2823-3
, som i det här fallet skulle vara kalium. Efter symbolen $
anger den intervallet för värdet för komponenten som använder lt
för "mindre än eller lika med" och 9.2
för kaliumvärdeintervallet.
Sök i nästa postuppsättning
Det maximala antalet poster som kan returneras per en enskild sökfråga är 1 000. Om fler än 1 000 poster matchar sökfrågan kan du använda följande procedur för att se poster som är större än 1 000.
Använd värdet för fortsättningstoken url
i searchset
, som i följande Bundle
resultat.
"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"
}
],
Gör sedan en GET-begäran för den angivna URL:en under fältet relation: next
.
GET [your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd
Detta returnerar nästa uppsättning poster för sökresultatet. searchset
är den fullständiga uppsättningen sökresultatposter och fortsättningstoken url
är länken som tillhandahålls av servern för att hämta poster som inte visas under de första 1 000.
Sök med POST
Alla sökexempel som tidigare nämnts använde GET
begäranden. Du kan också utföra sökåtgärder med hjälp av POST
begäranden med hjälp av _search
.
POST [your-fhir-server]/Patient/_search?_id=45
Den här begäran returnerar Patient
resurser med id
värdet 45. Precis som med GET-begäranden avgör servern vilken av resurserna som uppfyller villkoret och returnerar en paketresurs i HTTP-svaret.
Ett annat exempel på sökning med POST där frågeparametrarna skickas som formulärtext är följande.
POST [your-fhir-server]/Patient/_search
content-type: application/x-www-form-urlencoded
name=John
Nästa steg
I den här artikeln har du lärt dig hur du söker med hjälp av olika sökparametrar, modifierare och FHIR-sökverktyg. Mer information om FHIR-sökning finns i
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.