在HL7段内使用ASCII 10是表示新线路的有效方式吗?

时间:2016-02-23 23:07:30

标签: ascii hl7 mirth hl7-v2

将ASCII 10(0A)字符放在HL7消息段内的某处以表示新行字符。这有效吗?

从我所看到的建议使用\ X0D \或\ X0D0A \来表示纯文本格式HL7的新行字符。只使用0A ASCII字符明确无效的HL7?

3 个答案:

答案 0 :(得分:2)

要回答“仅使用0A ASCII字符明确无效HL7?”的问题:

在HL7规范中任何地方提到的字符0A都不是 是特殊的。

从HL7 2.5美国规格摘录:

  

2.5.4邮件分隔符

     

在构造消息时,使用某些特殊字符。它们是段终止符,即字段   分隔符,组件分隔符,子组件分隔符,重复分隔符和转义字符。该   段终止符始终是回车符(ASCII,十六进制0D)。其他分隔符在中定义   MSH段,字段分隔符位于第4个字符位置,其他分隔符出现在   称为编码字符的字段,它是段ID之后的第一个字段。使用的分隔符值   在MSH段中是整个消息中使用的分隔符值。在没有其他   考虑因素,HL7建议使用图2-1定界符值中的建议值。

严格地说,这意味着您可以像使用前面提到的6个字符一样使用字符0A

<“正式”回复结束>

话虽如此,我同意Dale H.你最好不要在HL7消息的内容中使用这个字符。由于大多数编辑器(Windows上的老式记事本除外)都会将此字符显示为新行,因此您可能会不情愿地认为某个段被截断或格式错误。我至少有一个实例,其中接口引擎确实将该字符作为段终止处理(它本身是无效的,并且接口引擎构建被修改为不再执行此操作)。

所以最好避免这种情况。但是在你不控制输出的情况下,它似乎不是一个正式不允许的角色......

答案 1 :(得分:1)

HL7消息中不允许换行(0x0A)。如果使用记事本,wordpad和许多其他文本编辑器编辑消息,它们会将回车符(0x0D)转换为CR / LF(0x0D 0x0A),如果保存,则现在有一个损坏的HL7消息。避免使用LF(0x0A)。

答案 2 :(得分:1)

如果您只发送0A,则无法确定您是否需要ASCII 10 /换行符,并且假设您想要零和A。

标准HL7,转义字符为\,然后建议的方式是\X0A\\X表示十六进制数据的开头,后跟两个字符的十六进制值,以\结尾。

话虽这么说,如果您要将这些数据发送到系统,那么他们应该能够告诉您他们接受换行的内容。我见过使用\.br\或重复字符~来确定新行的系统。有时他们想要重复细分。例如,下面的每个OBX段都是系统中报告的新行。

OBX|1|TX|||This is line one
OBX|2|TX|||This is line two