Dela via


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 trueoch 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 joNskulle 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.

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. Patients har ofta ett eller flera Encounters 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.

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.

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.