实施 Philips Tasy 医疗保健系统

Philips Tasy EMR HTML5 (Tasy EMR) 是由 Philips Healthcare 开发的先进、基于 Web 的电子病历 (EMR) 系统。这个复杂的软件是一个医疗设备平台,旨在管理医疗环境中的临床和非临床数据。

虽然它作为一个独立的系统,但它也提供了与其他医疗系统的无缝集成功能。这种灵活性允许来自不同医疗保健学科的多个用户访问和使用该平台,使其具有高度适应性,适合提高医疗保健效率和质量。Tasy EMR 系统的主要任务是确保患者信息的准确和安全文档。

Tasy EMR 是一个多层应用程序,在强大的 Oracle 数据库上运行,广泛利用 PL/SQL 例程。其用户友好的 HTML5 前端是使用 AngularJS 技术构建的。客户端与服务器端之间的通信通过 SOAP/REST Web 服务进行。

体系结构

此架构采用 Tasy EMR 医疗保健系统。

Tasy EMR 体系结构的关键组件包括:

  • 客户端层
    • Tasy EMR HTML5:此基于 Web 的客户端应用程序在 Google Chrome 浏览器中无缝运行。它使用专有 API,通过表示状态传输 (REST) 请求与 Tasy EMR Web 服务进行通信。
    • 集成:Tasy EMR 可以与任何使用 HL7、SOAP、REST 请求甚至存储在共享位置中的简单文件交换的设备无缝集成。
  • Server layer(服务器层)
    • 应用服务器:Tasy 与 Apache Tomcat 和 Oracle WebLogic Server 等应用服务器协作托管其中间件组件。选择 Tomcat 时,客户可以选择使用飞利浦应用程序管理器平台,提供基于 Tomcat 构建的集成应用程序容器,以提高性能。
    • Tasy EMR Web 服务:此关键 Web 服务负责接收、处理和响应 Tasy EMR 用户发起的所有请求。
    • Tasy EMR Reports Web 服务:Reports Web 服务专门负责生成系统报告。它在隔离的环境中运行,仅由 Tasy EMR Web 服务要求生成报告。
    • 集成 Web 服务:处理 Tasy EMR 的所有集成要求,此通用服务支持 HL7、SOAP、REST 和基于文件的集成。它管理所有传入和传出消息。
  • 负载平衡器:系统与运行 Oracle Linux 8 的计算实例上的两台服务器协同使用 Oracle Cloud Infrastructure Load Balancing ,采用 HAProxy 市场产品实现强大的应用负载平衡,确保高可用性。
  • Oracle Database 层:作为 Tasy EMR 的主干,此数据库存储所有系统信息,包括以 PL/SQL 对象形式编码的大多数业务规则。建议的同源版本是 Oracle Database 19c,支持 12 和 11,并包含 MDS。

注意:

对于涉及 1,500 多个互联用户的项目,飞利浦强烈建议客户与其批准的基础设施合作伙伴之一互动。这些合作伙伴的联系信息可以从商业部门获得。

注意:

对于使用其服务的 300 多个工作站的客户,Philips 的文档建议所有层的高可用性基础设施:平衡、应用服务器和数据库。


philips-tasy-diagram-oracle.zip

此图显示由负载平衡器、应用层和用于支持数据库的 Oracle Exadata Database Service 组成的三层拓扑。所有资源都部署在 OCI 区域中的单个可用性域中。负载平衡器层和应用层隔离在单个 VCN 的单独子网中。网络安全组控制与每个层中的资源之间的网络通信。连接到每个子网的路由表包含流量定向到 VCN 外部目标的规则。

  • 客户端请求通过互联网网关流入 WAF 和主负载平衡器,后者将请求分配到辅助负载平衡器层,从而将请求发送到应用层。
  • 应用层由计算实例组成。计算实例均匀分布在可用性域中的所有容错域中。应用层中的所有计算实例都连接到专用子网。
  • 数据库层由连接到单独 VCN 中的专用子网的 Oracle Exadata Database Service 数据库组成。

