【问题标题】:Build 2 Mirth Connect Channels建立 2 个 Mirth Connect 频道
【发布时间】:2017-01-10 17:50:42
【问题描述】:

我对 Mirth Connect 和 Interface 的东西完全陌生。

要求如下:

构建一个 HL7 ADT 界面,用于在患者住院发生变化时更新 RIS(放射学信息系统)中的患者位置。

界面触发器:1- 患者新进入 ED 2- 患者入院 3- 病人从一个单位转移到另一个单位 4- 患者出院或出院。

Mirth Channel: - 期望从数据库中接收到以下信息,其中包含来自 Patient 表和访问/转移日志表的上述触发器 o 患者 ID o 患者三重名称(FName、MName、LName) o 患者出生日期 o 患者婚姻状况 o 患者年龄 o 患者完整地址 o 病人电话 o 当前床位 o 当前单位 o 当前入学日期 o 上一张床 o 上一单元 o 访问类型(IN、ED、OUT) o 事件类型 o 活动日期

  • 分析三个 RIS 入站 ADT 接口的共性。 o ADT A01(录取/访问通知) o ADT A02(转移患者) o ADT A07(住院转门诊)

  • 构建一个基于间隔的通道,用于挑选入院/转院/出院日志并向 RIS 发出 HL7 消息

数据准备: - 构建一个虚拟 SQL 数据库,将模拟真实的 HIS 数据库 - 使用 2.1.2 中引用的模型作为最小列集构建结构化表。请注意,您可能需要添加其他字段。

欢乐频道 RIS 模拟器: - 创建一个监听特定端口的通道以模拟放射信息系统 (RIS) - 无论如何,通道都会以成功的确认响应 - 确认消息将包含收到的相同“消息控制 ID”。每条 HL7 消息都有一个唯一的消息 ID

欢乐频道 ADT 接口: - 创建一个从准备好的数据中读取的通道 - 它将是基于间隔的;例如,每 5 分钟 - 它将从模拟数据库中读取并过滤尚未发送的记录 - 选择两种类型的触发器来实现 - 基于事件类型;制定相应的 HL7 消息 [入站指南附后] - 期待来自 RIS 模拟器的确认消息 - 在收到成功确认时标记已发送数据,以便在下一个 5 分钟间隔内不再发送数据

【问题讨论】:

    标签: mirth


    【解决方案1】:

    根据您的要求,我可以理解一个频道。 (即 Mirth Channel ADT 接口)我需要更多关于其他频道 Mirth 频道 RIS 模拟器的特异性

    我会大致给你提供一个代码库。

    您将创建一个 sql 示例数据库。我在这里创建了 MySQL 数据库。

    创建数据库后,您需要在 mirth 中配置源,如下图所示:

    在此之后,您可以在源转换器中为 HL7V2 创建您的特定代码。使用以下 javascript 代码:

    var uniqueControlID = UUIDGenerator.getUUID();
    var date = DateUtil.getCurrentDate("YYYYMMdd");
    
    //Field change on data
    tmp['MSH']['MSH.7']['MSH.7.1'] = date;
    tmp['MSH']['MSH.9']['MSH.9.1'] = "ADT";
    
    if(msg['patientinfomation_eventtype']=="IN")
    {
        tmp['MSH']['MSH.9']['MSH.9.2'] = "A01";
    }
    if(msg['patientinfomation_eventtype']=="ED")
    {
        tmp['MSH']['MSH.9']['MSH.9.2'] = "A02";
    }
    if(msg['patientinfomation_eventtype']=="OUT")
    {
        tmp['MSH']['MSH.9']['MSH.9.2'] = "A07";
    }
    
    tmp['MSH']['MSH.10']['MSH.10.1'] = uniqueControlID;
    tmp['MSH']['MSH.11']['MSH.11.1'] = "T"; //note it can be either D,P,T,A,R,I
    tmp['MSH']['MSH.12']['MSH.12.1'] = "2.4"; // Assuming we receive 2.4 version of HL7V2 message
    
    //PID segment
    tmp['PID']['PID.1']['PID.1.1'] = msg['patientinfomation_patientid'].toString();
    tmp['PID']['PID.5']['PID.5.1'] = msg['patientfirstname'].toString();
    tmp['PID']['PID.5']['PID.5.2'] = msg['patientlastname'].toString();
    tmp['PID']['PID.5']['PID.5.3'] = msg['patientmiddlename'].toString()
    tmp['PID']['PID.7']['PID.7.1'] = msg['patientinfomation_patientdob'].toString();
    tmp['PID']['PID.13']['PID.13.1'] = msg['contactnumber'].toString();
    tmp['PID']['PID.16']['PID.16.1'] = msg['maritalstatus'].toString();
    

    在 HL7 出站转换器中定义一个代码模板,如下所示:

    MSH|^~\&|||||||^|||
    PID||||||||||||||||||||
    EVN||||||||||||||||
    

    部署通道后,您将获得所需的输出。

    【讨论】:

      【解决方案2】:

      另一种方法是将以下模板粘贴到出站消息模板字段中,并将入站消息模板中的字段与出站消息模板中的字段映射

      MSH|^~\&|AccMgr|1|||20050110045504||ADT^A01|599102|P|2.3||| EVN|A01|20050110045502||||| PID|1||10006579^^^1^MRN^1||DUCK^DONALD^D||19241010|M||1|111 鸭街^^FOWL^CA^999990000^^M|1|8885551212|8885551212| 1|2||40007716^^^AccMgr^VN^1|123121234||||||||||NO NK1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多