Mirth Connect的简单使用
第一步: 切换到Channels界面,右键点击New Channel
第二步 : 上面是设置一些通道信息。
其中summary(概要) 界面主要包含 通道名称,数据类型,依赖,通道初始状态,附件(是否存储附件),Tag(标签)
- 输入通道的名字 例如: Simple Channel
- 添加通道标签,如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.
接下来,我们将设置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||||||||||||||||||||||||||
我们可以看到,我们的转型已经生效
樊逢佳主页: http://exciton.ustc.edu.cn/
转载于:https://www.cnblogs.com/CugYzc/p/9461169.html
Mirth Connect的简单使用相关推荐
- 如何在Mirth Connect中创建和调用自定义Java代码
0-前言 本文章将向您展示如何创建自定义Java类,将其编译/打包到JAR中,将其包含在Mirth Connect在,并在JavaScript中调用它,您可以从任何JavaScript上下文调用自定义 ...
- js判断object对象中是否存在某个key【Mirth Connect】
@js判断object对象中是否存在某个key[Mirth Connect] 背景 在配置Mirth Connect(ETL工具)时,由于场景需求,根据输出的JSON中的某个key是否存在value来 ...
- mysql 遍历_MySQL 实现树的遍历详解及简单实现示例
MySQL 实现树的遍历 经常在一个表中有父子关系的两个字段,比如empno与manager,这种结构中需要用到树的遍历.在Oracle 中可以使用connect by简单解决问题,但MySQL 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 ...
- IdentityServer4 实现 OpenID Connect 和 OAuth 2.0
关于 OAuth 2.0 的相关内容,点击查看:ASP.NET WebApi OWIN 实现 OAuth 2.0 OpenID 是一个去中心化的网上身份认证系统.对于支持 OpenID 的网站,用户不 ...
- Flink使用connect实现双流join全外连接
一.背景说明 在Flink中可以使用Window join或者Interval Join实现双流join,不过使用join只能实现内连接,如果要实现左右连接或者外连接,则可以通过connect算子来实 ...
- Live Connect和Live SDK的一些简介
我最近就在研究了一下Live Connect的API,准备用SDK写一个和网盘有关的App,不过现在暂时还没完全定型.不过API的调用,我也大概看得七七八八,就先写一写吧. 这里有完整的文档http: ...
- debezium系列之:Kafka Connect
debezium系列之:Kafka Connect 一.Source和Sink 二.Task和Worker 三.Kafka Connect特性 四.独立模式 1.Source连接器的用法 2.Sink ...
- 监控prometheus-2
prometheus-2 来源:官方文档. 配置文件 要指定要加载的配置文件,请使用--config.file标志. 该文件以YAML 格式编写,由下面描述的方案定义.括号表示参数是可选的.对于非列表 ...
- ACE的接受器(Acceptor)和连接器(Connector):连接建立模式
接受器 / 连接器模式设计用于降低连接建立与连接建立后所执行的服务之间的耦合.例如,在 WWW 浏览器中,所执行的服务或"实际工作"是解析和显示客户浏览器接收到的 HTML 页面. ...
最新文章
- python秩和检验(Kruskal-Wallis H Test)
- vue vue-cli3 修改elementui的date-picker源码 引入node_modules里的element-ui后报错exports is not defined...
- 基本户想大量提现,财务该怎么做账
- 327. Count of Range Sum 区间和的个数
- RabbitMQ单机多实例配置
- java信号灯_java 多线程-信号灯法
- oCPC:计算广告出价策略
- leetcode:203. 移除链表元素(两种方法)
- 多个for语句嵌套执行顺序_阿里真实面试题解析之实现多个线程顺序执行的几种方式...
- Linux 下第一个shell脚本
- Sodinokibi勒索病毒利用Flash漏洞强势来袭
- 计算机主机装机注意,自己组装电脑要注意什么?DIY老司机教你装机注意事项 (全文)...
- 解决CSDN无法复制
- python小技巧之:同时安装py2和py3,如何在指定的版本下pip安装包
- 服务器光猫一直亮不响应,光猫光信号正常,且光猫和路由器都重启过,还是上不了网咋办?...
- Julia中从Git时出现超时问题的解决方法---(例如:安装GR、Rmath一直超时)
- 圣诞节,1inch狂撒3亿美金红包,币圈大佬在线炫富,我酸了...
- Nacos配置中心实战,盘古开发框架标配组件
- 编程之美学习笔记(三):一摞烙饼的排序
- js 中从JSON中取出某个属性的值
热门文章
- HP OMEN品牌机配3090显卡,驱动,CUDA,Cudnn安装过程
- HTML添加背景音乐代码
- foxmail删除服务器文件,无法真正删除?Foxmail文件中转站BUG
- 网吧网吧无盘服务器配置,网吧无盘服务器配置杂谈
- 领域驱动实践总结(基本理论总结与分析+架构分析与代码设计V+具体应用设计分析)
- hbase的快速下载
- breadweb控制台下载_路由器刷breed web控制台助手通用版
- 数据中心基础设施运维有哪些项目?哪些系统?如何实施?
- Linux下好用的类似QQ截图工具
- 【图像检测】基于区域生长算法实现对焊接孔隙检测matlab代码