对于可以说HL7协议格式的系统, HL7 over MLLP是一种非常常见的传输机制。 JBoss Fuse是一个非常强大的微服务样式集成平台,在为关键医疗保健提供者构建灵活,有弹性,高可用性的集成方案方面拥有良好的记录。 此外,在JCAPS上替换SeaBeyond之类的传统供应商是这些Fuse实现类型的最佳选择。 我最近在github上发布了一个试点或一组POC代码,其中介绍了一些重要的用例以及使用Fuse和Fuse Fabric(fabric8)的一些最佳实践。
整合的关键
作为支持医疗用例的Fuse实施的一部分而部署的集成(包括HL7集成)通常是具有最高正常运行时间和弹性要求的Tier 1应用程序的一部分。 这些应用程序包括但不限于患者入院,日程安排,实验室结果,甚至是所有关键用例的关键:实时传输患者生命。 另外,期望高水平的吞吐量和性能。
整体架构
该POC将典型流程分为3个可单独部署的微服务:
- hl7-ingress – MLLP / HL7事件收集器
- hl7-transform-1 –能够将HL7有效负载从一条消息转换为另一条消息
- hl7-consumer-1 –能够封送HL7有效负载并将其发送到下游系统,EHR等
我们还利用ActiveMQ以暂存事件驱动的体系结构模式提供弹性/保证的消息传递。
使用这些构建块,我们可以构建功能强大的物理部署,该部署已被证明可以承受故障,无效格式,网络连接问题,故障转移,并且其性能远远超过预期的性能(或旧版性能)指标。
JBoss保险丝
对于此POC,我们将在本地(在笔记本电脑上)构建以下体系结构,但使用过程隔离结构来说明物理部署。 物理部署可以非常基于您拥有的资源(VM,CPU //内存等)。 出于说明目的,这是我们从此POC开始的架构:
在此体系结构中,我们看到以下相关组件:
- 3个保险丝实例,在过程级别隔离
- 2个ActiveMQ代理,在主/从设置中
- 1个Fabric8节点,用于管理部署,主/从选举,版本,服务发现等。
请注意,这是此POC中描述的用例,尽管其目的是帮助读者从高层次上理解组件和概念。 上面没有描述类似生产的环境中的典型部署,但是,您可以根据这些数据推断出更具弹性的环境。 另外要注意,用保险丝和我们是如何架构的这些服务,我们可以选择我们要部署。 在此POC中,我们选择将组件部署到单独的流程中,但这不是技术规则。 我们也可以将它们全部部署到同一流程中(尽管可能会或可能不建议根据您所需的体系结构进行建议)。
保险丝见解!
此POC描述的另一种替代部署如下:
在此描述中,我们具有与Fuse和ActiveMQ相同的上述部署,但是我们还有3个其他节点,它们提供了基于Elasticsearch的高度可扩展的集中式日志记录和洞察框架。 使用Fuse,我们可以启动“ Fuse Insight”节点,并将所有日志转储到一个位置,然后使用Fuse Web控制台查询,绘制图表,并绘制出通过平台传播的调用/事务的结果,包括调试和SLA。诊断。
入门
- 要开始学习如何将此POC组合在一起,请转到“入门”文档
翻译自: https://www.javacodegeeks.com/2015/10/critical-hl7-usecases-with-camel-activemq-elasticsearch.html