第一步: 切换到Channels界面,右键点击New Channel

第二步 : 上面是设置一些通道信息。

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

  1. 输入通道的名字 例如: Simple Channel
  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.

接下来,我们将设置Source Connector。为了简单起见,我们将选择一个包含HL7消息的文件。在现实世界中,我们可能会通过TCP / IP(也在外面)接收它。

第四步:配置Destinations

将目标连接器设置为文件写入器。将文件夹指定为F:\04-ADT\Test\Mirth\Out(或您自己的首选项)。在此示例中,我们还使用Mirth提供的变量定义了输出文件名。确保您的模板在下面匹配至关重要。

接下来,单击左侧菜单上的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都可以使用啦。

那么,在什么地方定义函数呢?? 请返回主通道菜单并创建代码模板库,添加以下模板功能。/**

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!! 现在,让我们回到我们主界面并部署它。

我在F:\04-ADT\Test\Mirth\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||||||||||||||||||||||||||

我们可以看到,我们的转型已经生效

Mirth Connect的简单使用的更多相关文章

  1. 如何在Mirth Connect中创建和调用自定义Java代码

    0-前言 本文章将向您展示如何创建自定义Java类,将其编译/打包到JAR中,将其包含在Mirth Connect在,并在JavaScript中调用它,您可以从任何JavaScript上下文调用自定义 ...

  2. Oracle CONNECT by 简单用法

    Oracle查询层级的  一个表里 通过一个parentid连接 select * FROM A_MERIATILA start with id=520 CONNECT by prior id=PAR ...

  3. IdentityServer4 实现 OpenID Connect 和 OAuth 2.0

    关于 OAuth 2.0 的相关内容,点击查看:ASP.NET WebApi OWIN 实现 OAuth 2.0 OpenID 是一个去中心化的网上身份认证系统.对于支持 OpenID 的网站,用户不 ...

  4. OpenID Connect 是什么?

    一.OpenID Connect的概念 1.OpenID Connect 是什么? OpenID Connect 是一套基于 OAuth 2.0 协议的轻量级规范,提供通过 API 进行身份交互的框架 ...

  5. 1.3 Quick Start中 Step 7: Use Kafka Connect to import/export data官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Step 7: Use Kafka Connect to import/export ...

  6. 【.NetRemoting-3】2015.09.18

    [Remoting程序的基本实现] [一]服务程序集 [1]服务对象必须要求继承[MBR,MarshalByRefObject] [二]服务端应用程序 [1]注册通道 [两种类型的通道] [A]发送请 ...

  7. Mongoose基础入门

    前面的话 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具.本文将详细介绍如何使用Mongoose来操作MongoDB NodeJS驱动 在介绍Mongoose之 ...

  8. 详解node + mongoDb(mongoDb安装、运行,在node中连接、增删改查)

    一.序言 好久没写博客了,这次主要聊聊 node 和 mongoDb . 先说明一下技术栈  node + express + mongoose + mongoDb.这篇博客,主要讲述 mongoDb ...

  9. Socks5 RFC1928协议中文版

    除了这个意译版rfc1928外,其他人写的好像也有错误,都是一知半解. ☆ RFC 1928意译版(非直译版) http://www.ietf.org/rfc/rfc1928.txt http://w ...

随机推荐

  1. Mysql中用between...and...查询日期时注意事项

    select count(1) from user where regist_date between '2017-07-25 00:00:00' and  '2017-07-25 24:00:00' ...

  2. 学习笔记之PHP

    学习 PHP,第 1 部分: 注册帐户.上传需要批准的文件.并查看和下载已批准的文件 https://www.ibm.com/developerworks/cn/opensource/tutorial ...

  3. jQuery的文档操作

    1.插入操作 一.父元素.append(子元素) 追加某元素 父元素中添加新的元素 var oli = document.createElement('li'); oli.innerHTML = '哈 ...

  4. 初尝微信小程序开发与实践

    这可能是一个java程序员最不务正业的一次分享了. 小程序的火热相信不用我多说了,年初的时候老婆去浦东某达面试,甚至都被问有没有小程序测试经验.俨然小程序成为了互联网公司自PC,WAP,安卓,IOS之 ...

  5. instr 函数从后往前计数 instr(spell,' ',-1)

    update CY set last=substr(spell,instr(spell,' ',-1));

  6. PyQt5系列教程(三)用py2exe进行程序打包

    软硬件环境 Windows 10 Python 3.4.2 PyQt5 Py2exe 前言 在我们开发了完整的PyQt5项目后,一般都会将其打包成exe文件,方便其他人使用.今天我们就用Py2exe这 ...

  7. C# user32.dll

    #region User32.dll 函数 /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备 ...

  8. 「小程序JAVA实战」小程序视频上传方法的抽象复用(57)

    转自:https://idig8.com/2018/09/23/xiaochengxujavashizhanxiaochengxushipinshangchuanfangfadechouxiangfu ...

  9. 迷你MVVM框架 avalonjs 学习教程9、类名操作

    ms-class是avalon用得最多的几个绑定之一,也正因为如此其功能一直在扩充中.根据时期的不同,分为旧风格与新风格两种. 旧风格是指ms-class-xxx=”expr”,*ms-class-a ...

  10. VML元素的相关资料

    虽然VML已经过气了,但有时我还不得不使用它,下面是我收集或研究得到的一些东西. 判定一个元素是否为VML元素 function isVML(el) { if (el && el.no ...