# 带有患者同意的医疗保健 API

> 记录访问权限如何通过 OAuth 2.1 范围和时长由患者授予，如何记录和撤销，它如何改变应用程序的设计，以及成对 ID 如何区分应用程序。

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

**带有患者同意的医疗保健 API 是指记录的访问权限由患者授予，用于特定目的，在特定时间内有效，并且患者可以查看和撤销，而不是由持有数据的组织一次性决定。** 在 Anpheros 中，同意并非一个您可以设置的字段；它是应用程序访问记录的机制。本指南将为开发者解释其工作原理以及它如何改变应用程序的设计。

## 两种访问记录的方式

| | 组织访问 | 患者授权访问 |
|---|---|---|
| 谁授权 | 您的组织，通过 API 密钥 | 患者，通过 OAuth 2.1 同意屏幕 |
| 典型用途 | 诊所或实验室写入结果，您自己的应用程序代表其用户写入 | 第三方应用程序，AI 助手，医生工具，家庭成员 |
| 范围 | 您的组织创建的患者或与其共享的患者 | 患者接受的范围 (`patient/Observation.read`, …) |
| 持续时间 | 密钥有效期间 | 患者选择的持续时间；可续期，可撤销 |
| 患者可见性 | 是，在访问日志中 | 是，并可撤销 |

这两种方式都通过相同的 API 和相同的 FHIR 记录。区别在于谁持有访问的密钥。

## 同意流程，分步详解

1. 您的应用程序将患者引导至 Anpheros 授权端点，并附带所需的 scope 和明文说明原因。
2. 患者将看到您的请求内容，选择时长，然后接受或拒绝。界面将以患者的语言显示。
3. 您将收到一个访问令牌，该令牌仅限于指定的 scope 和患者。令牌的有效期很短；刷新令牌的有效期与同意的有效期相同。
4. 使用该令牌进行的每一次读写操作都会记录您的应用程序名称。患者将在其应用程序中看到该日志。
5. 如果患者撤销同意，下一次请求将以明确的错误失败。您将收到一个 webhook，以便进行清理。

该流程遵循标准的 OAuth 2.1 协议，支持 PKCE 和 SMART on FHIR scope，因此现有的库可以正常工作。有关确切参数，请参阅 [Authentication and OAuth](https://developers.anpheros.com/zh/guides/authentication) 指南；有关其背后的规则，请参阅 [Consent and access model](https://developers.anpheros.com/zh/guides/consent)。

## 您的应用程序将发生的变化

- **您的请求更少。** 范围是按资源类型和方向划分的。一个用于绘制体重的应用程序请求 `Observation.read`，而不是整个记录。
- **您为撤销做设计。** 访问可以随时结束。缓存少量数据，在需要时重新读取，并将撤销错误视为正常状态。
- **您免费获得信任。** 患者可以看到您应用程序的名称、它可以访问的内容以及它上次读取内容的时间。行为良好的应用程序更容易被接受。
- **您带有出处地编写。** 您编写的所有内容都带有您的应用程序作为作者，并在相关时，带有代表其进行操作的人员。患者和其他应用程序可以区分您的数据和他们的数据。

## 不泄露的标识符

每个应用程序看到的患者都拥有一个成对的标识符：同一个人在您的应用程序中和在另一个应用程序中拥有不同的 ID。即使两个应用程序都基于 Anpheros 构建，未经患者同意，两个应用程序也无法合并关于某个人的数据。对您的代码而言，这是不可见的；对患者而言，这是同意与形式的区别。

## 家属和照护者

同意的范围也包括代他人管理记录的人员：例如，父母为子女，成年子女为年迈的父母。记录保留在创建它的账户下；其他账户获得访问权限，该权限可以被撤销。您的应用程序会看到相同的同意机制，其中照护者是接受同意的人。

## 相关

- [同意和访问模型](https://developers.anpheros.com/zh/guides/consent)
- [身份验证和 OAuth](https://developers.anpheros.com/zh/guides/authentication)
- [SMART on FHIR 后端](https://developers.anpheros.com/zh/guides/smart-on-fhir-backend)
- [医疗保健 API](https://developers.anpheros.com/zh/guides/healthcare-api)
- [安全、隐私和数据驻留](https://developers.anpheros.com/zh/guides/security)
