你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure API for FHIR 中导出 FHIR 数据

重要

Azure API for FHIR 将于 2026 年 9 月 30 日停用。 按照迁移策略在该日期之前过渡到 Azure Health Data Services FHIR 服务。 由于 Azure API for FHIR 停用,在 2025 年 4 月 1 日开始前不会允许新的部署。 Azure Health Data Services FHIR 服务是 Azure API for FHIR 的演化版本,可让客户管理 FHIR、DICOM 和医疗技术服务,并集成到其他 Azure 服务。

批量导出功能允许按照 FHIR 规范从 FHIR 服务器导出数据。

在使用$export之前,需要确保 Azure API for FHIR 已配置为使用它。 有关配置导出设置和创建 Azure 存储帐户的信息,请参阅配置导出数据页

注意

仅允许将 Azure API for FHIR 订阅中的存储帐户注册为$export操作的目标。

使用 $export 命令

配置 Azure API for FHIRI 进行导出后,可以使用 $export 命令将数据从服务中导出。 数据将存储到配置导出时指定的存储帐户。 若要了解如何在 FHIR 服务器中调用 $export 命令,请参阅关于 HL7 FHIR $export 规范的文档。

作业停滞在错误状态

在某些情况下,工作有可能陷入不良状态。 尤其是在存储帐户权限尚未正确设置时,可能会发生这种情况。 验证导出的一种方法是检查存储帐户,以查看是否存在相应的容器(即ndjson) 文件。 如果它们不存在,并且没有其他正在运行的导出作业,则可能存在当前作业停滞在错误状态。 应通过发送取消请求来取消导出作业,然后再次尝试重新排队该作业。 处于错误状态的导出的默认运行时间为 10 分钟,然后它会停止并移动到新作业或重试导出。

Azure API For FHIR 在以下级别中支持 $export:

  • 系统GET https://<<FHIR service base URL>>/$export>>
  • 患者GET https://<<FHIR service base URL>>/Patient/$export>>
  • 患者组* - Azure API for FHIR 导出所有相关资源,但不导出组的特征: GET https://<<FHIR service base URL>>/Group/[ID]/$export>>

导出后,数据将导出到多个文件中,每个文件只包含一种类型的资源。 单个文件中的资源数将受到限制。 资源的最大数目基于系统性能。 它目前设置为 5,000,但可以更改。 结果是,可能会获取资源类型的多个文件。 文件名将遵循“resourceName-number-number.ndjson”格式。 不保证文件的顺序与数据库中资源的任何排序相对应。

注意

如果资源位于多个资源的隔离舱,或位于多个组,则 Patient/$exportGroup/[ID]/$export 可能会导出重复的资源。

此外,还支持在排队过程中使用位置标头返回的 URL 检查导出状态,以及取消实际的导出作业。

将 FHIR 数据导出到 ADLS Gen2

目前,对于启用了 ADLS Gen2 的存储帐户,我们支持 $export,但有以下限制:

  • 用户无法利用 分层命名空间,但无法将导出目标定位到容器中的特定子目录。 我们仅提供指向特定容器的功能(我们会在其中为每个导出新建文件夹)。
  • 导出完成后,我们不会再将任何内容导出到该文件夹,因为指向同一容器的后续导出将位于新创建的文件夹内。

设置和参数

标头

必须为 $export 作业设置两个必需的标头参数。 这些值由当前的 $export 规范定义。

  • 接受 - application/fhir+json
  • 首选 - respond-async

Query parameters

Azure API for FHIR 支持以下查询参数。 所有参数都是可选的:

查询参数 由 FHIR 规范定义? 说明
_outputFormat 目前支持三个值以符合 FHIR 规范:application/fhir+ndjson、application/ndjson 或 ndjson。 所有导出作业都会返回 ndjson ,传递的值对代码行为没有影响。
_因为 允许仅导出在所提供时间后修改的资源
_type 允许指定要包含的资源类型。 例如,_type=患者仅返回患者资源
_typefilter 若要请求精细筛选,可以使用_typefilter以及_type参数。 _typeFilter 参数的值是以逗号分隔的 FHIR 查询的列表,这些查询进一步限制了结果
_容器 指定配置的存储帐户中的容器,数据应导出到其中。 如果指定了某个容器,则数据将导出到该容器中的某个文件夹。 如果未指定容器,数据将导出到新容器。
_直到 仅允许导出已修改的资源,直到提供的时间。 此参数仅适用于系统级导出。 在这种情况下,如果未禁用或清除历史版本,则导出保证 true 快照 视图,或者换句话说,启用时间旅行。
includeAssociatedData 允许导出历史记录和软删除的资源。 此筛选器不适用于“_typeFilter”查询参数。 将值作为“_history”包含在导出历史记录/非最新版本的资源。 将值包括为“_deleted”以导出软删除的资源。
_isparallel 可以将“_isparallel”查询参数添加到导出操作,以提高其吞吐量。 需要将该值设置为 true 才能启用并行化。 请务必注意,使用此参数可能会导致在导出生命周期内请求单位消耗增加。

