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

Mirth Connect 互联互通 第五章 查询发送者通道

 
阅读更多

第五章 查询发送者通道

查询发送者通道是我们实现的第一个通道,也是最简单的通道。它的任务就是发送HL7v2资格查询请求消息的接口。因此源连接器的类型是Channel Reader。在这个管道下链接下一个通道就是v2-v3 Transformer channel,它使用MLLP消息传输协议,目标连接器类型配置为TCP Sender,由此MLLP是走TCP层传输的,也就是Socket技术。

为使测试容易点儿,区别进来的消息,v2-v3 Transformer channel通道会为每个消息分配UUID和日期时间戳,意味着该通道要调整每一个消息。另外,我们使用这个通道创建不合规的消息,测试我们以后为两个传输通道实现的验证脚本。

为了创建这个通道,咱们需要对通道的每个标签,即Summary, Sender, Destination,执行必要的配置。

Deploy, Preprocessor, Postprocessor Undeploy脚本不需要编写,因此它们不在本章讨论范围内。

. Summary 标签

创建新通道,切换到Summary标签。

输入通道名称,通道标记和通道描述。假设你已经删除了先前创建的Simple Channel,只有与本项目相关的通道,你可以忽略标记的创建。

单击Set Data Types,配置源链接器和目标连接器入站消息和出站消息为HL7v2.x,其他设置保持不变。检查一下Initial State是否设置为Started(其他选项有PausedStopped)

本通道或本项目的其他通道都没有attachments配置,即attachment=NONE。但至少,你应该看看attachments下拉菜单项里都有什么,每个试试,每项后面有个Properties属性,看看有什么不同。



 

 

5-1 Summary概要标签

再说一遍,Channel Tags字段项是方便的用于通道的逻辑排序。



 

 

5-2 源连接器入站和出站类型设置

记得,如果你对Attachment实验完了,将其值设置回None

 

. Source 连接器

切换到Source标签,检查Connector Type类型设置是否是Channel ReaderChannel Reader连接器通道其他设置保持不变。



 

 

5-3 源连接器设置

由于进来的所有消息都被接受,所有对于此通道不需要过滤器或转换器。校验连接器并保存改变。在左边导航栏中就是这两个菜单项:Validate ConnectorSave Changes

 

. Destinations Connector 目标连接器

切换到Destinations 标签,重命名存在的目标,把Destination 1 改为HL7v2-HL7v3 Transformer,你也可以选择填写你喜欢的名字。

根据总体管道图,这个目标是TCP client,因此,把连接器类型Connector Type改为TCP Sender

 

Remote Address地址栏填写本地机IP地址:127.0.0.1,或输入你知道的其他TCP服务器的IP地址。

Remote Port远程端口给个6611,如果你计算机上的应用程序已占用该端口或本项目使用的任何端口,那么你就把所有相关的通道涉及的端口都调整一下。

 

Template Box 模板框里已经有${message.encodedData},如果没有你可以从Destination Mappings目标映射里拖拽Encoded Data 到模板框里,目标映射就在Mirth Connect Administrator右边的面板里。(看看图5-4)

其他设置保持不变,保存这个通道。

 

这个目标不需要过滤器,然而,根据我们先前的讨论,该通道调整入站消息,目的是区别不同的消息,这一切由目标转换器脚本来完成。



 

 

5-4 目标连接器设置

单击Edit Transformer为本目标创建转换器脚本。有四个脚本,三个是javascript,一个是Message Builder。该目标是由四个脚本进行顺序工作的。看图5-5



 

 

5-5 To HL7v2-HL7v3目标转换器步骤

添加新转换器步骤,把类型改为Javascript ,重命名此步骤。你可以使用我给的转换器名字或使用你自己的。下面是为每个转换器写的脚本。

MSG Segment 更新转换器

这个脚本吧入站消息元素分配给出站消息元素。由于出站模板还没有,撰写的脚本把入站消息对象分配给tmp变量,映射了所有字段。

SOURCE 5-1 MSH Segment Transformer script

