Бөлісу құралы:


SMART на FHIR

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

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

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

Необходимые компоненты

SMART в FHIR с помощью примеров служб данных Работоспособности Azure (SMART в FHIR (расширенные))

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

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

Примечание.

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

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

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

Примечание.

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

SMART on FHIR Proxy

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

Примечание.

Это еще один вариант smart on FHIR(Enhanced) с помощью примеров AHDS, упомянутых ранее. Мы предлагаем вам принять SMART на FHIR(Enhanced). Параметр SMART on FHIR Proxy является устаревшим вариантом. Smart on FHIR(Enhanced) предоставляет дополнительные возможности для SMART на прокси-сервере FHIR. Smart on FHIR(Enhanced) соответствует требованиям в руководстве по реализации SMART on FHIR (версии 1.0.0) и §170.315(g)(10) Стандартизованный API для критериев обслуживания пациентов и населения.

Чтобы использовать 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. Стандартная конфигурация службы FHIR использует Audience значение https://fhir.azurehealthcareapis.com. Однако вы можете изменить это значение на соответствующее конкретному URL-адресу вашей службы FHIR (например, https://MYFHIRAPI.fhir.azurehealthcareapis.com). Это необходимо при работе с прокси-сервером SMART on FHIR.

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

Прокси-сервер 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.fhir.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.

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

Чтобы протестировать службу FHIR и прокси-сервер SMART в FHIR, необходимо иметь по крайней мере одного пациента в базе данных. Если вы еще не использовали API, и у вас нет данных в базе данных, ознакомьтесь со службой FHIR с помощью Postman для загрузки пациента. Запишите идентификатор конкретного пациента.

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

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

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

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

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

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

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

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

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

dotnet run

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

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

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

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

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

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

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

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

Снимок экрана: приложение SMART в FHIR.

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

Переход с 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 .