Преобразование данных в FHIR

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

  • HL7v2 в FHIR
  • C-CDA в FHIR
  • JSON в FHIR (предназначено для пользовательского сопоставления преобразования)

Примечание

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

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

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

POST {{fhirurl}}/$convert-data

Данные о работоспособности для преобразования доставляются в службу FHIR в тексте $convert-data запроса. Если запрос выполнен успешно, служба FHIR вернет ответ FHIR Bundle с данными, преобразованными в FHIR.

Ресурс Parameters

Api $convert-data вызывает пакеты данных о работоспособности для преобразования в ресурс параметров в формате JSON в тексте запроса. Параметры описаны в следующей таблице.

Имя параметра Описание Допустимые значения
inputData Полезные данные для преобразования в FHIR. For Hl7v2: string
For Ccda: XML
For Json: JSON
inputDataType Тип входных данных. Hl7v2, Ccda, Json
templateCollectionReference Ссылка на коллекцию шаблонов изображений OCI в Реестр контейнеров Azure. Ссылка на изображение, содержащее шаблоны Liquid для преобразования. Он может ссылаться на шаблоны по умолчанию или на пользовательский образ шаблона, зарегистрированный в службе FHIR. В следующих разделах рассматривается настройка шаблонов, их размещение в Реестр контейнеров Azure и регистрация в службе FHIR. Для шаблонов по умолчанию и примеров :
Шаблоны HL7v2:
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
Шаблоны CDA:
microsofthealth/ccdatemplates:default
Шаблоны JSON:
microsofthealth/jsontemplates: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_S16", "SIU_S17", "SIU_S26", "MDM_T01", "MDM_T02"

Для C-CDA:
"CCD", "ConsultationNote", "DischargeSummary", "HistoryandPhysical", "OperativeNote", "ProcedureNote", "ProgressNote", "ReferralNote", "TransferSummary"

Для JSON:
ExamplePatient, Stu3ChargeItem

Примечание

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

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

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

Мы предоставляем шаблоны по умолчанию только для начала работы с рабочим процессом преобразования данных. Эти шаблоны по умолчанию не предназначены для рабочей среды и могут изменяться при выпуске обновлений Майкрософт для службы FHIR. Чтобы обеспечить согласованное поведение преобразования данных в разных версиях службы FHIR, необходимо сделать следующее:

  1. Разместите собственную копию шаблонов в экземпляре Реестр контейнеров Azure.
  2. Зарегистрируйте шаблоны в службе FHIR.
  3. Используйте зарегистрированные шаблоны в вызовах API.
  4. Убедитесь, что поведение преобразования соответствует вашим требованиям.

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

{
    "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^PRSNL^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^CURRENT||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^HOME|||||||||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^PRSNL^^^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"
      }
    }
  ]
}

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

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

Размещение собственных шаблонов

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

  1. создадите экземпляр реестра контейнеров Azure;
  2. Отправка шаблонов в экземпляр Реестр контейнеров Azure
  3. Включение управляемого удостоверения Azure в экземпляре службы FHIR
  4. Предоставление Реестр контейнеров Azure доступа к управляемому удостоверению службы FHIR
  5. Регистрация сервера Реестр контейнеров Azure в службе FHIR
  6. (Необязательно) Настройка брандмауэра Реестр контейнеров Azure для безопасного доступа

Шаг 1. Создание экземпляра Реестр контейнеров Azure

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

Шаг 2. Отправка шаблонов в экземпляр Реестр контейнеров Azure

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

Шаг 3. Включение управляемого удостоверения Azure в экземпляре службы FHIR

  1. Перейдите к экземпляру службы FHIR в портал Azure и выберите колонку "Удостоверение".

  2. Измените состояние на "Вкл." , чтобы включить управляемое удостоверение в службе FHIR.

    Снимок экрана: панель FHIR для включения функции

