HL7中国批量数据导出服务实施指南
2026.01.23 - release

HL7中国批量数据导出服务实施指南 - Local Development build (v2026.01.23) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## 批量数据导出服务

### 概述

定义了一套标准化的、基于FHIR的异步操作，用于从资源服务器向授权客户端高效导出大规模医疗数据集。它旨在解决传统FHIR API在处理海量数据时面临的性能瓶颈，并简化跨系统的批量数据交换流程。

传统的医疗数据批量交换流程繁琐，涉及数据提取、格式转换和文件传输等多个步骤，成本高昂。现有的FHIR API适合处理实时、小规模的数据交互，但对于需要导出数十万条记录的场景（如用于研究或质量评估的患者队列数据），发起大量请求是不现实的。本实施指南通过定义标准的`$export`操作，使客户端能够以异步方式一次性请求并获取特定群体（如所有患者、一组患者或系统全部数据）的大量资源，服务器会将结果生成为NDJSON格式的文件供客户端下载。

本实施指南是在Bulk Data Access IG v3.0.0的基础上进行剪裁，以适应中国医疗卫生领域的数据交换环境以及HL7中国的FHIR Connectathon评估要求。

#### 基础标准

- HL7 FHIR
- RFC7159, The JavaScript Object Notation (JSON) Data Interchange Format
- Newline-delimited JSON
- RFC7240, Prefer Header for HTTP

### 受众和范围

本实施指南旨在供后端服务（客户端）和资源服务器（如HIS系统、EMR系统、数据仓库等）开发者使用。这些开发者旨在通过共享大型FHIR数据集实现互操作。本指南定义了服务接口，客户端可以通过这些接口向服务器请求批量数据导出、接收关于导出文件进展的状态信息，并检索这些导出文件。

本实施指南范围不包括：

- 实时数据交换
- 客户端可能需要的数据转换能力
- 患者匹配（尽管患者标识符可能包含在导出的资源中）
- Group资源的管理（尽管组级批量数据导出操作需要Group标识）

### 一致性声明

为了声明符合该实施指南，服务器应在`CapabilityStatement.instantiates`中包含以下URL：

    http://hl7.org/fhir/uv/bulkdata/CapabilityStatement/bulk-data

### 使用场景

本实施指南旨在支持共享任何可在FHIR中表示的数据。这意味着本实施指南应适用于如下系统：

- 存储FHIR资源的FHIR服务器；
- 使用FHIR实现作为互操作层的电子病历系统、人群健康系统、公共卫生系统等。

#### 用例

- 术语数据：从术语服务器导出 CodeSystem 和 ValueSet 资源
- 服务提供者数据：导出系统中的医护从业者、地点和医疗卫生机构列表
- 公共卫生数据：用于非实时的大规模公共卫生监测、电子病历报告等
- 财务数据：导出患者的理赔、承保和福利说明等资源，用于财务分析
- 临床与互操作性数据：定期从电子病历系统中导出资源，用于研究数据或人口健康管理
- 传染病上报数据

### 批量数据导出流程

本实施指南基于FHIR 异步请求模式 ，并在某些地方可能会扩展该模式。

#### 角色

批量数据导出服务主要涉及两个角色：

- 批量数据服务提供者，包括：
  - 资源服务器：接受批量数据导出请求并提供作业状态和完成清单的服务器。
  - 导出文件服务器：根据完成清单中的URL返回批量数据导出文件的服务器。这些服务可以内置于资源服务器中，也可以独立托管。
- 批量数据服务客户端：请求和接收批量数据导出文件的系统。

#### 交易图

批量数据导出服务的交易图如下所示：

批量数据导出服务的交易如下：

- ITS-BULK-001 批量数据导出
- ITS-BULK-002 批量数据导出取消
- ITS-BULK-003 批量数据导出状态获取
- ITS-BULK-004 批量数据导出文件检索

#### 时序图

批量数据导出服务的时序图如下所示：

### 隐私与安全考量

- 本文描述的所有客户端与服务器之间的交换应采用TLS 1.2（RFC5246） 或更新版本进行保护。
- TODO：通过SMART进行资源访问控制。
- 本实现指南未涉及服务器防范潜在入侵的保护。
- 医疗机构须保护文件服务器中持久存在的`PHI`。
- 服务器支持使用头部字段`Expires`来限制客户端下载文件的时间区间（文件从服务器移除由服务器实现者决定）。如果客户端正在下载文件，那么服务器就不应删除正在下载的文件，无论文件是否过期。
- 批量数据导出可能是一个资源密集型操作，服务器开发者应考虑并降低故意或无意的拒绝服务攻击风险，但具体细节超出本规范范围。