Konvertera dina data till FHIR för Azure API för FHIR

Den $convert-data anpassade slutpunkten i FHIR-tjänsten är avsedd för datakonvertering från olika datatyper till FHIR. Den använder liquid-mallmotorn och mallarna från FHIR Converter-projektet som standardmallar. Du kan anpassa dessa konverteringsmallar efter behov.

$convert-data Den anpassade slutpunkten stöder four för närvarande typer av datakonvertering:

Ursprungsdataformat Måldataformat
C-CDA FHIR
HL7v2 FHIR
JSON FHIR
FHIR STU3 FHIR R4

Anteckning

$convert-data slutpunkten kan användas som en komponent i en ETL-pipeline för konvertering av rådata från äldre format till FHIR-format. Det är dock inte en ETL-pipeline i sig. Vi rekommenderar att du använder en ETL-motor som Logic Apps eller Azure Data Factory för ett fullständigt arbetsflöde när du förbereder FHIR-data som ska sparas på FHIR-servern. Arbetsflödet kan innehålla: dataläsning och inmatning, datavalidering, $convert-data-API-anrop, dataför-/efterbearbetning, databerikning och dataduplicering.

Använda slutpunkten $convert-data

Åtgärden $convert-data är integrerad i FHIR-tjänsten som ska köras som en del av tjänsten. När du har aktiverat $convert-data på servern kan du göra API-anrop till servern för att konvertera dina data till FHIR: https://<<FHIR service base URL>>/$convert-data

Parameterresurs

$convert-data tar en parameterresurs i begärandetexten enligt beskrivningen i tabellen nedan. I API-begärandetexten för anrop innehåller du följande parametrar:

Parameternamn Beskrivning Godkända värden
inputData Data som ska konverteras. För Hl7v2: sträng
För Ccda: XML
För Json: JSON
För FHIR STU3: JSON
inputDataType Datatyp för indata. HL7v2, Ccda, Json, Fhir
templateCollectionReference Referens till en samling OCI-avbildningsmallar på Azure Container Registry (ACR). Det är den bild som innehåller Liquid-mallar som ska användas för konvertering. Det kan vara en referens antingen till standardmallarna eller en anpassad mallbild som är registrerad i FHIR-tjänsten. Se nedan för att lära dig mer om att anpassa mallarna, vara värd för dem på ACR och registrera dig för FHIR-tjänsten. För standardmallar/exempelmallar :
HL7v2-mallar :
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
C-CDA-mallar :
microsofthealth/ccdatemplates:default
JSON-mallar :
microsofthealth/jsontemplates:default
FHIR STU3-mallar :
microsofthealth/stu3tor4templates:default

För anpassade mallar:
<RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag>
rootTemplate Rotmallen som ska användas när data transformeras. För HL7v2:
"ADT_A01", "ADT_A02", "ADT_A03", "ADT_A04", "ADT_A05", "ADT_A08", "ADT_A11", "ADT_A13", "ADT_A14", "ADT_A15", "ADT_A16", "ADT_A25", "ADT_A26", "ADT_A27", "ADT_A27", "ADT_A15", "ADT_A16", "ADT_A25", "ADT_A26", "ADT_A27", "ADT_A27", "ADT_A15", "ADT_A16", "ADT_A25", "ADT_A26", "ADT_A27", "ADT_A27" ADT_A28, "ADT_A29", "ADT_A31", "ADT_A47", "ADT_A60", "OML_O21", "ORU_R01", "ORM_O01", "VXU_V04", "SIU_S12", "SIU_S13", "SIU_S14", "SIU_S15", "SIU_S16", "SIU_S17", "SIU_S26", "MDM_T01", "MDM_T02"

För C-CDA:
"CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

För JSON:
"ExamplePatient", "Stu3ChargeItem"

FHIR STU3":
STU3 Resursnamn, t.ex. "Patient", "Observation", "Organisation".

Anteckning

