面向开发者

患者同意平台:健康数据 API 中的同意、范围、有效期和撤销如何运作

帮助患者同意的平台需要做什么:同意作为一等公民对象,包含范围和有效期;撤销立即生效;患者可以查看访问日志;AI 撰写内容待批准。Anpheros 如何实现。

作者 发布于 阅读约 1 分钟

同意是健康产品中大家都不想构建,但又都会接受审计的部分。“用户在注册时勾选了一个框”不符合 GDPR 第 9 条的要求,也无法通过数据保护审查,更无法让用户在不删除账户的情况下撤销某个应用程序的访问权限。本指南将介绍患者同意平台需要做什么,以及 Anpheros 平台是如何实现的,这样您就可以直接复用,而无需重新构建。

面向开发者的技术版本: 患者同意平台 · 同意 在 developers.anpheros.com 上,包含请求、响应和限制。本页面为通俗易懂的版本。

同意作为一种授权,而非标志

在 Anpheros 中,同意是一种授权:一个人、一个应用程序、一组范围、一个目的、一个有效期。当用户在同意页面批准访问时创建,用户可以看到它,并且可以随时撤销。每次请求都会根据它来检查读取权限。

  • 范围说明了应用程序可以读取或写入的内容:观察记录、病史、用药、过敏史、文档等,还可以按类别进行细化(例如,仅限实验室检查结果,不包括症状)。
  • 有效期由用户选择:30 天、90 天、180 天或 365 天。没有“永久”选项。
  • 撤销在下次请求时生效。应用程序会收到一个 consent.revoked 的 webhook 通知。
  • 目的会与授权一起记录并显示给用户。

应用程序如何请求

通过 OAuth 2.1 和 PKCE,对于已经支持 SMART on FHIR 的应用程序,可以使用独立启动方式。用户登录后,可以看到哪个应用程序正在请求访问权限,请求的范围是什么,以及有效期多久,然后批准或拒绝。应用程序将获得一个仅限于该患者和这些范围的令牌;项目密钥永远不能代替患者的同意。

GET  https://platform.anpheros.com/oauth/authorize?client_id=…&scope=patient/Observation.read …
POST https://platform.anpheros.com/oauth/token

访问令牌有效期为 30 分钟,刷新令牌有效期为 30 天。发现文档位于 /.well-known/oauth-authorization-server 和 /.well-known/smart-configuration。

患者看到什么

GET /me/patients/{id}/grants 列出了所有有权访问的应用程序、其范围和有效期。…/grants/{grant}/access-log 列出了每个应用程序读取或写入的内容,这些内容在同意的授权下,并带有项目自身的密钥。使用 format=fhir 时,日志将以 FHIR R4 AuditEvent 资源的 Bundle 形式返回,其格式遵循 IHE 基本审计日志模式。在 Anpheros Daily 中,这就是“连接”屏幕;您自己的应用程序也可以显示相同的内容。

读取与写入

获得同意后,一个组织可以看到完整的记录,包括其他诊所写入的内容,但只能更改或删除自己写入的内容。每个资源的每个版本都会记录写入它的项目;由其他项目进行的写入将被拒绝并附带解释。每次写入都会生成一个 Provenance 资源,其中包含应用程序的名称、它代表的组织以及患者的信息。

AI 代理提出建议,患者决定

由注册为 AI 代理的应用程序在患者同意下进行的写入操作不会立即生效。平台会验证它并返回 202 Accepted 和一个建议 ID;记录中不会发生任何更改。患者会看到该建议、内容以及发送它的应用程序,然后接受或拒绝。接受的建议将按原样写入并标记为 AI 生成。这就是通过 MCP 连接的助手可以在不未经授权的情况下写入记录的情况下,帮助填写记录的方式。

用户还可以通过二维码或链接共享他们的记录。POST /me/patients/{id}/shl 会创建一个 SMART Health Link,包含紧急情况所需的信息子集(过敏史、用药、病史、免疫接种)或完整的国际患者摘要,并可选择设置密码和有效期。每次打开都会记录在访问日志中,并且可以立即关闭该链接。任何 SMART Health Link 阅读器都可以打开它。

完整的模型,包含所有规则,请访问 developers.anpheros.com/guides/consent-model。

常见问题

授权是每次请求时都会检查的操作对象;记录中还包含 FHIR Consent 和 Provenance 资源,以便其他系统可以读取已同意的内容以及谁写入了什么。访问日志可以作为 FHIR AuditEvent 提供。

患者是否可以只授予对记录一部分的访问权限?

可以。范围是按资源类型划分的,并带有类别过滤器,用户在同意页面上选择它们。应用程序可以只请求实验室检查结果,或只请求用药信息。

当同意过期时会发生什么?

从过期之日起,该授权下的请求将返回 403 错误。应用程序可以重新请求;用户将再次决定。不会删除任何内容。

撤销是否会删除应用程序已读取的内容?

没有任何系统可以“取消读取”数据。撤销会立即停止进一步访问并被记录;应用程序在其自身端存储的内容受其自身 GDPR 义务的约束。

诊所是否可以在没有患者同意的情况下访问记录?

一个项目可以看到它自己创建的患者记录。读取其他地方创建的记录需要患者的授权。没有管理覆盖权限。

本指南仅供参考,不能替代医生诊疗。涉及健康的决定请咨询医生。紧急情况请拨打 112。
关于作者
Adrian Kereky

Anpheros 创始人。电子工程师,曾在与三星(Samsung)和英伟达(NVIDIA)合作的汽车项目中从事自动驾驶工作六年,负责运行在 NVIDIA 芯片与 CUDA 上的驾驶辅助系统和 AI 系统的架构。随后创建了 Anpheros:由患者掌控的健康档案及其运行所依托的 HL7 FHIR R4 平台。

了解更多关于 Anpheros 与作者 →

把健康档案随身带着

Anpheros Daily 把症状、化验、药物和文件集中保存在一个地方,采用标准格式,由你掌控。Basic 方案免费。

下载 Anpheros Daily