Шаг 4. Предоставление Реестр контейнеров Azure доступа к управляемому удостоверению службы FHIR

  1. В группе ресурсов перейдите к экземпляру Реестра контейнеров и перейдите на вкладку "Управление доступом (IAM).

  2. Выберите Добавить>Добавить назначение ролей. Если параметр "Добавить назначение ролей " недоступен, попросите администратора Azure предоставить вам разрешения на выполнение этой задачи.

    Снимок экрана: панель

    Снимок экрана: панель

  3. На панели "Роль " выберите роль AcrPull .

    Снимок экрана: область

  4. На вкладке Участники выберите Управляемое удостоверение и нажмите Выбрать участников.

  5. Выберите подписку Azure.

  6. Выберите управляемое удостоверение, назначаемое системой, а затем выберите службу FHIR, с которыми вы работаете.

  7. Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.

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

Шаг 5. Регистрация сервера Реестр контейнеров Azure в службе FHIR

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

Использование портала Azure

  1. В экземпляре службы FHIR в разделе "Преобразование данных" перейдите на панель артефактов .

    Отобразится список зарегистрированных Реестр контейнеров Azure серверов.

  2. Выберите "Добавить ", а затем в раскрывающемся списке выберите сервер реестра.

  3. Выберите Сохранить.

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

Чтобы использовать Azure CLI, выполните следующие действия.

В службе FHIR можно зарегистрировать до 20 Реестр контейнеров Azure серверов.

  1. При необходимости установите интерфейс командной строки Служб данных Azure Health Services, выполнив следующую команду:

    az extension add -n healthcareapis
    
  2. Зарегистрируйте серверы Реестр контейнеров Azure в службе 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
      

Шаг 6. Настройка брандмауэра Реестр контейнеров Azure для безопасного доступа (необязательно)

  1. В портал Azure на левой панели выберите "Сеть" для экземпляра Реестр контейнеров Azure.

    Снимок экрана: панель

  2. На вкладке "Общий доступ " выберите "Выбранные сети".

  3. В разделе "Брандмауэр" укажите IP-адрес в поле "Диапазон адресов ".

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

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

Регион Azure Общедоступный IP-адрес
Восточная Австралия 20.53.44.80
Центральная Канада 20.48.192.84
Центральная часть США 52.182.208.31
Восточная часть США 20.62.128.148
восточная часть США 2 20.49.102.228
Восточная часть США 2 (EUAP) 20.39.26.254
Северная Германия 51.116.51.33
Центрально-Западная Германия 51.116.146.216
Восточная Япония 20.191.160.26
Республика Корея, центральный регион 20.41.69.51
Центрально-северная часть США 20.49.114.188
Северная Европа 52.146.131.52
Северная часть ЮАР; 102.133.220.197
Центрально-южная часть США 13.73.254.220
Юго-Восточная Азия 23.98.108.42
Северная Швейцария 51.107.60.95
южная часть Соединенного Королевства 51.104.30.170
западная часть Соединенного Королевства 51.137.164.94
центрально-западная часть США 52.150.156.44
Западная Европа 20.61.98.66
западная часть США 2 40.64.135.77

Примечание

Описанные выше действия похожи на действия по настройке параметров экспорта и настройке учетной записи хранения.

Для доступа к частной сети (то есть приватного канала) можно также отключить доступ к общедоступной сети к экземпляру Реестр контейнеров Azure. Для этого сделайте следующее:

  1. В реестре контейнеров портал Azure выберите "Сеть".

  2. Перейдите на вкладку "Общедоступный доступ ", выберите " Отключено" и выберите "Разрешить доверенным службам Майкрософт доступ к этому реестру контейнеров".

    Снимок экрана: панель

$convert-data Проверка операции

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

<RegistryServer>/<imageName>@<imageDigest>

Вы должны получить Bundle ответ, содержащий данные о работоспособности, преобразованные в формат FHIR.

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

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

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