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

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

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

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

Примечание

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

Использование конечной точки $convert-data

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

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

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

имени параметра Описание Допустимые значения
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:
"CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

Для JSON:
"ExamplePatient", "Stu3ChargeItem"

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

Примечание

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

Примечание

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

Предупреждение

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

Шаблоны по умолчанию предоставляются только для быстрого начала работы. Они могут обновляться при обновлении версий Azure API для 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. Это расширение поддерживает интерактивное редактирование и упрощает скачивание опубликованных корпорацией Майкрософт шаблонов и примеров данных. Дополнительные сведения см. в документации по расширению.

Примечание

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

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

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

  1. передача шаблонов в Реестр контейнеров Azure;
  2. включение управляемого удостоверения в экземпляре Azure API для FHIR;
  3. предоставление управляемому удостоверению Azure API для FHIR доступа к Реестру контейнеров Azure;
  4. регистрация серверов Реестра контейнеров Azure в Azure API для FHIR.
  5. При необходимости настройте брандмауэр ACR для безопасного доступа.

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

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

Включение управляемого удостоверения в Azure API для FHIR

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

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

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

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

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

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

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

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

Регистрация серверов Реестра контейнеров Azure в Azure API для FHIR.

Сервер ACR можно зарегистрировать с помощью портал Azure или интерфейса командной строки.

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

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

Регистрация сервера ACR с помощью интерфейса командной строки

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

При необходимости установите интерфейс командной строки azure Health Data Services из Azure PowerShell:

az extension add -n healthcareapis

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

Регистрация одного сервера Реестра контейнеров Azure
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Регистрация нескольких серверов Реестра контейнеров Azure
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-адрес
Восточная Австралия 20.53.47.210
Южная Бразилия 191.238.72.227
Центральная Канада 20.48.197.161
Центральная Индия 20.192.47.66
Восточная часть США 20.62.134.242, 20.62.134.244, 20.62.134.245
восточная часть США 2 20.62.60.115, 20.62.60.116, 20.62.60.117
Центральная Франция 51.138.211.19
Северная Германия 51.116.60.240
Центрально-Западная Германия 20.52.88.224
Восточная Япония 20.191.167.146
Западная Япония 20.189.228.225
Республика Корея, центральный регион 20.194.75.193
Центрально-северная часть США 52.162.111.130, 20.51.0.209
Северная Европа 52.146.137.179
Центральный Катар 20.21.36.225
Северная часть ЮАР; 102.133.220.199
Центрально-южная часть США 20.65.134.83
Юго-Восточная Азия 20.195.67.208
Центральная Швеция 51.12.28.100
Северная Швейцария 51.107.247.97
южная часть Соединенного Королевства 51.143.213.211
западная часть Соединенного Королевства 51.140.210.86
центрально-западная часть США 13.71.199.119
Западная Европа 20.61.103.243, 20.61.103.244
западная часть США 2 20.51.13.80, 20.51.13.84, 20.51.13.85
Западная часть США — 3 20.150.245.165

Примечание

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

Проверка

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

<RegistryServer>/<imageName>@<imageDigest>

Дальнейшие действия

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

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