Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Платформа согласия пациента для медицинских приложений
Согласие, встроенное в уровень данных: OAuth 2.1 и области действия SMART, цель и срок действия, выбранные пользователем, журнал доступа, который он может просмотреть, отзыв при следующем запросе и что остается в собственности вашего приложения.
Платформа согласия пациента позволяет человеку решать, каким приложениям разрешено читать или изменять его медицинскую карту, для каких целей и на какой срок, а также позволяет ему просматривать и отзывать этот доступ в любое время. Anpheros встраивает согласие в слой данных: приложение получает доступ к записи FHIR R4 пациента только через разрешение, одобренное человеком на странице согласия Anpheros, каждое чтение и запись в рамках этого разрешения регистрируются там, где человек может их увидеть, а отзыв вступает в силу при следующем запросе. На этой странице показано, как это работает, что должно сделать ваше приложение и что ему не нужно создавать.
- 1 · Your app asksOAuth 2.1 with PKCE: SMART scopes, a purpose and the patient's language
- 2 · The person decidesOn the Anpheros consent page: what, for whom and for how long — 30, 90, 180 or 365 days
- 3 · Your app readsOne patient's record, only the granted resource types and categories
- 4 · Every access is loggedThe person sees each read and write by your application
- 5 · The person revokesThe next request fails; a refresh token cannot bring access back
Почему согласие должно находиться на уровне данных
Большинство медицинских приложений записывают согласие в виде флажка в собственной базе данных, а затем применяют его в коде приложения. Это работает до тех пор, пока второе приложение, интеграция с клиникой или функция искусственного интеллекта не потребуют те же данные: каждое из них должно переimplementровать правила, а у человека нет единого места, где можно было бы увидеть, кто имеет доступ. Когда платформа, хранящая запись, также обеспечивает соблюдение согласия, каждый клиент получает одинаковые правила, а у человека появляется один список приложений для проверки.
| Согласие как флаг в вашем приложении | Согласие на уровне данных (Anpheros) | |
|---|---|---|
| Где применяется | В коде каждого приложения | При каждом запросе к API, платформой |
| Область доступа | Все, что приложение решает прочитать | Только предоставленные типы ресурсов и категории |
| Срок действия | Редко реализуется | Выбирается человеком: 30, 90, 180 или 365 дней |
| Что видит человек | Зависит от приложения | Каждое приложение, его области действия и срок действия, а также журнал доступа |
| Отзыв | Должен распространяться вручную | Следующий запрос завершается ошибкой; токен обновления перестает работать |
Что контролирует пациент
Как ваше приложение запрашивает согласие
Anpheros использует OAuth 2.1 с PKCE и области действия SMART on FHIR v2. Ваше приложение направляет пользователя на страницу согласия с необходимыми областями действия и необязательной целью; после одобрения оно получает токен доступа (30 минут) и ротируемый токен обновления (30 дней) для одного конкретного пациента.
import { OAuthFlow, generatePkce } from '@anpheros/sdk';
const flow = new OAuthFlow({
baseUrl: 'https://platform.anpheros.com',
clientId: process.env.ANPHEROS_CLIENT_ID!,
redirectUri: 'https://your.app/callback',
});
const pkce = await generatePkce();
const url = flow.authorizeUrl({
scopes: ['patient/Observation.rs?category=laboratory', 'patient/Condition.rs', 'offline_access'],
purpose: 'treatment',
state: crypto.randomUUID(),
pkce,
lang: 'en',
});
// redirect the person to `url`; on the callback exchange the code (see the authentication guide)
Область действия, такая как patient/Observation.rs?category=laboratory, ограничивает чтение результатами лабораторных исследований; фильтр категорий применяется сервером. Тип ресурса вне предоставленного доступа возвращает 403; пациент вне предоставленного доступа возвращает 404, поэтому идентификаторы не могут быть исследованы.
Реакция на отзыв
Когда пользователь прекращает действие разрешения, следующий запрос с этим токеном завершается ошибкой, и токен обновления не может восстановить доступ. Чтобы немедленно выполнить очистку, подпишитесь на вебхук consent.revoked, который передает grant_id, идентификатор пациента, который вы видите, области действия и revoked_at.
await anpheros.webhooks.create('https://your.app/anpheros/hook', { events: ['consent.granted', 'consent.revoked'] });
Что Anpheros не делает
- Anpheros не собирает согласие для целей, выходящих за рамки доступа к данным, таких как маркетинг или участие в исследованиях.
- Anpheros не определяет вашу правовую основу. Согласие на доступ является одним из механизмов контроля; ваше уведомление о конфиденциальности, контракты и записи об обработке данных остаются вашими.
- API-ключ проекта видит пациентов, созданных этим проектом, без предоставления разрешения. Согласие регулирует доступ других приложений.
Часто задаваемые вопросы
Что такое платформа согласия пациента?
Программное обеспечение, которое записывает, каким приложениям человек разрешает доступ к своим медицинским данным, обеспечивает соблюдение этих решений при каждом запросе, показывает человеку, кто и что получил доступ, и позволяет ему отозвать доступ. В Anpheros согласие является частью самой записи FHIR R4, а не отдельной службой.
Какие стандарты Anpheros использует для согласия пациента?
OAuth 2.1 с PKCE для потока авторизации и пациентские области действия SMART on FHIR v2 (patient/<Type>.<cruds> с необязательным фильтром ?category=) для того, что приложение может читать или записывать. OpenID Connect добавляет токен идентификации при запросе openid fhirUser.
Может ли пациент ограничить доступ только к части своих данных?
Да. Доступ ограничен типами ресурсов и категориями в предоставленных областях действия, например, только лабораторными наблюдениями (Observations). Все остальное возвращает ошибку.
Как долго действует согласие?
Человек выбирает 30, 90, 180 или 365 дней на странице согласия. После этого разрешение истекает, и приложение должно запросить его снова.
Может ли пациент видеть, что приложение сделало с полученным доступом?
Да. Человек видит каждое приложение с доступом, его области действия и срок действия, а также журнал доступа, перечисляющий, что каждое приложение прочитало или записало.
Что происходит при отзыве согласия?
Следующий запрос с этим токеном доступа завершается ошибкой, токен обновления не может быть использован для получения нового, и ваш сервер получает вебхук consent.revoked, если он подписан.
Связанные материалы
- Модель согласия и доступа: полные правила
- Аутентификация и OAuth: токены, области действия и обмен кодом
- Как реализовать согласие пациента с помощью SMART on FHIR
- Вебхуки:
consent.grantedиconsent.revoked - Объяснение происхождения медицинских данных
- API для продольных данных пациента
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card