这里,我正在为Kin $('Nok') (见映射表)的Next做一些映射。
然后,为了处理这个问题,我有下面的Javascript。我尝试这个的原因是,有时我们会得到多个近亲片段。如果是这样,则会将错误抛出为‘DETAILS: TypeError: Assignment (不支持多个项)’。
var i = 0;
msg['NK1'][i]['NK1.3']['NK1.3.1'] = $('NoK')
for each ( nk1 in msg.NK1) {
nk1 = $('NoK').toString();
i++;
}但不幸的是我的剧本不管用。基本上,它不会抛出任何错误,但是它不会为多个段做它应该做的事情。它确实适用于单个片段。
这是我的出站消息:
NK1|1|BENNY^BEN^^^MR^^L|<12K1.3.1>22<12K1.3.1>627^^RELTN|PRETTY绿色^伦敦^“^8UH 15_3 3KW^^Q_(36)\x{e 010}\x{e76f}\x{e76f}{##**$$}}n}n}}^q_8 8UH^RELT\x\x\x=20030321\{e76f}\{e76f}{##**$}#.{e76f}}{##
发布于 2012-09-11 16:28:23
for(var i = 0; i< msg['NK1'].length(); i++) {
msg['NK1'][i]['NK1.3']['NK1.3.1'] = YourTransformerFunction(msg['NK1'][i]['NK1.3']['NK1.3.1'].toString());
}长度需要()来工作。
发布于 2012-03-30 15:06:57
我看到了几个问题。
$('Nok')的任务仅用于第一个HL7段;它不会影响后续的任何步骤。i作为循环控制变量,该变量被赋值和递增,但从未真正使用过。如果您只修复#2,我希望您以重复n次的第一段结束。
我建议的是将所有这些工作移到一个Javascript转换器步骤中。
您可以首先查看由RegEx映射步骤生成的javascript,并将其转化为JS转换器中的函数--一个将i作为变量的函数。然后,您可以将您的循环修复为一个调用函数的简单for循环。与…有关的东西:
for(var i = 0; i< msg['NK1'].length; i++) {
msg['NK1'][i]['NK1.3']['NK1.3.1']
= YourTransformerFunction(msg['NK1'][i]['NK1.3']['NK1.3.1'].toString());
}通过将转换器导出为XML并打开该文件,您可以看到映射函数生成的JavaScript。您需要对HTML编码的值做一些替换,但核心将在那里。
发布于 2012-03-30 15:16:48
我没有遵循你所有的代码,但这是一个开始。
如果您查看您的输入消息,它将如下所示:
NK1|1| ...
NK1|2| ...
NK1|3| ...即使javascript数组以零开头。是的,这很让人困惑。
我不知道:
$('NoK')..。所以我不知道你在干什么。但我可能只是早上过得很慢。
https://stackoverflow.com/questions/9942378
复制相似问题