第一步: 切换到主信道(Channels)界面,右键点击新建信道(New Channel)
第二步 : 下面是设置一些信道概要(Summary)信息
其中summary(概要) 界面主要包含 信道名称,数据类型,依赖,信道初始状态,附件(是否存储附件),Tag(标签)
-
输入信道的名字 例如: Simple1
-
添加信道标签,如Test,标签的作用用于以后对信道进行分类
-
设置入站和出站格式: 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通道。