Поделиться через


Преобразование данных в формат FHIR для Azure API FHIR

Important

Поддержка Azure API для FHIR будет прекращена 30 сентября 2026 г. Следуйте стратегиям миграции, чтобы перейти на сервис Azure Health Data Services FHIR® к указанному сроку. Из-за прекращения использования AZURE API для FHIR новые развертывания клиентов не будут разрешены с 1 апреля 2025 г. Служба Azure Health Data Services FHIR — это развивающаяся версия Azure API для FHIR, которая позволяет клиентам управлять службами FHIR, DICOM и MedTech с интеграцией с другими службами Azure.

Пользовательская $convert-data конечная точка в службе FHIR® предназначена для преобразования данных из разных типов данных в FHIR. Он использует подсистему шаблонов Liquid и шаблоны из проекта преобразователя FHIR в качестве шаблонов по умолчанию. Эти шаблоны преобразования можно настроить по мере необходимости.

$convert-data В настоящее время пользовательская конечная точка поддерживает четыре типа преобразования данных:

Формат данных источника Формат данных назначения
C-CDA FHIR
HL7v2 FHIR
JSON FHIR
FHIR STU3 FHIR R4

Note

$convert-data Конечная точка может использоваться в качестве компонента в конвейере экспорта, преобразования, загрузки (ETL) для преобразования необработанных данных здравоохранения из устаревших форматов в формат FHIR. Однако это не сам конвейер ETL. Мы рекомендуем использовать подсистему ETL, например Logic Apps или Фабрику данных Azure для полного рабочего процесса при подготовке данных FHIR, которые будут сохранены на сервере FHIR. Рабочий процесс может включать в себя чтение и прием данных, проверку данных, вызовы $convert-data API, предварительную обработку данных, обогащение данных и отмену дублирования данных.

Использование endpoint $convert-data

Операция $convert-data интегрирована в службу FHIR и выполняется как часть этой службы. После включения $convert-data на сервере можно вызывать API для преобразования данных в FHIR с помощью https://<<FHIR service base URL>>/$convert-data.

Ресурс параметров

$convert-data принимает ресурс параметра Parameter в теле запроса, как описано в следующей таблице. В тексте запроса вызова API можно включить следующие параметры:

Имя параметра Description Принятые значения
inputData Данные для преобразования. Для Hl7v2: строка
Для Ccda: XML
Для Json: JSON
Для FHIR STU3: JSON
inputDataType Тип входных данных HL7v2 Ccda Json Fhir
templateCollectionReference Ссылка на коллекцию шаблонов образов OCI в реестре контейнеров Azure (ACR). Это изображение, содержащее шаблоны Liquid для преобразования. Это может быть ссылка на шаблоны по умолчанию или пользовательский образ шаблона, зарегистрированный в службе FHIR. Ознакомьтесь со следующими сведениями о настройке шаблонов, размещении этих шаблонов в ACR и регистрации в службе FHIR. Для шаблонов по умолчанию и примеров :
Шаблоны HL7v2:
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
Шаблоны C-CDA:
microsofthealth/ccdatemplates:default
Шаблоны JSON:
microsofthealth/jsontemplates:default
Шаблоны FHIR STU3:
microsofthealth/stu3tor4templates:default

Для пользовательских шаблонов:
<RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag>
rootTemplate Корневой шаблон, используемый при преобразовании данных. Для 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_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"

Для C-CDA:
ККД, "Заключение Консультации", "Выписной Эпикриз", "Анамнез и Объективное Обследование", "Операционная Записка", "Протокол Операции", "Ход Лечения", "Направление", "Отчёт о Переводе"

Для JSON:
ExamplePatient, Stu3ChargeItem

FHIR STU3":
Ресурс STU3, например "Имя", "Пациент", "Наблюдение", "Организация".

Note

Шаблоны перехода с FHIR STU3 на R4 — это Liquid-шаблоны типа "diff", которые предоставляют сопоставление только различий полей между ресурсом STU3 и его эквивалентом в стандарте FHIR R4. Некоторые ресурсы STU3 переименованы или удалены из R4. Обратитесь к различиям ресурсов и ограничениям преобразования STU3 в R4.

Note

Шаблоны JSON — это примеры шаблонов для использования, а не шаблоны по умолчанию, которые соответствуют любым предварительно определенным типам сообщений JSON. JSON не имеет стандартных типов сообщений, в отличие от сообщений HL7v2 или документов CDA. Вместо шаблонов по умолчанию мы предоставляем некоторые примеры шаблонов, которые можно использовать в качестве начального руководства для собственных настраиваемых шаблонов.

Warning

Шаблоны по умолчанию выпускаются под лицензией MIT и не поддерживаются службой поддержки Майкрософт.

Шаблоны по умолчанию предоставляются только для начала работы. Они могут обновляться при обновлении версий API Azure для FHIR. Необходимо проверить поведение преобразования и разместить собственную копию шаблонов в реестре контейнеров Azure, зарегистрировать их в AZURE API для FHIR, чтобы использовать в вызовах API. Это необходимо для согласованного преобразования данных в разных версиях AZURE API для FHIR.

Пример запроса

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

Пример ответа

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

Настройка шаблонов