FHIR STU3 till R4-mallar är "diff" Liquid-mallar som endast tillhandahåller mappningar av fältskillnader mellan STU3-resursen och motsvarande resurs i FHIR R4-standarden. Vissa av STU3-resurserna har bytt namn eller tagits bort från R4. Se Resursskillnader och begränsningar för STU3 till R4-konvertering.

Anteckning

JSON-mallar är exempelmallar för användning, inte "standardmallar" som följer eventuella fördefinierade JSON-meddelandetyper. JSON har inga standardiserade meddelandetyper, till skillnad från HL7v2-meddelanden eller C-CDA-dokument. I stället för standardmallar ger vi dig därför några exempelmallar som du kan använda som startguide för dina egna anpassade mallar.

Varning

Standardmallar släpps under MIT-licens och stöds inte av Microsoft Support.

Standardmallar tillhandahålls bara för att hjälpa dig att komma igång snabbt. De kan uppdateras när vi uppdaterar versioner av Azure API för FHIR. Därför måste du verifiera konverteringsbeteendet och vara värd för din egen kopia av mallar på en Azure Container Registry, registrera dem i Azure API för FHIR och använda i dina API-anrop för att ha konsekvent datakonverteringsbeteende i de olika versionerna av Azure API för FHIR.

Exempelförfrågan

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "inputData",
            "valueString": "MSH|^~\\&|SIMHOSP|SFAC|RAPP|RFAC|20200508131015||ADT^A01|517|T|2.3|||AL||44|ASCII\nEVN|A01|20200508131015|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^D||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^PRN|||||||||C^White - Other^^^||||||||\nPD1|||FAMILY PRACTICE^^12345|\nPV1|1|I|OtherWard^MainRoom^Bed 183^Simulated Hospital^^BED^Main Building^4|28b|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|||CAR|||||||||16094728916771313876^^^^visitid||||||||||||||||||||||ARRIVED|||20200508131015||"
        },
        {
            "name": "inputDataType",
            "valueString": "Hl7v2"
        },
        {
            "name": "templateCollectionReference",
            "valueString": "microsofthealth/fhirconverter:default"
        },
        {
            "name": "rootTemplate",
            "valueString": "ADT_A01"
        }
    ]
}

Exempelsvar

