Mirth连接PID-2

时间:2016-11-30 16:39:31

标签: mysql sql-server

我有一个PID-2的源转换,我需要填充外部ID。但是此ID位于另一台服务器上的不同SQL Server数据库表中。有没有我可以检索和填充此字段的代码。

我有这个,但我知道还有更多工作需要做:

var strConn = "driver={sql server};server=servername;database=database;uid=us ername;password=password"; 
var strQuery = "SELECT INTERNALID FROM EXTID where msg['record_number'].toString() = INTERNALID"; 

var cnt = result.size();    //get the number of rows returned in the query 
for (i = 0; i < cnt; i++) 

{     //loop it up 
    result.next();      //go to the first row 

    var INTERNALID = result.getString(1); 
} 

我要做的是在目标HL7文件上附加PID-2,其中主机服务器上的record_number等于外部sql server上的记录号。 我的结果应插入tmp ['PID'] ['PID.2'] ['PID.2.1']

因此代码应查看PID-3中的“record_number”并在SQL服务器上获取相应的ID(INTERNALID)并附加到目标文件上的PID-2。

1 个答案:

答案 0 :(得分:0)

您需要创建 DatabaseConnection 对象来执行查询并获取结果。

var dbConn = DatabaseConnectionFactory.createDatabaseConnection('driver', 'address', 'username', 'password');

然后,您可以执行参数化数据库查询,如此

var paramList = new java.util.ArrayList();
paramList.add(msg['PID']['PID.3']['PID.3.1'].toString());
var expression = "SELECT internal_id FROM your_table WHERE record_number = ?";
result = dbConn.executeCachedQuery('expression', paramList);

从那里,如果您只想抓住第一行,那么您可以执行以下操作

if (result.next()) {
    var internalID = result.getString(1);
}

我对你的列名称做了一系列假设,但工作流程应该类似