tmp = msg; tmp['MSH']['MSH.7']['MSH.7.1'] = Now("yyyyMMddhhmmss");

tmp['MSH']['MSH.10']['MSH.10.1'] = UUIDGenerator.getUUID();

 

从脚本上看出,该转换器步骤把当前的日期时间戳赋值给出站消息字段。类似的,把UUID也赋值给了消息字段。

Patient ID 生成器

该脚本创建序列号模拟病人的识别码,例如社保号。用不着说,这个识别码不遵循任何规则,完全是虚构的。识别码被分配到适合的消息字段上。

SOURCE 5-2 Patient ID Transformer script

tmp['QPD']['QPD.3']['QPD.3.1'] = getPatientID();

function getPatientID() {

var patientId = '';

for ( var i = 0; i <= 9; i++ ) {

patientId += Math.floor( (Math.random() * 10) );

}

return patientId;

};

这个脚本展示了你可以使用JS函数来规划程序逻辑。

Query Tag 生成器

该转换器步骤使用了Message Builder消息编译器类型。它把查询消息控制ID号的部分映射到QPD片段的查询标记上。说的好像是拉丁文,换句话说,该转换器步骤把MSH.10.1的内容从第11个字符开始截取,赋值给QPD2.1,在真实情况中,你可以用它来调试消息请求。本项目中它是用于区别消息的。看图5-5

填写Message SegmentMapping fields

Message Segment: tmp['QPD']['QPD.2']['QPD.2.1']

Mapping: tmp['MSH']['MSH.10']['MSH.10.1'].substring(10)

注意,在本界面中的编辑器区域有StepGenerated Script标签。切换到Generated Script标签,你应看到自动生成的JS代码支撑你的映射看图5-6



 

 

5-6 Message Builder自动生成的脚本

生成的脚本适用于不同的转换器和过滤器步骤。你可以使用它学习怎样在Mirth 中编写正确的JS代码。

TEST ONLY(故意犯难的步骤)

这是最后一个脚本了,这个脚本是不需要的,只有我们实现了Data Logger通道,该脚本才是必须的。但是为了保持所有Query Sender通道脚本在一个位置,也在此列出来了。这个脚本校验消息触发事件字段,如果是ERR2事件,它随机调整三个消息字段:消息类型、触发事件、和版本号。在向后的步骤中用来验证失败的消息。当然,你可以手工更改你发送消息字段的内容,来校验验证算法。我发现那是非常单调乏味的且浪费时间。

SOURCE 5-3 Intentionally Malformed Transformer script

if ( 'ERR2' == msg['MSH']['MSH.9']['MSH.9.2'].toString().toUpperCase() ) {

if ( Math.floor((Math.random()*10)+1) > 5 )

tmp['MSH']['MSH.9']['MSH.9.1'] = 'QQQ';

if ( Math.floor((Math.random()*10)+1) > 5 )

tmp['MSH']['MSH.9']['MSH.9.2'] = 'E99';

if ( Math.floor((Math.random()*10)+1) > 5 )

tmp['MSH']['MSH.12']['MSH.12.1'] = '9.9';

}

对每一步骤的脚本进行验证,脚本无错误,保存改变。这里总结了你必须对Query Sender通道做出的一些改变。

通道实现验证

由于本项目管道下的其他通道接收由Query Sender通道发送的消息,仍然不可用,也就是说,其他通道还没设计,为了校验这个通道,暂且改变目标连接器的类型,从TCP Sender改为File Writer,如果你有更好的想法,值得推荐,克隆(见导航栏Clone Desination菜单项)源To HL7v2-HL7v3 Transformer 目标,把连接器类型改为File Writer,禁止掉HL7v2-HL7v3 Transformer目标,看图5-7



 

 

5-7 克隆目标连接器和设置

设置目录和文件名,或者使用在Simple Channel创建的Global Map值。拖拽Encoded Data消息类型到模板。保存改变,重新部署通道。