该体系结构具有以下组成部分:

  • 租户

    租户是 Oracle 在您注册 Oracle Cloud Infrastructure 时在 Oracle Cloud 中设置的安全隔离分区。您可以在您的租户内的 Oracle Cloud 中创建、组织和管理您的资源。租户是公司或组织的同义词。通常,公司将具有单个租户,并在该租户内反映其组织结构。单个租户通常与单个订阅关联,而单个订阅通常只有一个租户。

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化的地理区域,其中包含一个或多个称为可用性域的数据中心。区域独立于其他区域,远距离可以区分它们(跨国家甚至大陆)。

  • 区间

    区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间在 Oracle Cloud 中组织资源、控制对资源的访问以及设置使用限额。要控制对给定区间中资源的访问,您可以定义策略来指定哪些人可以访问资源以及他们可以执行哪些操作。

  • 可用性域

    可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错功能。可用性域不共享基础设施(例如电源或冷却设备),也不共享内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 容错域

    容错域是可用性域内硬件和基础设施的一组。每个可用性域具有三个具有独立电源和硬件的故障域。在多个容错域之间分配资源时,应用可以承受容错域内的物理服务器故障、系统维护和电源故障。

  • 虚拟云网络 (VCN) 和子网

    VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统的数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 细分为多个子网,这些子网可以限定在某个区域或可用性域中。每个子网包含一系列不与 VCN 中的其他子网重叠的地址。您可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • 服务网关

    通过服务网关,您可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,并且从不通过互联网传输。

  • Cloud Guard

    您可以使用 Oracle Cloud Guard 监视和维护 Oracle Cloud Infrastructure 中资源的安全性。Cloud Guard 使用可以定义的检测器配方来检查资源是否存在安全弱点,并监视操作员和用户是否有风险活动。检测到任何配置错误或不安全活动时,Cloud Guard 会根据您可以定义的响应器配方建议更正操作并帮助采取这些操作。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全可靠地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会出现性能或服务可靠性下降的情况。将标准存储用于“热”存储,以便您快速、立即和频繁地访问。将归档存储用于长时间保留的“冷”存储,很少或很少访问。

  • Dynamic routing gateway,DRG(动态路由网关)

    DRG 是一个虚拟路由器,它为同一区域中的 VCN 之间、区域外的 VCN 与网络之间的专用网络流量提供路径,例如另一个 Oracle Cloud Infrastructure 区域中的 VCN、内部部署网络或其他云提供商中的网络。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 提供了在您的数据中心与 Oracle Cloud Infrastructure 之间创建专用私有连接的简便方式。与基于 Internet 的连接相比,FastConnect 提供了更高的带宽选项和更可靠的网络体验。

  • Exadata 数据库服务

    Oracle Exadata Database Service 支持您充分利用云端 Exadata 的强大功能。您可以预配灵活的 X8M 和 X9M 系统,以便随着需求的增长将数据库计算服务器和存储服务器添加到系统中。X8M 和 X9M 系统提供基于聚合以太网的 RDMA (RoCE) 网络,可实现高带宽和低延迟、持久性内存 (PMEM) 模块以及智能 Exadata 软件。可以使用等效于四分之一机架 X8 和 X9M 系统的配置预配 X8M 和 X9M 系统,然后在预配后随时添加数据库和存储服务器。

    Oracle Exadata Database Service on Dedicated InfrastructureOracle Cloud Infrastructure (OCI) 数据中心提供 Oracle Exadata Database Machine 服务。Oracle Exadata Database Service on Dedicated Infrastructure 实例是一个虚拟机 (VM) 集群,位于 OCI 区域中的 Exadata 机架上。

    Oracle Exadata Database Service on Cloud@Customer 提供托管在您的数据中心的 Oracle Exadata Database Service

  • 安全列表

    对于每个子网,您可以创建安全规则来指定必须允许进出子网的通信的源、目的地和类型。

  • Block volume(块存储卷)

    通过块存储卷,您可以创建、附加、连接和移动存储卷,以及更改卷性能,从而满足您的存储、性能和应用要求。将卷连接到实例后,您可以像常规硬盘驱动器一样使用该卷。您还可以断开卷的连接并将其连接到另一个实例,而不会丢失数据。

推荐

使用以下建议作为起点。您的要求可能不同于此处所述的体系结构。
  • VCN

    创建 VCN 时,根据您计划附加到 VCN 中的子网的资源数确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。

    选择与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、内部部署数据中心或其他云提供商中)不重叠的 CIDR 块。

    创建 VCN 后,您可以更改、添加和删除其 CIDR 块。

    设计子网时,请考虑流量和安全要求。将特定层或角色内的所有资源连接到同一子网,该子网可以充当安全边界。

  • Cloud Guard

    克隆和定制 Oracle 提供的默认配方以创建定制检测器和响应器配方。通过这些配方,您可以指定哪种类型的安全违规生成警告以及允许对其执行哪些操作。例如,您可能希望检测可见性设置为公共的对象存储桶。

    在租户级别应用 Cloud Guard 以涵盖最广泛的范围并减轻维护多个配置的管理负担。

    您还可以使用托管列表功能将某些配置应用于检测器。

  • 安全区域

    对于需要最高安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,不能从公共互联网访问安全区域中的资源,并且必须使用客户管理的密钥对其进行加密。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 将根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

  • 网络安全组 (NSG)

    可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG 而非安全列表,因为 NSG 支持您将 VCN 的子网体系结构与应用的安全要求分开。

  • Load Balancer 带宽

    创建负载平衡器时,您可以选择提供固定带宽的预定义配置,也可以指定定制(灵活)配置来设置带宽范围,并让服务根据流量模式自动缩放带宽。使用任一方法,都可以在创建负载平衡器后随时更改配置。

  • 块存储卷备份策略

    配置策略以根据需要频繁备份块存储卷,以满足您的 RPO 需求。

  • Data Guard

    Oracle Data Guard 提供全面的服务集,可以创建、维护、管理和监视一个或多个备用数据库,从而使生产 Oracle 数据库在不中断的情况下保持可用。Oracle Data Guard 将这些备用数据库作为生产数据库的副本进行维护。然后,如果生产数据库因计划内或计划外停机而变得不可用,Oracle Data Guard 可以将任何备用数据库切换到生产角色,从而最大限度地减少与停机关联的停机时间。

