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

Azure Health Data Services 体系结构指南

Azure 运行状况数据服务
Azure API 管理
Azure 应用程序网关
Azure Synapse Analytics
Azure 防火墙

安全高效地管理健康状况数据对于医疗保健组织至关重要。 Azure Health Data Services 提供了一个功能强大的平台,这些组织可以使用该平台来存储、处理和分析敏感数据,同时遵守严格的安全性和合规性标准。 但是,如果没有参考体系结构和实现指南,在复杂的企业环境中部署 Health Data Services 可能比较具有挑战性。

本文提供了一个示例体系结构、随附的示例实现,以及用于部署具有增强安全性的 Health Data Services 并将其与其他 Azure 服务集成的蓝图。 遵循本指南中概述的做法可以提高保护健康数据的能力。

体系结构

Architecture diagram that shows how to deploy Health Data Services on Azure and integrate with other Azure services.

下载此体系结构的 Visio 文件

工作流

  1. Azure 应用程序网关通过采用客户端凭据流的增强安全性 TLS 连接,接收各条快速医疗保健互操作性资源 (FHIR) 消息。 应用程序网关通过 Azure API 管理将数据发送到 Health Data Services FHIR 服务,并在其中持久保存数据。
  2. 同时,客户端可以使用 Postman 等工具,借助应用程序网关和 API 管理通过 TLS 连接读取相同的 FHIR 数据。
  3. 对于批量数据处理,应用程序网关将通过采用客户端凭据流的 TLS 连接接收 FHIR 捆绑包,并将数据加载到存储帐户。 FHIR 加载程序(一种与虚拟网络集成的 Azure 函数)将处理 FHIR 捆绑包并将数据加载到 FHIR 服务中。
  4. 如果传入数据采用 HL7 版本 2 或 C-CDA 格式,则可以先使用 FHIR 服务中的 $convert-data 终结点将其转换为 FHIR 格式。 然后,可以使用应用程序网关将数据发布到 FHIR 服务。 通过专用终结点连接的 Azure 容器注册表用于以更高的安全性存储自定义 Liquid 模板,以便将 HL7 v2 或 C-CDA 数据转换为 FHIR 数据。 容器注册表显示在体系结构图中,但示例 Bicep 实现模板未通过 $convert-data 实现从 HL7 v2/C-CDA 到 FHIR 的转换。
  5. FHIR 到 Synapse 同步代理将从 FHIR 服务中提取数据(针对通过单个数据流或批量数据流引入的数据),将提取的数据转换为分层 Parquet 文件,并将其写入 Azure Data Lake Storage。
  6. Azure Synapse Analytics 使用无服务器 SQL 或 Spark 池连接到Data Lake Storage,以查询和分析 FHIR 数据。 Azure Synapse Analytics 显示在体系结构图中,但该 Bicep 实现模板未实现该服务。
  7. 中心虚拟网络包含一个 jumpbox 虚拟机 (VM) 和一个 Azure Bastion 主机,用于提供对 FHIR 服务配置的增强安全性访问。 借助 jumpbox VM,管理员和操作员还可以在绕过应用程序网关的情况下,测试 FHIR 服务终结点以及通过 Azure 存储手动批量加载 FHIR 数据。
  8. 如果通过 Azure ExpressRoute 或站点到站点 VPN 建立本地网络连接,则本地用户和服务可以通过此连接直接访问 FHIR 服务。

注意

你可以选择将 Web 应用程序防火墙 (WAF) 添加到应用程序网关,但这会带来一个已知问题,即 WAF 会错误地标识 FHIR 对象并将其视为恶意代码。 如果需要 WAF,则需要手动修改 WAF 规则集,使 WAF 能够使用 FHIR 对象。