Mirth Connect AdministratorDashboard驾驶舱视图里,单击Send Message,拷贝粘贴QBP^E22消息样例(Source5-4)到消息框。说明一下,一些字段忽略掉了,例如创建日期时间戳。

SOURCE 5-4 QBP^E22 Query Authorization Request sample message

MSH|^~\&|ADM|Sending Organization|ALL|Receiving Organization|||QBP^E22^QBP_E22||D|2.7|||AL|AL

QPD|E22^Authorization Request^CIHI0003||^^^ISO^PHN|Everywoman^Mary^Patrick^^^^L^|19680120|MSP^|EXT

RCP|I

如果你创建了单独的File Writer目标连接器,把消息存储为文件,那你没必要禁止掉原来的HL7v2-HL7v3 Transformer ,可以在目标列表中选择要发送给的目标连接器。反选就是不接收消息。

单击Process Message,消息立即发出后,文件应该在你指定的文件里出现了。看图5-8



 

 

5-8 Query Sender发送消息

打开文件,去确认MSH片段的日期时间戳字段的设置,消息识别码的设置,看看UUID,看看QPD片段取自识别码10个字符以后的字符串。



 

 

5-9 Query Sender通道生成文件的内容

重复上面的步骤,发送另外一个消息,把QBP^E22^QPB_E22改为QBP^ERR2^QPB_E22,然后再次发送消息,打开新创建的文件,确认至少有一个字段是不正确的。



 

 

5-10 test Only转换器步骤改掉的内容

看见了吧,两个字段不正确的,就是我们的TEST ONLY转换器步骤改的。

使能或启动HL7v2-HL7v3 Transformer禁止掉或删除掉To File目标连接器,保存改变。

 

我们做完了Query Sender通道。咱们继续下一个通道的实现。

 

 

 

  • 大小: 75.8 KB
  • 大小: 75.5 KB
  • 大小: 84.9 KB
  • 大小: 82.7 KB
  • 大小: 68.9 KB
  • 大小: 35.9 KB
  • 大小: 174 KB
  • 大小: 44.3 KB
  • 大小: 17 KB
  • 大小: 14.7 KB
分享到:
评论
1 楼 goylsf 2018-09-21  
加油更新啊,          

