在 OBX-5 字段中有 ">" 和 "<" ("<" 和 ">")的 html 等效项,这导致 Terser.get(..) 方法仅获取与符号字符之前的字符。MSH-2 中的编码字符是“^~\&”。terser.get(..) 是否因为 OBX-5 字段中有编码字符而失败?有没有办法轻松地将这些字符更改为“>”和“<”?
非常感谢你的帮助。
是的,它失败了,因为 & 符号已被声明为子组件分隔符,并且您尝试处理的消息无效——它不应包含(未转义的)html 字符实体(< 和 >)。
如果您无法帮助如何对传入消息进行编码,则应在将消息提供给 terser 之前对其进行预处理,替换非法字符。我很确定 HAPI 不能帮助你。
在有效的 HL7v2 消息中,OBX-5 中使用的数据类型由 OBX-2 确定。OBX-5 应该只包含声明的数据类型允许的字符和转义序列。< 和 > 在其中(如果在 MSH-2 中未声明为分隔符)。
HL7 标准定义了分隔符和定界符的转义序列(例如,\T\ 是子组件分隔符的转义序列)。