同意是健康产品中大家都不想构建,但又都会接受审计的部分。“用户在注册时勾选了一个框”不符合 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 连接的助手可以在不未经授权的情况下写入记录的情况下,帮助填写记录的方式。
无需应用程序即可共享:SMART Health Links
用户还可以通过二维码或链接共享他们的记录。POST /me/patients/{id}/shl 会创建一个 SMART Health Link,包含紧急情况所需的信息子集(过敏史、用药、病史、免疫接种)或完整的国际患者摘要,并可选择设置密码和有效期。每次打开都会记录在访问日志中,并且可以立即关闭该链接。任何 SMART Health Link 阅读器都可以打开它。
完整的模型,包含所有规则,请访问 developers.anpheros.com/guides/consent-model。
常见问题
同意是作为 FHIR Consent 资源存储的吗?
授权是每次请求时都会检查的操作对象;记录中还包含 FHIR Consent 和 Provenance 资源,以便其他系统可以读取已同意的内容以及谁写入了什么。访问日志可以作为 FHIR AuditEvent 提供。
患者是否可以只授予对记录一部分的访问权限?
可以。范围是按资源类型划分的,并带有类别过滤器,用户在同意页面上选择它们。应用程序可以只请求实验室检查结果,或只请求用药信息。
当同意过期时会发生什么?
从过期之日起,该授权下的请求将返回 403 错误。应用程序可以重新请求;用户将再次决定。不会删除任何内容。
撤销是否会删除应用程序已读取的内容?
没有任何系统可以“取消读取”数据。撤销会立即停止进一步访问并被记录;应用程序在其自身端存储的内容受其自身 GDPR 义务的约束。
诊所是否可以在没有患者同意的情况下访问记录?
一个项目可以看到它自己创建的患者记录。读取其他地方创建的记录需要患者的授权。没有管理覆盖权限。
把健康档案随身带着
Anpheros Daily 把症状、化验、药物和文件集中保存在一个地方,采用标准格式,由你掌控。Basic 方案免费。