SMART на FHIR
Подстановка медицинских приложений и повторно используемых технологий (SMART on FHIR) — это стандарт здравоохранения, с помощью которого приложения могут получить доступ к клинической информации через хранилище данных. Он добавляет уровень безопасности на основе открытых стандартов, включая OAuth2 и OpenID Connect, в интерфейсы FHIR® для включения интеграции с системами EHR. Использование SMART on FHIR предоставляет по крайней мере три важных преимущества:
- Приложения имеют известный метод получения проверки подлинности и авторизации в репозитории FHIR.
- Пользователи, обращающиеся к репозиторию FHIR с помощью SMART on FHIR, ограничены ресурсами, связанными с пользователем, и не получают доступ ко всем данным в репозитории.
- Пользователи могут предоставлять приложениям доступ к ограниченному набору данных с помощью клинических областей SMART.
В следующих руководствах приведены инструкции по включению smart в приложениях FHIR со службой FHIR.
Необходимые компоненты
- Экземпляр службы FHIR
- Пакет SDK для .NET версии 6.0
- Включение общего доступа к ресурсам между источниками (CORS)
- Регистрация общедоступного клиентского приложения в идентификаторе Microsoft Entra
- После регистрации приложения запишите клиентское
applicationId
приложение.
- После регистрации приложения запишите клиентское
- Убедитесь, что у вас есть доступ к подписке Azure службы 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 для критериев обслуживания пациентов и населения.
Шаг 1. Настройка согласия администратора для клиентского приложения
Чтобы использовать SMART в FHIR, необходимо сначала пройти проверку подлинности и авторизовать приложение. При первом использовании SMART в FHIR необходимо также получить согласие администратора, чтобы разрешить приложению доступ к ресурсам FHIR.
Если у вас нет роли владения в приложении, обратитесь к владельцу приложения и попросите их предоставить согласие администратора в приложении.
Если у вас есть права администратора, выполните следующие действия, чтобы предоставить себе согласие администратора напрямую. (Вы также можете предоставить себе согласие администратора позже при появлении запроса в приложении.) Эти же действия можно использовать для добавления других пользователей в качестве владельцев, чтобы они могли просматривать и изменять регистрацию приложения.
Чтобы добавить себя или другого пользователя в качестве владельца приложения:
- На портале Azure перейдите к Microsoft Entra ID.
- В меню слева выберите "Регистрация приложений".
- Найдите созданную регистрацию приложения и выберите ее.
- В меню слева в разделе "Управление" выберите "Владельцы".
- Выберите " Добавить владельцев", а затем добавьте пользователя или пользователя, которому требуется предоставить согласие администратора.
- Выберите Сохранить
Шаг 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
, где вы увидите следующее:
При вводе сведений о пациенте, обнаружении или практике вы заметите, что контекст запуска обновляется. При использовании службы 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 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 .