- OCXOHL7 ;SLC/RJS,CLA - External Interface - PROCESS HL7 DATA ARRAY ;4/02/03 13:50
- ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,179**;Dec 17,1997
- ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
- ;
- ;
- Q
- SILENT(OCXMSG,OUTMSG) ;
- ;
- N OCXSEG0,OCXRDT,OCXHL7,OCXOZZT
- S OCXRDT=($H*86400+$P($H,",",2))
- S:'$D(OUTMSG) OUTMSG=""
- D CHECK(.OCXMSG,.OUTMSG)
- Q
- ;
- VERBOSE(OCXMSG) ;
- ;
- N OCXSEG0,OCXX,OUTMSG,OCXHL7,OCXOZZT
- S OCXRDT=($H*86400+$P($H,",",2))
- S OUTMSG=""
- D CHECK(.OCXMSG,.OUTMSG)
- W:$O(OUTMSG(0)) !,"Order Check Message: ",$C(7)
- S OCXX=0 F S OCXX=$O(OUTMSG(OCXX)) Q:'OCXX W !,OUTMSG(OCXX)
- W:$O(OUTMSG(0)) !,$C(7)
- Q
- ;
- CHECK(OCXMSG,OUTMSG) ;
- ;
- N OCXARY,OCXDFN,OCXEL,OCXODATA,OCXOLOG,OCXOSRC,OCXDSIZE
- N OCXOTIME,OCXQUIT,OCXSEG0,OCXSEQ,OCXSUB,OCXTEST,OCXVAR
- ;
- I $$RTEST D Q
- .N OMSG,OTMOUT,OCXM
- .S OMSG="^25^^Order Checking is recompiling and momentarily disabled"
- .S OCXM=0 F S OCXM=$O(OUTMSG(OCXM)) Q:'OCXM Q:(OUTMSG(OCXM)[OMSG)
- .Q:OCXM
- .S OUTMSG($O(OUTMSG(""),-1)+1)=OMSG
- ;
- S OCXARY=$S($L($G(OCXMSG)):OCXMSG,1:"OCXMSG") Q:'$O(@OCXARY@(0))
- ;
- S (OCXQUIT,OCXSUB)=0 F S OCXSUB=$O(@OCXARY@(OCXSUB)) Q:'OCXSUB I ($P($G(@OCXARY@(OCXSUB)),"|",1)="ORC") D Q
- .S:($P($P($G(@OCXARY@(OCXSUB)),"|",2),"^",1)="ZC") OCXQUIT=1
- ;
- Q:OCXQUIT
- ;
- S OCXOLOG=$$LOG(OCXARY)
- ;
- S OCXODATA="",OCXTEST=$G(OCXOVRD)
- ;
- S OCXVAR("DUZ")=""
- S OCXVAR("OCXMSG")=""
- S OCXVAR("OCXARY")=""
- S OCXOSRC="GENERIC HL7 MESSAGE ARRAY"
- ;
- S OCXSUB=0 F S OCXSUB=$O(@OCXARY@(OCXSUB)) Q:'OCXSUB D
- .N OCXLINE,OCXPC,X,OCXTDAT,OCXCLIN,LASTPC
- .S OCXDSIZE=$$ARYSIZE($NAME(@OCXARY@(OCXSUB)))
- .;
- .I (OCXDSIZE<5000) D Q:'$L($G(OCXLINE(0)))
- ..M OCXLINE(0)=@OCXARY@(OCXSUB)
- ..S OCXLINE(0,0)=OCXLINE(0) ; This will make first node consistent with continuation lines.
- ..S OCXSEG=$P($G(OCXLINE(0)),"|",1)
- .;
- .I (OCXDSIZE>4999) D Q:'$L($G(^TMP($J,"OCXLDATA",0)))
- ..K ^TMP($J,"OCXLDATA")
- ..M ^TMP($J,"OCXLDATA",0)=@OCXARY@(OCXSUB)
- ..S ^TMP($J,"OCXLDATA",0,0)=^TMP($J,"OCXLDATA",0) ; This will make first node consistent with continuation lines.
- ..S OCXSEG=$P($G(^TMP($J,"OCXLDATA",0)),"|",1)
- .;
- .Q:'$L(OCXSEG)
- .;
- .I $D(OCXODATA(OCXSEG)) D ; This is another instance of this segment.
- ..; Process current OCXODATA and reset OCXODATA for this new instance.
- ..; Process OCXODATA
- ..S OCXDFN=$$GETDFN(OCXARY) I $G(OCXDFN) D UPDATE^OCXOZ01(+OCXDFN,OCXOSRC,.OUTMSG)
- ..;
- ..; Reset OCXODATA
- ..S OCXSEQ=+$G(OCXODATA(OCXSEG)) F Q:'OCXSEQ D S OCXSEQ=$O(OCXODATA(OCXSEQ))
- ...S OCXSEG0=$G(OCXODATA(OCXSEQ)) Q:'$L(OCXSEG0)
- ...K OCXODATA(OCXSEQ),OCXODATA(OCXSEG0)
- .;
- .S OCXODATA(OCXSUB)=OCXSEG ; Set OCXODATA 'cross reference'
- .S OCXODATA(OCXSEG)=OCXSUB ; Set OCXODATA 'cross reference'
- .;
- .; Load this segment instance into OCXODATA
- .;
- .; OCXPC - Keeps track of which "|" piece we're on
- .;
- .I (OCXDSIZE<5000) D LOADATA(OCXSEG,"OCXLINE(0)")
- .;
- .I (OCXDSIZE>4999) D LOADATA(OCXSEG,$NAME(^TMP($J,"OCXLDATA",0)))
- ;
- S OCXDFN=$$GETDFN(OCXARY)
- I $G(OCXDFN) D UPDATE^OCXOZ01(+OCXDFN,OCXOSRC,.OUTMSG) I 1 ; Process OCXODATA for the last segment
- ;
- D FINISH^OCXOLOG(OCXOLOG)
- ;
- K ^TMP($J,"OCXLDATA")
- ;
- Q
- ;
- LOADATA(OCXSEG,OCXSD) ; Get '|' piece #OCXPC of OCXSD Segment Data array.
- ;
- N OCXTEXT,OCXPCNT,OCXD0,OCXD1
- ;
- Q:'$L(OCXSEG)
- S OCXPCNT=0,OCXD0="" F S OCXD0=$O(@OCXSD@(OCXD0)) Q:'$L(OCXD0) D
- .S OCXTEXT=$G(@OCXSD@(OCXD0))
- .F OCXD1=1:1:$L(OCXTEXT) D
- ..I ($E(OCXTEXT,OCXD1)="|") S OCXPCNT=OCXPCNT+1 Q
- ..I ($L($G(OCXODATA(OCXSEG,OCXPCNT)))<241) S OCXODATA(OCXSEG,OCXPCNT)=$G(OCXODATA(OCXSEG,OCXPCNT))_$E(OCXTEXT,OCXD1)
- ;
- Q
- ;
- RTEST() ; Does ^OCXOZ01 exist ?? Is it currently being compiled ??
- N DATE,TMOUT
- Q:'$L($T(^OCXOZ01)) 1
- I '($P($G(^OCXD(861,1,0)),U,1)="SITE PREFERENCES") K ^OCXD(861,1) S ^OCXD(861,1,0)="SITE PREFERENCES"
- S DATE=$P($G(^OCXD(861,1,0)),U,3)
- I DATE,((+DATE)=(+$H)),(((+$P($H,",",2))-(+$P(DATE,",",2)))<1800) Q 1
- Q 0
- ;
- LOG(OCXARY) ;
- ; Log Data Messages
- ;
- I $G(OCXTRACE),$$CDATA^OCXOZ01 W:$G(OCXTRACE) !," Raw Input Data: ",! D ZW(OCXARY) Q 0
- Q:'$L($T(LOG^OCXOZ01)) 0 Q:'$$LOG^OCXOZ01 0
- N OCXDFN,OCXNL
- I '$O(@OCXARY@(0)) S OCXARY="OCXNL",OCXNL(1)="Null HL7 Data Array Found"
- S OCXDFN=$$GETDFN(OCXARY)
- Q $$NEW^OCXOLOG(OCXARY,"HL7",+$G(DUZ),+OCXDFN)
- ;
- ARYSIZE(ARY) ; Get array size (Local or Global)
- ;
- N ARY1,SIZE
- ;
- S SIZE=0
- ;
- I '(ARY["^") F S ARY=$Q(@ARY) Q:'$L(ARY) S SIZE=SIZE+$L(@ARY)
- ;
- I (ARY["^") D
- .S ARY=$NAME(@ARY),ARY1=ARY
- .S:($E(ARY,$L(ARY))=")") ARY=$E(ARY,1,$L(ARY)-1)_","
- .F S ARY1=$Q(@ARY1) Q:'$L(ARY1) Q:'(ARY1[ARY) S SIZE=SIZE+$L(@ARY1)
- ;
- Q SIZE
- ;
- ZW(ARY) ; ZWrite an array (Local or Global)
- ;
- N ARY1
- ;
- I '(ARY["^") D Q
- .F S ARY=$Q(@ARY) Q:'$L(ARY) W !,ARY," = ",@ARY
- ;
- I (ARY["^") D Q
- .S ARY=$NAME(@ARY),ARY1=ARY
- .S:($E(ARY,$L(ARY))=")") ARY=$E(ARY,1,$L(ARY)-1)_","
- .F S ARY1=$Q(@ARY1) Q:'$L(ARY1) Q:'(ARY1[ARY) W !,ARY1," = ",@ARY1
- ;
- Q
- ;
- ERROR Q
- ;
- ; **** Old Labels to insure backwards compatibility ****
- ;
- ;
- GETDFN(ARRAY) ; Returns the patient IEN from file 2.
- ;
- N OCXNDX,OCXARY,OCXP1,OCXP2,OCXP3
- S OCXARY=$S($L($G(ARRAY)):ARRAY,1:"ARRAY")
- S OCXNDX=0 F S OCXNDX=$O(@OCXARY@(OCXNDX)) Q:'OCXNDX I $P($G(@OCXARY@(OCXNDX)),"|",1)="PID" Q
- Q:'OCXNDX 0
- ;
- S OCXP1=$P($G(@OCXARY@(OCXNDX)),"|",4)
- S OCXP2=$P($G(@OCXARY@(OCXNDX)),"|",5)
- S OCXP3=$P($G(@OCXARY@(OCXNDX)),"|",6)
- ;
- Q:(OCXP2["DPT(") +OCXP2
- ;
- I $L(OCXP3),($P($G(^DPT(+OCXP1,0)),U,1)=OCXP3) Q +OCXP1
- ;
- Q 0
- ;
- ; Old line label area.
- ;
- PROC(OCXMSG,OUTMSG) ;
- D SILENT(.OCXMSG,.OUTMSG)
- Q
- ;
- EN(OCXMSG) ;
- D VERBOSE(.OCXMSG)
- Q
- ;
- OCXOHL7 ;SLC/RJS,CLA - External Interface - PROCESS HL7 DATA ARRAY ;4/02/03 13:50
- +1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,179**;Dec 17,1997
- +2 ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
- +3 ;
- +4 ;
- +5 QUIT
- SILENT(OCXMSG,OUTMSG) ;
- +1 ;
- +2 NEW OCXSEG0,OCXRDT,OCXHL7,OCXOZZT
- +3 SET OCXRDT=($HOROLOG*86400+$PIECE($HOROLOG,",",2))
- +4 IF '$DATA(OUTMSG)
- SET OUTMSG=""
- +5 DO CHECK(.OCXMSG,.OUTMSG)
- +6 QUIT
- +7 ;
- VERBOSE(OCXMSG) ;
- +1 ;
- +2 NEW OCXSEG0,OCXX,OUTMSG,OCXHL7,OCXOZZT
- +3 SET OCXRDT=($HOROLOG*86400+$PIECE($HOROLOG,",",2))
- +4 SET OUTMSG=""
- +5 DO CHECK(.OCXMSG,.OUTMSG)
- +6 IF $ORDER(OUTMSG(0))
- WRITE !,"Order Check Message: ",$CHAR(7)
- +7 SET OCXX=0
- FOR
- SET OCXX=$ORDER(OUTMSG(OCXX))
- IF 'OCXX
- QUIT
- WRITE !,OUTMSG(OCXX)
- +8 IF $ORDER(OUTMSG(0))
- WRITE !,$CHAR(7)
- +9 QUIT
- +10 ;
- CHECK(OCXMSG,OUTMSG) ;
- +1 ;
- +2 NEW OCXARY,OCXDFN,OCXEL,OCXODATA,OCXOLOG,OCXOSRC,OCXDSIZE
- +3 NEW OCXOTIME,OCXQUIT,OCXSEG0,OCXSEQ,OCXSUB,OCXTEST,OCXVAR
- +4 ;
- +5 IF $$RTEST
- Begin DoDot:1
- +6 NEW OMSG,OTMOUT,OCXM
- +7 SET OMSG="^25^^Order Checking is recompiling and momentarily disabled"
- +8 SET OCXM=0
- FOR
- SET OCXM=$ORDER(OUTMSG(OCXM))
- IF 'OCXM
- QUIT
- IF (OUTMSG(OCXM)[OMSG)
- QUIT
- +9 IF OCXM
- QUIT
- +10 SET OUTMSG($ORDER(OUTMSG(""),-1)+1)=OMSG
- End DoDot:1
- QUIT
- +11 ;
- +12 SET OCXARY=$SELECT($LENGTH($GET(OCXMSG)):OCXMSG,1:"OCXMSG")
- IF '$ORDER(@OCXARY@(0))
- QUIT
- +13 ;
- +14 SET (OCXQUIT,OCXSUB)=0
- FOR
- SET OCXSUB=$ORDER(@OCXARY@(OCXSUB))
- IF 'OCXSUB
- QUIT
- IF ($PIECE($GET(@OCXARY@(OCXSUB)),"|",1)="ORC")
- Begin DoDot:1
- +15 IF ($PIECE($PIECE($GET(@OCXARY@(OCXSUB)),"|",2),"^",1)="ZC")
- SET OCXQUIT=1
- End DoDot:1
- QUIT
- +16 ;
- +17 IF OCXQUIT
- QUIT
- +18 ;
- +19 SET OCXOLOG=$$LOG(OCXARY)
- +20 ;
- +21 SET OCXODATA=""
- SET OCXTEST=$GET(OCXOVRD)
- +22 ;
- +23 SET OCXVAR("DUZ")=""
- +24 SET OCXVAR("OCXMSG")=""
- +25 SET OCXVAR("OCXARY")=""
- +26 SET OCXOSRC="GENERIC HL7 MESSAGE ARRAY"
- +27 ;
- +28 SET OCXSUB=0
- FOR
- SET OCXSUB=$ORDER(@OCXARY@(OCXSUB))
- IF 'OCXSUB
- QUIT
- Begin DoDot:1
- +29 NEW OCXLINE,OCXPC,X,OCXTDAT,OCXCLIN,LASTPC
- +30 SET OCXDSIZE=$$ARYSIZE($NAME(@OCXARY@(OCXSUB)))
- +31 ;
- +32 IF (OCXDSIZE<5000)
- Begin DoDot:2
- +33 MERGE OCXLINE(0)=@OCXARY@(OCXSUB)
- +34 ; This will make first node consistent with continuation lines.
- SET OCXLINE(0,0)=OCXLINE(0)
- +35 SET OCXSEG=$PIECE($GET(OCXLINE(0)),"|",1)
- End DoDot:2
- IF '$LENGTH($GET(OCXLINE(0)))
- QUIT
- +36 ;
- +37 IF (OCXDSIZE>4999)
- Begin DoDot:2
- +38 KILL ^TMP($JOB,"OCXLDATA")
- +39 MERGE ^TMP($JOB,"OCXLDATA",0)=@OCXARY@(OCXSUB)
- +40 ; This will make first node consistent with continuation lines.
- SET ^TMP($JOB,"OCXLDATA",0,0)=^TMP($JOB,"OCXLDATA",0)
- +41 SET OCXSEG=$PIECE($GET(^TMP($JOB,"OCXLDATA",0)),"|",1)
- End DoDot:2
- IF '$LENGTH($GET(^TMP($JOB,"OCXLDATA",0)))
- QUIT
- +42 ;
- +43 IF '$LENGTH(OCXSEG)
- QUIT
- +44 ;
- +45 ; This is another instance of this segment.
- IF $DATA(OCXODATA(OCXSEG))
- Begin DoDot:2
- +46 ; Process current OCXODATA and reset OCXODATA for this new instance.
- +47 ; Process OCXODATA
- +48 SET OCXDFN=$$GETDFN(OCXARY)
- IF $GET(OCXDFN)
- DO UPDATE^OCXOZ01(+OCXDFN,OCXOSRC,.OUTMSG)
- +49 ;
- +50 ; Reset OCXODATA
- +51 SET OCXSEQ=+$GET(OCXODATA(OCXSEG))
- FOR
- IF 'OCXSEQ
- QUIT
- Begin DoDot:3
- +52 SET OCXSEG0=$GET(OCXODATA(OCXSEQ))
- IF '$LENGTH(OCXSEG0)
- QUIT
- +53 KILL OCXODATA(OCXSEQ),OCXODATA(OCXSEG0)
- End DoDot:3
- SET OCXSEQ=$ORDER(OCXODATA(OCXSEQ))
- End DoDot:2
- +54 ;
- +55 ; Set OCXODATA 'cross reference'
- SET OCXODATA(OCXSUB)=OCXSEG
- +56 ; Set OCXODATA 'cross reference'
- SET OCXODATA(OCXSEG)=OCXSUB
- +57 ;
- +58 ; Load this segment instance into OCXODATA
- +59 ;
- +60 ; OCXPC - Keeps track of which "|" piece we're on
- +61 ;
- +62 IF (OCXDSIZE<5000)
- DO LOADATA(OCXSEG,"OCXLINE(0)")
- +63 ;
- +64 IF (OCXDSIZE>4999)
- DO LOADATA(OCXSEG,$NAME(^TMP($JOB,"OCXLDATA",0)))
- End DoDot:1
- +65 ;
- +66 SET OCXDFN=$$GETDFN(OCXARY)
- +67 ; Process OCXODATA for the last segment
- IF $GET(OCXDFN)
- DO UPDATE^OCXOZ01(+OCXDFN,OCXOSRC,.OUTMSG)
- IF 1
- +68 ;
- +69 DO FINISH^OCXOLOG(OCXOLOG)
- +70 ;
- +71 KILL ^TMP($JOB,"OCXLDATA")
- +72 ;
- +73 QUIT
- +74 ;
- LOADATA(OCXSEG,OCXSD) ; Get '|' piece #OCXPC of OCXSD Segment Data array.
- +1 ;
- +2 NEW OCXTEXT,OCXPCNT,OCXD0,OCXD1
- +3 ;
- +4 IF '$LENGTH(OCXSEG)
- QUIT
- +5 SET OCXPCNT=0
- SET OCXD0=""
- FOR
- SET OCXD0=$ORDER(@OCXSD@(OCXD0))
- IF '$LENGTH(OCXD0)
- QUIT
- Begin DoDot:1
- +6 SET OCXTEXT=$GET(@OCXSD@(OCXD0))
- +7 FOR OCXD1=1:1:$LENGTH(OCXTEXT)
- Begin DoDot:2
- +8 IF ($EXTRACT(OCXTEXT,OCXD1)="|")
- SET OCXPCNT=OCXPCNT+1
- QUIT
- +9 IF ($LENGTH($GET(OCXODATA(OCXSEG,OCXPCNT)))<241)
- SET OCXODATA(OCXSEG,OCXPCNT)=$GET(OCXODATA(OCXSEG,OCXPCNT))_$EXTRACT(OCXTEXT,OCXD1)
- End DoDot:2
- End DoDot:1
- +10 ;
- +11 QUIT
- +12 ;
- RTEST() ; Does ^OCXOZ01 exist ?? Is it currently being compiled ??
- +1 NEW DATE,TMOUT
- +2 IF '$LENGTH($TEXT(^OCXOZ01))
- QUIT 1
- +3 IF '($PIECE($GET(^OCXD(861,1,0)),U,1)="SITE PREFERENCES")
- KILL ^OCXD(861,1)
- SET ^OCXD(861,1,0)="SITE PREFERENCES"
- +4 SET DATE=$PIECE($GET(^OCXD(861,1,0)),U,3)
- +5 IF DATE
- IF ((+DATE)=(+$HOROLOG))
- IF (((+$PIECE($HOROLOG,",",2))-(+$PIECE(DATE,",",2)))<1800)
- QUIT 1
- +6 QUIT 0
- +7 ;
- LOG(OCXARY) ;
- +1 ; Log Data Messages
- +2 ;
- +3 IF $GET(OCXTRACE)
- IF $$CDATA^OCXOZ01
- IF $GET(OCXTRACE)
- WRITE !," Raw Input Data: ",!
- DO ZW(OCXARY)
- QUIT 0
- +4 IF '$LENGTH($TEXT(LOG^OCXOZ01))
- QUIT 0
- IF '$$LOG^OCXOZ01
- QUIT 0
- +5 NEW OCXDFN,OCXNL
- +6 IF '$ORDER(@OCXARY@(0))
- SET OCXARY="OCXNL"
- SET OCXNL(1)="Null HL7 Data Array Found"
- +7 SET OCXDFN=$$GETDFN(OCXARY)
- +8 QUIT $$NEW^OCXOLOG(OCXARY,"HL7",+$GET(DUZ),+OCXDFN)
- +9 ;
- ARYSIZE(ARY) ; Get array size (Local or Global)
- +1 ;
- +2 NEW ARY1,SIZE
- +3 ;
- +4 SET SIZE=0
- +5 ;
- +6 IF '(ARY["^")
- FOR
- SET ARY=$QUERY(@ARY)
- IF '$LENGTH(ARY)
- QUIT
- SET SIZE=SIZE+$LENGTH(@ARY)
- +7 ;
- +8 IF (ARY["^")
- Begin DoDot:1
- +9 SET ARY=$NAME(@ARY)
- SET ARY1=ARY
- +10 IF ($EXTRACT(ARY,$LENGTH(ARY))=")")
- SET ARY=$EXTRACT(ARY,1,$LENGTH(ARY)-1)_","
- +11 FOR
- SET ARY1=$QUERY(@ARY1)
- IF '$LENGTH(ARY1)
- QUIT
- IF '(ARY1[ARY)
- QUIT
- SET SIZE=SIZE+$LENGTH(@ARY1)
- End DoDot:1
- +12 ;
- +13 QUIT SIZE
- +14 ;
- ZW(ARY) ; ZWrite an array (Local or Global)
- +1 ;
- +2 NEW ARY1
- +3 ;
- +4 IF '(ARY["^")
- Begin DoDot:1
- +5 FOR
- SET ARY=$QUERY(@ARY)
- IF '$LENGTH(ARY)
- QUIT
- WRITE !,ARY," = ",@ARY
- End DoDot:1
- QUIT
- +6 ;
- +7 IF (ARY["^")
- Begin DoDot:1
- +8 SET ARY=$NAME(@ARY)
- SET ARY1=ARY
- +9 IF ($EXTRACT(ARY,$LENGTH(ARY))=")")
- SET ARY=$EXTRACT(ARY,1,$LENGTH(ARY)-1)_","
- +10 FOR
- SET ARY1=$QUERY(@ARY1)
- IF '$LENGTH(ARY1)
- QUIT
- IF '(ARY1[ARY)
- QUIT
- WRITE !,ARY1," = ",@ARY1
- End DoDot:1
- QUIT
- +11 ;
- +12 QUIT
- +13 ;
- ERROR QUIT
- +1 ;
- +2 ; **** Old Labels to insure backwards compatibility ****
- +3 ;
- +4 ;
- GETDFN(ARRAY) ; Returns the patient IEN from file 2.
- +1 ;
- +2 NEW OCXNDX,OCXARY,OCXP1,OCXP2,OCXP3
- +3 SET OCXARY=$SELECT($LENGTH($GET(ARRAY)):ARRAY,1:"ARRAY")
- +4 SET OCXNDX=0
- FOR
- SET OCXNDX=$ORDER(@OCXARY@(OCXNDX))
- IF 'OCXNDX
- QUIT
- IF $PIECE($GET(@OCXARY@(OCXNDX)),"|",1)="PID"
- QUIT
- +5 IF 'OCXNDX
- QUIT 0
- +6 ;
- +7 SET OCXP1=$PIECE($GET(@OCXARY@(OCXNDX)),"|",4)
- +8 SET OCXP2=$PIECE($GET(@OCXARY@(OCXNDX)),"|",5)
- +9 SET OCXP3=$PIECE($GET(@OCXARY@(OCXNDX)),"|",6)
- +10 ;
- +11 IF (OCXP2["DPT(")
- QUIT +OCXP2
- +12 ;
- +13 IF $LENGTH(OCXP3)
- IF ($PIECE($GET(^DPT(+OCXP1,0)),U,1)=OCXP3)
- QUIT +OCXP1
- +14 ;
- +15 QUIT 0
- +16 ;
- +17 ; Old line label area.
- +18 ;
- PROC(OCXMSG,OUTMSG) ;
- +1 DO SILENT(.OCXMSG,.OUTMSG)
- +2 QUIT
- +3 ;
- EN(OCXMSG) ;
- +1 DO VERBOSE(.OCXMSG)
- +2 QUIT
- +3 ;