Smile CDR FHIR患者级批量导出无结果 如何配置全量导出权限
Smile CDR 全量批量导出权限配置方案
权限对应关系说明
首先明确四个批量导出权限的适用范围:
FHIR_OP_INITIATE_BULK_DATA_EXPORT_PATIENT:对应患者级批量导出端点[fhir base]/Patient/$export,是你当前故障场景需要的核心权限,你之前只配置了通用导出权限,没有单独配置这个患者级专属权限,是导出无数据的核心原因FHIR_OP_INITIATE_BULK_DATA_EXPORT_GROUP:对应群组级导出端点[fhir base]/Group/[group id]/$export,用于导出指定患者群组的关联数据FHIR_OP_INITIATE_BULK_DATA_EXPORT_SYSTEM:对应系统级导出端点[fhir base]/$export,也就是你之前测试正常的全资源导出场景的权限FHIR_OP_INITIATE_BULK_DATA_EXPORT:是通用批量导出基础权限,仅配置这个只能支持指定_type参数的单类资源导出,无法支持患者/群组/系统级的全关联数据导出
超级用户全量导出权限配置步骤
- 给目标用户/角色同时添加以下4个权限,权限范围全部设置为
*(所有资源):FHIR_OP_INITIATE_BULK_DATA_EXPORTFHIR_OP_INITIATE_BULK_DATA_EXPORT_PATIENTFHIR_OP_INITIATE_BULK_DATA_EXPORT_GROUPFHIR_OP_INITIATE_BULK_DATA_EXPORT_SYSTEM
- 额外添加FHIR资源读取权限
FHIR_READ_ALL_IN_COMPARTMENT,范围同样设置为*,确保导出任务有权限读取所有患者关联的compartment资源(比如Observation、Encounter等你加载的关联数据) - 配置完成后重启FHIR服务节点生效,再次调用
/Patient/$export即可正常返回导出的ndjson资源下载地址
额外排查校验点
如果配置完权限还是无数据,可按以下步骤校验:
- 调用导出接口时不要漏加
Prefer: respond-async请求头,Smile CDR要求异步导出必须携带该请求头 - 检查任务日志是否有
Permission denied类报错,确认权限配置是否实际生效 - 验证Synthea生成的患者数据是否正确关联到Patient compartment,可调用普通查询接口
/Patient/[patient id]/$everything确认是否能返回该患者的所有关联资源
内容的提问来源于stack exchange,提问作者eduardosufan
相关产品推荐
相关产品推荐

