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

ITS-BULK-004 批量数据导出文件检索

概述

本交易由批量数据服务提供商批量数据服务客户端角色使用,用于从批量数据提供商的输出文件服务器获取批量数据文件。

批量数据导出状态获取交易的响应消息中,可以得到批量数据文件的清单。清单中记录了文件的获取地址URL。批量数据客户端可以通过该URL下载批量数据文件(每种资源类型一个或多个)。在消息头Expires中记录了这些文件链接的有效时间,如果链接过期,客户端可以重新获取输出清单,服务器在响应的消息头Expires提供更新的链接和时间戳。

导出的数据中的资源应为最新版本。资源中是否包含 Resource.meta 信息由服务器自行决定。

客户端在请求输出文件时应提供消息头 Accept-Encoding ,并且应将 gzip 压缩作为编码选项之一。服务器应当提供未压缩、gzip压缩和其他压缩形式。当使用压缩时,服务器应在响应中通过消息头Content-Encoding向客户端传达该信息。

API接口端点

GET [url from status request output field]
Accept(可选,默认为 application/fhir+ndjson)

响应 - 成功

  • HTTP 状态码为 200 OK
  • 与所传递文件格式匹配消息头 Content-Type。对于 NDJSON 格式的文件,应设置为 application/fhir+ndjson
  • 消息体正文,格式为NDJSON (每行一个FHIR资源)或其他请求格式。

响应 - 错误

  • HTTP 状态码为 4XX 或 5XX

输出文件资源组织的形式

输出文件可以按资源类型组织,也可以按 organizeOutputBy 参数中指定的资源类型实例组织。

当 organizeOutputBy 参数未设置值时,每个输出文件只能包含一种类型的资源,服务器可以为返回的每种资源类型创建一个或多个文件。每个文件中包含的资源数量由服务器根据实际情况自行设定。

当 organizeOutputBy 参数被设置为某种资源类型时,输出文件应填充由一个Parameters 资源开头的资源块,该资源包含一个名为 header 的参数,指向organizeOutputBy参数指定类型的资源(A)。随后是资源A以及引用资源A的资源(合称为“资源块”)。

每个输出文件可以包含多个资源块,并且单个资源块不应被文件分割。

当导出操作中的 organizeOutputBy 参数未设置值时,每个NDJSON 文件仅包含一种资源,示例如下:

{"id":"p-1","resourceType":"Patient", "name":[{"given":["Brenda"],"family":"Jackson"}],"gender":"female", ...}
{"id":"p-2","resourceType":"Patient", "name":[{"given":["Bram"],"family":"Sandeep"}],"gender":"male", ...}
{"id":"p-3","resourceType":"Patient", "name":[{"given":["Sandy"],"family":"Hamlin"}],"gender":"female", ...}
{...}

当导出操作中的 organizeOutputBy 参数设置为 Patient 时,每个NDJSON 文件就不再仅仅只包含一种资源,而是以资源块形式排列,示例如下:

  {"resourceType": "Parameters", "parameter": [{"name": "header", "valueReference": {"reference": "Patient/p-1"}}]}
  {"id": "p-1", "resourceType": "Patient", ...}
  {"id": "c-1", "resourceType": "Condition", "subject":{"reference": "Patient/p-1"}, ...}
  {"id": "o-1", "resourceType": "Observation", "subject":{"reference": "Patient/p-1"}, ...}
  {...}
  {"resourceType": "Parameters", "parameter": [{"name": "header", "valueReference": {"reference": "Patient/p-2"}}]}
  {"id": "p-2", "resourceType": "Patient", ...}
  {"id": "c-101", "resourceType": "Condition", "subject":{"reference": "Patient/p-2"}, ...}
  {"id": "o-102", "resourceType": "Observation", "subject":{"reference": "Patient/p-2"}, ...}
  {...}