Расширение конвертера FHIR для Visual Studio Code можно использовать для настройки шаблонов в соответствии с вашими потребностями. Расширение предоставляет интерактивный интерфейс редактирования и упрощает скачивание опубликованных корпорацией Майкрософт шаблонов и примеров данных. Дополнительные сведения см. в документации в расширении.

Note

Расширение преобразователя FHIR для Visual Studio Code доступно для шаблонов HL7v2, C-CDA и JSON Liquid. Шаблоны FHIR STU3 в R4 Liquid в настоящее время не поддерживаются.

Размещение и использование шаблонов

Рекомендуется разместить собственную копию шаблонов в ACR. Существует четыре этапа, участвующих в размещении собственной копии шаблонов и использовании этих шаблонов в $convert-data операции:

  1. Отправьте шаблоны в реестр контейнеров Azure.
  2. Включите управляемую идентичность в вашем экземпляре Azure API для FHIR.
  3. Предоставьте доступ aCR к Управляемому удостоверению Azure API для FHIR.
  4. Зарегистрируйте серверы ACR в API Azure для FHIR.
  5. При необходимости настройте брандмауэр ACR для безопасного доступа.

Отправка шаблонов в реестр контейнеров Azure

После создания экземпляра ACR можно использовать команду FHIR Converter: Push Templates в расширении преобразователя FHIR , чтобы отправить настраиваемые шаблоны в ACR. Кроме того, можно использовать средство командной строки управления шаблонами.

Активировать управляемое удостоверение на Azure API для FHIR

Перейдите к экземпляру службы Azure API для FHIR на портале Azure и выберите вкладку «Удостоверение». Измените статус на On, чтобы включить управляемое удостоверение в Azure API для FHIR.

Изображение экрана с опцией включения управляемого удостоверения.

Предоставление доступа ACR к Azure API для FHIR

  1. Перейдите к панели управления доступом (IAM).

  2. Нажмите кнопку "Добавить", а затем выберите "Добавить назначение роли ", чтобы открыть страницу "Добавить назначение ролей".

  3. Назначьте роль AcrPull .

    Изображение экрана страницы добавления назначения ролей.

Дополнительные сведения о назначении ролей на портале Azure см. в статье о встроенных ролях Azure.

Регистрация серверов ACR в Azure API для FHIR

Вы можете зарегистрировать сервер ACR на портале Azure или с помощью ИНТЕРФЕЙСА командной строки.

Регистрация сервера ACR с помощью портала Azure

Перейдите на вкладку «Артефакты» в разделе «Преобразование данных» в экземпляре Azure API для FHIR. Вы увидите список зарегистрированных серверов ACR. Выберите "Добавить" и выберите сервер реестра в раскрывающемся меню. Необходимо выбрать Сохранить, чтобы регистрация вступила в силу. Может потребоваться несколько минут, чтобы применить изменение и перезапустить экземпляр.

Регистрация сервера ACR с помощью CLI

Вы можете зарегистрировать до 20 серверов ACR в AZURE API для FHIR.

Установите azure Health Data Services CLI из Azure PowerShell при необходимости:

az extension add -n healthcareapis

Зарегистрируйте серверы acr в Azure API для FHIR, выполнив следующие примеры:

Регистрация одного сервера ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Регистрация нескольких серверов ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021

Настройка брандмауэра ACR

Выберите Сетевые настройки для учетной записи хранения в Azure на портале.

 Изображение экрана реестра контейнеров.

Выберите Выбранные сети.

В разделе "Брандмауэр" укажите IP-адрес в поле диапазона адресов . Добавьте диапазоны IP-адресов, чтобы разрешить доступ из Интернета или локальных сетей.

В следующей таблице вы найдете IP-адрес для региона Azure, где подготовлена служба Azure API для FHIR.

Регион Azure Общедоступный IP-адрес
Australia East 20.53.47.210
Brazil South 191.238.72.227
Canada Central 20.48.197.161
Central India 20.192.47.66
East US 20.62.134.242, 20.62.134.244, 20.62.134.245
East US 2 20.62.60.115, 20.62.60.116, 20.62.60.117
France Central 51.138.211.19
Germany North 51.116.60.240
Germany West Central 20.52.88.224
Japan East 20.191.167.146
Japan West 20.189.228.225
Korea Central 20.194.75.193
North Central US 52.162.111.130, 20.51.0.209
North Europe 52.146.137.179
Qatar Central 20.21.36.225
South Africa North 102.133.220.199
South Central US 20.65.134.83
Southeast Asia 20.195.67.208
Sweden Central 51.12.28.100
Switzerland North 51.107.247.97
UK South 51.143.213.211
UK West 51.140.210.86
West Central US 13.71.199.119
West Europe 20.61.103.243, 20.61.103.244
West US 2 20.51.13.80, 20.51.13.84, 20.51.13.85
West US 3 20.150.245.165

Note

Описанные выше действия похожи на шаги конфигурации, описанные в документе "Экспорт данных FHIR". Дополнительные сведения см. в статье "Безопасный экспорт в службу хранилища Azure"

Verify

Вызовите API, указывая ссылку на шаблон $convert-data в параметре templateCollectionReference.

<RegistryServer>/<imageName>@<imageDigest>

Дальнейшие шаги

В этой статье вы познакомились с процессом преобразования данных для Azure API для FHIR. Дополнительные сведения о связанных проектах GitHub для Azure API для FHIR см.

Note

FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .