`
ssunigate
  • 浏览: 6476 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Mirth Connect 互联互通 第二章

阅读更多

本章主要介绍Mirth Connect开发框架,讲解运行的各个阶段,请大家仔细研读、理解,对后续章节帮助是很大的。开发者把前端与服务分开运行,服务框架集成了很多流行的服务及协议,从中我们也可以看出开发的大致原理。本章涉及到的知识点需要了解一些的,比如SOAP

第二章 什么是通道?

 

 

通道是Mirth Connect 的重要组成部分,被看做是一对多的一种单向通道,其通道组件是解耦的,在两个应用或多个应用之间传输医疗数据。Mirth Connect 能把长消息任务分割成小消息任务,其可靠性、灵活性、高性能得到保证。

 

 

2-1 Mirth Connect抽象通道架构

通道架构组成:由源、通道、目标组成,其中通道包括过滤组件和转换组件。

创建一个通道需要满足如下特点:

      源连接器类型,用于读取数据。(Source)

      目标连接器类型,用于发送数据。(Destination)

      入站消息格式。(inbound)

      出站消息格式。(outbound)

      传输(在入站和出站之间有个映射表)

 

什么是连接器(Connector)

连接器就是一个消息的端点,是Mirth Connect之间或与外部应用之间通讯的一种特殊协议。

支持的连接器列表:

      TCP/MLLP

      数据库(MySQL,PostgreSQL,ORACLE,SQLServer,ODBC)

      文件(本地文件系统和网络共享)

      PDF RTF文档

      JMS

      HTTP(免费版HTTPS协议不支持)

      SMTP

      SOAP(HTTP)

收到数据的连接器被称为Reader(读取者),例如MLLP Reader;发送数据的连接器被称为Writer(写入者),例如Database Writer

 

过滤器(filter)

现实世界中,许多应用之间互联,一个通道可能从许多源接收消息,然后这些消息根据消息的类型或条件,需要分门别类的处理。

有两种方法可以解决上述问题:过滤器或路由器。

路由器最关键的优势是根据唯一的位置决定消息到达目的地的条件。

过滤器是Mirth Connect处理消息的主要机制,根据消息的属性(段和元素)决定对消息的处理情况,过滤器从消息队列中检测消息的属性,而消息不会从消息队列中删除,如果本过滤器没有校验通过,原封不动的返回给消息队列,以便此消息用于其它的过滤器进行处理。

如果处理的消息类型很多,可以建立多个独立的到目标的通道,相互之间可以建立多个过滤器进行消息的处理。

 

转换器(Transformer)

许多情况下,遗留系统、客户应用和第三方应用,彼此之间需要根据数据模型进行消息的发送,尤其有特殊格式要求的数据系统。当新的商业需求提出一个唯一标准的时候,我们就需要把其他系统数据格式转成新系统要求的数据标准,传统方法处理起来即复杂又困难,更难于维护。

那么,对这些不同格式要求的消息,怎么进行数据互联呢?Mirth Connect提供了消息转换器来解决这类问题。通过Transformer,接收方得到了它理解的消息,变成自己的内部使用的数据格式。

Transformer支持的转换器类型:

      Message Builder 把入站消息片段映射成出站消息片段。

      Mapper 把入站消息片段映射成Mirth Connect 内部变量,这些变量在              以后会被用到。

      External Script 从名字上就能猜到,利用外部的javascript脚本进行消                   息的转换或映射数据。

      XSLT Step 就是个XSL转换工具

      JavaScript External Script一样,灵活使用。在本教程中有许多地方                 用到了JavaScriptJava代码也被用到了。

 

通道脚本执行的阶段

通道还支持脚本特性,增强消息的处理逻辑,适用于管道本身及所有传递的消息。

这些脚本的名字及含义如下:

Deploy 部署脚本,Mirth Connect Server启动的时候或通道重新部署的时候

   启动这部分的脚本.

Attachment 附件脚本,以本地的格式处理消息并允许抽取一部分消息作为

   附件存储起来,或者是不可避免的要修改消息。

Preprocessor 预处理脚本,脚本还允许在Mirth connect开始将其转换为内

   部格式(XML)之前以本机格式处理每个消息。

Filter & Transformer 过滤器和转换器,是我们处理入站和出站消息的主要

   地方。

Response 应答脚本,从名字上看出,就是处理目标发送的应答信息。

Postprocessor 后处理器脚本,消息成功发送后执行的脚本。

Undeploy 反部署脚本,Mirth Connect Server每次停止服务的时候调用,比

   如释放通道程序占用的内存。

 

脚本的执行顺序如下:

      1. Global Deploy script 全局部署

      2. Deploy 部署

      3. Attachment script 附件脚本

      4. Global Preprocessor script 全局预处理脚本

      5. Preprocessor script 预处理脚本

      6. Source connector Filters script 源连接器过滤器脚本

      7. Source connector Transformer script or mapping 源连接器转换器脚本或

     映射

      8. Destination 1 connector Filters script目标1连接器过滤器脚本

      9. Destination 1 connector Transformer script or mapping 目标1连接器转

     换脚本或映射

      10. Destination N connector Filters script目标N连接器过滤器脚本

      11. Destination N connector Transformer script or mapping 目标N连接器

      转换脚本或映射

      12. Response 1 Transformer script or mapping 应答1转换脚本或映射

      13. Response N Transformer script or mapping 应答N转换脚本或映射

      14. Postprocessor script 后处理器脚本

      15. Global Postprocessor script 全局后处理器脚本

      16. Undeploy 反部署

      17. Global Undeploy script 全局反部署脚本

 

DeployGlobal Deploy每次管道重新部署启动一次,UndeployGlobal Undeploy也是一样,其他的每次发送接收消息都要执行一遍。注意Global PreprocessorPreprocessor之前执行,Global PostprocessorPostprocessor之后执行。

通道在序列里操作,首先被执行的是第一个通道的Attachment,而第一个通道Postprocessor是最后执行,让我们看看序列通道执行的情况如下图:

 

 

2-2 脚本执行序列

这个序列有三个通道串行执行,每到Destination Connector执行完毕就进入第二个通道,而应答的处理也是逐级递归。

 

接下来的内容我们就详细介绍这些情况。

 

  • 大小: 80.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics