| [613] | 1 | PSOVDF2 ;BPOIFO/EL-OUTPATIENT PHARMACY (PRES, PREF, PPAR) HL7 MESSAGE ;10/04/04
 | 
|---|
 | 2 |  ;;7.0;OUTPATIENT PHARMACY;**190,205,220,235,261**;DEC 1997;Build 9
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ; DBIAs:
 | 
|---|
 | 5 |  ; 2226-PS(51.2
 | 
|---|
 | 6 |  ; 221-PSDRUG
 | 
|---|
 | 7 |  ; 4248-VDEFEL
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  Q
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  ; Creates one of three Outpatient HL7 messages:
 | 
|---|
 | 12 |  ; RDE^O11^PRES, RDS^O13^PREF, or RDS^O13^PPAR
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  ; Returns:
 | 
|---|
 | 15 |  ; Piece ^ 1 - "LM"-Local Array
 | 
|---|
 | 16 |  ; Piece ^ 2 - MSH segment, not set
 | 
|---|
 | 17 |  ; OUT - OUTPUT array includes HL7 message for every segment except MSH
 | 
|---|
 | 18 |  ;
 | 
|---|
 | 19 |  ; Message Body "MSH,PID,ORC1,RXE1,RXR1,FT1,OBX1,NTE1,ORC2,ORC3"
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 |  ;
 | 
|---|
 | 22 | OUT ; Output
 | 
|---|
 | 23 |  N WR K WR
 | 
|---|
 | 24 |  S L=1
 | 
|---|
 | 25 | OUT10 I $L(MSG)<247 S WR(L)=MSG
 | 
|---|
 | 26 |  I $L(MSG)>246 S WR(L)=$E(MSG,1,246),L=L+1,MSG=$E(MSG,247,99999) G OUT10
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 | OUT20 ; VISTA HL7
 | 
|---|
 | 29 |  S X=""
 | 
|---|
 | 30 |  F I=1:1 S X=$G(WR(I)) Q:X=""  D
 | 
|---|
 | 31 |  .  I I=1 S OUT("HLS")=$G(OUT("HLS"))+1,OUT("HLS",OUT("HLS"))=X
 | 
|---|
 | 32 |  .  E  I I>1 S OUT("HLS",OUT("HLS"),I-1)=X
 | 
|---|
 | 33 |  Q
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 | GET(GLOBAL,L,P) ; GET(GLOBAL,NODE,PIECE)
 | 
|---|
 | 36 |  I $G(GLOBAL(L))="" Q ""
 | 
|---|
 | 37 |  N RES
 | 
|---|
 | 38 |  S RES=$P(GLOBAL(L),U,P)
 | 
|---|
 | 39 |  Q RES
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 | PUT(P) ; Put in MSG
 | 
|---|
 | 42 |  I $G(VAL)="" Q
 | 
|---|
 | 43 |  S $P(MSG,SEPF,P)=VAL
 | 
|---|
 | 44 |  Q
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 | PROCESS ;
 | 
|---|
 | 47 | ORC1 ; ORC ORIGINAL FILL
 | 
|---|
 | 48 |  S MSG="",CTR=0
 | 
|---|
 | 49 |  S VAL=$$GET(.GL,"OR1",2) I $G(VAL)'="" S VAL=$$REPL^PSOVDF1(VAL),VAL=VAL_SEPC_SRC_"_39.3" D PUT(2)
 | 
|---|
 | 50 |  S VAL=PSOVDFES_SEPC_SRC_"_.001" D PUT(3)
 | 
|---|
 | 51 |  S VAL="CM" D PUT(5)
 | 
|---|
 | 52 |  S (VAL,WR)="",WR=$$GET(.GL,2,2) I $G(WR)'="" D
 | 
|---|
 | 53 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(VAL,SEPC,4)=WR,$P(VAL,SEPC,7)="FILL"
 | 
|---|
 | 54 |  S WR=$$GET(.GL,2,6) I $G(WR)'="" D
 | 
|---|
 | 55 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(VAL,SEPC,5)=WR,$P(VAL,SEPC,7)=$P(VAL,SEPC,7)_"/EXPIRATION"
 | 
|---|
 | 56 |  I $G(VAL)'="" S CTR=CTR+1
 | 
|---|
 | 57 |  S (TP)="",WR=$$GET(.GL,0,13) I $G(WR)'="" D
 | 
|---|
 | 58 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(TP,SEPC,5)=WR,$P(TP,SEPC,7)="ISSUED" S CTR=CTR+1,$P(VAL,SEPR,CTR)=TP
 | 
|---|
 | 59 |  S (TP)="",WR=$$GET(.GL,2,5) I $G(WR)'="" D
 | 
|---|
 | 60 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(TP,SEPC,4)=WR,$P(TP,SEPC,7)="DISPENSED"
 | 
|---|
 | 61 |  ; (7~5|3-101)
 | 
|---|
 | 62 |  S WR=$$GET(.GL,3,1) I $G(WR)'="" D
 | 
|---|
 | 63 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(TP,SEPC,5)=WR,$P(TP,SEPC,7)=$P(TP,SEPC,7)_"/LAST DISPENSED"
 | 
|---|
 | 64 |  I $G(TP)'="" S CTR=CTR+1,$P(VAL,SEPR,CTR)=TP
 | 
|---|
 | 65 |  ; (7~5|4-26.1)
 | 
|---|
 | 66 |  S (TP)="",WR=$$GET(.GL,3,5) I $G(WR)'="" D
 | 
|---|
 | 67 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(TP,SEPC,5)=WR,$P(TP,SEPC,7)="CANCEL" S CTR=CTR+1,$P(VAL,SEPR,CTR)=TP
 | 
|---|
 | 68 |  I $G(VAL)'="" D PUT(7)
 | 
|---|
 | 69 |  ; (9-21)
 | 
|---|
 | 70 |  S VAL=$$GET(.GL,2,1),VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL^PSOVDF1(VAL) D PUT(9)
 | 
|---|
 | 71 |  ; (10-16)
 | 
|---|
 | 72 |  S VAL=$$GET(.GL,0,16) I $G(VAL)'="" S VAL=$$XCN200^VDEFEL(VAL) D PUT(10)
 | 
|---|
 | 73 |  ; (12|1-4)
 | 
|---|
 | 74 |  S WR="",VAL=$$GET(.GL,0,4) I $G(VAL)'="" D
 | 
|---|
 | 75 |  . S WR=$$XCN200^VDEFEL(VAL,"RE")
 | 
|---|
 | 76 |  ; (12|2-109)
 | 
|---|
 | 77 |  S TP="",VAL=$$GET(.GL,3,3) I $G(VAL)'="" D
 | 
|---|
 | 78 |  . S TP=$$XCN200^VDEFEL(VAL,"COSIGNER"),$P(WR,SEPR,2)=TP
 | 
|---|
 | 79 |  I $G(WR)'="" S VAL=WR D PUT(12)
 | 
|---|
 | 80 |  ; (13-5)
 | 
|---|
 | 81 |  S VAL=$$GET(.GL,0,5)
 | 
|---|
 | 82 |  I VAL'="" D ORC13^PSOVDF3,PUT(13)
 | 
|---|
 | 83 |  S (VAL,PSOVD59)=$$GET(.GL,2,9) I $G(VAL)'="" D
 | 
|---|
 | 84 |  .N PSONCOR,PSONCORP,PSOSINUM
 | 
|---|
 | 85 |  .S X=$G(^PS(59,VAL,0)),PSONCORP=$P($G(^("SAND")),"^",3)
 | 
|---|
 | 86 |  .S VAL=$P(X,U),(VAL,PSONCOR)=$$REPL^PSOVDF1(VAL) Q:VAL=""
 | 
|---|
 | 87 |  .S PSOSINUM=$P(X,U,6),PSOSINUM=$$REPL^PSOVDF1(PSOSINUM)
 | 
|---|
 | 88 |  .S VAL=PSOSINUM_SEPC_VAL_SEPC_SRC_"_20"
 | 
|---|
 | 89 |  .I PSONCORP'="" S PSONCORP=$$REPL^PSOVDF1(PSONCORP),VAL=VAL_SEPC_PSONCORP_SEPC_PSONCOR_SEPC_"NCPDP"
 | 
|---|
 | 90 |  .S PSOVDDIV(PSOVD59)=$G(VAL)
 | 
|---|
 | 91 |  .D PUT(17)
 | 
|---|
 | 92 |  S VAL=$G(PSOVDFIN) D PUT(21)
 | 
|---|
 | 93 |  N PSOVLV,PSOVAR,PSOVEN,DIC,DR,DA,DIQ D
 | 
|---|
 | 94 |  .I $D(GL(4)) D ORCCS^PSOVDF3
 | 
|---|
 | 95 |  .S DIC=52,DR="100",(DA,PSOVEN)=PSOVDFD0,DIQ="PSOVAR",DIQ(0)="IE" D EN^DIQ1
 | 
|---|
 | 96 |  .S VAL=$G(PSOVAR(52,PSOVEN,100,"I")) I VAL'="" D ORC25^PSOVDF3
 | 
|---|
 | 97 |  .I VAL="",'$D(VCMP) Q
 | 
|---|
 | 98 |  .S:VAL="" VAL=SEPC_SEPC
 | 
|---|
 | 99 |  .S VAL=VAL_$S($D(VCMP(0)):SEPC_VCMP(0),1:"") D PUT(25)
 | 
|---|
 | 100 |  I $G(MSG)="" G ORC1Q
 | 
|---|
 | 101 |  S $P(MSG,U)="RE"
 | 
|---|
 | 102 |  S MSG="ORC"_SEPF_MSG D OUT
 | 
|---|
 | 103 | ORC1Q ; Q
 | 
|---|
 | 104 |  ;
 | 
|---|
 | 105 | RXE1 ; RXE ORIGINAL FILL
 | 
|---|
 | 106 |  S MSG=""
 | 
|---|
 | 107 |  ; (1~4-22)
 | 
|---|
 | 108 |  S (VAL,WR)="",CTR=0 I $D(GL(6)) K TEMP M TEMP=GL(6) S WR=$$DOSE^PSOVDF3(.TEMP) I $G(WR)'="" S VAL=WR
 | 
|---|
 | 109 |  D FINISH^PSOVDF3
 | 
|---|
 | 110 |  D PUT(1)
 | 
|---|
 | 111 |  N PSOV568,PSOVNAME,PSOVUIDN,PSOVLL,PSOVNND,PSOVNDF,PSONAM50,PSOVCMOP
 | 
|---|
 | 112 |  S (GIVECODE,P,PSOVNDF,PSOVDRUG,VAL,PSOVNND,PSOV568,PSOVNAME,PSOVLL,PSOVUIDN,PSOVCMOP,PSONAM50)="",PSOVDRUG=$$GET(.GL,0,6)
 | 
|---|
 | 113 |  I +$G(PSOVDRUG)'>0 G RXE1A
 | 
|---|
 | 114 |  S PSOVNND=$G(^PSDRUG(PSOVDRUG,"ND")),PSOV568=0
 | 
|---|
 | 115 |  I $P(PSOVNND,"^",10)'="" S PSOVCMOP=$$REPL^PSOVDF1($P(PSOVNND,"^",10))
 | 
|---|
 | 116 |  S PSOVNDF=$P(PSOVNND,"^",3),PSOVLL=$P(PSOVNND,"^") I +PSOVNDF>0 D
 | 
|---|
 | 117 |  .S PSOVUIDN=$$PROD0^PSNAPIS(+PSOVLL,+PSOVNDF),PSOVNAME=$P(PSOVUIDN,"^"),PSOVNAME=$$REPL^PSOVDF1(PSOVNAME) S PSOV568=$$GETVUID^XTID(50.68,,+PSOVNDF_",")
 | 
|---|
 | 118 |  I $P($G(PSOV568),"^")'=0 S PSOV568=$$REPL^PSOVDF1(PSOV568) S VAL=$G(PSOV568)_SEPC_$G(PSOVNAME)_SEPC_"99VA_52_6",GIVECODE=VAL G RXE1A
 | 
|---|
 | 119 |  S PSONAM50=$P($G(^PSDRUG(PSOVDRUG,0)),"^"),PSONAM50=$$REPL^PSOVDF1(PSONAM50) S VAL=SEPC_PSONAM50_SEPC_SRC_"_6",GIVECODE=VAL
 | 
|---|
 | 120 |  ; (2~4-API or 52_27 or 50_31)
 | 
|---|
 | 121 | RXE1A S WR=""
 | 
|---|
 | 122 |  I $T(NDC^PSOHDR)]"" D
 | 
