2014-01-30 2 views
1

HL7 메시지를 내보내고 있습니다. 입력란에 십자 기호 (~)가있는 입력란이 하나 있습니다. HL7이이를 "\ R \"기호로 변환 중입니다.HL7 메시지에 '~'기호를 추가하십시오.

VBScript를 사용하여 '~'문자의 ASCII 값 (126)을 사용하여이 값을 내보내려고했습니다. 하지만 HL7도 "\ R \"로 변환되었습니다.

어떻게 '~'을 내보낼 수 있습니까? 도움을 주시면 감사하겠습니다.

답변

1

물결표 문자를 ~ 또는 ~ (십진수)으로 바꾸십시오. 이 문자는 unicode reference을 참조하십시오.

이미 작성했으면 오류의 원인이 아닙니다. 나는 HL7이이 문자에 특별한 의미를 부여한다고 생각합니다. this webpage에 따르면 "필드 반복 구분 기호"를 나타냅니다.

5

HL7은 메시지를 전송할 때 반복 문자 "~"를 "\ R \"로 이스케이프합니다. 리시버는 해당 필드와 작업 할 때 물결표로 다시 변경해야합니다.
하지만 그 문제를 해결할 두 번째 방법이 있습니다. HL7은 인코딩 문자를 변경할 수 있습니다. 불행히도 모든 HL7 엔진이이를 지원하는 것은 아닙니다.

+0

에 PID.3 변환됩니다. –

4

이 문자 (~)는이 필드가 여러 값을 가질 수 있음을 나타냅니다. 주어진 HL7 메시지는 환자가 즉 서로 다른 소스에서 오는 2 개 환자의 ID를 가지고 있음을 의미

12345^^^XYZ~6789^^^PQR

에서이 PID.3 필드를 고려 . XYZ 및 PQR. 이것은 (~) 문자가 기능적으로 의미하는 것입니다. 내가 질문 본체의 문으로 이동 경우

, 난 당신이 (~)기능을 달성 할 전망이다.

이렇게하려면 아래 절차를 따르십시오. 나는 vbscript를 모르므로 코드를 제공 할 수는 없지만 동일한 자바 스크립트 코드가 있으며 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 

네, 그 변화가 HL7 롤업 또는 어딘가에 설정에 만들 수 있다고 생각

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

+0

이 경우 반복 문자의 인코딩이 잘못되었습니다. 그것은 반복을 의미하기 때문에 물결표를 벗어나는 의미를 잃어 버릴 것입니다. 반복을 의미하지 않는다면 인코딩 만합니다. 예 : OBX의 가치 필드에 – sqlab

+0

나는 더 정확하게 대답하기 위해 당신을 따르고 있지 않습니다! – Sid

+1

다시 알겠습니다. 질문은 HL7이 "\ R \"로 변경 한 필드의 내용에서 물결표를 다시 얻는 방법이었습니다. 반복 필드에서 물결표를 얻는 방법을 보여 줬습니다. 이 대답은 어떤 식 으로든 도움이되지 않습니다. – sqlab

관련 문제