构建2个Mirth Connect频道

时间:2016-09-02 14:53:08

标签: mirth

我对Mirth Connect和Interface事物完全不熟悉。

要求如下:

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

界面触发:1-患者新入住ED 2-患者住院 3-患者从一个单位转移到另一个单位 4-患者从急诊室或医院出院。

欢乐频道: - 期望从患者表和访问/转移日志表中使用上述触发器从数据库接收以下信息 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消息

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

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

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

1 个答案:

答案 0 :(得分:0)

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

我将粗略地为您提供代码库。

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

enter image description here

创建数据库后,您需要按照下图所示配置来源:

enter image description here

在此之后,您可以在源变换器中为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||||||||||||||||

部署频道时,您将获得所需的输出。