我有一个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服务器上的记录号。
我的结果应该插入tmp ['PID'] ['PID.2'] ['PID.2.1']

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

最佳答案

您需要创建一个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);
}


我对您的列名做了很多假设,但是工作流程应该类似

08-04 13:47