# Запити на доступ до клініки із схваленням пацієнта (CIBA)

> Потік OpenID CIBA за запитами на доступ до клініки: реєстратура вводить електронну адресу пацієнта, пацієнт схвалює в додатку або електронною поштою на 30, 90 або 365 днів, і додаток клініки отримує токени.

Source: https://developers.anpheros.com/uk/guides/clinic-access-request

**Клініка отримує доступ до запису пацієнта в Anpheros лише після його схвалення пацієнтом.** Додаток клініки надсилає запит із зазначенням електронної адреси пацієнта та необхідного доступу. Пацієнт отримує його в додатку Anpheros та електронною поштою, бачить, хто і з якою метою запитує, обирає тривалість доступу та схвалює або відхиляє запит. Якщо пацієнт схвалює, додаток клініки отримує токени та може читати запис до закінчення терміну дії доступу або його відкликання пацієнтом.

Цей потік є стандартним потоком OpenID Connect Client-Initiated Backchannel Authentication (CIBA) у режимі опитування (poll mode). Він існує для того, щоб реєстратору не потрібно було передавати пацієнту телефон або посилання: запит надходить безпосередньо пацієнту, а не через екран клініки.

## Покроково

1. **Реєстратура вводить електронну адресу пацієнта.** Застосунок клініки викликає `POST /oauth/bc-authorize` зі своїми обліковими даними клієнта, електронною адресою пацієнта як `login_hint`, `scope`, які йому потрібні, та коротким `binding_message`, яке побачить пацієнт.
2. **Платформа відповідає однаково для кожної адреси.** Відповідь містить `auth_req_id`, термін дії та інтервал опитування, незалежно від того, чи має ця електронна адреса обліковий запис Anpheros. Вона не розкриває, хто має запис. Запит для особи без облікового запису просто закінчується.
3. **Пацієнт приймає рішення.** Він отримує сповіщення в застосунку Anpheros та електронний лист. Запит показує організацію, сферу дії та повідомлення. Він обирає період 30, 90 або 365 днів і натискає "дозволити" або "відмовити". Посилання в електронному листі нічого не затверджує при відкритті, оскільки сканери пошти відкривають посилання; пацієнт повинен натиснути кнопку.
4. **Клініка опитує.** Застосунок викликає `POST /oauth/token` з типом надання `urn:openid:params:grant-type:ciba` та `auth_req_id`. Поки пацієнт не прийняв рішення, відповідь — `authorization_pending`. Після затвердження токени повертаються один раз. Відмова повертає `access_denied`, а незапитаний запит повертає `expired_token`.
5. **Клініка читає та пише в межах наданої сфери дії.** Кожне читання реєструється та є видимим для пацієнта. Клініка може змінювати або видаляти лише те, що написала сама.

## Що захищає пацієнта

- **Лише підтверджена електронна пошта.** Запит відповідає лише обліковому запису, електронна пошта якого підтверджена, тому ніхто не може отримувати запити іншої особи, створивши обліковий запис з її адресою.
- **Обмежений за областю дії та часом.** Доступ надається для кожного типу ресурсу та дії на зазначений період. Запит, на який ніхто не відповідає, за замовчуванням втрачає силу протягом дня, а максимум — протягом семи днів.
- **Може бути відкликаний у будь-який час.** Відкликання набирає чинності з наступним запитом. Клініка не може відновити доступ.
- **Видимий.** Пацієнт бачить кожне підключення та кожен доступ у додатку. Див. [модель згоди та доступу](https://developers.anpheros.com/uk/guides/consent).

## Що потрібно клініці для створення

- Конфіденційний OAuth-клієнт, зареєстрований на платформі, з його секретом, що зберігається на сервері.
- Цикл опитування, який дотримується інтервалу та обробляє чотири результати.
- Спосіб показати рішення пацієнта на рецепції ("очікування пацієнта", "схвалено до …", "відмовлено").
- Обробка повернутих токенів як короткострокових облікових даних: токени доступу діють 30 хвилин, а токени оновлення змінюються при кожному використанні. Див. [автентифікація та OAuth](https://developers.anpheros.com/uk/guides/authentication).

Для клініки, яка віддає перевагу відкриттю сторінки згоди перед пацієнтом, наприклад, на стійці реєстрації, також підтримується стандартний потік коду авторизації з PKCE та окремий запуск SMART on FHIR.

## Часті запитання

### Чи повинен пацієнт бути в клініці?

Ні. Вони можуть надати дозвіл зі свого телефону або за посиланням з електронного листа, де б вони не знаходилися. Таким чином, запит може бути надісланий до прийому, і пацієнт, який перебуває за кордоном, все одно зможе його затвердити.

### Що робити, якщо у пацієнта немає облікового запису Anpheros?

Запит приймається, а потім закінчується без рішення, і клініка не може сказати, чи існує обліковий запис. Пацієнт може створити обліковий запис, і клініка може надіслати новий запит.

### Як довго триває доступ?

Пацієнт обирає 30, 90 або 365 днів під час затвердження. Вони можуть відкликати його раніше.

### Чи може клініка бачити все в записі?

Тільки той обсяг, який пацієнт схвалив. Обсяги встановлюються для кожного типу ресурсу та дії та можуть фільтруватися за категоріями.

### Чи є потік запитів стандартним?

Так. Це OpenID Connect CIBA, тому можна використовувати існуючі бібліотеки OAuth. Дивіться посібник [healthcare API з дозволом пацієнта](https://developers.anpheros.com/uk/guides/healthcare-api-patient-consent) для ширшої моделі.

### Це в реальному часі?

Так, на платформі в приватній бета-версії. Для доступу до виробничого середовища потрібна перевірена організація та підписана угода про обробку даних.

## Пов'язане

- [Платформа даних пацієнтів для клінік та лікарень](https://developers.anpheros.com/uk/guides/clinics-and-hospitals)
- [Платформа згоди пацієнтів для медичних додатків](https://developers.anpheros.com/uk/guides/patient-consent-platform)
- [Як реалізувати згоду пацієнтів за допомогою SMART on FHIR](https://developers.anpheros.com/uk/guides/smart-on-fhir-backend)
- [Безпека, конфіденційність та місцезнаходження даних](https://developers.anpheros.com/uk/guides/security)
