如何替换 Mirth Transformer 脚本中的 \T\?
How do you replace \T\ in a Mirth Transformer script?
HL7 消息使用一些特殊字符进行编码 |^&~
然而,有时 OBR.4 中的测试名称包含 &
字符,根据 HL7 标准,它应编码为 \T\
并由解析器替换为 &
。不幸的是 \T
在 RegEx 中表示 tab
字符,我无法制定可以将 Vitamin B12 \T\ Folate
转换为 Vitamin B12 & Folate
.
的表达式
尝试使用
var value = msg['OBR']['OBR.4'][OBR.4.2]; // returns "Vitamin B12 \T\ Folate"
value = value.replace(/\T\/g, value)
但是上面抛出异常TypeError: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
.
替换 RegEx 表达式是否需要以不同的方式表达才能在 Mirth 中工作?
你试过用这个代替吗?
value = value.replace(/T/g, "&");
已经是返回值
"Vitamin B12 \T\ Folate"
被解释为
"Vitamin B12 T Folate"
如果可行,您还需要以不替换任何其他不需要的“T”的方式处理此问题。
诀窍是确保字符串是 JavaScript
字符串而不是 Java
字符串。这是我最终创建的一个有效的函数
function _replaceHL7EncodedCharacters(value) {
value = value.toString(); // convert to Javascript string
value = value.replace(/\T\/g, '&');
value = value.replace(/\R\/g, '~');
value = value.replace(/\E\/g, '\');
value = value.replace(/\F\/g, '|');
value = value.replace(/\S\/g, '^');
return value;
}
HL7 消息使用一些特殊字符进行编码 |^&~
然而,有时 OBR.4 中的测试名称包含 &
字符,根据 HL7 标准,它应编码为 \T\
并由解析器替换为 &
。不幸的是 \T
在 RegEx 中表示 tab
字符,我无法制定可以将 Vitamin B12 \T\ Folate
转换为 Vitamin B12 & Folate
.
尝试使用
var value = msg['OBR']['OBR.4'][OBR.4.2]; // returns "Vitamin B12 \T\ Folate"
value = value.replace(/\T\/g, value)
但是上面抛出异常TypeError: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
.
替换 RegEx 表达式是否需要以不同的方式表达才能在 Mirth 中工作?
你试过用这个代替吗?
value = value.replace(/T/g, "&");
已经是返回值
"Vitamin B12 \T\ Folate"
被解释为
"Vitamin B12 T Folate"
如果可行,您还需要以不替换任何其他不需要的“T”的方式处理此问题。
诀窍是确保字符串是 JavaScript
字符串而不是 Java
字符串。这是我最终创建的一个有效的函数
function _replaceHL7EncodedCharacters(value) {
value = value.toString(); // convert to Javascript string
value = value.replace(/\T\/g, '&');
value = value.replace(/\R\/g, '~');
value = value.replace(/\E\/g, '\');
value = value.replace(/\F\/g, '|');
value = value.replace(/\S\/g, '^');
return value;
}