Ö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 , POST
levereras 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 GET
få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!
- 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. - 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 first
inte , last
eller 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.