zoukankan      html  css  js  c++  java
  • Mirth Connect的简单使用

    第一步: 切换到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:4-ADTTestMirthOut(或您自己的首选项)。在此示例中,我们还使用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:4-ADTTestMirthIn  文件中设置一个示例文件,名为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/

  • 相关阅读:
    windows窗体中的一些事。。。
    数据库报错问题
    Winform程序调用WebService连接数据库心得
    浅谈RichTextBox在Windows Phone开发中的应用 [WP开发]
    WP7 独立存储
    安装 Visual Studio Async CTP
    C#中的弱引用(WeakReference)
    WP7开发积累
    2011.11.15
    c# 计算时间间隔
  • 原文地址:https://www.cnblogs.com/CugYzc/p/9461169.html
Copyright © 2011-2022 走看看