|---|
 | 123 |  .  S WR=$$NDC^PSOHDR(PSOVDFD0,0)
 | 
|---|
 | 124 |  E  S WR=$$GET(.GL,2,7) D
 | 
|---|
 | 125 |  .  I $G(WR)="",($G(PSOVDRUG)'="") S X=$G(^PSDRUG(PSOVDRUG,2)),WR=$P(X,U,4)
 | 
|---|
 | 126 |  I $G(WR)'="" S WR=$$REPL^PSOVDF1(WR),$P(VAL,SEPC,4)=WR,$P(VAL,SEPC,6)="NDC",DRCODE=VAL
 | 
|---|
 | 127 |  D PUT(2)
 | 
|---|
 | 128 |  N PSOLUN,PSOLUNI
 | 
|---|
 | 129 |  S (UNIT,VAL)="" I $G(PSOVNDF)'="" D
 | 
|---|
 | 130 |  .S PSOLUN=$$DFSU^PSNAPIS(PSOVLL,PSOVNDF)
 | 
|---|
 | 131 |  .I $G(PSOLUN)'="" N PSOUNTXT S PSOUNTXT=$P(PSOLUN,U,6),PSOUNTXT=$$REPL^PSOVDF1(PSOUNTXT),PSOLUNI=$P(PSOLUN,"^",5),PSOLUNI=$$REPL^PSOVDF1(PSOLUNI) S VAL=PSOLUNI_SEPC_PSOUNTXT_SEPC_SRC_"_6"
 | 
|---|
 | 132 |  I $G(VAL)="" S VAL="UNK"
 | 
|---|
 | 133 |  S UNIT=VAL D PUT(5)
 | 
|---|
 | 134 |  S VAL=0 D PUT(3)
 | 
|---|
 | 135 |  S VAL="" D RXE6^PSOVDF3 D PUT(6)
 | 
|---|
 | 136 |  S CTR=0,(VAL,WR)=""
 | 
|---|
 | 137 |  ; (7|3-113)
 | 
|---|
 | 138 |  I $D(GL(6)) K TEMP M TEMP=GL(6) S WR=$$NSET^PSOVDF3(.TEMP) I $G(WR)'="" S VAL=WR
 | 
|---|
 | 139 |  ;Don't piece out INS nodes, can possibly contain up-arrow from Provider Comments
 | 
|---|
 | 140 |  S WR=$G(GL("INS")) I $G(WR)'="" S WR=$$REPL^PSOVDF1(WR),CTR=CTR+1,WR=SEPC_WR_SEPC_SRC_"_114",$P(VAL,SEPR,CTR)=WR
 | 
|---|
 | 141 |  S WR=$$GET(.GL,"INSS",1) I $G(WR)'="" S WR=$$REPL^PSOVDF1(WR),CTR=CTR+1,WR=SEPC_WR_SEPC_SRC_"_114.1",$P(VAL,SEPR,CTR)=WR
 | 
|---|
 | 142 |  I $D(GL("INS1")) K TEMP M TEMP=GL("INS1") S WR=$$SSETX^PSOVDF3(.TEMP,SRC_"_115"),VAL=VAL_SEPR_WR
 | 
|---|
 | 143 |  D PUT(7)
 | 
|---|
 | 144 |  ; (8~6-11)
 | 
|---|
 | 145 |  S (WR,VAL)=""
 | 
|---|
 | 146 |  S WR=$$GET1^DIQ(52,PSOVDFD0_",",11,"","","PSOVERR") K PSOVERR I $G(WR)'="" S WR=$$REPL^PSOVDF1(WR),$P(VAL,SEPC,6)=WR D PUT(8)
 | 
|---|
 | 147 |  ; (10-7)
 | 
|---|
 | 148 |  S VAL=$$GET(.GL,0,7),VAL=$$REPL^PSOVDF1(VAL) D PUT(10)
 | 
|---|
 | 149 |  ; (12-9)
 | 
|---|
 | 150 |  S VAL=$$GET(.GL,0,9),VAL=$$REPL^PSOVDF1(VAL) D PUT(12)
 | 
|---|
 | 151 |  ; (14|1-23)
 | 
|---|
 | 152 |  S WR="",VAL=$$GET(.GL,2,3) I $G(VAL)'="" D
 | 
|---|
 | 153 |  . S WR=$$XCN200^VDEFEL(VAL,"PHARMACIST")
 | 
|---|
 | 154 |  ; (14|2-104)
 | 
|---|
 | 155 |  S TP="",VAL=$$GET(.GL,2,10) I $G(VAL)'="" D
 | 
|---|
 | 156 |  . S TP=$$XCN200^VDEFEL(VAL,"VERIFIER PHARM"),$P(WR,SEPR,2)=TP
 | 
|---|
 | 157 |  I $G(WR)'="" S VAL=WR D PUT(14)
 | 
|---|
 | 158 |  ; (15-.01)
 | 
|---|
 | 159 |  S VAL=$$GET(.GL,0,1),VAL=$$REPL^PSOVDF1(VAL) D PUT(15)
 | 
|---|
 | 160 |  ; (18-31)
 | 
|---|
 | 161 |  S VAL=$$GET(.GL,2,13) I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL^PSOVDF1(VAL) D PUT(18)
 | 
|---|
 | 162 |  ; (21|1-10.2=1 or 10)
 | 
|---|
 | 163 |  S VAL="" I '$D(GL("SIG")) G RXE1B
 | 
|---|
 | 164 |  I $P(GL("SIG"),U,2)=1 D
 | 
|---|
 | 165 |  . I $D(GL("SIG1")) K TEMP M TEMP=GL("SIG1") S VAL=$$SSETX^PSOVDF3(.TEMP,SRC_"_10.2")
 | 
|---|
 | 166 |  E  S VAL=$$GET(.GL,"SIG",1) I $G(VAL)'="" S VAL=$$REPL^PSOVDF1(VAL),VAL=VAL_SEPC_SEPC_SRC_"_10"
 | 
|---|
 | 167 |  D PUT(21)
 | 
|---|
 | 168 | RXE1B ; (22-8)
 | 
|---|
 | 169 |  S VAL=$$GET(.GL,0,8) I $G(VAL)'="" S VAL="D"_VAL,VAL=$$REPL^PSOVDF1(VAL) D PUT(22)
 | 
|---|
 | 170 |  S WR="",VAL=$$GET(.GL,"TN",1)
 | 
|---|
 | 171 |  I $G(VAL)'="" S VAL=$$REPL^PSOVDF1(VAL),WR=VAL_SEPC_SEPC_SRC_"_6.5"
 | 
|---|
 | 172 |  D RXE1OF31^PSOVDF3,PUT(31)
 | 
|---|
 | 173 |  ;
 | 
|---|
 | 174 |  I $G(MSG)="" G RXE1Q
 | 
|---|
 | 175 |  S MSG="RXE"_SEPF_MSG D OUT
 | 
|---|
 | 176 | RXE1Q ; Q
 | 
|---|
 | 177 |  ;
 | 
|---|
 | 178 | RXR1 ; RXR ORIGINAL FILL
 | 
|---|
 | 179 |  S MSG=""
 | 
|---|
 | 180 |  I '$D(GL(6)) G RXR1Q
 | 
|---|
 | 181 |  N PSOVRTE,PSORTX
 | 
|---|
 | 182 |  K TEMP M TEMP=GL(6)
 | 
|---|
 | 183 |  S PSORTX="",PSOVDFD1=0
 | 
|---|
 | 184 | RXR1A S PSOVDFD1=$O(TEMP(PSOVDFD1)) G RXR1B:'PSOVDFD1
 | 
|---|
 | 185 |  S PSORTX=$P($G(TEMP(PSOVDFD1,0)),U,7)
 | 
|---|
 | 186 |  I $G(PSORTX)="" G RXR1A
 | 
|---|
 | 187 |  I '$D(^PS(51.2,PSORTX,0)) G RXR1A
 | 
|---|
 | 188 |  S PSOVRTE=$P(^PS(51.2,PSORTX,0),U),PSOVRTE=$$REPL^PSOVDF1(PSOVRTE),PSORTX=$$REPL^PSOVDF1(PSORTX)
 | 
|---|
 | 189 |  S VAL=PSORTX_SEPC_PSOVRTE_SEPC_HLINST_"_52.0113_6"
 | 
|---|
 | 190 |  I $G(MSG)'="" S MSG=MSG_SEPR_VAL
 | 
|---|
 | 191 |  E  S MSG=VAL
 | 
|---|
 | 192 |  G RXR1A
 | 
|---|
 | 193 | RXR1B I $G(MSG)="" G RXR1Q
 | 
|---|
 | 194 |  S MSG="RXR"_SEPF_MSG D OUT
 | 
|---|
 | 195 | RXR1Q ; Q
 | 
|---|
 | 196 |  ;
 | 
|---|
 | 197 | FT1 ;FT1 ORIGINAL FILL
 | 
|---|
 | 198 |  S (MSG)=""
 | 
|---|
 | 199 |  ; (4-22)
 | 
|---|
 | 200 |  S VAL=$$GET(.GL,2,2)
 | 
|---|
 | 201 |  I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL^PSOVDF1(VAL) D PUT(4)
 | 
|---|
 | 202 |  S VAL="CG" D PUT(6)
 | 
|---|
 | 203 |  S (VAL,VFT7)="" D FT1A7^PSOVDF3,PUT(7)
 | 
|---|
 | 204 |  ; (12-17)
 | 
|---|
 | 205 |  S VAL=$$GET(.GL,0,17),VAL=$$REPL^PSOVDF1(VAL) D PUT(12)
 | 
|---|
 | 206 |  ; (18-3)
 | 
|---|
 | 207 |  S TP="",TP=$$GET(.GL,0,3)
 | 
|---|
 | 208 |  I $G(TP)'="" S VAL=$P($G(^PS(53,TP,0)),U,2),VAL=$$REPL^PSOVDF1(VAL) D PUT(18)
 | 
|---|
 | 209 |  S VAL=$$GET(.GL,"OR1",5)
 | 
|---|
 | 210 |  I $G(VAL)'="" S VAL=$$XCN200^VDEFEL(VAL,SRC_"_38") D PUT(20)
 | 
|---|
 | 211 |  I $G(MSG)="" G FT1Q
 | 
|---|
 | 212 |  S (VAL,CTR)=1 D PUT(1)
 | 
|---|
 | 213 |  S MSG="FT1"_SEPF_MSG D OUT
 | 
|---|
 | 214 | FT1Q ; 
 | 
|---|
 | 215 |  ;patch 261 - new FT1 seg seq 2 for original
 | 
|---|
 | 216 |  D FT1S2^PSOVDF3
 | 
|---|
 | 217 |  ;
 | 
|---|
 | 218 | OBX1 ; OBX ORIGINAL FILL
 | 
|---|
 | 219 |  S CTR=0
 | 
|---|
 | 220 |  F FIELD=41,42,116,117,118,119,120,121,201 D OBXLP
 | 
|---|
 | 221 |  G OBX1B
 | 
|---|
 | 222 |  ;
 | 
|---|
 | 223 | OBXLP ;
 | 
|---|
 | 224 |  S MSG=""
 | 
|---|
 | 225 |  N DIC,DR,DA,DIQ,PSOOVAR,PSOOVEN
 | 
|---|
 | 226 |  S DIC=52,DR=FIELD,(DA,PSOOVEN)=PSOVDFD0,DIQ="PSOOVAR",DIQ(0)="IE" D EN^DIQ1 S VAL=$G(PSOOVAR(52,PSOOVEN,FIELD,"I"))
 | 
|---|
 | 227 |  I $G(VAL)="" Q
 | 
|---|
 | 228 |  N PSOOVALE S PSOOVALE=$G(PSOOVAR(52,PSOOVEN,FIELD,"E")),PSOOVALE=$$REPL^PSOVDF1(PSOOVALE)
 | 
|---|
 | 229 |  N PSOVLVU D
 | 
|---|
 | 230 |  .S PSOVLVU=$$GETVUID^XTID(52,FIELD,VAL) I $P($G(PSOVLVU),"^")'=0 S VAL=$$REPL^PSOVDF1(PSOVLVU)_SEPC_$G(PSOOVALE)_SEPC_"99VA_52_"_FIELD D PUT(5) Q
 | 
|---|
 | 231 |  .S VAL=$$REPL^PSOVDF1(VAL),VAL=VAL_SEPC_$G(PSOOVALE)_SEPC_SRC_"_"_FIELD D PUT(5)
 | 
|---|
 | 232 |  S CTR=CTR+1,VAL=CTR D PUT(1)
 | 
|---|
 | 233 |  S VAL="CE" D PUT(2)
 | 
|---|
 | 234 |  N DD D FIELD^DID(52,FIELD,"","LABEL","DD","ERR")
 | 
|---|
 | 235 |  S VAL=$G(DD("LABEL")),VAL=$$REPL^PSOVDF1(VAL) D PUT(3)
 | 
|---|
 | 236 |  S VAL="F" D PUT(11)
 | 
|---|
 | 237 |  S MSG="OBX"_SEPF_MSG D OUT
 | 
|---|
 | 238 |  Q
 | 
|---|
 | 239 |  ;
 | 
|---|
 | 240 | OBX1B ;
 | 
|---|
 | 241 |  S MSG=""
 | 
|---|
 | 242 |  ; (5-301)
 | 
|---|
 | 243 |  S VAL=$$GET(.GL,"SAND",1)
 | 
|---|
 | 244 |  I $G(VAL)'="" D CLOZ^PSOVDF3
 | 
|---|
 | 245 |  ;
 | 
|---|
 | 246 | OBX1C ;
 | 
|---|
 | 247 |  S MSG=""
 | 
|---|
 | 248 |  ; (5-302)
 | 
|---|
 | 249 |  S VAL=$$GET(.GL,"SAND",2)
 | 
|---|
 | 250 |  I $G(VAL)'="" D WBC^PSOVDF3
 | 
|---|
 | 251 |  ;
 | 
|---|
 | 252 | NTE1 ;
 | 
|---|
 | 253 |  D REM^PSOVDF3
 | 
|---|
 | 254 |  ;
 | 
|---|
 | 255 | NTE1B ;
 | 
|---|
 | 256 |  D PRC^PSOVDF3
 | 
|---|
 | 257 |  ;
 | 
|---|
 | 258 | NTE1C ;
 | 
|---|
 | 259 |  D DEL^PSOVDF3
 | 
|---|
 | 260 | NTE1Q Q
 | 
|---|