# Żądania dostępu do przychodni z zatwierdzeniem pacjenta (CIBA)

> Przepływ OpenID CIBA w przypadku żądań dostępu do przychodni: recepcjonista wprowadza adres e-mail pacjenta, pacjent zatwierdza w aplikacji lub przez e-mail na 30, 90 lub 365 dni, a aplikacja przychodni otrzymuje tokeny.

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

**Przychodnia uzyskuje dostęp do rekordu pacjenta w Anpheros dopiero po jego zatwierdzeniu przez pacjenta.** Aplikacja przychodni wysyła żądanie, podając adres e-mail pacjenta i potrzebny jej dostęp. Pacjent otrzymuje je w aplikacji Anpheros i przez e-mail, widzi, kto i o co prosi, wybiera okres ważności dostępu, a następnie zatwierdza lub odrzuca. Jeśli zatwierdzi, aplikacja przychodni otrzymuje tokeny i może odczytywać rekord do momentu wygaśnięcia dostępu lub jego cofnięcia przez pacjenta.

Przepływ ten jest standardowym przepływem OpenID Connect Client-Initiated Backchannel Authentication (CIBA) w trybie ankietowania (poll mode). Istnieje on po to, aby recepcjonista nie musiał podawać pacjentowi telefonu ani linku: żądanie trafia bezpośrednio do pacjenta, a nie przez ekran przychodni.

## Krok po kroku

1. **Recepcja wprowadza adres e-mail pacjenta.** Aplikacja kliniki wywołuje `POST /oauth/bc-authorize` z danymi uwierzytelniającymi klienta, adresem e-mail pacjenta jako `login_hint`, `scope`, którego potrzebuje, oraz krótkim `binding_message`, które zobaczy pacjent.
2. **Platforma odpowiada w ten sam sposób dla każdego adresu.** Odpowiedź zawiera `auth_req_id`, datę wygaśnięcia i interwał odpytywania, niezależnie od tego, czy dany adres e-mail posiada konto Anpheros. Nie ujawnia, kto posiada rekord. Żądanie dla osoby bez konta po prostu wygasa.
3. **Pacjent podejmuje decyzję.** Otrzymuje powiadomienie w aplikacji Anpheros i e-mail. Żądanie zawiera nazwę organizacji, zakres i wiadomość. Pacjent wybiera okres 30, 90 lub 365 dni i naciska "zezwalaj" lub "odmów". Link w e-mailu nie zatwierdza niczego po jego otwarciu, ponieważ skanery poczty otwierają linki; pacjent musi nacisnąć przycisk.
4. **Klinika odpytuje.** Aplikacja wywołuje `POST /oauth/token` z typem grantu `urn:openid:params:grant-type:ciba` i `auth_req_id`. Dopóki pacjent nie podjął decyzji, odpowiedź brzmi `authorization_pending`. Po zatwierdzeniu tokeny są zwracane jednokrotnie. Odmowa zwraca `access_denied`, a nieodpowiadające żądanie zwraca `expired_token`.
5. **Klinika odczytuje i zapisuje w ramach przyznanego zakresu.** Każde odczytanie jest rejestrowane i widoczne dla pacjenta. Klinika może zmieniać lub usuwać tylko to, co sama zapisała.

## Co chroni pacjenta

- **Tylko zweryfikowany adres e-mail.** Żądanie jest dopasowywane tylko do konta, którego adres e-mail został zweryfikowany, dzięki czemu nikt nie może odbierać żądań innej osoby, tworząc konto pod jej adresem.
- **Zakresowe i ograniczone czasowo.** Dostęp jest per typ zasobu i akcja, na określony czas. Żądanie, na które nikt nie odpowie, wygasa domyślnie w ciągu jednego dnia, a maksymalnie w ciągu siedmiu dni.
- **Możliwe do cofnięcia w dowolnym momencie.** Cofnięcie wchodzi w życie przy następnym żądaniu. Klinika nie może odświeżyć swojego dostępu.
- **Widoczne.** Pacjent widzi każde połączenie i każdy dostęp w aplikacji. Zobacz [model zgody i dostępu](https://developers.anpheros.com/pl/guides/consent).

## Czego potrzebuje przychodnia do zbudowania

- Poufny klient OAuth zarejestrowany na platformie, z jego sekretnym kluczem przechowywanym na serwerze.
- Pętla ankietująca, która respektuje interwał i obsługuje cztery wyniki.
- Sposób na pokazanie decyzji pacjenta recepcji („oczekiwanie na pacjenta”, „zatwierdzono do…”, „odrzucono”).
- Obsługa zwróconych tokenów jako krótkotrwałych poświadczeń: tokeny dostępu są ważne przez 30 minut, a tokeny odświeżania są rotowane przy każdym użyciu. Zobacz [uwierzytelnianie i OAuth](https://developers.anpheros.com/pl/guides/authentication).

Dla przychodni, która woli otworzyć stronę zgody przed pacjentem, na przykład przy biurku, obsługiwany jest również standardowy przepływ kodu autoryzacji z PKCE i samodzielnym uruchomieniem SMART on FHIR.

## Najczęściej zadawane pytania

### Czy pacjent musi być w przychodni?

Nie. Może zatwierdzić żądanie z własnego telefonu lub przez link w wiadomości e-mail, niezależnie od miejsca pobytu. Żądanie można wysłać przed wizytą, a pacjent przebywający za granicą nadal będzie mógł je zatwierdzić.

### Co jeśli pacjent nie ma konta Anpheros?

Żądanie zostanie zaakceptowane, a następnie wygaśnie bez decyzji. Przychodnia nie będzie w stanie stwierdzić, czy konto istnieje. Pacjent może utworzyć konto, a przychodnia może wysłać nowe żądanie.

### Jak długo trwa dostęp?

Pacjent wybiera 30, 90 lub 365 dni podczas zatwierdzania. Może wycofać dostęp wcześniej.

### Czy przychodnia widzi wszystko w dokumentacji?

Tylko zakres, który pacjent zatwierdził. Zakresy są ustawiane dla każdego typu zasobu i akcji, i mogą być filtrowane według kategorii.

### Czy przepływ żądania jest standardowy?

Tak. Jest to OpenID Connect CIBA, więc można wykorzystać istniejące biblioteki OAuth. Więcej informacji na temat szerszego modelu można znaleźć w przewodniku [API medyczne z zgodą pacjenta](https://developers.anpheros.com/pl/guides/healthcare-api-patient-consent).

### Czy to jest w wersji produkcyjnej?

Tak, na platformie w wersji prywatnej bety. Dostęp produkcyjny wymaga zweryfikowanej organizacji i podpisanego porozumienia o przetwarzaniu danych.

## Powiązane

- [Platforma danych pacjenta dla klinik i szpitali](https://developers.anpheros.com/pl/guides/clinics-and-hospitals)
- [Platforma zgody pacjenta dla aplikacji zdrowotnych](https://developers.anpheros.com/pl/guides/patient-consent-platform)
- [Jak zaimplementować zgodę pacjenta za pomocą SMART on FHIR](https://developers.anpheros.com/pl/guides/smart-on-fhir-backend)
- [Bezpieczeństwo, prywatność i rezydencja danych](https://developers.anpheros.com/pl/guides/security)
