首页
/ Medplum项目中的FHIR交互精细化访问控制方案

Medplum项目中的FHIR交互精细化访问控制方案

2025-07-10 20:08:42作者:苗圣禹Peter

在医疗健康数据管理领域,FHIR标准作为新一代的医疗数据交换规范,其安全访问控制机制尤为重要。Medplum作为基于FHIR标准的开源医疗数据平台,近期对其访问控制策略进行了重要升级,从原有的粗粒度控制演进为细粒度的FHIR交互级别控制。

原有访问控制机制的局限性

Medplum原本采用简单的布尔型readonly字段来控制资源访问权限,这种设计虽然实现简单,但存在明显缺陷:

  1. 权限划分过于粗糙,只有"只读"和"读写"两种状态
  2. 无法精确控制各类FHIR标准交互操作
  3. 不能满足现代医疗应用复杂的权限管理需求

新型精细化访问控制方案

新方案引入了interactions数组字段,支持对以下标准FHIR交互操作进行精确控制:

  • create:创建资源
  • read:读取资源
  • update:更新资源
  • delete:删除资源
  • search:搜索资源

数据结构设计

新方案采用渐进式升级策略,保持向后兼容:

{
  resourceType: 'AccessPolicy',
  resource: [
    // 传统方式(仍支持)
    { resourceType: 'Observation', readonly: true },
    // 新方式(推荐)
    { resourceType: 'Observation', interactions: ['read', 'search'] }
  ]
}

兼容性处理

系统内部会自动将传统readonly字段转换为新的interactions表示:

  • readonly: false['create', 'read', 'update', 'delete', 'search']
  • readonly: true['read', 'search']

技术实现要点

  1. 策略匹配引擎升级:重构matchesAccessPolicyResourcePolicy()方法,使其能够处理新的交互控制逻辑

  2. 服务器端全面适配:在fhir/repo.ts等核心模块中,确保所有FHIR操作都经过正确的交互权限校验

  3. 弃用策略:将readonly字段标记为@deprecated,当interactions存在时忽略readonly

方案优势

  1. 精细控制:可针对不同资源类型配置具体的允许操作
  2. 标准兼容:完整支持FHIR RESTful API规范定义的标准交互
  3. 平滑过渡:保持向后兼容,不影响现有系统运行
  4. 扩展性强:为未来支持更多FHIR操作预留了架构空间

实施建议

对于Medplum使用者,建议:

  1. 新项目直接采用interactions方式进行权限配置
  2. 现有项目可逐步迁移,两种方式可并存运行
  3. 开发自定义医疗应用时,可基于此机制构建更复杂的权限规则

这一改进显著提升了Medplum在医疗数据安全管理方面的能力,使其更适合构建符合严格合规要求的医疗健康应用。

登录后查看全文
热门项目推荐
相关项目推荐