HL7 メッセージをエクスポートしています。入力にチルド記号 (~) を持つフィールドが 1 つあります。HL7 はそれを記号 "\R\" に変換しています
また、VBScript を使用して '~' 文字に ASCII 値 (126) を使用して、この値をエクスポートしようとしました。しかし、これも HL7 によって "\R\" に変換されました。
「~」をエクスポートするにはどうすればよいですか? 任意のヘルプをいただければ幸いです。
HL7 は、メッセージを転送するときに、繰り返し文字 "~" を "\R\" にエスケープします。そのフィールドで作業する場合、受信者はチルダに戻る必要があります。
しかし、この問題に対処する 2 つ目の方法があります。HL7 では、エンコーディング文字を変更できます。残念ながら、すべての HL7 エンジンがそれをサポートしているわけではありません。
この文字 (~) は、このフィールドが複数の値を持つことができることを表します。特定の 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
~
チルダ文字をor ~
(10 進数)に置き換えてみてください 。この文字については、Unicode リファレンスを参照してください。
すでに実行している場合、これはエラーの原因ではありません。それHL7
がこのキャラクターに特別な意味を与えているのではないかと思います。このWebページによると、それは「フィールドリピートセパレーター」を示しています。