注意

$export操作存在已知问题,可能会导致状态成功导出不完整。 使用is_parallel标志时出现问题。 从 2024 年 2 月 13 日开始,使用 _isparallel 查询参数执行的导出作业将受到此问题的影响。

安全导出到 Azure 存储

Azure API for FHIR 支持安全导出操作。 请选择以下两个选项之一:

  • 允许将 Azure API for FHIR 作为 Microsoft 受信任的服务访问 Azure 存储帐户。

  • 允许与 Azure API for FHIR 关联的特定 IP 地址访问 Azure 存储帐户。 此选项提供两种不同的配置,具体取决于存储帐户是位于同一位置,还是与 Azure API for FHIR 的位置不同。

允许将 Azure API for FHIR 用作 Microsoft 受信任的服务

从 Azure 门户中选择一个存储帐户,然后选择“网络”边栏选项卡。 在“防火墙和虚拟网络”选项卡下选择“选定的网络”。

重要

确保已使用其托管标识向 Azure API for FHIR 的存储帐户授予访问权限。 有关详细信息,请参阅 配置导出设置并设置存储帐户

Azure Storage Networking Settings.

在“例外”部分,选中“允许受信任的 Microsoft 服务访问此存储帐户”复选框,然后保存设置。

Allow trusted Microsoft services to access this storage account.

你现在可以安全地将 FHIR 数据导出到存储帐户了。 请注意,存储帐户位于所选网络上,无法公开访问。 若要访问文件,可以启用并使用存储帐户的专用终结点,或在短时间内为存储帐户启用所有网络。

重要

稍后会更新用户界面,以允许你为 Azure API for FHIR 和特定服务实例选择资源类型。

允许特定 IP 地址从其他 Azure 区域访问 Azure 存储帐户

  1. 在Azure 门户中,转到 Azure Data Lake 存储 Gen2 帐户。

  2. 在左侧菜单中选择“网络”。

  3. 选择“已从所选虚拟网络和 IP 地址启用”。

  4. “防火墙 ”部分的 “地址范围 ”框中,指定 IP 地址。 添加 IP 范围,以允许从 Internet 或本地网络进行访问。 可以在下表中找到预配 FHIR 服务的 Azure 区域的 IP 地址。

    Azure 区域 公共 IP 地址
    澳大利亚东部 20.53.44.80
    加拿大中部 20.48.192.84
    美国中部 52.182.208.31
    美国东部 20.62.128.148
    美国东部 2 20.49.102.228
    美国东部 2 EUAP 20.39.26.254
    德国北部 51.116.51.33
    德国中西部 51.116.146.216
    日本东部 20.191.160.26
    韩国中部 20.41.69.51
    美国中北部 20.49.114.188
    北欧 52.146.131.52
    南非北部 102.133.220.197
    美国中南部 13.73.254.220
    东南亚 23.98.108.42
    瑞士北部 51.107.60.95
    英国南部 51.104.30.170
    英国西部 51.137.164.94
    美国中西部 52.150.156.44
    西欧 20.61.98.66
    美国西部 2 40.64.135.77

允许特定 IP 地址访问同一区域中的 Azure 存储帐户

同一区域中 IP 地址的配置过程与上一过程类似,只是使用无类域间路由 (CIDR) 格式的特定 IP 地址范围(即 100.64.0.0/10)。 必须指定 IP 地址范围(100.64.0.0 到 100.127.255.255),因为每次发出操作请求时都会分配 FHIR 服务的 IP 地址。

注意

可以在 10.0.2.0/24 范围内使用专用 IP 地址,但不能保证操作在此类情况下会成功。 如果操作请求失败,可以重试,但在使用 100.64.0.0/10 范围内的 IP 地址之前,请求不会成功。

此 IP 地址范围的网络行为是设计造成的。 变通方法是在其他区域配置存储帐户。

后续步骤

在本文中,你了解了如何使用 $export 命令导出 FHIR 资源。 接下来,若要了解如何导出已取消标识的数据,请参阅

FHIR® 是 HL7 的注册商标,经 HL7 许可使用。