繁体   English   中英

HL7服务器和HL7监听器

[英]HL7 servers and HL7 listener

我们开发了一个Web服务,假设从客户端获取HL7文件并将其解析为XML,然后将数据推送到数据库中。

现在我的问题是,我们需要关注这一要求。 我听说通常EMR系统通过tcp发送HL7文件。

实际的HL7服务器如何工作?

我们需要创建一个HL7监听器吗?

这个HIPAA合规性HL7应该始终通过tcp推送到服务器吗?

可以解释一下吗?

这是一个相当广泛的问题......回答这一切需要的不仅仅是几个段落。

HL7是一头毛茸茸的野兽。 每次整合都可能需要一些工作。 关键是要有一个最小化这种集成工作的架构。 有关HL7的一些见解,请参阅此链接: https//softwareengineering.stackexchange.com/questions/47855/what-issues-tend-to-arise-when-working-with-hl7-messages/48171#48171

我建议您考虑使用支持HL7的集成引擎来处理它。 如果需要,它将处理协议,监听器,消息确认,并且可以帮助将HL7数据存储在数据库中。 它还有助于处理标准的灵活性。

HIPAA合规性是关于保护患者数据。 它不要求任何特定技术。 大多数HL7数据交换都是通过MLLP处理的(基于带有消息帧的tcp)。 您可以在其上添加VPN层。 也可以使用其他协议,但您需要确保数据通信通道另一侧的系统支持它。

caristix.com

我使用Camel( http://camel.apache.org )解决了这个问题,组件mina2允许打开这些类型的监听器:

mina2:tcp://hostname[:port][?options]
mina2:udp://hostname[:port][?options]
mina2:vm://hostname[:port][?options]

Camel( Apache Camel究竟是什么? )是一个开源Java框架,专注于简化集成。 使用Camel,您可以定义一些路线,在这种情况下,您的路线可以类似于此:

<route>
    <from uri="mina2:tcp://localhost:2575?sync=true&amp;codec=#hl7codec" />
    <log message="[1] ********* MINA2 Message received *********" />
    <to uri="direct:HL7Process"/>
</route>

<route>
    <from uri="direct:HL7Process"/>
    <log message="[2] ********* MINA2 processing Message" />
    <bean ref="hl7Processor" method="removeUtf8Bom" />
    <process ref="hl7Processor" />
    <onException>
        <exception>org.apache.camel.RuntimeCamelException</exception>
        <exception>ca.uhn.hl7v2.HL7Exception</exception>
        <redeliveryPolicy maximumRedeliveries="0" />
        <handled>
            <constant>true</constant>
        </handled>
        <log message="*[3] ******** MINA2 sending ACKError" />
        <bean ref="hl7Processor" method="sendACKError" />
    </onException>
    <log message="[4] ********* MINA2 sending ACK" />
    <bean ref="hl7Processor" method="sendACK" />
    <log message="[4] ********* MINA2 Message processed" />
</route>

第一部分在tcp端口上定义一个侦听器以接收hl7消息。 HL7Process定义如何处理您将收到的消息。 hl7Processor可以实现hl7ToXML转换器和将消息存储在数据库中的逻辑。

HL7 v2.x消息通常使用MLLP(带标记的TCP)进行交换。 我所知道的所有TCP服务器都可以通过MLLP发送和接收HL7 v2.x消息。 在当前的发展中,倾向于使用HL7而不是HTTP(ER7格式或XML格式)。 使用SOAP服务并不常见,因为SOAP(简单对象访问协议)用于交换对象而不是消息。

如果您正在使用TCP侦听器,则根据IHE(集成医疗保健企业)标准使用TLS非常重要。 您还应该仔细阅读他们的技术框架,该框架还将通过ATNA(审计跟踪和节点验证)解决审计和日志记录要求,这是一个基于TLS的syslog实现。 这些协议由IETF定义。 医疗保健数据交换需要大量研究和正确实施才能保持HIPAA标准。

一般流程如下:

  1. 创建TCP / IP端口:侦听和接收来自发件人的HL7邮件。 例如TCT / IP Server点

  2. 将HL7映射到XML:根据HL7消息的类型(EgADT,ORM,ORU等)接收和解析HL7消息,并使用底层数据库表的XML方案进行映射。

  3. 使用上面的XML进入数据库表。

  4. 在此处或在步骤#1之后将HL7确认消息返回给发送方。

您可以通过两种方式执行此操作:

  • 通过编写代码从头开始实现流程/程序。 要么
  • 使用集成工具(如OrionHealth的Rhapsody),它通常由三个模块组成:(1)IDE创建主要是拖放组件的过程。 (2)引擎部署过程和(3)使用浏览器监视进程

使用集成工具更容易,更快速,更便于开发和维护。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM