先简单介绍一下概念,HL7(Health Level 7)是医疗行业面向电子数据信息交换的行业标准应用协议。BizTalk Accelerator for HL7 通过交付全面的 HL7 消息解决方案,使医疗企业内部或企业之间可以共享患者信息,从而扩展了 BizTalk Server 对医疗行业的支持能力。
BizTalk Accelerator for HL7加速器是在BizTalk Server消息处理能力的基础之上扩展出了几种不同的方式来处理HL7消息。废话不多说,下面介绍一下HL7对消息的路由机制。
我们模拟一个源系统已经被正确地配置成功,一个HL7的消息实例被发送至BizTalk的接收端口,假设接收端口使用的是MLLP适配器来接收消息。
之后会将这个消息提交给HL7的接收管道,在接收管道中,使用HL7 Disassembler来解析消息并通过适当的schema和验证设置来验证该消息,在这里会通过消息的有效性以及相关配置生成一个对该HL7消息的认证结果(成功或失败)。
接下来接收管道会将消息连同消息的认证结果一并发给MessageBox当中,以供后续处理或路由。
一旦消息到达MessageBox数据库后,BizTalk会检查订阅过滤器并通过HL7发送管道将消息路由到一个或多个发送端口。
该发送管道可以根据适当的schema和验证设置来验证消息,除了验证消息之外,还能够重写MSH段中某个字段的值,当多个端口订阅该消息并且每一个接受该消息的系统在MSH段内指定不同的值时,这个重写的功能将会特别有用。
熟悉BizTalk的人看到这会觉得,这和BizTalk处理普通的消息没什么不同,的确,使用一般的方式也可以来处理HL7消息,但是在这里我们多了一些特有的端口类型和参数,例如MLLP等。
BizTalk Accelerator for HL7根据MessageBox数据库中的订阅表来路由HL7消息实例,这些订阅是在每一个发送端口上的过滤器中定义的。
例如:一个消息路由过滤器中包含Receive Port ID与/或 HL7 消息类型(ADT^A03)与/或Sending application(MSH3.1)。
另外设置消息订阅需要执行一些关于HL7消息路由的特殊配置,这些特殊配置可以对HL7消息设置特有的验证规则、自动生成验证消息和MSH重写功能。
最后发个福利,传一张BizTalk HL7消息处理的流程图。