为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Mirth-Javascript删除HL7消息中的换行符?

如何使用Mirth-Javascript删除HL7消息中的换行符?

幕布斯6054654 2021-03-29 15:11:23
HL7消息进入Mirth,并引发“处理”错误。Raw格式的消息的最底部是一个分行,与它上面的行分开。我必须每次手动更正此错误。我希望将Mirth-Javascript用作可以解决此问题的消息筛选器,以便所有内容都可以在没有人工干预的情况下流动。消息片段下方触发错误。在此示例中,这是HL7消息的最后一行。OBX|68|FT|PT6663&IMP^PET/CT Imaging Whole Body||||||||F|||202254836969552|||目前,我唯一的解决方法是打开HL7消息,然后手动转到换行符,并将其调至该片段一部分上方的行。HL7消息应如下所示:OBX|68|FT|PT1103&IMP^PET/CT Imaging Whole Body||||||||F|||20190327101958|||
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

我有类似的问题,即在段之间有空白行,我解决了这个问题:

content = content.replace(/^\s*\n/gm, '');

注意:这只会删除空白行。您仍然需要弄清楚如何获得当前行的下一行

您可以尝试使用正则表达式来消除所有“ \ n”而不是任何段。


查看完整回答
反对 回复 2021-04-08
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

根据您的问题,包含换行符的HL7字段应包含OBX(5,1)观察值。


观察值可能包含换行符作为数据的一部分。默认情况下,换行符(<CR>或ASCII 13)是分段分隔符。如果将其作为数据的一部分接收,则在解析消息时会出现问题。这是您在问题中提到的问题的根本原因。


段分隔符不可协商。它始终是回车符。我已经在此答案中对此进行了更详细的解释。


理想情况下,在构建HL7消息时,应将这些换行符替换为其转义序列。我在这里的较早答案之一已经给出了有关它的更多详细信息。


因此,您的入站邮件


OBX|68|FT|PT6663&IMP^PET/CT Imaging Whole Body||


||||||F|||202254836969552|||

应该是


OBX|68|FT|PT6663&IMP^PET/CT Imaging Whole Body||\X0D\\X0D\||||||F|||202254836969552|||

关于您如何使用Mirth / Javascript执行此操作的实际问题,在您的特定用例中应该不需要。在将消息发送给Mirth之前,应完成此转换。因此,向您发送此消息的人应该像这样构建它。


在UI上实际显示观察值时,您再次需要执行相反的过程。


编辑:


如果换行符不同于<CR>(ASCII 13),则应在中替换相应的十六进制\X0D\。


查看完整回答
反对 回复 2021-04-08
  • 3 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信