我有一个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);
}
我对您的列名做了很多假设,但是工作流程应该类似