【问题标题】:How do you replace \T\ in a Mirth Transformer script?如何在 Mirth Transformer 脚本中替换 \T\?
【发布时间】:2021-05-11 10:20:02
【问题描述】:

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 中起作用?

【问题讨论】:

    标签: mirth


    【解决方案1】:

    你试过用这个代替吗?

    value = value.replace(/T/g, "&");

    作为已经返回的值

    “维生素 B12 \T\叶酸”

    被解释为

    “维生素 B12 T 叶酸”

    如果可行,您还需要以不替换任何其他不需要的“T”的方式处理此问题。

    【讨论】:

      【解决方案2】:

      诀窍是确保字符串是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;
          }
      
      

      【讨论】:

        猜你喜欢
        • 2017-05-05
        • 1970-01-01
        • 1970-01-01
        • 2016-08-05
        • 1970-01-01
        • 2021-06-09
        • 2016-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多