Konwertowanie danych na standard FHIR dla usługi Azure API for FHIR

Niestandardowy $convert-data punkt końcowy w usłudze FHIR jest przeznaczony do konwersji danych z różnych typów danych na FHIR. Używa aparatu szablonu Liquid i szablonów z projektu FHIR Converter jako szablonów domyślnych. Te szablony konwersji można dostosować zgodnie z potrzebami.

$convert-data Obecnie niestandardowy punkt końcowy obsługuje four typy konwersji danych:

Format danych źródła Format danych docelowych
C-CDA FHIR
HL7v2 FHIR
JSON FHIR
FHIR STU3 FHIR R4

Uwaga

$convert-data punkt końcowy może służyć jako składnik w potoku ETL do konwersji nieprzetworzonych danych opieki zdrowotnej ze starszych formatów do formatu FHIR. Nie jest to jednak sam potok ETL. Zalecamy użycie aparatu ETL, takiego jak Logic Apps lub Azure Data Factory, do pełnego przepływu pracy w przygotowaniu danych FHIR do utrwalonego na serwerze FHIR. Przepływ pracy może obejmować odczytywanie i pozyskiwanie danych, walidację danych, wykonywanie wywołań interfejsu API $convert danych, przetwarzanie wstępne/końcowe danych, wzbogacanie danych i deduplikowanie danych.

Korzystanie z punktu końcowego $convert-data

Operacja jest zintegrowana $convert-data z usługą FHIR do uruchomienia w ramach usługi. Po włączeniu $convert-data na serwerze możesz wykonywać wywołania interfejsu API na serwerze w celu przekonwertowania danych na standard FHIR: https://<<FHIR service base URL>>/$convert-data

Zasób parametru

$convert dane pobiera zasób Parametr w treści żądania zgodnie z opisem w poniższej tabeli. W treści żądania wywołania interfejsu API należy uwzględnić następujące parametry:

Nazwa parametru Opis Dopuszczalne wartości
inputData Dane do przekonwertowania. Dla Hl7v2ciągu :
Dla Ccda: XML
Dla Json: JSON
Dla FHIR STU3: JSON
inputDataType Typ danych wejściowych. HL7v2, Ccda, Json, Fhir
templateCollectionReference Odwołanie do kolekcji szablonów obrazów OCI w usłudze Azure Container Registry (ACR). Jest to obraz zawierający szablony Liquid do użycia do konwersji. Może to być odwołanie do szablonów domyślnych lub obrazu szablonu niestandardowego zarejestrowanego w usłudze FHIR. Zobacz poniżej, aby dowiedzieć się więcej na temat dostosowywania szablonów, hostowania ich w usłudze ACR i rejestrowania się w usłudze FHIR. W przypadku szablonów domyślnych/przykładowych :
Szablony HL7v2:
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
Szablony C-CDA:
microsofthealth/ccdatemplates:default
Szablony JSON:
microsofthealth/jsontemplates:default
Szablony FHIR STU3 :
microsofthealth/stu3tor4templates:default

W przypadku szablonów niestandardowych :
<RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag>
rootTemplate Szablon główny do użycia podczas przekształcania danych. Dla 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_A26", "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"

W przypadku C-CDA:
"CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

W przypadku formatu JSON:
"ExamplePatient", "Stu3ChargeItem"

FHIR STU3":
Nazwa zasobu STU3, np. "Pacjent", "Obserwacja", "Organizacja".

Uwaga

Szablony FHIR STU3 do R4 są "różnicowe" szablony Liquid, które zapewniają mapowania różnic pól tylko między zasobem STU3 i jego równoważnym zasobem w standardzie FHIR R4. Nazwy niektórych zasobów STU3 zostały zmienione lub usunięte z języka R4. Zapoznaj się z tematem Różnice zasobów i ograniczenia dotyczące konwersji STU3 do R4.

Uwaga

