[613] | 1 | MDUXML ; HOIFO/WAA -Utilities for XML text ; 7/26/00
|
---|
| 2 | ;;1.0;CLINICAL PROCEDURES;**6**;Apr 01, 2004;Build 102
|
---|
| 3 | ; This routine will loop throught the HL7 Message as sent
|
---|
| 4 | ; by the vendor and convert that message into XML for
|
---|
| 5 | ; Processing by the gateway.
|
---|
| 6 | ;
|
---|
| 7 | EN1 ;
|
---|
| 8 | N NUM,LBL,XMLCNT,XMLLINE,DL,DEVICE,Q,ORDER
|
---|
| 9 | K ^TMP($J,"MDHL7XML")
|
---|
| 10 | S DL="|",QUOT=""""
|
---|
| 11 | S (XMLCNT,ORDER,NUM)=0
|
---|
| 12 | D HEAD^MDUXMLU1
|
---|
| 13 | F S NUM=$O(^TMP($J,"MDHL7A",NUM)) Q:NUM<1 D
|
---|
| 14 | . N LINE,LBL
|
---|
| 15 | . S LINE=$G(^TMP($J,"MDHL7A",NUM)) Q:LINE=""
|
---|
| 16 | . I $P(LINE,DL,1)="OBX" D
|
---|
| 17 | . . I LINE["//" S LINE=$TR(LINE,"/","\")
|
---|
| 18 | . . I LINE["\E\" D
|
---|
| 19 | . . . N Y,Z,I S Z="" F I=1:1:$L(LINE) S Y=$E(LINE,I) D:Y="\" S Z=Z_Y
|
---|
| 20 | . . . . I $E(LINE,I+1)="E",$E(LINE,I+2)="\" S I=I+2
|
---|
| 21 | . . . . Q
|
---|
| 22 | . . . S LINE=Z
|
---|
| 23 | . . . Q
|
---|
| 24 | . . I $P(LINE,DL,6)["\\" D
|
---|
| 25 | . . . N I
|
---|
| 26 | . . . S I=$O(^TMP($J,"MDHL7A",NUM),-1)
|
---|
| 27 | . . . S ^TMP($J,"MDHL7A",(NUM+1))="OBX||ST|PROCEDURE STATUS||DONE"
|
---|
| 28 | . . . Q
|
---|
| 29 | . . Q
|
---|
| 30 | . S LINE=$$VAL^MDUXMLU1(LINE)
|
---|
| 31 | . S LBL=$P(LINE,DL,1)
|
---|
| 32 | . Q:'($S(LBL="MSH":1,LBL="PID":1,LBL="PV1":1,LBL="ORC":1,LBL="OBR":1,LBL="OBX":1,1:0))
|
---|
| 33 | . S LBL=LBL_"^MDUXMLM"
|
---|
| 34 | . D @LBL
|
---|
| 35 | . Q
|
---|
| 36 | D TAIL^MDUXMLU1
|
---|
| 37 | Q
|
---|