第一步: 切换到主信道(Channels)界面,右键点击新建信道(New Channel)

第二步 : 下面是设置一些信道概要(Summary)信息

其中summary(概要) 界面主要包含 信道名称,数据类型,依赖,信道初始状态,附件(是否存储附件),Tag(标签)

  1. 输入信道的名字 例如: Simple1

  2. 添加信道标签,如Test,标签的作用用于以后对信道进行分类

  3. 设置入站和出站格式: HL7v2.x

4.点击“Save
Changes”保存信道

第三步:
配置源通道(Source
Connector)

切换到Source标签,来配置源通道,用于指定信道怎么从通道读取消息,为了试验的目的,我们选择的是Connector
Reader,从Mirth
Conect Administrator接口发送消息,因此不要任何应用测试我们创建的信道。

源通道的类型有很多,包括:
Channel
Reader,DICOM Listener,Database Reader,File Reader,Http Listener,JMS
Listener,JavaScript Reader,TCP Listener,Web Service Listener.

第四步:配置目标通道(Destinations Connector)

将目标通道设置为文件写入器File
Writer。将文件夹指定为F:\MirthConnect\Test\Out,文件名指定为out.hl7。

第五步:接下来,选择Source页签,单击左侧菜单上的Edit
Transformer,这是我们定义转换规则的地方,如下图所示

我们添加入站消息模板。单击右侧的“消息模板”选项卡,然后使用以下示例:

MSH|^~\&|SIEMENS|HOSPITAL-A|CERNER|HOSPITAL-A|201401291848||ADT^A01|1912340911|P|2.3|||AL|NE|

EVN|A01|201401291848|||REJKB1

PID||ABC123|987654|ALT789|PETTY^TOM^^^^||19781218|M||2106-3|10144
MAPLE
AVE^^IRVINE^CA^92614||(949)123-1234|||||0053820452|220675537||AME||||1|||||

PV1||I|S-2302-1^S-2302^A|C|||1111111^PINA|||SUR|||||A0||1111111^PINA|S||S|P||||||||||||||||||IAH|||||201401291848|

PV2||D|42.41^Partial
esophagectomy^I9|||||201401290900|201401310900|3|3||||||||||||||||||||||||||

现在,单击Message
Tress选项卡以在解析的结构中查看该数据。当您展开各个细分字段时,Mirth将细分示例数据并显示给您。

我们这样做的原因是可以拖放访问正确的字段名称。您可以将带有绿点的字段拖到编码窗口

我们现在开始配置转换器,我们点击左侧Edit
Transformer,Transformer Tasks界面。
我们新建一个Step.然后选择,Type
= JavaScript

以下测试代码帮我们完成四件事:

  • 将HL7版本设置为2.4

  • 将发件人ID重新分配给Mirth

  • 将日期和时间更新为MSH段中的当前时间

  • 在EVN段中用00秒填充日期和时间秒

  • 强制Admit
    Reason为大写

  • 强制执行目的地的性别列表。基本上,如果我们遇到了意想不到的性别,我们会将其指定为其他的“O”。以下列表是翻译成代码的内容:

//
revise to version 2.4

msg['MSH']['MSH.12']['MSH.12.1'] = '2.4';

//
sender id

msg['MSH']['MSH.3']['MSH.3.1'] = 'MIRTH';

//
update datetime

msg['MSH']['MSH.7']['MSH.7.1'] =
DateUtil.getCurrentDate('yyyyMMddhhmmss');

//
Add two digits of seconds if they aren't there.

if
(msg['EVN']['EVN.2']['EVN.2.1'].toString().length <=
12)

{

msg['EVN']['EVN.2']['EVN.2.1'] =
PadString('00000000000000',
msg['EVN']['EVN.2']['EVN.2.1'].toString(), 0);

}

//
Check whether or not gender meets requirements of the destination
system. Set to 'O' if
not.

switch(msg['PID']['PID.8']['PID.8.1'].toString().toUpperCase())

