Översikt över FHIR-sökning i Azure Health Data Services

FHIR-specifikationen® (Fast Healthcare Interoperability Resources) definierar ett API för att fråga efter resurser i en FHIR-serverdatabas. Den här artikeln vägleder dig genom viktiga aspekter av FHIR-sökning i Azure Health Data Services, inklusive sökparametrar, modifierare, sidnumrering och länkade sökningar. Fullständig information om FHIR-sök-API:et finns i HL7 FHIR Search-dokumentationen .

I den här artikeln representerar {{FHIR_URL}} platshållaren bas-URL:en för FHIR-tjänsten i exempel på API-anrop som demonstrerar FHIR-söksyntax. Om FHIR-tjänsten finns i Azure Health Data Services är URL:en https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com.

Du kan utföra FHIR-sökningar mot en specifik resurstyp, ett angivet fack eller alla resurser i FHIR-serverdatabasen. Det enklaste sättet att köra en sökning i FHIR är att använda en GET begäran. Om du till exempel vill hämta alla Patient resurser i databasen använder du följande begäran.

GET {{FHIR_URL}}/Patient

Du kan också söka med POST. Om du vill söka med hjälp av POST inkluderar du sökparametrarna i begärandetexten. Med den här metoden blir det enklare att skicka frågor med längre och mer komplexa parametrar.

Genom att använda antingen POST eller GET får du, om sökbegäran lyckas, ett FHIR-paket av typen searchset som innehåller de resursinstanser som returneras av sökningen. Om sökningen misslyckas OperationOutcome innehåller svaret felinformationen.

I följande avsnitt får du lära dig om de olika aspekterna av att fråga efter resurser i FHIR. När du har gått igenom de här avsnitten kan du läsa sidan FHIR-sökexempel, som innehåller exempel på olika FHIR-sökmetoder.

Sökparametrar

När du söker i FHIR söker du i databasen efter resurser som matchar vissa villkor. FHIR-API:et anger en omfattande uppsättning sökparametrar för finjusterande sökvillkor. Varje resurs i FHIR innehåller information som en uppsättning element och sökparametrar fungerar för att fråga efter informationen i dessa element.

Om sökparametrarna matchar resurselementvärdena på ett positivt sätt returnerar FHIR-servern ett paket med matchande resurser.

För varje sökparameter definierar FHIR-specifikationen den datatyp som du kan använda. I följande tabell beskrivs stöd i FHIR-tjänsten för de olika datatyperna.

Sökparametertyp FHIR-tjänsten i Azure Health Data Services Azure API för FHIR Kommentar
nummer Ja Ja
datum Ja Ja
sträng Ja Ja
tecken Ja Ja
hänvisning Ja Ja
komposit Delvis Delvis Listan över sammansatta typer som stöds följer i den här artikeln.
kvantitet Ja Ja
URI Ja Ja
speciell Nej Nej

Vanliga sökparametrar

Vanliga sökparametrar gäller för alla resurser i FHIR. I följande tabell visas dessa parametrar, tillsammans med deras stöd i FHIR-tjänsten.

Gemensam sökparameter FHIR-tjänsten i Azure Health Data Services Azure API för FHIR Kommentar
_id Ja Ja
_lastUpdated Ja Ja
_tag Ja Ja
_type Ja Ja
_security Ja Ja
_profile Ja Ja
_has Ja Ja
_query Nej Nej
_filter Nej Nej
_list Nej Nej
_text Nej Nej
_content Nej Nej

Resursspecifika parametrar

FHIR-tjänsten i Azure Health Data Services stöder nästan alla resursspecifika sökparametrar som definierats i FHIR-specifikationen. Följande länkar listar sökparametrar som inte stöds:

Du kan också se det aktuella stödet för sökparametrar i FHIR-funktionsinstrukeringen med hjälp av följande begäran:

GET {{FHIR_URL}}/metadata

Om du vill visa de sökparametrar som stöds i funktionssatsen går du till CapabilityStatement.rest.resource.searchParam för resursspecifika sökparametrar och CapabilityStatement.rest.searchParam för sökparametrar som gäller för alla resurser.

Kommentar

FHIR-tjänsten i Azure Health Data Services indexerar inte automatiskt sökparametrar som inte definieras i den grundläggande FHIR-specifikationen. FHIR-tjänsten stöder anpassade sökparametrar.

Sammansatta sökparametrar

Sammansatta sökningar i FHIR behandlar elementpar som en enda enhet. När du till exempel söker efter observationer där en patients längd är över 60 tum måste höjdkoden och värdet komma från samma observation. Utan kombinerad sökning kan även en observation med höjdkoden och ett armlängdsvärde på över 60 tum matcha. Sammansatta sökparametrar undviker det här problemet genom att kräva att båda värdena i ett fördefinierat elementpar uppfyller kriterierna.

