Dela via


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ör AllergyIntolerance 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 ValueSetoch 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.