组件

  • Microsoft Entra ID 是多租户、基于云的目录和标识管理服务。 客户端应用程序在 Microsoft Entra ID 中注册,可用于访问 Azure Health Data Services FHIR 服务。

  • 应用程序网关是第 7 层的负载均衡器,是一种平台即服务 (PaaS),可以充当反向代理服务。 内部和外部用户使用 API 管理服务通过应用程序网关访问 FHIR API。

  • API 管理是一个混合的多云平台,用于管理所有环境中的 API。 你可以使用 Swagger API 定义将 FHIR API 导入到 API 管理中。 可以使用 API 管理来限制入站调用、对用户进行身份验证/授权,以及执行其他任务。

  • Health Data Services 是一组基于开放标准和框架的托管 API 服务,所支持的工作流可改善医疗保健水平,并提供可扩展的安全增强型医疗保健解决方案。 Health Data Services FHIR 服务使用专用终结点进行部署,以帮助确保只能通过虚拟网络进行访问或在 Internet 上通过应用程序网关进行访问(如果是外部用户)。

  • FHIR 加载程序是一种 Azure Functions 解决方案,其中的服务可用于将 FHIR 捆绑包(压缩和非压缩)和 NDJSON 文件导入 FHIR 服务。

  • Azure Key Vault 是一项 Azure 服务,用于以更高的安全性存储和访问机密、密钥和证书。 密钥保管库通过与 Microsoft Entra ID 集成的基于角色的访问控制来提供 HSM 支持的安全性和经审核的访问权限。 在此体系结构中,密钥保管库将存储 jumpbox 凭据、应用程序网关证书、FHIR 服务详细信息和 FHIR 加载程序详细信息。

  • 容器注册表是基于开源 Docker Registry 2.0 的托管注册表服务。 在此体系结构中,它用于托管 Liquid 模板。 你可以使用 FHIR 服务中的 $convert-data 自定义终结点将健康状况数据从 HL7 v2 和 C-CDA 转换为 FHIR 格式。 $convert-data 操作使用 FHIR 转换器中的 Liquid 模板进行 FHIR 数据转换。

  • FHIR 到 Synapse 同步代理是一个 Azure 容器应用,将使用 FHIR 资源 API 从 FHIR 服务器中提取数据、将其转换为分层 Parquet 文件,并近实时地将其写入Data Lake Storage。 它还包含一个脚本,用于在 Azure Synapse Analytics 无服务器 SQL 池中创建指向 Parquet 文件的外部表和视图。 尽管体系结构图显示了 FHIR 到 Synapse 同步代理、Data Lake Storage 和 Azure Synapse Analytics,但 Bicep 实现当前不包括用于部署这些服务的代码。

  • Azure 防火墙是一个云原生型智能网络防火墙服务,可为 Azure 中的云工作负载提供威胁防护。 在此体系结构中,路由表用于通过 Azure 防火墙路由来自中心虚拟网络的出口流量,以帮助确保不会发生数据外泄。 同样,你可以创建路由表路由,并根据需要将它们附加到辐射虚拟网络子网,以帮助防止公共卫生信息 (PHI) 数据外泄。

  • jumpbox 是一台运行 Linux 或 Windows 的 Azure VM,管理员和操作员可以使用远程桌面协议 (RDP) 或 Secure Shell (SSH) 连接到该 VM。 由于此体系结构中的大多数服务(Health Data Services、API 管理、密钥保管库等)都是使用专用终结点部署的,因此需要一个 jumpbox VM 来更改配置或测试这些服务。 该 jumpbox 只能通过 Azure Bastion 进行访问。

  • 借助 Azure Bastion,可以使用浏览器、Azure 门户或通过计算机上的本机 SSH/RDP 客户端连接到 VM。 在此实现中,Azure Bastion 将提供对 jumpbox VM 的安全增强型访问。

  • Defender for Cloud 以及 HIPAA 和 HITRUST 合规性策略计划有助于确保 Azure 基础结构部署符合 Microsoft 云安全基准和医疗保健行业合规性要求。

方案详细信息

此解决方案提供了有关如何部署安全增强型 Health Data Services、单独和批量引入 FHIR 数据以及将数据长期保存到 Health Data Services FHIR 服务中的指导。

借助该解决方案,你可以通过安全增强型应用程序网关连接将 FHIR 消息单独和批量加载到 FHIR 服务中。

若要分析 FHIR 数据并提取见解,可以部署 FHIR 到 Synapse 同步代理,如图中所示。 Azure Synapse Analytics 可以连接到 Data Lake Storage 来查询和分析 FHIR 数据。

你可以使用 Health Data Services 医疗技术服务来扩展该解决方案,以接收来自医疗和可穿戴设备的数据。 可以使用此服务将数据转换为 FHIR 格式,并将其保存到 FHIR 服务中,以便使用 Azure Synapse Analytics 提取见解。

你还可以通过扩展该解决方案来引入非 FHIR 数据(HL7 v2 和 C-CDA),使用 Liquid 模板将其转换为 FHIR 格式(这些模板可以存储在容器注册表中),然后保存到 FHIR 服务中。

部署此解决方案

若要部署此解决方案,请按照入门指南中的步骤操作。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

若要查看非公开领英个人资料,请登录领英。

后续步骤