2014-01-30 134 views
1

我有一個HL7消息導出。 有一個字段在輸入中有一個tild符號(〜)。 HL7正在將它轉換爲符號「\ R \」在HL7消息中添加'〜'符號

我也嘗試使用VBScript爲'〜'字符使用ASCII值(126)導出此值,因爲我是。 但是,這也被HL7轉換爲「\ R \」

如何獲取'〜'導出? 任何幫助,將不勝感激。

回答

1

嘗試用~~(十進制)替換波浪號字符。 查看unicode reference這個角色。

如果您已經這樣做了,這不是錯誤的根源。我懷疑HL7賦予這個角色特殊的含義。根據this webpage它表示一個「場重複分離器」。

5

傳送消息時,HL7將重複字符「〜」轉義爲「\ R \」。在使用該字段時,接收器應該變回到您的代字號。
但還有第二種方法來處理這個問題。 HL7允許更改編碼字符。不幸的是,並非所有的HL7引擎都支持這一點

+0

是的,我認爲這些變化是在HL7彙總或在配置某處進行。 –

4

該字符(〜)表示該字段可以有多個值。 從一個給定的消息HL7

12345^^^XYZ~6789^^^PQR

它意味着什麼的是,所述患者具有2個患者ID不同來源即未來考慮此PID.3字段。 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

+0

在這種情況下,重複字符的編碼是錯誤的。它將失去它的含義,因爲它實際上意味着重複。你只編碼它,如果它不意味着重複。例如在OBX的值域中 – sqlab

+0

我沒有跟着你,更準確地回答你! – Sid

+1

好的,再次。 問題是如何找回字段內容中的波浪號,該字段已由HL7更改爲「\ R \」。 您展示瞭如何在重複字段中獲得波浪號。這個答案在任何方面都沒有幫助。 – sqlab