相关推荐

    Mirth Connect V3.0.1 使用文档

    - **Mirth Connect面板**: 面板是Mirth Connect用户界面的一部分,包含了各种工具和选项,方便用户进行数据管理、通道设置等工作。 - **通道使用**: 通道是Mirth Connect中用于定义数据流的基础单元,可以自定义输入...

    Mirth+Connect在医疗信息集成中的应用

    在医疗信息集成领域中,Mirth Connect可以解决不同厂商的系统提供的信息访问接口、协议各不相同的问题,实现医院不同系统之间的信息互通和共享,从而提高医院工作效率和降低系统集成成本。 Mirth Connect的主要功能...

    Mirth Connect操作手册

    Mirth Connect可以进行HL7 包括构建和交换医疗保健信息的标准,以及系统集成和互操作性的其他标准。医疗保健系统可以使用这些标准、指南和方法以统一、一致的方式相互通信、共享信息和处理数据,有助于减少医疗保健...

    Mirth Connect V3.4 使用文档

    Mirth Connect 3.4 使用文档,推荐下载!

    Unofficial Mirth Connect 3.4 Developer´s Guide

    为了帮助读者更好地理解如何使用 Mirth Connect 构建实际应用,本书将通过实施一个虚构的资格查询服务来展示各个连接点(通道)的具体实现步骤。每个章节都将针对一个具体的连接点进行详细解释,并提供创建和编码...

    Mirth Connect3.6 使用文档

    Mirth是现在国际上比较成熟的HL7引擎技术之一,它是一个开放源代码的跨平台HL7标准接口引擎,是专为HL7消息接口设计的“瑞士军刀”,它为开发、配置和监听接口提供了必要工具。mirth是一个HL7标准接口网关,它能进行...

    mirth connect 用户手册4.1.0

    5. Mirth Connect 的应用场景:Mirth Connect 可以应用于各种医疗健康机构,例如医院、诊所、健康管理机构、保险公司等,帮助它们实现医疗健康信息的互操作性和互连性。 6. Mirth Connect 的优势:Mirth Connect ...

    Mirthconnect-3.5.1

    - **通道管理**:Mirth Connect的核心是通道(Channel),用户可以通过创建、编辑和管理通道,定义输入、处理和输出规则,实现数据的接收、转换和发送。 - **消息处理**:内置强大的脚本引擎,支持JavaScript和...

    mirth简单操作说明及常见报错

    mirth 简单操作说明及常见报错 mirth 是一个集成平台,提供了一个灵活的集成解决方案,用于连接不同的系统和应用程序。本文档将提供 mirth 的简单操作说明和常见报错处理方法。 安装和配置 1. 安装 JDK:mirth ...

    Mirth数据平台使用说明.docx

    Mirth 数据平台使用说明 Mirth 数据平台是医院端使用的集成平台,支持各种通讯协议,HL7、HTTP、SOCKET 等,支持各种数据库集成。该平台主要进行多种数据格式以多种传输方式来监听和访问。 DataBaseReader 和 ...

    mirthConnect用户帮助手册1

    该引擎适用于构建数字化医院和区域医疗信息系统的互联互通,它基于先进的技术,旨在解决信息孤岛问题,实现高效、安全的数据交换。 1. **系统环境需求** 在开始使用mirthConnect之前,确保满足以下系统环境需求: ...

    医疗 mirth手册

    ### 医疗 Mirth 手册详解 #### Mirth 简介 Mirth 是一款专为医疗领域设计的开源企业服务总线(Enterprise Service Bus, ESB)解决方案。其核心构建于另一个知名的 ESB 平台 Mule 之上,并针对医疗行业的特殊需求...

    NextGen Connect 3.7 User Guide.pdf

    Mirth Connect 是一个开源的跨平台 HL7 接口引擎,通过多种传输方式在系统和应用程序之间双向发送 HL7 消息。它提供了一个灵活的消息处理平台,允许用户创建、管理和监控 HL7 消息的传输。 Mirth Connect 的主要...

    nextgen-mirthconnect-39-user-guide(mirth3.9使用文档).pdf

    #### 五、Mirth Connect Administrator ##### 5.1 监控视图 - **Dashboard View**:展示服务器的整体状态和性能指标。 - **Dashboard Table**:列出关键性能指标。 - **Filtering By Channel Name or Tag**:...

    ydh-fhir-listeners:Yeovil区医院NHSFT的Mirth Connect FHIR侦听器通道,可与InterSystems TrakCare PAS一起使用(v2020)

    Yeovil区医院NHSFT的Mirth Connect FHIR侦听器通道,可与InterSystems TrakCare PAS一起使用(v2020) 介绍 目的 此回购概述了为提供SIDeR计划所需的技术可交付成果而采取的步骤,以及在开发过程中遇到的问题以及...

    mirth-administrator-launcher-1.1.0-windows-x64.exe

    匹配mirth3.9server

    Mirth帮助文档

    ### Mirth Connect 3.3 用户指南概览 #### 一、Mirth Corporation 简介 Mirth Corporation 是一家专注于提供健康信息交换解决方案的公司。Mirth Connect 作为其主打产品之一,是一款功能强大的开源集成引擎,用于...

    mirth-connect-channel-examples:Docker上的虚拟连接示例集

    DOCKER上的MIRTH CONNECT实例 Authors: Marly Cormar, Surya Prasanna, Dileep Rajput. 先决条件 最新的 。 目前的例子 这个多容器泊坞窗的目标是测试Mirth Connect的功能。 频道包括: json_to_hl7_dest_channel...

    mirth-connect-analyzer

    Mirth Connect分析仪 报告书 听众 侦听传入连接的每个通道的列表。 channelName channelID serverMode 主持人 港口 remoteAddress 远程端口 OverrideLocalBinding reconnectInterval receiveTimeout 缓冲区...

Global site tag (gtag.js) - Google Analytics