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


Обзор SMART на FHIR

Внимание

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

Замещаемые медицинские приложения и переиспользуемые технологии (SMART on FHIR®) — это стандарт здравоохранения, с помощью которого приложения могут получать доступ к клинической информации через хранилище данных. Он добавляет уровень безопасности на основе открытых стандартов, включая OAuth2 и OpenID Connect, в интерфейсы FHIR для включения интеграции с системами EHR. Использование SMART в FHIR обеспечивает важные преимущества, в том числе:

  • Приложения имеют известный метод получения проверки подлинности и авторизации в репозитории FHIR.
  • Пользователи, обращающиеся к репозиторию FHIR с помощью SMART on FHIR, ограничены ресурсами, связанными с пользователем, и не получают доступ ко всем данным в репозитории.
  • Пользователи могут предоставлять приложениям доступ к дополнительному ограниченному набору данных с помощью клинических областей SMART.

В следующих руководствах описаны шаги по включению SMART в приложениях FHIR со службой FHIR.

Предварительные условия

Smart on FHIR с помощью примеров OSS (SMART on FHIR(Enhanced))

Шаг 1. Настройка роли пользователя FHIR SMART

Выполните действия, перечисленные в разделе "Управление пользователями". Назначьте пользователей роли. Любой пользователь, добавленный к роли - "FHIR SMART User", может получить доступ к службе FHIR, если их запросы соответствуют требованиям руководства по реализации SMART on FHIR, например, запрос с токеном доступа, который включает утверждение fhirUser и утверждение клинических областей. Доступ, предоставленный пользователям в этой роли, будет ограничен ресурсами, связанными с их fhirUser отсеком, и ограничениями в клинических областях.

Шаг 2. Интеграция сервера FHIR с примерами

Следуйте шагам, изложенным в Azure Health Data and AI Samples OSS. Это позволяет интегрировать сервер FHIR с другими службами Azure (такими как APIM, функции Azure и многое другое).

Примечание.

Примеры — это код с открытым исходным кодом, и перед его использованием следует просмотреть сведения и условия лицензирования на GitHub. Они не являются частью службы данных Работоспособности Azure и не поддерживаются служба поддержки Майкрософт. Эти примеры можно использовать для демонстрации соответствия требованиям ONC (g)(g)(10) с помощью идентификатора Microsoft Entra в качестве рабочего процесса поставщика удостоверений.

Прокси-сервер SMART on FHIR

Щелкните, чтобы развернуть!

Примечание.

Ещё один путь к SMART on FHIR (Enhanced), как упоминалось. Параметр SMART on FHIR Proxy включает только последовательность запуска EHR.

Чтобы использовать SMART в FHIR, необходимо сначала пройти проверку подлинности и авторизовать приложение. При первом использовании SMART в FHIR необходимо также получить административное согласие, чтобы разрешить приложению доступ к ресурсам FHIR.

Если у вас нет роли владения в приложении, обратитесь к владельцу приложения и попросите их предоставить согласие администратора в приложении.

Если у вас есть права администратора, выполните следующие действия, чтобы предоставить себе согласие администратора напрямую. (Вы также можете предоставить себе согласие администратора позже, когда появится запрос в приложении.) Вы можете выполнить те же действия, чтобы добавить других пользователей в качестве владельцев, чтобы они могли просматривать и изменять регистрацию этого приложения.

Чтобы добавить себя или другого пользователя в качестве владельца приложения:

  1. На портале Azure перейдите к Microsoft Entra ID.
  2. В меню слева выберите "Регистрация приложений".
  3. Найдите приложение, которое вы зарегистрировали, и выберите его.
  4. В меню слева в разделе "Управление" выберите "Владельцы".
  5. Выберите «Добавить владельцев», а затем добавьте себя или пользователя, которому требуется предоставить согласие администратору.
  6. Выберите Сохранить

Шаг 2. Включение прокси-сервера SMART в FHIR

При использовании SMART on FHIR для Audience требуется идентификатор URI, совпадающий с URI службы FHIR. В стандартной конфигурации Azure API для FHIR для Audience задано значение https://azurehealthcareapis.com. Однако вы можете изменить это значение на соответствующее конкретному URL-адресу вашей службы FHIR (например, https://MYFHIRAPI.azurehealthcareapis.com). Это необходимо при работе с прокси-сервером SMART on FHIR.

Чтобы включить прокси-сервер SMART on FHIR в параметрах проверки подлинности для вашего экземпляра Azure API для FHIR, установите флажок прокси-сервера SMART on FHIR.

Снимок экрана: активация прокси-сервера SMART в FHIR.

Прокси-сервер SMART on FHIR выступает в качестве посредника между приложением SMART на FHIR и идентификатором Microsoft Entra. Ответ проверки подлинности (код проверки подлинности) должен поступать на прокси-сервер SMART on FHIR, а не в само приложение. Затем прокси-сервер переадресует ответ приложению.

Из-за этой двухэтапной передачи кода аутентификации необходимо задать URL-адрес для клиентского приложения Microsoft Entra таким образом, чтобы он был комбинацией URL-адреса ответа прокси-сервера SMART на FHIR и URL-адреса ответа приложения SMART на FHIR. Объединенный URL-адрес ответа принимает следующую форму.

https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA

В ответе aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA используется безопасная для URL версия URL-адреса ответа, закодированная в формате base64, для приложения SMART on FHIR. Для средства запуска приложения SMART on FHIR, если приложение работает локально, используется следующий URL-адрес ответа: https://localhost:5001/sampleapp/index.html.

Вы можете создать объединенный URL-адрес ответа с помощью скрипта, как показано ниже.