Szablony JSON to przykładowe szablony do użycia, a nie "domyślne" szablony, które są zgodne ze wstępnie zdefiniowanymi typami komunikatów JSON. Format JSON nie ma żadnych standardowych typów komunikatów, w przeciwieństwie do komunikatów HL7v2 ani dokumentów C-CDA. W związku z tym zamiast szablonów domyślnych udostępniamy przykładowe szablony, których można użyć jako przewodnika początkowego dla własnych dostosowanych szablonów.

Ostrzeżenie

Szablony domyślne są wydawane w ramach licencji MIT i nie są obsługiwane przez pomoc techniczna firmy Microsoft.

Szablony domyślne są udostępniane tylko w celu szybkiego rozpoczęcia pracy. Mogą one zostać zaktualizowane podczas aktualizowania wersji interfejsu API platformy Azure dla standardu FHIR. W związku z tym należy zweryfikować zachowanie konwersji i hostować własną kopię szablonów na Azure Container Registry, zarejestrować je w usłudze Azure API for FHIR i użyć ich w wywołaniach interfejsu API, aby zapewnić spójne zachowanie konwersji danych w różnych wersjach interfejsu API platformy Azure for FHIR.

Przykładowe żądanie

{
    "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"
        }
    ]
}

Przykładowa odpowiedź

{
  "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"
      }
    }
  ]
}

Dostosowywanie szablonów

Możesz użyć rozszerzenia FHIR Converter dla Visual Studio Code, aby dostosować szablony zgodnie z potrzebami. Rozszerzenie zapewnia interaktywne środowisko edycji i ułatwia pobieranie szablonów opublikowanych przez firmę Microsoft i przykładowych danych. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją w rozszerzeniu.

Uwaga

Rozszerzenie konwertera FHIR dla Visual Studio Code jest dostępne dla szablonów HL7v2, C-CDA i JSON Liquid. Szablony FHIR STU3 do R4 Liquid nie są obecnie obsługiwane.

Hostowanie szablonów i używanie ich

Zaleca się hostowanie własnej kopii szablonów w usłudze ACR. Istnieją cztery kroki związane z hostem własnej kopii szablonów i używanie ich w operacji $convert-data:

  1. Wypchnij szablony do Azure Container Registry.
  2. Włącz tożsamość zarządzaną w wystąpieniu usługi Azure API for FHIR.
  3. Zapewnianie dostępu do usługi ACR do tożsamości zarządzanej usługi Azure API for FHIR.
  4. Zarejestruj serwery usługi ACR w usłudze Azure API for FHIR.
  5. Opcjonalnie skonfiguruj zaporę usługi ACR na potrzeby bezpiecznego dostępu.

Wypychanie szablonów do Azure Container Registry

Po utworzeniu wystąpienia usługi ACR możesz użyć polecenia FHIR Converter: Push Templates w rozszerzeniu FHIR Converter , aby wypchnąć dostosowane szablony do usługi ACR. W tym celu możesz też użyć narzędzia interfejsu wiersza polecenia zarządzania szablonami .

Włączanie tożsamości zarządzanej w usłudze Azure API for FHIR

Przejdź do wystąpienia usługi Azure API for FHIR w Azure Portal, a następnie wybierz blok Tożsamość. Zmień stan na Wł. , aby włączyć tożsamość zarządzaną w usłudze Azure API for FHIR.

Obraz ekranu przedstawiający opcję Włącz tożsamość zarządzaną.

Zapewnianie dostępu do usługi ACR do usługi Azure API for FHIR

  1. Przejdź do bloku Kontrola dostępu (Zarządzanie dostępem i tożsamościami).

  2. Wybierz pozycję Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli , aby otworzyć stronę Dodawanie przypisania roli.

  3. Przypisz rolę AcrPull .

    Obraz ekranu przedstawiający stronę Dodawanie przypisania roli.

Aby uzyskać więcej informacji na temat przypisywania ról w Azure Portal, zobacz Role wbudowane platformy Azure.

Rejestrowanie serwerów usługi ACR w interfejsie API platformy Azure for FHIR

