观察性健康医疗数据科学与信息学 (OHDSI) 创建并维护观察性医疗结果合作伙伴通用数据模型 (OMOP CDM) 标准和相关的 OHDSI 软件工具,以可视化和分析临床健康数据。 这些工具有助于设计和执行对标准化的患者级别观察性数据的分析。
通过 Azure 上的 OHDSI,希望使用 OMOP CDM 和相关分析工具的组织可在 Azure 平台上轻松部署和运行解决方案。
Terraform 是 HashiCorp 在美国和/或其他国家/地区的注册商标或商标。 使用此标志并不意味着 HashiCorp 的认可。
体系结构
下载此体系结构的 Visio 文件。
上图从较高的层面说明了解决方案体系结构。 该解决方案由两个主要资源组组成:
- 启动资源组。 包含一组支持部署 OMOP 资源组的基础 Azure 资源。
- OMOP 资源组。 包含特定于 OHDSI 的 Azure 资源。
Azure Pipelines 协调所有部署自动化。
本文主要用于 DevOps 工程团队。 如果计划部署此方案,你应具备 Azure 门户和 Azure DevOps 的经验。
工作流
- 部署启动资源组以支持部署 OHDSI 资源所需的资源和权限。
- 为特定于 OHDSI 的 Azure 资源部署 OMOP 资源组。 此步骤应完成与基础结构相关的设置。
- 预配 OMOP CDM 和词汇以部署数据模型,并将 OMOP 受控词汇填充到 Azure SQL 中的 CDM 中。
- 部署 OHDSI 应用程序:
- 使用 BroadSea WebTools 映像设置 Atlas UI 和 WebAPI。 Atlas 是一个 Web UI,它集成了来自各种 OHDSI 应用程序的功能。 WebAPI 层支持它。
- 使用 BroadSea Methods 映像设置 Achilles 和 Synthea。 Achilles 是基于 R 的脚本,用于在 OMOP CDM 上运行数据特征和质量评估。 Synthea ETL 脚本是一种可选工具,使用户可将合成患者数据加载到 OMOP CDM 中。
组件
- Microsoft Entra ID 是多租户、基于云的目录和标识管理服务。 Microsoft Entra ID 用于管理环境部署的权限。
- Azure Pipelines 自动生成和测试代码项目。 此 Azure DevOps 服务结合了持续集成 (CI) 和持续交付 (CD)。 Azure Pipelines 使用这些做法,持续一致地测试和生成代码,并附带到任何目标。 Pipelines 为 Azure 上的 OHDSI 定义并运行此部署方法。
- Azure 虚拟机规模集使你能够创建和管理一组异类负载均衡虚拟机 (VM)。 这些 VM 协调环境的部署。
- Azure Blob 存储是一种存储服务,已经过优化可存储海量的非结构化数据。 Blob 存储用于存储 Terraform 状态文件和原始 OMOP 词汇文件(在引入到 CDM 之前)。
- Azure Key Vault 是一项 Azure 服务,用于以更高的安全性存储和访问机密、密钥和证书。 密钥保管库通过与 Microsoft Entra ID 集成的基于角色的访问控制来提供 HSM 支持的安全性和经审核的访问权限。 在此体系结构中,Key Vault 存储所有机密,包括 API 密钥、密码、加密密钥和证书。
- Azure SQL 数据库是一个完全托管的平台即服务 (PaaS) 数据库引擎。 SQL 数据库能够处理数据库管理功能,例如升级、修补、备份和监视。 此服务包含 OMOP CDM 和所有相关的关系数据。
- Azure Web 应用程序防火墙有助于保护应用程序免受常见的基于 Web 的攻击,例如 OWASP 漏洞、SQL 注入和跨站脚本。 此技术是云原生技术。 它不需要许可,并且为即用即付。
- 使用 Azure 容器注册表,可在专用注册表中为所有类型的容器部署生成、存储和管理容器映像与项目。 在此解决方案中,它存储 OHDSI 应用程序映像(BroadSea WebTools 和 BroadSea Methods),用于部署到 Azure 应用程序服务中。
- Azure 应用程序服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端。 此服务支持 OHDSI WebAPI 和 Atlas 应用程序。
备选方法
如果需要更多可伸缩性或控制,请考虑以下替代方法:
- Azure Kubernetes 服务 (AKS) 或 Azure 容器应用,而不是应用程序服务。
- Azure Synapse,而不是 SQL 数据库。
方案详细信息
联合、协调、可视化、分割和分析临床患者数据的能力已经迅速成为医疗保健行业中的一个热门用例。 许多组织(包括学术机构、政府机构和私营部门的组织)都在寻求使用患者健康数据加速研发的方法。 遗憾的是,大多数 IT 团队很难与研究人员有效地协作,以提供一个研究人员可以感到高效和强大的工作环境。
OHDSI 是一项计划,包括 70 多个国家/地区的数千名协作者。 它以开源形式为研究人员提供了为数不多的解决方案之一。 OHDSI 创建和维护 OMOP CDM 标准和关联的 OHDSI 软件工具,以可视化和分析临床健康数据。
可能的用例
几种类型的医疗保健组织可从该解决方案中受益,包括:
- 希望使科研人员能够利用临床数据处理观察性队列研究的学术机构。
- 希望联合大量不同数据源以加速科学发现的政府机构。
- 希望简化临床试验潜在患者的识别的私营部门公司。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
可靠性
可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述。
SQL 数据库包括区域冗余数据库、故障转移组、异地复制和自动备份。 有了这些功能,应用程序就可在进行维护或服务中断的情况下继续运行。 有关详细信息,请参阅 Azure SQL 数据库可用性功能。
可能需要考虑使用 Application Insights 监视应用程序的运行状况。 通过 Application Insights,可生成警报并响应会影响客户体验的性能问题。 有关详细信息,请参阅什么是 Application Insights?。
有关可靠性的详细信息,请参阅设计可靠的 Azure 应用程序。
安全性
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述。
此方案使用 Azure 资源的托管标识,它提供了一个标识,以供应用程序在连接到支持 Microsoft Entra 身份验证的资源时使用。 通过托管标识,无需管理每个 Azure 资源的机密和凭据。
SQL 数据库使用分层方法,帮助保护客户数据。 它涵盖网络安全、访问管理、威胁防护和信息保护。 有关 SQL 数据库安全性的详细信息,请参阅 Azure SQL 数据库安全性和符合性。
如果高安全性网络是一个关键要求,请考虑使用 Azure 专用链接将应用程序服务连接到 Azure SQL。 这样做会删除对 SQL 数据库的公共 Internet 访问,这是常用的攻击途径。 也可以使用 Azure 存储的专用终结点,通过 Azure 专用链接以更高的安全性访问数据。 这些实现当前未包含在解决方案中,但如果需要,可以添加这些实现。
有关设计安全解决方案的通用指导,请参阅 Azure 安全性文档。
成本优化
成本优化就是减少不必要的费用和提高运营效率。 有关详细信息,请参阅成本优化支柱概述。
为了更好地了解在 Azure 上运行此方案的成本,请使用 Azure 定价计算器。 此估算使用通过基础结构即代码部署的所有 Azure 资源的默认配置。 这些成本估算可以根据数据的大小以及组织中可能共享的其他资源(如 Microsoft Entra ID 或 Azure DevOps)而更改。
性能效率
性能效率是指工作负荷能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述。
此方案使用应用程序服务,可以选择用于自动缩放支持 Atlas UI 的实例数。 通过此功能,可跟上最终用户的需求。 有关自动缩放的详细信息,请参阅自动缩放最佳做法。
有关详细信息,请参阅性能效率清单。
部署此方案
有关部署 OHDSI 工具套件的详细信息以及其他详细文档,请参阅以下资源:
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Andy Gee | 高级软件工程师
- Kaipo Lucas | 高级项目经理
- Yvonne Radsmikham | 高级软件工程师
- Cory Stevenson | 高级专家
其他参与者:
- Mick Alberts | 技术文档撰写人
- Heather Camm | 高级项目经理
- Gayatri Jaiswal | 项目经理
若要查看非公开领英个人资料,请登录领英。
后续步骤
- Microsoft Entra 文档
- 什么是 Azure Pipelines?
- 什么是 Azure DevOps?
- 什么是 Azure SQL 数据库?
- OHDSI 主页
- OHDSI Atlas 演示环境
- OHDSI GitHub
- OHDSI YouTube 频道