# Zdravotní API s pacientovým souhlasem

> Jak pacient uděluje přístup k záznamu prostřednictvím rozsahů a dob trvání OAuth 2.1, jak je zaznamenáván a lze jej odvolat, co to mění v návrhu aplikace a jak ID dvojic oddělují aplikace.

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

**Zdravotní API s pacientovým souhlasem je takové, kde přístup k záznamu uděluje pacient, pro daný účel, na danou dobu, a pacient jej může vidět a zrušit, namísto jednorázového rozhodnutí organizace, která data drží.** V Anpheros není souhlas polem, které nastavujete; je to mechanismus, kterým aplikace vůbec k záznamu přistupuje. Tato příručka vysvětluje, jak to funguje pro vývojáře a co to mění v návrhu aplikace.

## Dva způsoby přístupu k záznamu

| | Přístup organizace | Přístup udělený pacientem |
|---|---|---|
| Kdo autorizuje | vaše organizace, prostřednictvím API klíče | pacient, prostřednictvím obrazovky souhlasu OAuth 2.1 |
| Typické použití | klinika nebo laboratoř zapisující výsledky, vaše vlastní aplikace zapisující jménem svých uživatelů | aplikace třetí strany, AI asistent, nástroj lékaře, rodinný příslušník |
| Rozsah | pacienti, které vaše organizace vytvořila nebo kteří jí byli sdíleni | rozsahy, které pacient přijal (`patient/Observation.read`, …) |
| Doba platnosti | po dobu platnosti klíče | doba, kterou pacient zvolil; obnovitelná, odvolatelná |
| Viditelné pro pacienta | ano, v logu přístupů | ano, s možností odvolání |

Obě cesty procházejí stejným API a stejným FHIR záznamem. Rozdíl je v tom, kdo drží klíč ke dveřím.

## Tok souhlasu, krok za krokem

1. Vaše aplikace odešle pacienta na autorizační koncový bod Anpheros s požadovanými rozsahy (scopes) a důvodem v prostém jazyce.
2. Pacient vidí, co žádáte, zvolí dobu trvání a přijme nebo odmítne. Obrazovka je v jazyce pacienta.
3. Obdržíte přístupový token omezený na tyto rozsahy a tohoto pacienta. Tokeny mají krátkou životnost; obnovovací tokeny (refresh tokens) platí po dobu souhlasu.
4. Každé čtení a zápis s tímto tokenem je zaznamenáno pod názvem vaší aplikace. Pacient vidí záznam ve své aplikaci.
5. Pokud pacient stáhne souhlas, další požadavek selže s jasnou chybou. Obdržíte webhook, abyste mohli provést úklid.

Tok je standardní OAuth 2.1 s PKCE a rozsahy SMART on FHIR, takže existující knihovny fungují. Průvodce [Authentication and OAuth](https://developers.anpheros.com/cs/guides/authentication) obsahuje přesné parametry a [Consent and access model](https://developers.anpheros.com/cs/guides/consent) pravidla za ním.

## Co se mění ve vaší aplikaci

- **Žádáte méně.** Rozsahy (scopes) jsou definovány pro každý typ zdroje a směr. Aplikace, která zaznamenává váhu, žádá o `Observation.read`, nikoli o celý záznam.
- **Navrhujete pro odebrání.** Přístup může kdykoli skončit. Ukládejte do cache málo, čtěte znovu, když je to potřeba, a zpracovávejte chybu odebrání jako normální stav.
- **Získáváte důvěru zdarma.** Pacienti vidí název vaší aplikace, k čemu má přístup a kdy naposledy něco přečetla. Aplikace, které se chovají dobře, jsou snadněji přijímány.
- **Píšete s původem (provenance).** Vše, co zapíšete, nese vaši aplikaci jako autora a, pokud je to relevantní, osobu, jejímž jménem. Pacient a jiné aplikace mohou rozlišit vaše data od jejich.

## Identifikátory, které nepropouštějí informace

Každá aplikace vidí pacienta pod párovým identifikátorem: stejná osoba má v jedné aplikaci jiné ID než v jiné. Dvě aplikace nemohou spojit svá data o osobě bez souhlasu pacienta, i když jsou obě postaveny na Anpheros. Pro váš kód je to neviditelné; pro pacienta je to rozdíl mezi souhlasem a formalitou.

## Rodiny a pečovatelé

Souhlas se vztahuje i na osoby, které spravují záznamy pro jiné: rodič pro dítě, dospělé dítě pro staršího rodiče. Záznam zůstává u účtu, který jej vytvořil; ostatní účty získávají přístup, který lze odejmout. Vaše aplikace vidí stejný mechanismus souhlasu, přičemž pečovatel je osoba, která jej přijímá.

## Související

- [Model souhlasu a přístupu](https://developers.anpheros.com/cs/guides/consent)
- [Autentizace a OAuth](https://developers.anpheros.com/cs/guides/authentication)
- [Backend SMART on FHIR](https://developers.anpheros.com/cs/guides/smart-on-fhir-backend)
- [API pro zdravotnictví](https://developers.anpheros.com/cs/guides/healthcare-api)
- [Zabezpečení, ochrana soukromí a rezidence dat](https://developers.anpheros.com/cs/guides/security)