Serwer usługi ACR można zarejestrować przy użyciu Azure Portal lub interfejsu wiersza polecenia.

Rejestrowanie serwera usługi ACR przy użyciu Azure Portal

Przejdź do bloku Artefakty w obszarze Przekształcanie danych w wystąpieniu usługi Azure API for FHIR. Zostanie wyświetlona lista aktualnie zarejestrowanych serwerów usługi ACR. Wybierz pozycję Dodaj, a następnie wybierz serwer rejestru z menu rozwijanego. Aby rejestracja weszła w życie, musisz wybrać pozycję Zapisz . Zastosowanie zmiany i ponowne uruchomienie wystąpienia może potrwać kilka minut.

Rejestrowanie serwera usługi ACR przy użyciu interfejsu wiersza polecenia

Możesz zarejestrować maksymalnie 20 serwerów ACR w interfejsie API platformy Azure for FHIR.

W razie potrzeby zainstaluj interfejs wiersza polecenia usługi Azure Health Data Services z Azure PowerShell:

az extension add -n healthcareapis

Zarejestruj serwery acr w usłudze Azure API for FHIR, wykonując poniższe przykłady:

Rejestrowanie pojedynczego serwera usługi ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Rejestrowanie wielu serwerów usługi ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021

Konfigurowanie zapory usługi ACR

Wybierz pozycję Sieć konta usługi Azure Storage w portalu.

 Obraz ekranu rejestru kontenerów.

Wybierz pozycję Wybrane sieci.

W sekcji Zapora określ adres IP w polu Zakres adresów . Dodaj zakresy adresów IP, aby zezwolić na dostęp z Internetu lub sieci lokalnych.

W poniższej tabeli znajdziesz adres IP dla regionu świadczenia usługi Azure, w którym jest aprowizowana usługa Azure API for FHIR.

Azure Region Publiczny adres IP
Australia Wschodnia 20.53.47.210
Brazylia Południowa 191.238.72.227
Kanada Środkowa 20.48.197.161
Indie Środkowe 20.192.47.66
East US 20.62.134.242, 20.62.134.244, 20.62.134.245
Wschodnie stany USA 2 20.62.60.115, 20.62.60.116, 20.62.60.117
Francja Środkowa 51.138.211.19
Niemcy Północne 51.116.60.240
Niemcy Środkowo-Zachodnie 20.52.88.224
Japonia Wschodnia 20.191.167.146
Japonia Zachodnia 20.189.228.225
Korea Środkowa 20.194.75.193
Północno-środkowe stany USA 52.162.111.130, 20.51.0.209
Europa Północna 52.146.137.179
Katar Środkowy 20.21.36.225
Północna Republika Południowej Afryki 102.133.220.199
South Central US 20.65.134.83
Southeast Asia 20.195.67.208
Szwecja Środkowa 51.12.28.100
Szwajcaria Północna 51.107.247.97
Południowe Zjednoczone Królestwo 51.143.213.211
Zachodnie Zjednoczone Królestwo 51.140.210.86
Zachodnio-środkowe stany USA 13.71.199.119
West Europe 20.61.103.243, 20.61.103.244
Zachodnie stany USA 2 20.51.13.80, 20.51.13.84, 20.51.13.85
Zachodnie stany USA 3 20.150.245.165

Uwaga

Powyższe kroki są podobne do kroków konfiguracji opisanych w dokumencie Jak wyeksportować dane FHIR. Aby uzyskać więcej informacji, zobacz Bezpieczny eksport do usługi Azure Storage

Weryfikacja

Wywołaj interfejs API $convert danych określający odwołanie do szablonu w parametrze templateCollectionReference.

<RegistryServer>/<imageName>@<imageDigest>

Następne kroki

W tym artykule przedstawiono konwersję danych dla interfejsu API platformy Azure for FHIR. Aby uzyskać więcej informacji na temat powiązanych projektów GitHub dla interfejsu API platformy Azure for FHIR, zobacz

FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7 .