| 1 | PSOVDF3 ;BIR/RTR-OUTPATIENT PHARMACY VDEF MESSAGE CONTINUED ;06/16/05 | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**205,235,261**;DEC 1997;Build 9 | 
|---|
| 3 | ;External reference to PS(50.7 supported by DBIA 2223 | 
|---|
| 4 | ;External refernce to PS(50.607 supported by DBIA 2221 | 
|---|
| 5 | ; | 
|---|
| 6 | DOSE(GLOBAL) ;Add Dosage information to RXE 1 | 
|---|
| 7 | N RES S RES="" | 
|---|
| 8 | N PSODD1,PSODD2,PSODD3,PSODD5,PSODDL,PSODDN,PSORES1,PSODDUNT,PSOD1FLG | 
|---|
| 9 | F PSODDL=0:0 S PSODDL=$O(GLOBAL(PSODDL)) Q:'PSODDL  D | 
|---|
| 10 | .S PSODDN=$G(GLOBAL(PSODDL,0)) Q:PSODDN="" | 
|---|
| 11 | .S PSODD1=$P(PSODDN,"^"),PSODD2=$P(PSODDN,"^",2),PSODD3=$P(PSODDN,"^",3),PSODD5=$P(PSODDN,"^",5),PSODDUNT="" | 
|---|
| 12 | .I PSODD1="",PSODD2="",PSODD5="" Q | 
|---|
| 13 | .I PSODD5'="",($E(PSODD5,$L(PSODD5))'?1A) S PSODD5=PSODD5_"D" | 
|---|
| 14 | .I PSODD5'="" S PSODD5=$$REPL^PSOVDF1(PSODD5) | 
|---|
| 15 | .S PSOD1FLG=0 | 
|---|
| 16 | .I PSODD2'="",PSODD3'="",$P($G(^PS(50.607,PSODD3,0)),"^")'="" S PSOD1FLG=1,PSODDUNT=$P($G(^(0)),"^"),PSODDUNT=$$REPL^PSOVDF1(PSODDUNT) S:$G(PSODD1)'="" PSODD1=$$REPL^PSOVDF1(PSODD1),PSODD1=PSODD1_PSODDUNT | 
|---|
| 17 | .I 'PSOD1FLG,$G(PSODD1)'="" S PSODD1=$$REPL^PSOVDF1(PSODD1) | 
|---|
| 18 | .S PSORES1="" | 
|---|
| 19 | .I PSODD1'=""!(PSODD2'="") D | 
|---|
| 20 | ..I PSODD2'="" S PSODD2=$$REPL^PSOVDF1(PSODD2) S PSORES1=PSODD2 S:PSODD1'="" PSORES1=PSORES1_SEPS_PSODD1 Q | 
|---|
| 21 | ..S PSORES1=SEPS_PSODD1 | 
|---|
| 22 | .I PSODD5'="" D | 
|---|
| 23 | ..I PSORES1="" S PSORES1=SEPC_SEPC_PSODD5 Q | 
|---|
| 24 | ..S PSORES1=PSORES1_SEPC_SEPC_PSODD5 | 
|---|
| 25 | .Q:PSORES1="" | 
|---|
| 26 | .I $G(RES)'="" S RES=RES_SEPR_PSORES1 Q | 
|---|
| 27 | .S RES=PSORES1 | 
|---|
| 28 | K TEMP | 
|---|
| 29 | Q RES | 
|---|
| 30 | ; | 
|---|
| 31 | FINISH ;Finish rest of RXE 1 segment | 
|---|
| 32 | N PSOVAL1 S PSOVAL1=$P(VAL,SEPR) | 
|---|
| 33 | S WR="" | 
|---|
| 34 | S WR=$$GET^PSOVDF2(.GL,2,2) | 
|---|
| 35 | I $G(WR)'="" S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(PSOVAL1,SEPC,4)=WR,$P(PSOVAL1,SEPC,7)="FILL" | 
|---|
| 36 | ; (1~5-26.1) | 
|---|
| 37 | S WR=$$GET^PSOVDF2(.GL,3,5) | 
|---|
| 38 | I $G(WR)'="" D | 
|---|
| 39 | .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(PSOVAL1,SEPC,5)=WR,$P(PSOVAL1,SEPC,7)=$P(PSOVAL1,SEPC,7)_"/CANCEL" | 
|---|
| 40 | E  S WR=$$GET^PSOVDF2(.GL,2,6) I $G(WR)'="" D | 
|---|
| 41 | .  S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL^PSOVDF1(WR),$P(PSOVAL1,SEPC,5)=WR,$P(PSOVAL1,SEPC,7)=$P(PSOVAL1,SEPC,7)_"/EXPIRATION" | 
|---|
| 42 | S $P(VAL,SEPR)=PSOVAL1 | 
|---|
| 43 | S WR="" | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | REM ;Remarks for Original Fill | 
|---|
| 47 | S MSG="",CTR=0 | 
|---|
| 48 | S VAL=$$GET^PSOVDF2(.GL,3,7) | 
|---|
| 49 | I $G(VAL)="" Q | 
|---|
| 50 | S VAL=$$REPL^PSOVDF1(VAL) | 
|---|
| 51 | D PUT(3) | 
|---|
| 52 | S CTR=CTR+1,VAL=CTR D PUT(1) | 
|---|
| 53 | S VAL="RE"_SEPC_"REMARKS"_SEPC_SRC_"_12" D PUT(4) | 
|---|
| 54 | S MSG="NTE"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | DEL ;Deletion comments | 
|---|
| 58 | S MSG="" | 
|---|
| 59 | S VAL=$$GET^PSOVDF2(.GL,"D",1) | 
|---|
| 60 | I $G(VAL)="" Q | 
|---|
| 61 | S VAL=$$REPL^PSOVDF1(VAL) | 
|---|
| 62 | D PUT(3) | 
|---|
| 63 | S CTR=CTR+1,VAL=CTR D PUT(1) | 
|---|
| 64 | S VAL="DE"_SEPC_"DELETION COMMENTS"_SEPC_SRC_"_108" D PUT(4) | 
|---|
| 65 | S MSG="NTE"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 66 | Q | 
|---|
| 67 | ; | 
|---|
| 68 | CLOZ ; Clozapine Dosage | 
|---|
| 69 | S VAL=$$REPL^PSOVDF1(VAL) | 
|---|
| 70 | D PUT(5) | 
|---|
| 71 | S CTR=CTR+1,VAL=CTR D PUT(1) | 
|---|
| 72 | S VAL="NM" D PUT(2) | 
|---|
| 73 | S VAL="CLOZAPINE DOSAGE" D PUT(3) | 
|---|
| 74 | S VAL="MG/DAY" D PUT(6) | 
|---|
| 75 | S VAL="F" D PUT(11) | 
|---|
| 76 | S MSG="OBX"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 77 | Q | 
|---|
| 78 | ; | 
|---|
| 79 | WBC ; WBC results | 
|---|
| 80 | S VAL=$$REPL^PSOVDF1(VAL) | 
|---|
| 81 | D PUT(5) | 
|---|
| 82 | S CTR=CTR+1,VAL=CTR D PUT(1) | 
|---|
| 83 | S VAL="NM" D PUT(2) | 
|---|
| 84 | S VAL="WBC RESULTS" D PUT(3) | 
|---|
| 85 | S VAL="F" D PUT(11) | 
|---|
| 86 | ; (14-303) | 
|---|
| 87 | S VAL=$$GET^PSOVDF2(.GL,"SAND",3) | 
|---|
| 88 | I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL^PSOVDF1(VAL) D PUT(14) | 
|---|
| 89 | S MSG="OBX"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 90 | Q | 
|---|
| 91 | PRC ;Provider Comments, do not piece out data, can contain up-arrow | 
|---|
| 92 | S MSG="" | 
|---|
| 93 | I '$D(GL("PRC")) Q | 
|---|
| 94 | S VAL="" K TEMP M TEMP=GL("PRC") S VAL=$$SSETZ(.TEMP,1) | 
|---|
| 95 | I $G(VAL)="" Q | 
|---|
| 96 | D PUT(3) | 
|---|
| 97 | S CTR=CTR+1,VAL=CTR D PUT(1) | 
|---|
| 98 | S VAL="PR"_SEPC_"PROVIDER COMMENTS"_SEPC_HLINST_"_52.039_.01" D PUT(4) | 
|---|
| 99 | S MSG="NTE"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 100 | Q | 
|---|
| 101 | SSETZ(GLOBAL,P) ;Format Provider Comments | 
|---|
| 102 | N RES,PSOVPCOM,PSOVDFD1,X | 
|---|
| 103 | S (RES,X)="",PSOVDFD1=0 | 
|---|
| 104 | SSET10Z S PSOVDFD1=$O(GLOBAL(PSOVDFD1)) G SSETQZ:'PSOVDFD1 | 
|---|
| 105 | S PSOVPCOM=GLOBAL(PSOVDFD1,0) I PSOVPCOM="" G SSET10Z | 
|---|
| 106 | I $G(RES)'="" S RES=RES_" "_PSOVPCOM | 
|---|
| 107 | E  S RES=PSOVPCOM | 
|---|
| 108 | G SSET10Z | 
|---|
| 109 | SSETQZ ; | 
|---|
| 110 | I $G(RES)'="" S RES=$$REPL^PSOVDF1(RES) | 
|---|
| 111 | Q RES | 
|---|
| 112 | ; | 
|---|
| 113 | Q | 
|---|
| 114 | ; | 
|---|
| 115 | PUT(P) ; Put in MSG | 
|---|
| 116 | I $G(VAL)="" Q | 
|---|
| 117 | S $P(MSG,SEPF,P)=VAL | 
|---|
| 118 | Q | 
|---|
| 119 | ; | 
|---|
| 120 | SSET(GL,L) ;Instruction field | 
|---|
| 121 | N RES,X,Y | 
|---|
| 122 | S RES="",Y=0 | 
|---|
| 123 | Q:$G(L)="" RES | 
|---|
| 124 | F  S Y=$O(GL(Y)) Q:'Y  D | 
|---|
| 125 | . S X=GL(Y,0),X=$$REPL^PSOVDF1(X) I X'="" D | 
|---|
| 126 | . . S X=SEPC_X | 
|---|
| 127 | . . I $G(RES)'="" S RES=RES_SEPR_X_SEPC_L | 
|---|
| 128 | . . E  S RES=X_SEPC_L | 
|---|
| 129 | . . S CTR=CTR+1 | 
|---|
| 130 | Q RES | 
|---|
| 131 | ; | 
|---|
| 132 | SSETX(GLOBAL,L) ;Format Sig, don't piece out, can possibly contain up-arrow from Provider Comments | 
|---|
| 133 | Q:L="" | 
|---|
| 134 | N RES,PSOVSIG,PSOVDFD1,X | 
|---|
| 135 | S (RES,X)="",PSOVDFD1=0 | 
|---|
| 136 | SSET10X S PSOVDFD1=$O(GLOBAL(PSOVDFD1)) G SSETQX:'PSOVDFD1 | 
|---|
| 137 | S PSOVSIG=GLOBAL(PSOVDFD1,0) I PSOVSIG'="" D | 
|---|
| 138 | .S PSOVSIG=$$REPL^PSOVDF1(PSOVSIG) | 
|---|
| 139 | .I $G(RES)'="" S RES=RES_PSOVSIG | 
|---|
| 140 | .E  S RES=$S(L[115:SEPC,1:"")_PSOVSIG | 
|---|
| 141 | G SSET10X | 
|---|
| 142 | SSETQX I $G(RES)="" Q RES | 
|---|
| 143 | I L[115 S RES=RES_SEPC_L | 
|---|
| 144 | E  S RES=RES_SEPC_SEPC_L | 
|---|
| 145 | Q RES | 
|---|
| 146 | ; | 
|---|
| 147 | Q | 
|---|
| 148 | ORC13 ; | 
|---|
| 149 | S WR="",$P(WR,SEPC,2)=VAL | 
|---|
| 150 | S VAL=$P($G(^SC(VAL,0)),U) I $G(VAL)'="" S VAL=$$REPL^PSOVDF1(VAL),$P(WR,SEPC)=VAL | 
|---|
| 151 | S VAL=WR | 
|---|
| 152 | Q | 
|---|
| 153 | ; | 
|---|
| 154 | RXE1OF31 ; | 
|---|
| 155 | D RXE31A | 
|---|
| 156 | S:WR'="" VAL=WR_SEPR_VAL | 
|---|
| 157 | Q | 
|---|
| 158 | ; | 
|---|
| 159 | RXE31 ; | 
|---|
| 160 | S VAL=$P($G(^PSDRUG(PSOVDRUG,0)),"^"),VAL=$$REPL^PSOVDF1(VAL) | 
|---|
| 161 | S VAL=PSOVDRUG_SEPC_VAL_SEPC_HLINST_"_50_.01" | 
|---|
| 162 | Q | 
|---|
| 163 | ; | 
|---|
| 164 | RXE31A ; | 
|---|
| 165 | D RXE31 | 
|---|
| 166 | N CMOP S CMOP=$G(^PSDRUG(PSOVDRUG,"ND")) | 
|---|
| 167 | I $P(CMOP,"^",10)'="" S CMOP=$$REPL^PSOVDF1($P(CMOP,"^",10)),VAL=VAL_SEPR_CMOP_SEPC_SEPC_HLINST_"_50_27" | 
|---|
| 168 | Q | 
|---|
| 169 | ; | 
|---|
| 170 | RXE6 ; | 
|---|
| 171 | N DOSF,DOS,VDOS | 
|---|
| 172 | S DOSF="",VDOS=$$GET^PSOVDF2(.GL,"OR1",1) | 
|---|
| 173 | Q:VDOS="" | 
|---|
| 174 | I $G(VDOS) S DOS=$P($G(^PS(50.7,VDOS,0)),"^",2) D:$G(DOS) | 
|---|
| 175 | . S DOSF=$$REPL^PSOVDF1($P($G(^PS(50.606,DOS,0)),"^")) D:DOSF'="" | 
|---|
| 176 | . . S VAL=DOS_SEPC_DOSF_SEPC_HLINST_"_50.7_.02" | 
|---|
| 177 | . . S VDOS=$$GETVUID^XTID(50.7,.02,DOS) D:$P(VDOS,"^")'=0 | 
|---|
| 178 | . . . S VDOS=$P(VDOS,"^"),VDOS=$$REPL^PSOVDF1(VDOS) S VAL=VAL_SEPC_VDOS_SEPC_DOSF_SEPC_"99VA_50.7_.02" | 
|---|
| 179 | Q | 
|---|
| 180 | ; | 
|---|
| 181 | FT1A7 ; | 
|---|
| 182 | S TP=$$GET^PSOVDF2(.GL,"OR1",1) | 
|---|
| 183 | S:$G(TP) VAL=$$REPL^PSOVDF1($P($G(^PS(50.7,TP,0)),"^")) | 
|---|
| 184 | I VAL'="" S VAL=TP_SEPC_VAL_SEPC_SRC_"_39.2",VFT7=VAL | 
|---|
| 185 | Q | 
|---|
| 186 | ; | 
|---|
| 187 | FT1S2 ;  ORIGINAL SEQ# 2 | 
|---|
| 188 | S VAL=$$GET1^DIQ(52,PSOVDFD0_",",105,"I") Q:VAL="" | 
|---|
| 189 | S WR=$$GET1^DIQ(52,PSOVDFD0_",",105) Q:WR="" | 
|---|
| 190 | S MSG="",WR=$$REPL^PSOVDF1(WR) | 
|---|
| 191 | S VAL=VAL_SEPC_WR_SEPC_SRC_"_105" D PUT(7) | 
|---|
| 192 | S VAL=$G(CTR)+1 D PUT(1) | 
|---|
| 193 | S VAL=$$GET^PSOVDF2(.GL,2,2) | 
|---|
| 194 | I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL^PSOVDF1(VAL) D PUT(4) | 
|---|
| 195 | S VAL="CO" D PUT(6) | 
|---|
| 196 | S MSG="FT1"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 197 | Q | 
|---|
| 198 | ; | 
|---|
| 199 | FT1R ; REFILL & PARTIAL | 
|---|
| 200 | S VAL=$P(TP,U,11) Q:VAL="" | 
|---|
| 201 | S MSG="",VAL=$$REPL^PSOVDF1(VAL) D PUT(12) | 
|---|
| 202 | S VAL=PSOVDFD1 D PUT(1) | 
|---|
| 203 | S VAL=$P(TP,U,1) I VAL'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL^PSOVDF1(VAL) D PUT(4) | 
|---|
| 204 | S VAL="CG" D PUT(6) | 
|---|
| 205 | I $G(VFT7) S VAL=VFT7 D PUT(7) | 
|---|
| 206 | S MSG="FT1"_SEPF_MSG D OUT^PSOVDF2 | 
|---|
| 207 | Q | 
|---|
| 208 | ; | 
|---|
| 209 | NSET(GLOBAL) ;Verb-8, Noun-3, Schedule-7, Conjuntion-5 | 
|---|
| 210 | N I,J,K,L,M,N,O,P,X,Y,Z | 
|---|
| 211 | S (Z,X)="",Y=0,M=52.0113 | 
|---|
| 212 | NSET1 ; | 
|---|
| 213 | F  S Y=$O(GLOBAL(Y)) Q:'Y  D | 
|---|
| 214 | . S X=$G(GLOBAL(Y,0)) Q:X="" | 
|---|
| 215 | . F I=9,4,8,6 S N=I-1,O=M_"_"_N,L=HLINST_"_"_O D | 
|---|
| 216 | . . S J=$P($G(X),U,I),J=$$REPL^PSOVDF1(J) I J'="" D | 
|---|
| 217 | . . . S P=0 I I=6 S J=$$GET1^DIQ(M,Y_","_PSOVDFD0,N) D | 
|---|
| 218 | . . . . S K=$$GETVUID^XTID(M,N) I $P(K,"^")'=0 S K=$P(K,"^"),K=$$REPL^PSOVDF1(K),J=K_SEPC_J_SEPC_"99VA_",P=1 | 
|---|
| 219 | . . . S J=$S(P:"",1:SEPC)_J | 
|---|
| 220 | . . . I Z'="" S Z=Z_SEPR_J_$S(P:O,1:SEPC_L) | 
|---|
| 221 | . . . E  S Z=J_SEPC_$S(P:O,1:L) | 
|---|
| 222 | . . . S CTR=CTR+1 | 
|---|
| 223 | Q Z | 
|---|
| 224 | ; | 
|---|
| 225 | ORCCS ; ORC 25,4-6 - Checking the CMOP EVENT sub-file (#52.01) | 
|---|
| 226 | N X,Y,RF,VU,I,ST S I=0 | 
|---|
| 227 | F  S I=$O(GL(4,I)) Q:'I  S X=GL(4,I,0) I X'="" S RF=$P(X,"^",3),Y=$P(X,"^",4) D | 
|---|
| 228 | . I Y'="" S ST=$$GET1^DIQ(52.01,I_","_PSOVDFD0,3) I ST'="" S VU=$$GETVUID^XTID(52.01,3) D | 
|---|
| 229 | . . I $P(VU,"^")'=0 S VU=$P(VU,"^"),VU=$$REPL^PSOVDF1(VU) | 
|---|
| 230 | . . E  S VU="" | 
|---|
| 231 | . . S ST=$$REPL^PSOVDF1(ST) | 
|---|
| 232 | . . S VCMP(RF)=$S(VU'="":VU,1:Y)_SEPC_ST_SEPC_$S(VU'="":"99VA",1:HLINST)_"_52_400" | 
|---|
| 233 | Q | 
|---|
| 234 | ; | 
|---|
| 235 | ORC25 ; | 
|---|
| 236 | N PSOVALE S PSOVALE=$G(PSOVAR(52,PSOVEN,100,"E")),PSOVALE=$$REPL^PSOVDF1(PSOVALE) | 
|---|
| 237 | S PSOVLV=$$GETVUID^XTID(52,100,VAL) | 
|---|
| 238 | I $P($G(PSOVLV),"^")'=0 S PSOVLV=$P(PSOVLV,"^"),PSOVLV=$$REPL^PSOVDF1(PSOVLV) D  Q | 
|---|
| 239 | . S VAL=$G(PSOVLV)_SEPC_$G(PSOVALE)_SEPC_"99VA_52_100" | 
|---|
| 240 | I $G(VAL)'="" S VAL=$$REPL^PSOVDF1(VAL),VAL=VAL_SEPC_$G(PSOVALE)_SEPC_SRC_"_100" | 
|---|
| 241 | Q | 
|---|
| 242 | ; | 
|---|
| 243 | PREM ; | 
|---|
| 244 | S VAL="RE"_SEPC_"REMARKS"_SEPC_HLINST_"_52.2_.03" | 
|---|
| 245 | Q | 
|---|
| 246 | ; | 
|---|
| 247 | RREM ; | 
|---|
| 248 | S VAL="RE"_SEPC_"REMARKS"_SEPC_HLINST_"_52.1_3" | 
|---|
| 249 | Q | 
|---|
| 250 | ; | 
|---|