$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.azurewebsites.net"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($ReplyUrl)
$encodedText = [Convert]::ToBase64String($bytes)
$encodedText = $encodedText.TrimEnd('=');
$encodedText = $encodedText.Replace('/','_');
$encodedText = $encodedText.Replace('+','-');

$newReplyUrl = $FhirServerUrl.TrimEnd('/') + "/AadSmartOnFhirProxy/callback/" + $encodedText

Добавьте URL-адрес ответа в общедоступное клиентское приложение, созданное ранее для идентификатора Microsoft Entra.

Снимок экрана: как можно настроить URL-адрес ответа для общедоступного клиента.

Шаг 3. Получение тестового пациента

Чтобы протестировать API Azure для FHIR и smart на прокси-сервере FHIR, необходимо иметь по крайней мере одного пациента в базе данных. Если вы еще не взаимодействовали с API и у вас нет данных в базе данных, см. «Доступ к службе FHIR с помощью REST Client», чтобы загрузить данные пациента. Запишите идентификатор конкретного пациента.

Шаг 4: Скачайте средство запуска приложений SMART на FHIR

Сервер FHIR с открытым исходным кодом для хранилища Azure содержит простое средство запуска приложений SMART on FHIR и пример приложения SMART on FHIR. В рамках данного учебника это средство запуска SMART on FHIR используется для проверки настроек локально.

Вы можете клонировать репозиторий GitHub и перейти к приложению с помощью следующих команд.

git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher

Приложению требуется несколько параметров конфигурации, которые можно установить в appsettings.json:

{
    "FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
    "ClientId": "APP-ID",
    "DefaultSmartAppUrl": "/sampleapp/launch.html"
}

Мы рекомендуем использовать функцию dotnet user-secrets.

dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Используйте эту команду для запуска приложения.

dotnet run

Шаг 5. Проверка прокси-сервера SMART в FHIR

После запуска средства запуска приложений SMART на FHIR вы можете указать адрес в браузере https://localhost:5001, где вы увидите следующий экран.

Снимок экрана запуска приложений SMART на FHIR.

При вводе сведений о пациенте, встрече или практике обратите внимание, что контекст запуска обновляется. При использовании Azure API для FHIR контекст запуска представляет собой простой документ JSON, содержащий информацию о пациенте, практикующем враче и т. д. Этот контекст запуска кодируется с использованием base64 и передается в приложение SMART on FHIR в качестве параметра запроса launch. В соответствии со спецификацией SMART on FHIR эта переменная непрозрачна для приложения SMART on FHIR и передается поставщику удостоверений.

Прокси-сервер SMART on FHIR использует эту информацию для заполнения полей в ответе с токеном. Приложение SMART on FHIR может использовать эти поля, чтобы определять, для какого пациента запрашиваются данные и как приложение отображается на экране. Прокси-сервер SMART в FHIR поддерживает следующие поля.

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Эти поля предназначены для предоставления инструкций приложению. Они не передают никаких сведений о безопасности. Приложение SMART on FHIR может их игнорировать.

Обратите внимание, что средство запуска приложений SMART on FHIR обновляет данные поля URL-адрес запуска внизу страницы.

Нажмите кнопку "Запустить" , чтобы запустить пример приложения.

Переход с использования прокси-сервера SMART на FHIR на улучшенную версию SMART на FHIR

Внимание

Прокси-сервер SMART on FHIR уходит в отставку в сентябре 2026 года, перейдя на SMART on FHIR (расширенный) к этой дате. Начиная с сентября 2026 г. приложения, использующие прокси-сервер SMART на прокси-сервере FHIR, сообщают об ошибках при доступе к службе FHIR.

Smart on FHIR (расширенный) предоставляет больше возможностей по сравнению с SMART на прокси-сервере FHIR. Smart on FHIR(Расширенный) можно рассмотреть в соответствии с требованиями, соответствующими требованиям, с помощью руководства по реализации SMART on FHIR (версии 1.0.0) и §170.315(g)(10) стандартизованного API для обслуживания пациентов и населения. В следующей таблице перечислены различия между прокси-сервером SMART в FHIR и SMART в FHIR (расширенный).

Возможность Smart on FHIR (расширенный) Прокси-сервер SMART on FHIR
Поддерживает автономный запуск Да Нет
Поддерживает запуск EHR Да Да
Поддерживает ограничения области Да Нет
Зависит от сторонних продуктов Azure Да, такие продукты Azure, как Управление API Azure (APIM), необходимо интегрировать. Нет
Служба поддержки Майкрософт Поддерживается для службы FHIR. Примеры поддержки с открытым кодом должны сообщаться и отслеживаться с помощью GitHub Поддерживается для службы FHIR

Шаги переноса

  • Шаг 1: Настройте роль пользователя FHIR SMART, следуя шагам, указанным в разделе Управление пользователями: Назначение пользователей ролям. Любой пользователь, добавленный к роли пользователя SMART, может получить доступ к службе FHIR, если их запросы соответствуют руководству по реализации SMART on FHIR.
  • Шаг 2. Развертывание примера SMART on FHIR из коллекции Azure Health Data and AI OSS
  • Шаг 3. Обновите конечный адрес URL-адреса службы FHIR на "{{BASEURL_FROM_APIM}}/smart".
  • Шаг 4. Снимите флажок прокси-сервера SMART on FHIR в разделе аутентификации в службе FHIR.

Если у вас возникли вопросы, ответы на них можно получить от экспертов сообщества на веб-сайте Microsoft Q&A. Для технической поддержки можно также создать запрос на поддержку.

Следующие шаги

Теперь, когда вы узнали о включении функций SMART в FHIR, ознакомьтесь со страницей примеров поиска, чтобы узнать, как выполнять поиск с помощью параметров поиска, модификаторов и других методов поиска FHIR.

Примечание.

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