1

我有一个 HL7 消息导出。输入中有一个带波浪号 (~) 的字段。HL7 将其转换为符号“\R\”

我还尝试通过使用 VBScript 的 '~' 字符的 ASCII 值 (126) 来导出这个值。但这也被 HL7 转换为 "\R\"

我怎样才能得到'〜'导出?任何帮助,将不胜感激。

4

3 回答 3

5

这个字符(~)表示这个字段可以有多个值。考虑给定 HL7 消息中的这个 PID.3 字段

12345^^^XYZ~6789^^^PQR

这意味着,患者有 2 个来自不同来源的患者 ID,即。XYZ 和 PQR。这就是 (~) 字符在功能上的含义。

如果我按照问题正文中的陈述进行,我相信您想要实现(~) 的功能

为此,请尝试以下过程。我不知道 vbscript,所以我不能给你代码,但是我有一些相同的 Javascript 代码,我认为你可以在 vbscript 上模仿相同的代码。我会把这个任务留给你。

 //Calculates number of current repetitions by counting the length
 var pidfieldlen=msg.PID['PID.3'].length();

 //Store the last field node
var lastpidnode=msg['PID']['PID.3'][pidfieldlen-1];    //If length is 5,node index is 4 

 //Create new pid field and append with last pid node 
var newpidfield=<PID.3/>                      //Creating new separate element for PID.3
newpidfield['PID.3.1']="567832"               //Adding Field Values
newpidfield['PID.3.4']="NEW SOURCE"
lastpidnode.appendChild(newpidfield)          //Adding above created to the last node

这会将 PID.3 转换为

12345^^^XYZ~6789^^^PQR~567832^^^NEW SOURCE

于 2014-01-31T09:40:21.980 回答
5

HL7 在传输消息时将重复字符“~”转义为“\R\”。在使用该字段时,接收器应该变回您的波浪号。
但是还有第二种方法可以解决这个问题。HL7 允许更改编码字符。不幸的是,并非所有 HL7 引擎都支持这一点。

于 2014-01-30T13:45:33.257 回答
1

尝试用 &#x7e;&#126;(十进制)替换波浪字符。请参阅此字符的unicode 参考

如果您已经这样做了,这不是错误的来源。我怀疑HL7这对这个角色有特殊的意义。根据此网页,它表示“字段重复分隔符”。

于 2014-01-30T13:01:45.763 回答