# API для здравоохранения с согласия пациента

> Как пациент предоставляет доступ к записи через области действия (scopes) и продолжительность OAuth 2.1, как это регистрируется и может быть отозвано, что это меняет в дизайне приложения, и как идентификаторы парами разделяют приложения.

Source: https://developers.anpheros.com/ru/guides/healthcare-api-patient-consent

**API для здравоохранения с согласия пациента — это API, в котором доступ к записи предоставляется пациентом для определенной цели и на определенное время, и пациент может видеть этот доступ и отозвать его, а не организация, владеющая данными, принимает решение один раз.** В Anpheros согласие — это не поле, которое вы устанавливаете; это механизм, с помощью которого приложение вообще получает доступ к записи. Это руководство объясняет, как это работает для разработчика и что это меняет в дизайне приложения.

## Два способа доступа к записи

| | Доступ организации | Доступ, предоставленный пациентом |
|---|---|---|
| Кто авторизует | ваша организация, через API-ключ | пациент, через экран согласия OAuth 2.1 |
| Типичное использование | клиника или лаборатория, записывающая результаты; ваше собственное приложение, записывающее данные от имени своих пользователей | стороннее приложение, ИИ-ассистент, инструмент врача, член семьи |
| Область действия | пациенты, созданные вашей организацией или предоставленные ей | области действия, принятые пациентом (`patient/Observation.read`, …) |
| Продолжительность | пока ключ действителен | продолжительность, выбранная пациентом; возобновляемая, отзываемая |
| Видимость для пациента | да, в журнале доступа | да, с возможностью отзыва |

Оба пути проходят через один и тот же API и одну и ту же запись FHIR. Разница в том, кто держит ключ от двери.

## Поток согласия, шаг за шагом

1. Ваше приложение направляет пациента на конечную точку авторизации Anpheros с необходимыми областями действия (scopes) и причиной в свободной форме.
2. Пациент видит, что вы запрашиваете, выбирает срок действия и принимает или отклоняет запрос. Экран отображается на языке пациента.
3. Вы получаете токен доступа, ограниченный указанными областями действия и данным пациентом. Токены имеют короткий срок действия; токены обновления действуют столько же, сколько и согласие.
4. Каждое чтение и запись с использованием этого токена регистрируется с указанием имени вашего приложения. Пациент видит журнал в своем приложении.
5. Если пациент отзывает согласие, следующий запрос завершается ошибкой с четким сообщением. Вы получаете вебхук, чтобы иметь возможность выполнить очистку.

Этот поток является стандартным OAuth 2.1 с PKCE и областями действия SMART on FHIR, поэтому существующие библиотеки будут работать. В руководстве [Аутентификация и OAuth](https://developers.anpheros.com/ru/guides/authentication) приведены точные параметры, а в руководстве [Модель согласия и доступа](https://developers.anpheros.com/ru/guides/consent) — правила, лежащие в его основе.

## Что это меняет в вашем приложении

- **Вы запрашиваете меньше.** Области действия (scopes) определяются для каждого типа ресурса и направления. Приложение, которое отображает вес, запрашивает `Observation.read`, а не всю запись.
- **Вы проектируете с учетом отзыва доступа.** Доступ может быть прекращен в любое время. Кэшируйте мало, перечитывайте по мере необходимости и обрабатывайте ошибку отзыва доступа как нормальное состояние.
- **Вы получаете доверие бесплатно.** Пациенты видят название вашего приложения, к каким данным оно имеет доступ и когда оно последний раз их считывало. Приложения, ведущие себя корректно, легче принимаются.
- **Вы пишете с указанием происхождения данных.** Все, что вы записываете, несет информацию о вашем приложении как авторе и, когда это применимо, о человеке, от имени которого была произведена запись. Пациент и другие приложения могут отличить ваши данные от своих.

## Идентификаторы, не раскрывающие информацию

Каждое приложение видит пациента под уникальным парным идентификатором: один и тот же человек будет иметь разные ID в вашем приложении и в другом. Два приложения не могут объединить свои данные о человеке без согласия пациента, даже если оба построены на Anpheros. Для вашего кода это невидимо; для пациента это разница между согласием и формальностью.

## Семьи и опекуны

Согласие распространяется на лиц, управляющих записями других лиц: родитель для ребенка, взрослый ребенок для пожилого родителя. Запись остается с учетной записью, которая ее создала; другие учетные записи получают доступ, который может быть отозван. Ваше приложение видит тот же механизм согласия, где опекун является лицом, принимающим согласие.

## Связанные материалы

- [Модель согласия и доступа](https://developers.anpheros.com/ru/guides/consent)
- [Аутентификация и OAuth](https://developers.anpheros.com/ru/guides/authentication)
- [Бэкенд SMART on FHIR](https://developers.anpheros.com/ru/guides/smart-on-fhir-backend)
- [Healthcare API](https://developers.anpheros.com/ru/guides/healthcare-api)
- [Безопасность, конфиденциальность и размещение данных](https://developers.anpheros.com/ru/guides/security)