FHIR-tjänsten i Azure Health Data Services stöder följande parningar av sökparametertyp för sammansatta sökningar.

  • Referens, Token
  • Token, Datum
  • Token, Tal, Nummer
  • Token, Kvantitet
  • Token, sträng
  • Token, Token

Mer information finns i dokumentationen om sammansatta sökparametrar för HL7.

Kommentar

Sammansatta sökparametrar stöder inte modifierare enligt FHIR-specifikationen.

Modifierare och prefix för FHIR-sökparametrar

Med modifierare kan du kvalificera sökparametrar med extra villkor. I följande tabell visas FHIR-modifierare och deras stöd i FHIR-tjänsten.

Modifierare FHIR-tjänsten i Azure Health Data Services Azure API för FHIR Kommentar
:missing Ja Ja
:exact Ja Ja
:contains Ja Ja
:text Ja Ja
:type (referens) Ja Ja
:not Ja Ja
:below (uri) Ja Ja
:above (uri) Ja Ja
:in (token) Nej Nej
:below (token) Nej Nej
:above (token) Nej Nej
:not-in (token) Nej Nej
:identifier Nej Nej

För sökparametrar som har en specifik ordning, till exempel tal, datum och kvantiteter, använder du ett prefix före parametervärdet för att förfina sökvillkoren. Till exempel använder Patient?_lastUpdated=gt2022-08-01 prefixet gt för att ange större än. FHIR-tjänsten i Azure Health Data Services stöder alla prefix som definierats i FHIR-standarden.

rhia

FHIR-sökresultatparametrar

FHIR anger en uppsättning sökresultatparametrar som hjälper dig att hantera informationen som returneras från en sökning. Mer information om hur du använder sökresultatparametrar i FHIR finns på HL7-webbplatsen. Följande tabell visar FHIR-sökresultatparametrar och deras stöd i FHIR-tjänsten.