{
  "resourceType": "Bundle",
  "type": "transaction",
  "entry": [
    {
      "fullUrl": "urn:uuid:9d697ec3-48c3-3e17-db6a-29a1765e22c6",
      "resource": {
        "resourceType": "Patient",
        "id": "9d697ec3-48c3-3e17-db6a-29a1765e22c6",
        ...
        ...
      "request": {
        "method": "PUT",
        "url": "Location/50becdb5-ff56-56c6-40a1-6d554dca80f0"
      }
    }
  ]
}

Anpassa mallar

Du kan använda FHIR-konverterartillägget för Visual Studio Code för att anpassa mallarna efter dina behov. Tillägget ger en interaktiv redigeringsupplevelse och gör det enkelt att ladda ned Microsoft-publicerade mallar och exempeldata. Mer information finns i dokumentationen i tillägget.

Anteckning

FHIR Converter-tillägget för Visual Studio Code är tillgängligt för HL7v2-, C-CDA- och JSON Liquid-mallar. FHIR STU3 till R4 Liquid-mallar stöds för närvarande inte.

Vara värd för och använda mallar

Vi rekommenderar att du är värd för din egen kopia av mallar på ACR. Det finns fyra steg som är involverade i att vara värd för din egen kopia av mallar och använda dem i $convert-dataåtgärden:

  1. Skicka mallarna till din Azure Container Registry.
  2. Aktivera hanterad identitet i azure-API:et för FHIR-instansen.
  3. Ge åtkomst till ACR till Azure API för FHIR Managed Identity.
  4. Registrera ACR-servrarna i Azure API för FHIR.
  5. Du kan också konfigurera ACR-brandväggen för säker åtkomst.

Skicka mallar till Azure Container Registry

När du har skapat en ACR-instans kan du använda kommandot FHIR Converter: Push Templates i FHIR Converter-tillägget för att skicka de anpassade mallarna till ACR. Du kan också använda CLI-verktyget Mallhantering för det här ändamålet.

Aktivera hanterad identitet i Azure API för FHIR

Bläddra till din instans av Azure API för FHIR-tjänsten i Azure Portal och välj sedan bladet Identitet. Ändra status till för att aktivera hanterad identitet i Azure API för FHIR.

Skärmbild av Aktivera hanterad identitet.

Ge åtkomst till ACR till Azure API för FHIR

  1. Bläddra till bladet Åtkomstkontroll (IAM).

  2. Välj Lägg till och välj sedan Lägg till rolltilldelning för att öppna sidan Lägg till rolltilldelning.

  3. Tilldela rollen AcrPull .

    Skärmbild av sidan Lägg till rolltilldelning.

Mer information om hur du tilldelar roller i Azure Portal finns i Inbyggda Roller i Azure.

Registrera ACR-servrarna i Azure API för FHIR

Du kan registrera ACR-servern med hjälp av Azure Portal eller med hjälp av CLI.

Registrera ACR-servern med hjälp av Azure Portal

Bläddra till bladet Artefakter under Datatransformering i din Azure API för FHIR-instans. Du ser listan över ACR-servrar som är registrerade för tillfället. Välj Lägg till och välj sedan registerservern i den nedrullningsbara menyn. Du måste välja Spara för att registreringen ska börja gälla. Det kan ta några minuter att tillämpa ändringen och starta om instansen.

Registrera ACR-servern med CLI

Du kan registrera upp till 20 ACR-servrar i Azure API för FHIR.

Installera Azure Health Data Services CLI från Azure PowerShell om det behövs:

az extension add -n healthcareapis

Registrera acr-servrarna till Azure API för FHIR enligt exemplen nedan:

Registrera en enda ACR-server
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Registrera flera ACR-servrar
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021

Konfigurera ACR-brandvägg

Välj Nätverk för Azure Storage-kontot från portalen.

 Skärmbild av containerregistret.

Välj Valda nätverk.

Under avsnittet Brandvägg anger du IP-adressen i rutan Adressintervall . Lägg till IP-intervall för att tillåta åtkomst från Internet eller dina lokala nätverk.

I tabellen nedan hittar du IP-adressen för den Azure-region där Azure API för FHIR-tjänsten etableras.

Azure-region Offentlig IP-adress
Australien, östra 20.53.47.210
Brasilien, södra 191.238.72.227
Kanada, centrala 20.48.197.161
Indien, centrala 20.192.47.66
East US 20.62.134.242, 20.62.134.244, 20.62.134.245
USA, östra 2 20.62.60.115, 20.62.60.116, 20.62.60.117
Frankrike, centrala 51.138.211.19
Tyskland, norra 51.116.60.240
Tyskland, västra centrala 20.52.88.224
Japan, östra 20.191.167.146
Japan, västra 20.189.228.225
Sydkorea, centrala 20.194.75.193
USA, norra centrala 52.162.111.130, 20.51.0.209
Europa, norra 52.146.137.179
Qatar, centrala 20.21.36.225
Sydafrika, norra 102.133.220.199
USA, södra centrala 20.65.134.83
Sydostasien 20.195.67.208
Sverige, centrala 51.12.28.100
Schweiz, norra 51.107.247.97
Storbritannien, södra 51.143.213.211
Storbritannien, västra 51.140.210.86
USA, västra centrala 13.71.199.119
Europa, västra 20.61.103.243, 20.61.103.244
USA, västra 2 20.51.13.80, 20.51.13.84, 20.51.13.85
USA, västra 3 20.150.245.165

Anteckning

Stegen ovan liknar de konfigurationssteg som beskrivs i dokumentet Så här exporterar du FHIR-data. Mer information finns i Säker export till Azure Storage

Verifiera

Gör ett anrop till $convert-data-API:et som anger mallreferensen i parametern templateCollectionReference.

<RegistryServer>/<imageName>@<imageDigest>

Nästa steg

I den här artikeln har du lärt dig om datakonvertering för Azure API för FHIR. Mer information om relaterade GitHub Projects för Azure API för FHIR finns i

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