# Platforma pro souhlas pacienta pro zdravotnické aplikace

> Souhlas zabudovaný do datové vrstvy: OAuth 2.1 a rozsahy SMART, účel a datum vypršení platnosti vybrané osobou, přístupový protokol, který si může prohlédnout, zrušení při dalším požadavku a to, co vaše aplikace stále vlastní.

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

**Platforma pro souhlas pacienta umožňuje osobě rozhodnout, které aplikace mohou číst nebo měnit její zdravotní záznamy, za jakým účelem a na jak dlouho, a umožňuje jí kdykoli tento přístup vidět a zrušit.** Anpheros zabudovává souhlas do datové vrstvy: aplikace se k záznamu FHIR R4 pacienta dostane pouze prostřednictvím udělení, které osoba schválila na stránce souhlasu Anpheros, každé čtení a zápis v rámci tohoto udělení je zaznamenáno tam, kde si jej osoba může prohlédnout, a zrušení nabývá účinnosti při dalším požadavku. Tato stránka ukazuje, jak to funguje, co musí vaše aplikace udělat a co nemusí sestavovat.

<!-- visual:consent-flow -->

## Proč souhlas patří do datové vrstvy

Většina zdravotnických aplikací zaznamenává souhlas jako zaškrtávací políčko ve své vlastní databázi a poté jej vynucuje v aplikačním kódu. To funguje, dokud druhá aplikace, klinická integrace nebo funkce AI nepotřebuje stejná data: každá z nich musí znovu implementovat pravidla a osoba nemá jediné místo, kde by viděla, kdo má přístup. Když platforma, která ukládá záznam, také vynucuje souhlas, každý klient dostane stejná pravidla a osoba získá jeden seznam aplikací k revizi.

| | Souhlas jako příznak ve vaší aplikaci | Souhlas v datové vrstvě (Anpheros) |
|---|---|---|
| Kde je vynucován | V kódu každé aplikace | Při každém API požadavku, platformou |
| Rozsah přístupu | Cokoli se aplikace rozhodne číst | Pouze udělené typy a kategorie zdrojů |
| Vypršení platnosti | Zřídka implementováno | Vybráno osobou: 30, 90, 180 nebo 365 dní |
| Co osoba vidí | Závisí na aplikaci | Každá aplikace, její rozsahy a vypršení platnosti a protokol přístupu |
| Odvolání | Musí být propagováno ručně | Další požadavek selže; obnovovací token přestane fungovat |

## Co pacient ovládá

<!-- visual:consent-controls -->

## Jak vaše aplikace žádá o souhlas

Anpheros používá OAuth 2.1 s PKCE a SMART on FHIR v2 scopes. Vaše aplikace odešle osobu na stránku souhlasu s potřebnými scopes a volitelným účelem; po schválení obdrží přístupový token (30 minut) a rotující obnovovací token (30 dní) pro přesně jednoho pacienta.

```ts
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)
```

Scope jako `patient/Observation.rs?category=laboratory` omezuje čtení na laboratorní výsledky; filtr kategorií je vynucen serverem. Typ zdroje mimo udělení vrátí `403`; pacient mimo udělení vrátí `404`, takže ID nelze zkoumat.

## Reakce na odvolání

Když osoba ukončí udělení, další požadavek s tímto tokenem selže a obnovovací token nemůže obnovit přístup. Pro okamžité vyčištění se přihlaste k odběru webhooku `consent.revoked`, který nese `grant_id`, ID pacienta, které vidíte, obory a `revoked_at`.

```ts
await anpheros.webhooks.create('https://your.app/anpheros/hook', { events: ['consent.granted', 'consent.revoked'] });
```

## Co Anpheros nedělá

- Neshromažďuje souhlas pro účely mimo přístup k datům, jako je marketing nebo účast ve výzkumu.
- Nerozhoduje o vaší právní základně. Souhlas s přístupem je jedním z kontrolních mechanismů; vaše oznámení o ochraně osobních údajů, smlouvy a záznamy o zpracování zůstávají vaše.
- Vlastní API klíč projektu vidí pacienty, které projekt vytvořil, bez udělení oprávnění. Souhlas řídí přístup jinými aplikacemi.

## Často kladené dotazy

### Co je platforma pro souhlas pacienta?
Software, který zaznamenává, kterým aplikacím osoba umožňuje přístup k jejím zdravotním údajům, vynucuje tato rozhodnutí při každém požadavku, ukazuje osobě, kdo k čemu přistupoval, a umožňuje jí přístup odvolat. V Anpheros je souhlas součástí samotného záznamu FHIR R4, nikoli samostatnou službou.

### Jaké standardy Anpheros používá pro souhlas pacienta?
OAuth 2.1 s PKCE pro autorizační tok a SMART on FHIR v2 patient scopes (`patient/<Type>.<cruds>` s volitelným filtrem `?category=`) pro to, co aplikace může číst nebo zapisovat. OpenID Connect přidává ID token, když požádáte o `openid fhirUser`.

### Může pacient omezit přístup pouze k některým svým údajům?
Ano. Přístup je omezen na typy zdrojů a kategorie v udělených scopech, například pouze na laboratorní Observations. Vše ostatní vrátí chybu.

### Jak dlouho souhlas platí?
Osoba si na stránce souhlasu vybírá 30, 90, 180 nebo 365 dní. Poté oprávnění vyprší a aplikace musí požádat znovu.

### Může pacient vidět, co aplikace s přístupem udělala?
Ano. Osoba vidí každou aplikaci s přístupem, její scope a datum vypršení platnosti a log přístupů uvádějící, co každá aplikace přečetla nebo zapsala.

### Co se stane, když je souhlas odvolán?
Další požadavek s tímto přístupovým tokenem selže, refresh token nelze použít k získání nového a váš server obdrží webhook `consent.revoked`, pokud se k němu přihlásil.

<!-- visual:cta-consent -->

## Související

- [Model souhlasu a přístupu](https://developers.anpheros.com/cs/guides/consent): pravidla v plném znění
- [Autentizace a OAuth](https://developers.anpheros.com/cs/guides/authentication): tokeny, rozsahy a výměna kódu
- [Jak implementovat souhlas pacienta pomocí SMART on FHIR](https://developers.anpheros.com/cs/guides/smart-on-fhir-backend)
- [Webhooks](https://developers.anpheros.com/cs/guides/webhooks): `consent.granted` a `consent.revoked`
- [Vysvětlení původu lékařských dat](https://developers.anpheros.com/cs/guides/medical-data-provenance)
- [API pro longitudinální data pacienta](https://developers.anpheros.com/cs/guides/longitudinal-patient-data-api)