{

case
'F':

msg['PID']['PID.8']['PID.8.1'] = 'F';

break;

case
'M':

msg['PID']['PID.8']['PID.8.1'] = 'M';

break;

case
'O':

msg['PID']['PID.8']['PID.8.1'] = 'O';

break;

case
'U':

msg['PID']['PID.8']['PID.8.1'] = 'U';

break;

case
'A':

msg['PID']['PID.8']['PID.8.1'] = 'A';

break;

case
'N':

msg['PID']['PID.8']['PID.8.1'] = 'N';

break;

default:
msg['PID']['PID.8']['PID.8.1'] = 'O';

}

//
Set admit reason to all upper case

msg['PV2']['PV2.3']['PV2.3.2']
= msg['PV2']['PV2.3']['PV2.3.2'].toString().toUpperCase();

在第13行,您会注意到我们调用了一个名为PadString的函数。函数的作用呢,很简单啦,就是我们在某一个地方定义函数,之后在Mirth
Connect中的所有Channel都可以使用。

那么,在什么地方定义函数呢??

第六步:请返回主信道菜单(Channels)并创建代码模板库,添加以下代码模板功能

/**

Modify
the description here. Modify the function name and parameters as
needed. One function per

template
is recommended; create a new code template for each new function.

@padchars
Example '0000000000' – pad with 0's to 10 digits total

@str
your input string

@padLeft
1 for left or 0 for right

@return
{String} return description

*/

function
PadString(padchars, str, padLeft)

{

if
(typeof str === 'undefined')

return
padchars;

if
(padLeft) {

return
(padchars + str).slice(-padchars.length);

}
else {

return
(str + padchars).substring(0, padchars.length);

}

}

OK!!

第七步:信道Simple1指定依赖的自定义库函数

第八步:现在,让我们回到我们信道主界面并部署它

在F:\MirthConnect\Test\In目录中设置一个示例文件,名为SimpleHL723.txt

内容如下:

MSH|^~\&|SIEMENS|HOSPITAL-A|CERNER|HOSPITAL-A|201401291848||ADT^A01|1912340911|P|2.3|||AL|NE|

EVN|A01|201401291848|||REJKB1

PID||ABC123|987654|ALT789|PETTY^TOM^^^^||19781218|M||2106-3|10144
MAPLE
AVE^^IRVINE^CA^92614||(949)123-1234|||||0053820452|220675537||AME||||1|||||

PV1||I|S-2302-1^S-2302^A|C|||1111111^PINA|||SUR|||||A0||1111111^PINA|S||S|P||||||||||||||||||IAH|||||201401291848|

PV2||D|42.41^Partial
esophagectomy^I9|||||201401290900|201401310900|3|3||||||||||||||||||||||||||

第九步:按以下步骤发送SimpleHL723.txt文件内容到Simple1信道

这时,打开F:\MirthConnect\Test\Out目录中out.hl7文件即可看到已经HL2.3转换为HL72.4,如下:

总结以下,通过这个示例,我们学习了Mirth
Connect的以下知识:

1.创建信道Channel的操作步骤

2.创建自定义函数模板Edit
Code Templates的操作步骤

3.学习了Source中Edit
Transformer的转换JS操作

4.学习了Source的Connect
Reader通道;Destinations的File
Writer通道。

