在HL7消息中添加“〜”符号

时间:2014-01-30 12:50:40

标签: xslt vbscript hl7 hl7-v2

我有一个HL7消息导出。 有一个字段在输入中有一个tild符号(〜)。 HL7将其转换为符号“\ R \”

我也尝试使用VBScript作为'〜'字符的ASCII值(126)导出此值。 但这也被HL7转换为“\ R \”

如何导出'〜'? 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

此字符(〜)表示此字段可以包含多个值。 考虑来自给定HL7消息的此PID.3字段

12345^^^XYZ~6789^^^PQR

这意味着,患者有2名患者来自不同来源,即患者。 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

答案 2 :(得分:1)

尝试用&#x7e;&#126;(十进制)替换波形符。 有关此字符,请参阅unicode reference

如果您已经这样做了,那么这不是错误的来源。我怀疑HL7对这个角色有特殊意义。根据{{​​3}},它表示“场重复分离器”。