Dela via


Översikt över FHIR sök

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 frågor mot data i FHIR. Fullständig information om FHIR-sök-API:et finns i HL7 FHIR Search-dokumentationen .

I den här artikeln visar vi FHIR-söksyntax i api-exempelanrop med {{FHIR_URL}} platshållaren för att representera FHIR-serverns URL. Om FHIR-tjänsten finns i Azure Health Data Services skulle den här URL:en vara https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com.

FHIR-sökningar kan ske 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 kan du använda följande begäran.

GET {{FHIR_URL}}/Patient

Du kan också söka med .POST Om du vill söka med , POSTlevereras sökparametrarna i brödtexten i begäran. Det gör det enklare att skicka frågor med längre och mer komplexa parametrar.

Om sökbegäran lyckas med antingen POST eller GETfår du ett FHIR-paket searchset som innehåller resursinstanserna som returneras från sökningen. Om sökningen misslyckas hittar du felinformationen i ett OperationOutcome svar.

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

Sökparametrar

När du gör en sökning 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 en positiv matchning hittas mellan begärans sökparametrar och motsvarande elementvärden som lagras i en resursinstans i ett FHIR-sök-API-anrop returnerar FHIR-servern ett paket som innehåller resursinstanserna vars element uppfyllde sökvillkoren.

För varje sökparameter definierar FHIR-specifikationen den datatyp som kan användas. Stöd i FHIR-tjänsten för de olika datatyperna beskrivs nedan.

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
token Ja Ja
hänvisning Ja Ja
sammansättning 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

Det finns vanliga sökparametrar som gäller för alla resurser i FHIR. Dessa visas på följande sätt, 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. Sökparametrar som inte stöds visas i länkarna nedan:

Du kan också se det aktuella stödet för sökparametrar i FHIR-kapacitetsinstrukeringen med 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

Med sammansatta sökningar i FHIR kan du söka efter elementpar som logiskt anslutna enheter. Om du till exempel söker efter observationer där patientens höjd var över 60 tum, vill du se till att en enda egenskap för observationen innehåller höjdkoden och ett värde som är större än 60 tum (värdet ska endast vara höjd). Du vill till exempel inte ha en positiv matchning för en observation med höjdkoden och en armlängdskod över 60 tum. Sammansatta sökparametrar förhindrar det här problemet genom att söka efter fördefinierade par med element vars värden måste uppfylla sökvillkoren för att en positiv matchning ska inträffa.

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

Med modifierare kan du kvalificera sökparametrar med ytterligare villkor. Nedan visas en tabell med 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 (tal, datum och kvantiteter) kan du använda ett prefix före parametervärdet för att förfina sökvillkoren (till exempel Patient?_lastUpdated=gt2022-08-01 där prefixet gt betyder "större än"). FHIR-tjänsten i Azure Health Data Services stöder alla prefix som definierats i FHIR-standarden.

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 är en tabell med 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 den har angetts som högre än 1 000 returneras endast 1 000 och en varning tas med i paketet.
_include Ja Ja Objekt som hämtas med _include är begränsade till 100. _include på PaaS och OSS på Azure Cosmos DB stöder :iterate inte (#2137).
_revinclude Ja Ja Objekt som hämtas med _revinclude är begränsade till 100. _revinclude på PaaS och OSS på Azure Cosmos DB stöder :iterate inte (#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

Obs!

  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 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. Det innebär att servern ignorerar alla okända eller parametrar som inte stöds. Om du vill använda strikt hantering kan du inkludera Prefer rubriken och ange handling=strict.

Länkad & bakåtlänkad sökning

Med en länkad sökning kan du utföra detaljerade frågor för resurser som har en referens 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 länkade sökningen till målparametern (name i det här fallet).

På samma sätt kan du göra en omvänd länkad sökning med parametern _has . På så sätt kan du hämta 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 .

Sidnumrering

Som tidigare nämnts är resultaten från en FHIR-sökning tillgängliga i sidnumrerad form på en länk som anges i searchset paketet. Som standard visar FHIR-tjänsten 10 sökresultat per sida, men detta kan ökas (eller minskas) 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. Observera att _count parametervärdet inte får överstiga 1 000.

FHIR-tjänsten i Azure Health Data Services stöder next för närvarande endast länken och stöder firstinte , lasteller previous länkar i paket som returneras från en sökning.

Nästa steg

Nu när du har lärt dig mer om grunderna för FHIR-sökning kan du läsa sidan med sökexempel för mer information om hur du söker med 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.