第三課:信道学习Source Connect Reader & Destinations File Writer的更多相关文章

  1. .NET Remoting学习笔记(三)信道

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 参考:♂风车车.Net .NET Framework ...

  2. 【转载】.NET Remoting学习笔记(三)信道

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 参考:♂风车车.Net .NET Framework ...

  3. Oracle学习笔记—connect、resource和dba三种权限(转载)

    转载自: connect.resource和dba三种标准角色: 授权语句: grant connect ,resource,dba to user with admin option; (注意:其中 ...

  4. C#中的线程三 (结合ProgressBar学习Control.BeginInvoke)

    C#中的线程三(结合ProgressBar学习Control.BeginInvoke) 本篇继上篇转载的关于Control.BeginInvoke的论述之后,再结合一个实例来说明Cotrol.Begi ...

  5. 三、Android学习第三天——Activity的布局初步介绍(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 三.Android学习第三天——Activity的布局初步介绍 今天总结下 ...

  6. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

  7. 精通ASP.Net MVC 3 框架(第三版)学习笔记

    精通ASP.Net MVC 3 框架(第三版)学习笔记 代码才是王道. http://pan.baidu.com/s/1pJyL1cn

  8. 测试Remoting三种信道Http,Tcp,Ipc和Web Service的访问速度 (转)

    Remoting和Web Service是.net中的重要技术,都可用来实现分布式系统开发,如果是不同的平台就只能选择Web Service,但如果是同一平台,就都可以选择了.到底选择那种,当然还有访 ...

  9. JavaWeb学习总结(三)——Tomcat服务器学习和使用

    收藏 JavaWeb学习总结(三)——Tomcat服务器学习和使用 http://www.cnblogs.com/xdp-gacl/p/3744053.html

  10. .NET Remoting三种信道Http,Tcp,IPC和Web Service的访问速度比较(转)

    Remoting和Web Service是.net中的重要技术,都可用来实现分布式系统开发,如果是不同的平台就只能选择Web Service,但如果是同一平台,就都可以选择了.到底选择那种,当然还有访 ...

随机推荐

  1. SourceTree 合并DEV分支到master

    SourceTree 合并DEV分支到master 1 切换到master分支 2 右键dev分支,选择 合并dev至当前分支 3 提交代码

  2. 线上机器 swap 过高导致告警

    哈喽大家好,我是咸鱼. 今天收到了一个告警,说有台服务器上的 swap 过高,已经用了 50% 以上了. 登录机器查看一下内存以及 swap 的使用情况. [root@localhost ~]# fr ...

  3. WINDOWS.H already included. MFC apps must not #include Windows.h

    做C++.C#和C++/CLI的混合编程有一段时间了,填了不少的坑. 今天又遇到一错误,想着挺容易就解决,估计是大脑疲惫,折腾许久才找到原因. 错误: 错误 C1189 #error: WINDOWS ...

  4. 恶意软件开发(四)通过查找进程名进行DLL注入

    通过进程名查找PID 当我们编写注入器的时候,肯定是希望直接通过进程名进行注入,而不是像上一篇笔记一样通过手动输入PID进行查找. 通过进程名查找PID的步骤如下: (1)创建系统中所有进程的快照 ( ...

  5. 记录--记录用前端代替后端生成zip的过程,速度快了 57 倍!!!

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 业务场景: 产品有个功能是设置主题.类似手机自动切换壁纸,以及其他功能颜色,icon,字体等. 管理员需要在后端管理系统多次下载不同主题, ...

  6. demo介绍:uni-app统合--各类大转盘demo介绍

    这里给大家介绍下我做的一个uni-app的demo:抽奖系统 废话不多说直接上效果图: 线上案例: 首页: 大转盘抽奖页面: 轮播机抽奖页面: 九宫格抽奖页面: 翻牌抽奖页面: 奖品列表页面: 抽奖的 ...

  7. 记录-关于console你不知道的那些事

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 了解 console ● 什么是 console ? console 其实是 JavaScript 内的一个原生对象 内部存储的方法大部分 ...

  8. 记录--手写vm.$mount方法

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.概述 在我们开发中,经常要用到Vue.extend创建出Vue的子类来构造函数,通过new 得到子类的实例,然后通过$mount挂载到 ...

  9. 聊聊ShareGPT格式的微调数据集

    转载请注明住处:https://www.cnblogs.com/zhiyong-ITNote 概述 ShareGPT格式的数据集中,一般是如下格式: [ { "conversations&q ...

  10. CDC报错:invalid value null used for required field "null"

    原因:数据库ceate_time时间字段设置为not null ,但是没有设置default值解决办法:1.修改ceate_time字段可以为null,即去掉 `create_time` dateti ...