注意事项

设计拓扑时,请考虑以下因素。

  • 性能

    要获得最佳性能,请选择具有适当带宽的正确计算配置。

  • 安全

    使用策略来限制谁可以访问贵公司拥有的 OCI 资源以及他们如何访问这些资源。默认情况下为 OCI 对象存储启用加密,无法关闭加密。

  • 可用性

    请考虑根据您的部署要求和区域使用高可用性选项。选项包括:在一个区域中使用多个可用性域和使用容错域。

  • 灾难恢复

    建议使用 300 多个工作站的客户使用跨区域卷复制(请参阅“了解更多”)并使用 Oracle Data Guard 创建灾难恢复环境。

  • 成本

    Oracle Exadata Database Service 实例可提供所需的 CPU 电源,从而提高成本。评估您的需求,以选择一种使用 CPU 纵向扩展和纵向收缩的方法(在不停机的情况下进行更改)。

  • 大小调整提示

    下面是根据客户参考案例使用的尺寸,仅供参考。请记住,所有规模和架构都必须与飞利浦医疗保健批准的团队一起创建。

会话 大小 环境 角色 VM 数 OCPU 数 内存数 (GB) # 磁盘 (GB) VM 配置 OCPU 总数 MEM 总数 (GB) 磁盘总容量 (GB) 节点(单个/RAC) OCPU 数据库数 OCPU 数据库总数 磁盘 (GB) 数据库数 弹性负载平衡
100 用户 产品 飞利浦 - 应用程序管理器 2 4 48 150 VM.Standard.E4.Flex 8 96 300 1 4 4 712 1
300 用户 周一 产品 飞利浦 - 应用程序管理器 2 4 48 150 VM.Standard.E4.Flex 8 96 300 1 6 6 968 1
500 用户 L 产品 飞利浦 - 应用程序管理器 4 4 48 150 VM.Standard.E4.Flex 16 192 600 1 8 8 1736 1
700 用户 XL 产品 飞利浦 - 应用程序管理器 6 4 48 150 VM.Standard.E4.Flex 24 288 900 2 10 20 2760 1
1000 用户 2XL 产品 飞利浦 - 应用程序管理器 8 4 48 150 VM.Standard.E4.Flex 32 384 1200 2 10 20 5320 1
1200 用户 3XL 产品 飞利浦 - 应用程序管理器 12 4 48 150 VM.Standard.E4.Flex 48 576 1800 2 12 24 10440 1
1500 用户 4XL 产品 飞利浦 - 应用程序管理器 14 4 48 150 VM.Standard.E4.Flex 56 672 2100 2 14 28 16584 1
100 用户 产品 Tomcat 集成 WSI 1 4 4 150 VM.Standard.E4.Flex 4 4 150 -- -- -- -- --
100 个以上的用户 -- 产品 Tomcat 集成 WSI 1 8 32 150 VM.Standard.E4.Flex 8 32 150 -- -- -- -- --
100 用户 产品 集成 TIE 1 4 4 150 VM.Standard.E4.Flex 4 4 150 -- -- -- -- --
100 个以上的用户 -- 产品 集成 TIE 1 8 32 150 VM.Standard.E4.Flex 8 32 150 -- -- -- -- --
100 用户 QA 飞利浦 - 应用程序管理器 1 4 48 150 VM.Standard.E4.Flex 4 48 150 1 4 4 712 --
100 用户 QA Tomcat 集成 Web 服务 1 4 16 150 VM.Standard.E4.Flex 4 16 150 -- -- -- -- --

注意:

使用此表底部的滚动条可以查看隐藏的列。

确认

Authors: Diego Mariano, Lucas Fernandes

Contributors: Guilherme Teló, John Sulyok