我有一个 HL7 消息导出。输入中有一个带波浪号 (~) 的字段。HL7 将其转换为符号“\R\”
我还尝试通过使用 VBScript 的 '~' 字符的 ASCII 值 (126) 来导出这个值。但这也被 HL7 转换为 "\R\"
我怎样才能得到'〜'导出?任何帮助,将不胜感激。
这个字符(~)表示这个字段可以有多个值。考虑给定 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
HL7 在传输消息时将重复字符“~”转义为“\R\”。在使用该字段时,接收器应该变回您的波浪号。
但是还有第二种方法可以解决这个问题。HL7 允许更改编码字符。不幸的是,并非所有 HL7 引擎都支持这一点。
尝试用 ~
或~
(十进制)替换波浪字符。请参阅此字符的unicode 参考。
如果您已经这样做了,这不是错误的来源。我怀疑HL7
这对这个角色有特殊的意义。根据此网页,它表示“字段重复分隔符”。