我有一个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。
答案 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);
}
我对你的列名称做了一系列假设,但工作流程应该类似