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 Hl7v2 ciągu :Dla Ccda : XMLDla Json : JSONDla 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:
- Wypchnij szablony do Azure Container Registry.
- Włącz tożsamość zarządzaną w wystąpieniu usługi Azure API for FHIR.
- Zapewnianie dostępu do usługi ACR do tożsamości zarządzanej usługi Azure API for FHIR.
- Zarejestruj serwery usługi ACR w usłudze Azure API for FHIR.
- 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.
Zapewnianie dostępu do usługi ACR do usługi Azure API for FHIR
Przejdź do bloku Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
Wybierz pozycję Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli , aby otworzyć stronę Dodawanie przypisania roli.
Przypisz rolę AcrPull .
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.
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 .