Sökresultatparametrar FHIR-tjänsten i Azure Health Data Services Azure API för FHIR Kommentar
_elements Ja Ja
_count Ja Ja _count är begränsad till 1 000 resurser. Om du anger högre än 1 000 returnerar tjänsten endast 1 000 resurser och innehåller en varning i paketet.
_include Ja Ja _include på PaaS och OSS på Azure Cosmos DB stöder inte :iterate(#2137).
_revinclude Ja Ja _revinclude på PaaS och OSS på Azure Cosmos DB stöder inte :iterate(#2137). Det finns också en felaktig statuskod för en felaktig begäran: #1319.
_summary Ja Ja
_total Delvis Delvis _total=none och _total=accurate
_sort Delvis Delvis sort=_lastUpdated stöds i FHIR-tjänsten. För FHIR-tjänsten och OSS SQL DB FHIR-servrar stöds sortering efter strängar och dateTime-fält. För Azure API för FHIR- och OSS Azure Cosmos DB-databaser som skapats efter den 20 april 2021 stöds sortering efter förnamn, efternamn, födelsedatum och kliniskt datum.
_contained Nej Nej
_containedType Nej Nej
_score Nej Nej
_not-referenced Ja Nej _not-referenced=*:* för att söka efter resurser som andra resurser inte refererar till. Används till exempel /Patient?_not-referenced=*:* för att söka efter patientresurser som andra resurser inte refererar till. /Patient?_not-referenced=Encounter:subject används för att söka efter Patient-resurser som Encounter-resurser inte anger som subject. En lista kan också användas för flera refererade fält, till exempel /Patient/$bulk-delete?_not-referenced=Encounter:subject&_not-referenced=DiagnosticReport:subject för att söka efter patientresurser som Encounter- och DiagnosticReport-resurser inte refererar till.

Kommentar

  1. Som standard _sort ordnar poster i stigande ordning. Du kan också använda prefixet - för att sortera i fallande ordning. Med FHIR-tjänsten kan du bara sortera på ett enda fält i taget.
  2. FHIR-tjänsten stöder jokerteckensökningar med parametern _revinclude . Om du lägger till en . frågeparameter i en _revinclude fråga dirigeras FHIR-tjänsten till att referera till alla resurser som mappats till källresursen.

Som standard är FHIR-tjänsten i Azure Health Data Services inställd på överseende hantering. Den här inställningen innebär att servern ignorerar alla okända eller parametrar som inte stöds. Om du vill använda strikt hantering, inkludera rubriken Prefer och ange handling=strict.

_include- och _revinclude-sökningar

FHIR-tjänsten stöder sökfrågor som använder parametrarna _include och _revinclude . Med de här parametrarna kan du hämta referensresurser i sökresultaten.

Sökparametern _include möjliggör hämtning av en viss FHIR-resurs och andra FHIR-resurser som den refererar till. När den används i en fråga returnerar parametern _include den angivna resursen och resurserna som den refererar till. Sökparametern _revinclude fungerar tvärtom, vilket gör det möjligt att hämta en resurs, tillsammans med andra resurser som refererar till den, vilket ger ett sätt att söka efter resurser baserat på deras relationer med andra resurser. Detaljerad information om att inkludera och _revinclude i sökparametrar finns i FHIR-sökdokumentationen.

Parametrar för begäran

När du kör en sökbegäran med _include parametrarna och _revinclude använder du följande valfria parametrar för att kontrollera antalet.

Namn Värde Beskrivning
_count Standardvärde: 10 Maxvärde: 1 000 Värdet representerar antalet målresurser som ska hämtas per begäran.
_includesCount Standardvärde: 1 000 Värdet representerar antalet matchade resurser som refereras av målresurser för att hämta per begäran.

Svaret från _include och _revinclude sökningarna innehåller upp till 1 000 objekt. Om det finns fler än 1 000 matchade objekt innehåller svaret en länk som du kan använda för att navigera i den fullständiga resultatuppsättningen.

I följande exempel görs en sökbegäran för Observationer för patient med identifierare 123.

GET {{FHIR_URL}}/Observation?subject.identifier=123&_include=Observation:subject&_includesCount=10

Svaret har observationsdata för patient 123. De matchande resurserna visas 10 per sida, med en länk för att navigera till hela resultatmängden.

{ 

  	"resourceType": "Bundle", 

 	 "id": "b5491e39-8f8f-4405-a4cf-2a6716755d73", 

  	"meta": { 

    	"lastUpdated": "2025-04-10T21:09:42.6517693+00:00" 

  	}, 

  	"type": "searchset", 

  "	link": [ 

    	{ 

      	"relation": "next", 

      	"url": "{{FHIR_URL}}/Observation?subject.identifier=123&_include=Observation:subject&_includesCount=10&ct=er97f5lRTbShgbGOqaGhgbGlsZGFmaWJiYWBgYGpSSwAAAD%2F%2Fw%3D%3D" 

    	}, 

   	 { 

    	  "relation": "related", 

      	"url": "{{FHIR_URL}}/Observation/$include?subject.identifier=123&_include=Observation:subject&_includesCount=10&includesCt=er97f5lRTbShgbGOqaGhgbGlsZGFmaWJiYWBgYGhAaaYqYmOqQUWYaNYAAAAAP%2F%2F" 

   	 }, 

    	{ 

    	  "relation": "self", 

     	 "url": "{{FHIR_URL}}/Observation?subject.identifier=123&_include=Observation:subject&_includesCount=10” 

    	} 

  	], 

  "entry": [….] 

}

Kedjad sökning och omvänd kedjad sökning

Med en länkad sökning kan du utföra riktade frågor för resurser som refererar till en annan resurs. Om du till exempel vill hitta möten där patientens namn är Jane använder du:

GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane

. i föregående begäran styr sökvägen för den kedjade sökningen till målparametern (name i detta fall).

På samma sätt kan du göra en omvänd länkad sökning med parametern _has . Den här parametern hämtar resursinstanser genom att ange kriterier för andra resurser som refererar till de resurser som är intressanta. Exempel på länkad och omvänd länkad sökning finns på sidan FHIR-sökexempel .

Paginering

Som tidigare nämnts, kan du visa resultaten från en FHIR-sökning i paginerad form via en länk som anges i bundlen searchset. Som standard visar FHIR-tjänsten 10 sökresultat per sida, men du kan ändra det här talet genom att ange parametern _count . Om det finns fler matchningar än vad som passar på en sida innehåller paketet en next länk. Upprepade hämtningar från länken next ger efterföljande sidor med resultat. Parametervärdet _count får inte överstiga 1 000.

För närvarande stöder FHIR-tjänsten i Azure Health Data Services bara länken next och stöder inte länkarna first, last eller previous i paket som returneras från en sökning.

Vanliga frågor

Vad betyder "partiellt stöd" i sökparametrar som inte stöds i R4?

Vissa resursspecifika sökparametrar omfattar mer än en datatyp, och FHIR-tjänsten i Azure Health Data Services kanske bara stöder den sökparametern på någon av dessa datatyper. Till exempel representerar Condition-abatement-age och Condition-onset-age två olika datatyper, ålder och intervall. FHIR-tjänsten i Azure Health Data Services stöder dock dessa två sökparametrar i Intervall, men inte på Ålder.

Stöds operatorn "$lastn" för Observationer?

Den här åtgärden stöds inte. Den alternativa metoden är att använda _count för att begränsa resurser som returneras per sida och _sort för att ge resultat i fallande ordning.

Nästa steg

Mer information om FHIR-sökning finns på sidan med sökexempel . Du hittar information om hur du söker med hjälp av sökparametrar, modifierare och andra FHIR-sökmetoder.

Kommentar

FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.