Lagra profiler i 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.
HL7 FHIR® (Fast Healthcare Interoperability Resources) definierar ett standard- och samverkande sätt att lagra och utbyta hälso- och sjukvårdsdata. Även inom den grundläggande FHIR-specifikationen kan det vara bra att definiera andra regler eller tillägg baserat på den kontext som FHIR används. För sådan kontextspecifik användning av FHIR används FHIR-profiler för det extra skiktet av specifikationer. Med FHIR-profilen kan du begränsa och anpassa resursdefinitioner med hjälp av begränsningar och tillägg.
Med Azure API för FHIR kan du verifiera resurser mot profiler för att se om resurserna överensstämmer med profilerna. Den här artikeln vägleder dig genom grunderna i FHIR-profiler och hur du lagrar dem. Mer information om FHIR-profiler utanför den här artikeln finns i HL7.org.
FHIR-profil: grunderna
En profil anger ytterligare kontext för resursen som representeras som en StructureDefinition
resurs. A StructureDefinition
definierar en uppsättning regler för innehållet i en resurs eller datatyp, till exempel vilka element en resurs har och vilka värden dessa element kan ta.
Några exempel på hur profiler kan ändra basresursen är:
- Begränsa kardinalitet: Du kan till exempel ange maximal kardinalitet för ett element till 0, vilket innebär att elementet utesluts i den specifika kontexten.
- Begränsa innehållet i ett element till ett enda fast värde.
- Definiera nödvändiga tillägg för resursen.
A StructureDefinition
identifieras med dess kanoniska URL: http://hl7.org/fhir/StructureDefinition/{profile}
.
Här följer några exempel.
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
är en basprofil som kräver information om patientens registrerade födelseadress.http://hl7.org/fhir/StructureDefinition/bmi
är en annan basprofil som definierar hur man representerar BMI-observationer (Body Mass Index).http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
är en US Core-profil som anger minimiförväntningar förAllergyIntolerance
resurser som är associerade med en patient och som identifierar obligatoriska fält som tillägg och värdeuppsättningar.
När en resurs överensstämmer med en profil anges profilen i resurselementet profile
. Följande är ett exempel på början av en Patient
resurs som har profilen http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient.
{
"resourceType" : "Patient",
"id" : "ExamplePatient1",
"meta" : {
"lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
"source" : "Organization/PayerOrganizationExample1",
"profile" : [
"http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
]
},
Kommentar
Profiler måste bygga ovanpå basresursen och kan inte komma i konflikt med basresursen. Om ett element till exempel har kardinaliteten 1..1 kan profilen inte göra det valfritt.
Profiler anges av olika implementeringsguider (IG:er). Följande är en lista över vanliga IG:er. Mer information finns på den specifika IG-webbplatsen för att lära dig mer om IG och de profiler som definierats i den.
Kommentar
Azure API för FHIR lagrar som standard inte några profiler från implementeringsguider. Du måste läsa in dem i Azure API för FHIR.
Åtkomst till profiler och lagring av profiler
Lagra profiler
Om du vill lagra profiler i Azure API för FHIR kan PUT
StructureDefinition
du använda profilinnehållet i brödtexten i begäran. En uppdatering eller en villkorlig uppdatering är båda bra metoder för att lagra profiler i FHIR-tjänsten. Använd den villkorliga uppdateringen om du är osäker på vilken du ska använda.
Standard PUT
: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id
or
Villkorlig uppdatering: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url
{
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
…
}
Om du till exempel vill lagra profilen us-core-allergyintolerance
använder du följande vilokommando med US Core-profilen för allergiintolerans i kroppen. Vi har inkluderat ett kodfragment av den här profilen för exemplet.
PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
"resourceType" : "StructureDefinition",
"id" : "us-core-allergyintolerance",
"text" : {
"status" : "extensions"
},
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
"version" : "3.1.1",
"name" : "USCoreAllergyIntolerance",
"title" : "US Core AllergyIntolerance Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-06-29",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",
Fler exempel finns i REST-exempelfilen för US Core på webbplatsen med öppen källkod som går igenom lagringen av US Core-profiler. För att få de senaste profilerna bör du hämta profilerna direkt från HL7 och implementeringsguiden som definierar dem.
Visa profiler
Du kan komma åt dina befintliga anpassade profiler med hjälp av en GET
begäran, GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}
, där {canonicalUrl}
är profilens kanoniska URL.
Använd till exempel följande om du vill visa en US Core Goal-resursprofil.
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
Detta returnerar resursen StructureDefinition
för US Core Goal-profilen, som börjar som följande.
{
"resourceType" : "StructureDefinition",
"id" : "us-core-goal",
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
"version" : "3.1.1",
"name" : "USCoreGoalProfile",
"title" : "US Core Goal Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-07-21",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",
}
Kommentar
Du ser bara de profiler som du har läst in i Azure API för FHIR.
Azure API för FHIR returnerar StructureDefinition
inte instanser för basprofilerna, men de finns på HL7-webbplatsen.
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
Profiler i funktionssatsen
I Capability Statement
listan visas alla möjliga beteenden för Azure API för FHIR. Azure API för FHIR uppdaterar funktionsutdraget med information om de lagrade profilerna i följande formulär.
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
Om du till exempel sparar en US Core Patient-profil, som börjar som följande.
{
"resourceType": "StructureDefinition",
"id": "us-core-patient",
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
"version": "3.1.1",
"name": "USCorePatientProfile",
"title": "US Core Patient Profile",
"status": "active",
"experimental": false,
"date": "2020-06-27",
"publisher": "HL7 US Realm Steering Committee",
Och skicka en GET
begäran för :metadata
GET http://<your Azure API for FHIR base URL>/metadata
Du returneras en CapabilityStatement
som innehåller följande information om den US Core Patient-profil som du laddade upp till Azure API för FHIR.
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
Bindningar i profiler
En terminologitjänst är en uppsättning funktioner som kan utföra åtgärder på medicinska "terminologier", till exempel validering av koder, översättningskoder, expanderande värdeuppsättningar och andra åtgärder.
Azure API för FHIR-tjänsten stöder inte terminologitjänsten. Information om åtgärder som stöds ($
), resurstyper och interaktioner finns i tjänstens CapabilityStatement
. Resurstyper ValueSet
och StructureDefinition
CodeSystem
stöds med grundläggande åtgärder för att skapa, läsa, uppdatera och ta bort (CRUD) och Sök (enligt definitionen i CapabilityStatement
), samt utnyttjas av systemet för användning i $validate
.
ValueSets kan innehålla en komplex uppsättning regler och externa referenser. I dag tar tjänsten endast hänsyn till de för expanderade infogade koderna. Kunder måste ladda upp valueSets som stöds till FHIR-servern innan åtgärden $validate
används. Resurserna ValueSet
måste laddas upp till FHIR-servern med hjälp av PUT eller villkorlig uppdatering, enligt beskrivningen i avsnittet lagringsprofiler .
Nästa steg
I den här artikeln har du lärt dig om FHIR-profiler. Sedan kan du lära dig hur du kan använda $validate
för att se till att resurserna överensstämmer med dessa profiler.
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.