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


Обзор SMART в FHIR

Внимание

Поддержка Azure API для FHIR будет прекращена 30 сентября 2026 г. Следуйте стратегиям миграции, чтобы перейти в службу FHIR® служб azure Health Data Services к этой дате. Из-за прекращения поддержки Azure API для FHIR с 1 апреля 2025 г. новые развертывания будут невозможны. Служба FHIR служб работоспособности Azure — это развивающаяся версия 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 в FHIR (расширенный), как упоминалось. Параметр 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 в прокси-сервере FHIR.

Снимок экрана: включение прокси-сервера SMART в FHIR.

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

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

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

В ответе aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA используется версия URL-адреса в кодировке Base64 URL-адреса ответа для приложения SMART в 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, и у вас нет данных в базе данных, см . статью Access the FHIR service using REST Client to load a patient. Запишите идентификатор конкретного пациента.

Шаг 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, как azure Управление API (APIM). No
Служба поддержки Майкрософт Поддерживается для службы FHIR. Примеры поддержки с открытым кодом должны сообщаться и отслеживаться с помощью GitHub Поддерживается для службы FHIR

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

  • Шаг 1. Настройка роли пользователя FHIR SMART описана в разделе "Управление пользователями: назначение пользователей роли". Любой пользователь, добавленный к роли пользователя SMART, может получить доступ к службе FHIR, если их запросы соответствуют руководству по реализации SMART on FHIR.
  • Шаг 2. Развертывание примера SMART в 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 .