我的频道正在接收HL7信息,我的频道里有两个变压器。我在一个转换器中捕获来自HL7消息的所有数据,如:
- var vACCNo= msg['PID']['PID.17']['PID.17.1'].toString();
- var vSTATE=msg['PID']['PID.11']['PID.11.4'].toString();在上面的设计中,不做任何事情,从第一变压器中捕获的数据在第二变压器中是可用的,并且可以工作。
现在,我计划摆脱这两个转换器,并将它们移到代码模板中,在那里,我计划为每个转换器创建一个单独的函数。
但是如何将第一个函数中捕获的变量传递给第二个函数呢?
谢谢
发布于 2019-04-15 21:55:28
当你说两个变压器时,我猜你指的是同一个变压器上的两个步骤?不同的转换步骤编译成相同的javascript函数,因此它们共享相同的变量上下文/作用域。要实际将值传递给不同的转换器(比如从源转换器到目标转换器),通常需要使用channelMap。
在假定的情况下,可以将所有变量添加到从第一个函数返回的对象中。将对象传递给第二个函数。
代码模板
function getValues(msg) {
var fieldWithComplicatedAssignment = '';
var result = {
vACCNo: msg['PID']['PID.17']['PID.17.1'].toString(),
vSTATE: msg['PID']['PID.11']['PID.11.4'].toString(),
fieldWithComplicatedAssignment: fieldWithComplicatedAssignment
};
if (optionalCondition) {
result.optionalField = '';
}
return result;
}
function insertIntoDB(obj) {
// insert into table x values (obj.vACCNo, obj.vSTATE....)
// return a result status indicating succeeded or failure (or
// just throw an error from this function)
}变压器阶跃
var obj = getValues(msg);var result = insertIntoDb(obj);https://stackoverflow.com/questions/55672950
复制相似问题