Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
支持患者同意的医疗保健 API
患者如何通过 OAuth 2.1 范围和时长授予对记录的访问权限,这些访问权限会被记录并可撤销,它如何改变应用程序的设计,以及成对 ID 如何使应用程序彼此隔离。
带有患者同意的医疗保健 API 是指记录的访问权限由患者授予,用于特定目的,在特定时间内有效,并且患者可以查看和撤销,而不是由持有数据的组织一次性决定。 在 Anpheros 中,同意并非一个您可以设置的字段;它是应用程序访问记录的机制。本指南将为开发者解释其工作原理以及它如何改变应用程序的设计。
两种访问记录的方式
| 组织访问 | 患者授权访问 | |
|---|---|---|
| 谁授权 | 您的组织,通过 API 密钥 | 患者,通过 OAuth 2.1 同意屏幕 |
| 典型用途 | 诊所或实验室写入结果,您自己的应用程序代表其用户写入 | 第三方应用程序,AI 助手,医生工具,家庭成员 |
| 范围 | 您的组织创建的患者或与其共享的患者 | 患者接受的范围 (patient/Observation.read, …) |
| 持续时间 | 密钥有效期间 | 患者选择的持续时间;可续期,可撤销 |
| 患者可见性 | 是,在访问日志中 | 是,并可撤销 |
这两种方式都通过相同的 API 和相同的 FHIR 记录。区别在于谁持有访问的密钥。
同意流程,分步详解
- 您的应用程序将患者引导至 Anpheros 授权端点,并附带所需的 scope 和明文说明原因。
- 患者将看到您的请求内容,选择时长,然后接受或拒绝。界面将以患者的语言显示。
- 您将收到一个访问令牌,该令牌仅限于指定的 scope 和患者。令牌的有效期很短;刷新令牌的有效期与同意的有效期相同。
- 使用该令牌进行的每一次读写操作都会记录您的应用程序名称。患者将在其应用程序中看到该日志。
- 如果患者撤销同意,下一次请求将以明确的错误失败。您将收到一个 webhook,以便进行清理。
该流程遵循标准的 OAuth 2.1 协议,支持 PKCE 和 SMART on FHIR scope,因此现有的库可以正常工作。有关确切参数,请参阅 Authentication and OAuth 指南;有关其背后的规则,请参阅 Consent and access model。
您的应用程序将发生的变化
- 您的请求更少。 范围是按资源类型和方向划分的。一个用于绘制体重的应用程序请求
Observation.read,而不是整个记录。 - 您为撤销做设计。 访问可以随时结束。缓存少量数据,在需要时重新读取,并将撤销错误视为正常状态。
- 您免费获得信任。 患者可以看到您应用程序的名称、它可以访问的内容以及它上次读取内容的时间。行为良好的应用程序更容易被接受。
- 您带有出处地编写。 您编写的所有内容都带有您的应用程序作为作者,并在相关时,带有代表其进行操作的人员。患者和其他应用程序可以区分您的数据和他们的数据。
不泄露的标识符
每个应用程序看到的患者都拥有一个成对的标识符:同一个人在您的应用程序中和在另一个应用程序中拥有不同的 ID。即使两个应用程序都基于 Anpheros 构建,未经患者同意,两个应用程序也无法合并关于某个人的数据。对您的代码而言,这是不可见的;对患者而言,这是同意与形式的区别。
家属和照护者
同意的范围也包括代他人管理记录的人员:例如,父母为子女,成年子女为年迈的父母。记录保留在创建它的账户下;其他账户获得访问权限,该权限可以被撤销。您的应用程序会看到相同的同意机制,其中照护者是接受同意的人。
相关
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card