| 1 | TMGPSSDE ;TMG/kst/Custom version of PSSDEE ;03/25/06
 | 
|---|
| 2 |          ;;1.0;TMG-LIB;**1**;04/25/04
 | 
|---|
| 3 |  
 | 
|---|
| 4 | PSSDEE  ;BIR/WRT-MASTER DRUG ENTER/EDIT ROUTINE ;01/21/00
 | 
|---|
| 5 |         ;;1.0;PHARMACY DATA MANAGEMENT;**3,5,15,16,20,22,28,32,34,33,38,57,47,68,61**;9/30/97
 | 
|---|
| 6 |  
 | 
|---|
| 7 |         ;"*****************************************************************
 | 
|---|
| 8 |         ;"* Custom version of code by Kevin Toppenberg, MD
 | 
|---|
| 9 |         ;"* to allow customization of the code.
 | 
|---|
| 10 |         ;"*
 | 
|---|
| 11 |         ;"*****************************************************************
 | 
|---|
| 12 |  
 | 
|---|
| 13 |         ;"Reference to REACT1^PSNOUT supported by DBIA #2080
 | 
|---|
| 14 |         ;"Reference to $$UP^XLFSTR(X) supported by DBIA #10104
 | 
|---|
| 15 |         ;"Reference to $$PSJDF^PSNAPIS(P1,P3) supported by DBIA #2531
 | 
|---|
| 16 |         ;
 | 
|---|
| 17 | BEGIN   set PSSFLAG=0
 | 
|---|
| 18 |         do ^PSSDEE2  ;"kill vars
 | 
|---|
| 19 |         set PSSZ=1
 | 
|---|
| 20 |         F PSSXX=1:1 do  quit:PSSFLAG
 | 
|---|
| 21 |         . kill DA
 | 
|---|
| 22 |         . do ASK  ;" ask users all questions
 | 
|---|
| 23 | DONE    do ^PSSDEE2 ;" kill vars
 | 
|---|
| 24 |         kill PSSFLAG
 | 
|---|
| 25 |         quit
 | 
|---|
| 26 |         ;
 | 
|---|
| 27 |         ;"=================================================================
 | 
|---|
| 28 | ASK     W !
 | 
|---|
| 29 |         set DIC="^PSDRUG("
 | 
|---|
| 30 |         set DIC(0)="QEALMNTV" ;"query/echo/ask/learn=OK/multIndex/IntNumOK/T->searchAllIndexes/verify
 | 
|---|
| 31 |         set DLAYGO=50  ;"force allowing adding record to file 50
 | 
|---|
| 32 |         set DIC("T")="" ;"present every match to the lookup value
 | 
|---|
| 33 |         do ^DIC
 | 
|---|
| 34 |         kill DIC
 | 
|---|
| 35 |         if Y<0 set PSSFLAG=1 quit
 | 
|---|
| 36 |         ;
 | 
|---|
| 37 |         set (FLG1,FLG2,FLG3,FLG4,FLG5,FLG6,FLG7,FLAG,FLGKY,FLGOI)=0
 | 
|---|
| 38 |         kill ^TMP($J,"ADD")
 | 
|---|
| 39 |         kill ^TMP($J,"SOL")
 | 
|---|
| 40 |         ;
 | 
|---|
| 41 |         set DA=+Y
 | 
|---|
| 42 |         set DISPDRG=DA
 | 
|---|
| 43 |         L +^PSDRUG(DISPDRG):0
 | 
|---|
| 44 |         if '$T W !,$C(7),"Another person is editing this one." quit
 | 
|---|
| 45 |         set PSSHUIDG=1
 | 
|---|
| 46 |         set PSSNEW=$P(Y,"^",3)
 | 
|---|
| 47 |         do USE
 | 
|---|
| 48 |         do NOPE
 | 
|---|
| 49 |         do COMMON
 | 
|---|
| 50 |         do DEA
 | 
|---|
| 51 |         do MF
 | 
|---|
| 52 |         kill PSSHUIDG
 | 
|---|
| 53 |         do DRG^PSSHUIDG(DISPDRG,PSSNEW)
 | 
|---|
| 54 |         L -^PSDRUG(DISPDRG)
 | 
|---|
| 55 |         kill FLG3,PSSNEW
 | 
|---|
| 56 |         quit
 | 
|---|
| 57 |         ;
 | 
|---|
| 58 |         ;"=================================================================
 | 
|---|
| 59 | COMMON  set DIE="^PSDRUG("
 | 
|---|
| 60 |         set DR="[PSSCOMMON]"
 | 
|---|
| 61 |         do ^DIE
 | 
|---|
| 62 |         quit:$data(Y)!($data(DTOUT))
 | 
|---|
| 63 |         W:'$data(Y) !,"PRICE PER DISPENSE UNIT: "
 | 
|---|
| 64 |         S:'$data(^PSDRUG(DA,660)) $P(^PSDRUG(DA,660),"^",6)=""
 | 
|---|
| 65 |         W:'$data(Y) $P(^PSDRUG(DA,660),"^",6)
 | 
|---|
| 66 |         do DEA
 | 
|---|
| 67 |         do CK
 | 
|---|
| 68 |         do ASKND
 | 
|---|
| 69 |         do OIKILL^PSSDEE1
 | 
|---|
| 70 |         do COMMON1
 | 
|---|
| 71 |         quit
 | 
|---|
| 72 |         ;
 | 
|---|
| 73 | COMMON1 W !,"Just a reminder...you are editing ",$P(^PSDRUG(DISPDRG,0),"^"),"."
 | 
|---|
| 74 |         set (PSSVVDA,DA)=DISPDRG
 | 
|---|
| 75 |         do DOSN^PSSDOS
 | 
|---|
| 76 |         set DA=PSSVVDA
 | 
|---|
| 77 |         kill PSSVVDA
 | 
|---|
| 78 |         do USE
 | 
|---|
| 79 |         do APP
 | 
|---|
| 80 |         do ORDITM^PSSDEE1
 | 
|---|
| 81 |         quit
 | 
|---|
| 82 |         ;
 | 
|---|
| 83 | CK      do DSPY^PSSDEE1
 | 
|---|
| 84 |         set FLGNDF=0
 | 
|---|
| 85 |         quit
 | 
|---|
| 86 |         ;
 | 
|---|
| 87 | ASKND   set %=-1
 | 
|---|
| 88 |         if $data(^XUSEC("PSNMGR",DUZ)) do
 | 
|---|
| 89 |         . do MESSAGE^PSSDEE1
 | 
|---|
| 90 |         . W !!,"Do you wish to match/rematch to NATIONAL DRUG file"
 | 
|---|
| 91 |         . set %=1
 | 
|---|
| 92 |         . S:FLGMTH=1 %=2
 | 
|---|
| 93 |         . do YN^DICN
 | 
|---|
| 94 |         if %=0 W !,"If you answer ""yes"", you will attempt to match to NDF." G ASKND
 | 
|---|
| 95 |         if %=2 kill X,Y quit
 | 
|---|
| 96 |         if %<0 kill X,Y quit
 | 
|---|
| 97 |         if %=1 do
 | 
|---|
| 98 |         . do RSET^PSSDEE1
 | 
|---|
| 99 |         . do EN1^PSSUTIL(DISPDRG,1)
 | 
|---|
| 100 |         . set X="PSNOUT"
 | 
|---|
| 101 |         . X ^%ZOSF("TEST")
 | 
|---|
| 102 |         . if  do
 | 
|---|
| 103 |         . . do REACT1^PSNOUT
 | 
|---|
| 104 |         . . set DA=DISPDRG
 | 
|---|
| 105 |         . . if $data(^PSDRUG(DA,"ND")),$P(^PSDRUG(DA,"ND"),"^",2)]"" do ONE
 | 
|---|
| 106 |         quit
 | 
|---|
| 107 |         ;
 | 
|---|
| 108 | ONE     set PSNP=$G(^PSDRUG(DA,"I"))
 | 
|---|
| 109 |         if PSNP,PSNP<DT quit
 | 
|---|
| 110 |         W !,"You have just VERIFIED this match and MERGED the entry."
 | 
|---|
| 111 |         do CKDF
 | 
|---|
| 112 |         do EN2^PSSUTIL(DISPDRG,1)
 | 
|---|
| 113 |         S:'$data(OLDDF) OLDDF=""
 | 
|---|
| 114 |         if OLDDF'=NEWDF do
 | 
|---|
| 115 |         . set FLGNDF=1
 | 
|---|
| 116 |         . do WR
 | 
|---|
| 117 |         quit
 | 
|---|
| 118 |         ;
 | 
|---|
| 119 | CKDF    set NWND=^PSDRUG(DA,"ND")
 | 
|---|
| 120 |         set NWPC1=$P(NWND,"^",1)
 | 
|---|
| 121 |         set NWPC3=$P(NWND,"^",3)
 | 
|---|
| 122 |         set DA=NWPC1
 | 
|---|
| 123 |         set K=NWPC3
 | 
|---|
| 124 |         set X=$$PSJDF^PSNAPIS(DA,K)
 | 
|---|
| 125 |         set NEWDF=$P(X,"^",2)
 | 
|---|
| 126 |         set DA=DISPDRG
 | 
|---|
| 127 |         N PSSK
 | 
|---|
| 128 |         do PKIND^PSSDDUT2
 | 
|---|
| 129 |         quit
 | 
|---|
| 130 |         ;
 | 
|---|
| 131 | NOPE    set ZAPFLG=0
 | 
|---|
| 132 |         if '$data(^PSDRUG(DA,"ND")),$data(^PSDRUG(DA,2)),$P(^PSDRUG(DA,2),"^",1)']"" do DFNULL
 | 
|---|
| 133 |         if '$data(^PSDRUG(DA,"ND")),'$data(^PSDRUG(DA,2)) do DFNULL
 | 
|---|
| 134 |         if $data(^PSDRUG(DA,"ND")),$P(^PSDRUG(DA,"ND"),"^",2)']"",$data(^PSDRUG(DA,2)),$P(^PSDRUG(DA,2),"^",1)']"" do DFNULL
 | 
|---|
| 135 |         quit
 | 
|---|
| 136 |         ;
 | 
|---|
| 137 | DFNULL  set OLDDF=""
 | 
|---|
| 138 |         set ZAPFLG=1
 | 
|---|
| 139 |         quit
 | 
|---|
| 140 |         ;
 | 
|---|
| 141 | ZAPIT   if $data(ZAPFLG),ZAPFLG=1,FLGNDF=1,OLDDF'=NEWDF do CKIV^PSSDEE1
 | 
|---|
| 142 |         quit
 | 
|---|
| 143 |         ;
 | 
|---|
| 144 | APP     W !!,"MARK THIS DRUG AND EDIT IT FOR: "
 | 
|---|
| 145 |         do CHOOSE
 | 
|---|
| 146 |         quit
 | 
|---|
| 147 |         ;
 | 
|---|
| 148 | CHOOSE  if $data(^XUSEC("PSORPH",DUZ))!($data(^XUSEC("PSXCMOPMGR",DUZ))) W !,"O  - Outpatient" set FLG1=1
 | 
|---|
| 149 |         if $data(^XUSEC("PSJU MGR",DUZ)) W !,"U  - Unit Dose" set FLG2=1
 | 
|---|
| 150 |         if $data(^XUSEC("PSJI MGR",DUZ)) W !,"I  - IV" set FLG3=1
 | 
|---|
| 151 |         if $data(^XUSEC("PSGWMGR",DUZ)) W !,"W  - Ward Stock" set FLG4=1
 | 
|---|
| 152 |         if $data(^XUSEC("PSAMGR",DUZ))!($data(^XUSEC("PSA ORDERS",DUZ))) W !,"D  - Drug Accountability" set FLG5=1
 | 
|---|
| 153 |         if $data(^XUSEC("PSDMGR",DUZ)) W !,"C  - Controlled Substances" set FLG6=1
 | 
|---|
| 154 |         if $data(^XUSEC("PSORPH",DUZ)) W !,"X  - Non-VA Med" set FLG7=1
 | 
|---|
| 155 |         if FLG1,FLG2,FLG3,FLG4,FLG5,FLG6 set FLAG=1
 | 
|---|
| 156 |         if FLAG W !,"A  - ALL"
 | 
|---|
| 157 |         W !
 | 
|---|
| 158 |         if 'FLG1,'FLG2,'FLG3,'FLG4,'FLG5,'FLG6,'FLG7 do  quit
 | 
|---|
| 159 |         . W !,"You do not have the proper keys to continue. Sorry, this concludes your editing session.",!
 | 
|---|
| 160 |         . set FLGKY=1
 | 
|---|
| 161 |         . kill DIRUT,X
 | 
|---|
| 162 |         if FLGKY'=1 D
 | 
|---|
| 163 |         . kill DIR
 | 
|---|
| 164 |         . set DIR(0)="FO^1:30"
 | 
|---|
| 165 |         . set DIR("A")="Enter your choice(s) separated by commas "
 | 
|---|
| 166 |         . F  do ^DIR quit:$$CHECK($$UP^XLFSTR(X))
 | 
|---|
| 167 |         . set PSSANS=X
 | 
|---|
| 168 |         . set PSSANS=$$UP^XLFSTR(PSSANS)
 | 
|---|
| 169 |         . do BRANCH
 | 
|---|
| 170 |         . do BRANCH1
 | 
|---|
| 171 |         quit
 | 
|---|
| 172 |         ;
 | 
|---|
| 173 | CHECK(X)        ;" Validates Application Use response
 | 
|---|
| 174 |         N CHECK,I,C
 | 
|---|
| 175 |         set CHECK=1 if X=""!(Y["^")!($data(DIRUT)) quit CHECK
 | 
|---|
| 176 |         F I=1:1:$L(X,",") D
 | 
|---|
| 177 |         . set C=$P(X,",",I) W !?43,C," - "
 | 
|---|
| 178 |         . if C="O",FLG1 W "Outpatient" quit
 | 
|---|
| 179 |         . if C="U",FLG2 W "Unit Dose" quit
 | 
|---|
| 180 |         . if C="I",FLG3 W "IV" quit
 | 
|---|
| 181 |         . if C="W",FLG4 W "Ward Stock" quit
 | 
|---|
| 182 |         . if C="D",FLG5 W "Drug Accountability" quit
 | 
|---|
| 183 |         . if C="C",FLG6 W "Controlled Substances" quit
 | 
|---|
| 184 |         . if C="X",FLG7 W "Non-VA Med" quit
 | 
|---|
| 185 |         . W "Invalid Entry",$C(7) set CHECK=0
 | 
|---|
| 186 |         quit CHECK
 | 
|---|
| 187 |         ;
 | 
|---|
| 188 | BRANCH  D:PSSANS["O" OP
 | 
|---|
| 189 |         D:PSSANS["U" UD
 | 
|---|
| 190 |         D:PSSANS["I" IV
 | 
|---|
| 191 |         D:PSSANS["W" WS
 | 
|---|
| 192 |         D:PSSANS["D" DACCT
 | 
|---|
| 193 |         D:PSSANS["C" CS
 | 
|---|
| 194 |         D:PSSANS["X" NVM
 | 
|---|
| 195 |         quit
 | 
|---|
| 196 |         ;
 | 
|---|
| 197 | BRANCH1 if FLAG,PSSANS["A" do
 | 
|---|
| 198 |         . do OP
 | 
|---|
| 199 |         . do UD
 | 
|---|
| 200 |         . do IV
 | 
|---|
| 201 |         . do WS
 | 
|---|
| 202 |         . do DACCT
 | 
|---|
| 203 |         . do CS
 | 
|---|
| 204 |         . do NVM
 | 
|---|
| 205 |         quit
 | 
|---|
| 206 |         ;
 | 
|---|
| 207 | OP      if FLG1 D
 | 
|---|
| 208 |         . W !,"** You are NOW editing OUTPATIENT fields. **"
 | 
|---|
| 209 |         . set PSIUDA=DA
 | 
|---|
| 210 |         . set PSIUX="O^Outpatient Pharmacy"
 | 
|---|
| 211 |         . do ^PSSGIU
 | 
|---|
| 212 |         . if %=1 D
 | 
|---|
| 213 |         . . set DIE="^PSDRUG(",DR="[PSSOP]"
 | 
|---|
| 214 |         . . do ^DIE
 | 
|---|
| 215 |         . . kill DIR
 | 
|---|
| 216 |         . . do OPEI
 | 
|---|
| 217 |         . . do ASKCMOP
 | 
|---|
| 218 |         . . set X="PSOCLO1"
 | 
|---|
| 219 |         . . X ^%ZOSF("TEST")
 | 
|---|
| 220 |         . . if  do ASKCLOZ set FLGOI=1
 | 
|---|
| 221 |         if FLG1 do CKCMOP
 | 
|---|
| 222 |         quit
 | 
|---|
| 223 |         ;
 | 
|---|
| 224 | CKCMOP  if $P($G(^PSDRUG(DISPDRG,2)),"^",3)'["O" do
 | 
|---|
| 225 |         . S:$data(^PSDRUG(DISPDRG,3)) $P(^PSDRUG(DISPDRG,3),"^",1)=0
 | 
|---|
| 226 |         . K:$data(^PSDRUG("AQ",DISPDRG)) ^PSDRUG("AQ",DISPDRG)
 | 
|---|
| 227 |         . set DA=DISPDRG
 | 
|---|
| 228 |         . do ^PSSREF
 | 
|---|
| 229 |         quit
 | 
|---|
| 230 |         ;
 | 
|---|
| 231 | UD      if FLG2 do
 | 
|---|
| 232 |         . W !,"** You are NOW editing UNIT DOSE fields. **"
 | 
|---|
| 233 |         . set PSIUDA=DA
 | 
|---|
| 234 |         . set PSIUX="U^Unit Dose"
 | 
|---|
| 235 |         . do ^PSSGIU
 | 
|---|
| 236 |         . if %=1 do
 | 
|---|
| 237 |         . . set DIE="^PSDRUG("
 | 
|---|
| 238 |         . . set DR="62.05;212.2"
 | 
|---|
| 239 |         . . do ^DIE
 | 
|---|
| 240 |         . . set DIE="^PSDRUG("
 | 
|---|
| 241 |         . . set DR="212"
 | 
|---|
| 242 |         . . set DR(2,50.0212)=".01;1"
 | 
|---|
| 243 |         . . do ^DIE
 | 
|---|
| 244 |         . . set FLGOI=1
 | 
|---|
| 245 |         quit
 | 
|---|
| 246 |         ;
 | 
|---|
| 247 | IV      if FLG3
 | 
|---|
| 248 |         W !,"** You are NOW editing IV fields. **"
 | 
|---|
| 249 |         S (PSIUDA,PSSDA)=DA
 | 
|---|
| 250 |         set PSIUX="I^IV"
 | 
|---|
| 251 |         do ^PSSGIU
 | 
|---|
| 252 |         if %=1 do IV1 set FLGOI=1
 | 
|---|
| 253 |         quit
 | 
|---|
| 254 |         ;
 | 
|---|
| 255 | IV1     kill PSSIVOUT ;"This variable controls the selection process loop.
 | 
|---|
| 256 |         W !,"Edit Additives or Solutions: "
 | 
|---|
| 257 |         kill DIR
 | 
|---|
| 258 |         set DIR(0)="SO^A:ADDITIVES;S:SOLUTIONS;"
 | 
|---|
| 259 |         do ^DIR
 | 
|---|
| 260 |         quit:$data(DIRUT)
 | 
|---|
| 261 |         set PSSASK=Y(0)
 | 
|---|
| 262 |         D:PSSASK="ADDITIVES" ENA^PSSVIDRG
 | 
|---|
| 263 |         D:PSSASK="SOLUTIONS" ENS^PSSVIDRG
 | 
|---|
| 264 |         if '$data(PSSIVOUT) G IV1
 | 
|---|
| 265 |         kill PSSIVOUT
 | 
|---|
| 266 |         quit
 | 
|---|
| 267 |         ;
 | 
|---|
| 268 | WS      if FLG4
 | 
|---|
| 269 |         W !,"** You are NOW editing WARD STOCK fields. **"
 | 
|---|
| 270 |         set DIE="^PSDRUG("
 | 
|---|
| 271 |         set DR="300;301;302"
 | 
|---|
| 272 |         do ^DIE
 | 
|---|
| 273 |         quit
 | 
|---|
| 274 |         ;
 | 
|---|
| 275 | DACCT   if FLG5
 | 
|---|
| 276 |         W !,"** You are NOW editing DRUG ACCOUNTABILITY fields. **"
 | 
|---|
| 277 |         set DIE="^PSDRUG("
 | 
|---|
| 278 |         set DR="441"
 | 
|---|
| 279 |         do ^DIE
 | 
|---|
| 280 |         set DIE="^PSDRUG("
 | 
|---|
| 281 |         set DR="9"
 | 
|---|
| 282 |         set DR(2,50.1)="1;2;400;401;402;403;404;405"
 | 
|---|
| 283 |         do ^DIE
 | 
|---|
| 284 |         quit
 | 
|---|
| 285 |         ;
 | 
|---|
| 286 | CS      if FLG6
 | 
|---|
| 287 |         W !,"** You are NOW Marking/Unmarking for CONTROLLED SUBS. **"
 | 
|---|
| 288 |         set PSIUDA=DA
 | 
|---|
| 289 |         set PSIUX="N^Controlled Substances"
 | 
|---|
| 290 |         do ^PSSGIU
 | 
|---|
| 291 |         quit
 | 
|---|
| 292 |         ;
 | 
|---|
| 293 | NVM     if FLG7
 | 
|---|
| 294 |         W !,"** You are NOW Marking/Unmarking for NON-VA MEDS. **"
 | 
|---|
| 295 |         set PSIUDA=DA
 | 
|---|
| 296 |         set PSIUX="X^Non-VA Med"
 | 
|---|
| 297 |         do ^PSSGIU
 | 
|---|
| 298 |         quit
 | 
|---|
| 299 |         ;
 | 
|---|
| 300 | ASKCMOP if $data(^XUSEC("PSXCMOPMGR",DUZ)) do
 | 
|---|
| 301 |         . W !!,"Do you wish to mark to transmit to CMOP? "
 | 
|---|
| 302 |         . kill DIR
 | 
|---|
| 303 |         . set DIR(0)="Y"
 | 
|---|
| 304 |         . set DIR("?")="If you answer ""yes"", you will attempt to mark this drug to transmit to CMOP."
 | 
|---|
| 305 |         do ^DIR
 | 
|---|
| 306 |         if "Nn"[X kill X,Y,DIRUT quit
 | 
|---|
| 307 |         if "Yy"[X do
 | 
|---|
| 308 |         . set PSXFL=0
 | 
|---|
| 309 |         . do TEXT^PSSMARK
 | 
|---|
| 310 |         . H 7
 | 
|---|
| 311 |         . N PSXUDA
 | 
|---|
| 312 |         . S (PSXUM,PSXUDA)=DA
 | 
|---|
| 313 |         . set PSXLOC=$P(^PSDRUG(DA,0),"^")
 | 
|---|
| 314 |         . set PSXGOOD=0
 | 
|---|
| 315 |         . set PSXF=0
 | 
|---|
| 316 |         . set PSXBT=0
 | 
|---|
| 317 |         . do BLD^PSSMARK
 | 
|---|
| 318 |         . do PICK2^PSSMARK
 | 
|---|
| 319 |         . set DA=PSXUDA
 | 
|---|
| 320 |         quit
 | 
|---|
| 321 |         ;
 | 
|---|
| 322 | ASKCLOZ W !!,"Do you wish to mark/unmark as a LAB MONITOR or CLOZAPINE DRUG? "
 | 
|---|
| 323 |         kill DIR
 | 
|---|
| 324 |         set DIR(0)="Y"
 | 
|---|
| 325 |         set DIR("?")="If you answer ""yes"", you will have the opportunity to edit LAB MONITOR or CLOZAPINE fields."
 | 
|---|
| 326 |         do ^DIR
 | 
|---|
| 327 |         if "Nn"[X kill X,Y,DIRUT quit
 | 
|---|
| 328 |         if "Yy"[X set NFLAG=0 do MONCLOZ
 | 
|---|
| 329 |         quit
 | 
|---|
| 330 |         ;
 | 
|---|
| 331 | MONCLOZ kill PSSAST
 | 
|---|
| 332 |         do FLASH
 | 
|---|
| 333 |         W !,"Mark/Unmark for Lab Monitor or Clozapine: "
 | 
|---|
| 334 |         kill DIR
 | 
|---|
| 335 |         set DIR(0)="S^L:LAB MONITOR;C:CLOZAPINE;"
 | 
|---|
| 336 |         do ^DIR
 | 
|---|
| 337 |         quit:$data(DIRUT)
 | 
|---|
| 338 |         set PSSAST=Y(0)
 | 
|---|
| 339 |         D:PSSAST="LAB MONITOR" ^PSSLAB
 | 
|---|
| 340 |         D:PSSAST="CLOZAPINE" CLOZ
 | 
|---|
| 341 |         quit
 | 
|---|
| 342 |         ;
 | 
|---|
| 343 | FLASH   kill LMFLAG,CLFALG,WHICH
 | 
|---|
| 344 |         set WHICH=$P($G(^PSDRUG(DISPDRG,"CLOZ1")),"^")
 | 
|---|
| 345 |         set LMFLAG=0
 | 
|---|
| 346 |         set CLFLAG=0
 | 
|---|
| 347 |         if WHICH="PSOCLO1" set CLFLAG=1
 | 
|---|
| 348 |         if WHICH'="PSOCLO1" S:WHICH'="" LMFLAG=1
 | 
|---|
| 349 |         quit
 | 
|---|
| 350 |         ;
 | 
|---|
| 351 | CLOZ    quit:NFLAG
 | 
|---|
| 352 |         quit:$data(DTOUT)
 | 
|---|
| 353 |         quit:$data(DIRUT)
 | 
|---|
| 354 |         quit:$data(DUOUT)
 | 
|---|
| 355 |         W !,"** You are NOW editing CLOZAPINE fields. **"
 | 
|---|
| 356 |         do ^PSSCLDRG
 | 
|---|
| 357 |         quit
 | 
|---|
| 358 |         ;
 | 
|---|
| 359 | USE     kill PACK
 | 
|---|
| 360 |         set PACK=""
 | 
|---|
| 361 |         S:$P($G(^PSDRUG(DISPDRG,"PSG")),"^",2)]"" PACK="W"
 | 
|---|
| 362 |         if $data(^PSDRUG(DISPDRG,2)) set PACK=PACK_$P(^PSDRUG(DISPDRG,2),"^",3)
 | 
|---|
| 363 |         if PACK'="" D
 | 
|---|
| 364 |         . W $C(7) N XX W !! F XX=1:1:79 W "*"
 | 
|---|
| 365 |         . W !,"This entry is marked for the following PHARMACY packages: "
 | 
|---|
| 366 |         . do USE1
 | 
|---|
| 367 |         quit
 | 
|---|
| 368 |         ;
 | 
|---|
| 369 | USE1    W:PACK["O" !," Outpatient"
 | 
|---|
| 370 |         W:PACK["U" !," Unit Dose"
 | 
|---|
| 371 |         W:PACK["I" !," IV"
 | 
|---|
| 372 |         W:PACK["W" !," Ward Stock"
 | 
|---|
| 373 |         W:PACK["D" !," Drug Accountability"
 | 
|---|
| 374 |         W:PACK["N" !," Controlled Substances"
 | 
|---|
| 375 |         W:PACK["X" !," Non-VA Med"
 | 
|---|
| 376 |         W:'$data(PACK) !," NONE"
 | 
|---|
| 377 |         if PACK'["O",PACK'["U",PACK'["I",PACK'["W",PACK'["D",PACK'["N",PACK'["X" W !," NONE"
 | 
|---|
| 378 |         quit
 | 
|---|
| 379 |         ;
 | 
|---|
| 380 | WR      if ^XMB("NETNAME")'["CMOP-" do
 | 
|---|
| 381 |         . if OLDDF="" quit
 | 
|---|
| 382 |         . W !,"The dosage form has changed from "_OLDDF_" to "_NEWDF_" due to",!
 | 
|---|
| 383 |         . w "matching/rematching to NDF.",!
 | 
|---|
| 384 |         . w "You will need to rematch to Orderable Item.",!
 | 
|---|
| 385 |         quit
 | 
|---|
| 386 | PRIMDRG if $data(^PS(59.7,1,20)),$P(^PS(59.7,1,20),"^",1)=4!($P(^PS(59.7,1,20),"^",1)=4.5) do
 | 
|---|
| 387 |         . if $data(^PSDRUG(DISPDRG,2)) do
 | 
|---|
| 388 |         . . set VAR=$P(^PSDRUG(DISPDRG,2),"^",3)
 | 
|---|
| 389 |         . . if VAR["U"!(VAR["I") do
 | 
|---|
| 390 |         . . . do PRIM1
 | 
|---|
| 391 |         quit
 | 
|---|
| 392 |         ;
 | 
|---|
| 393 | PRIM1   W !!,"You need to match this drug to ""PRIMARY DRUG"" file as well.",!
 | 
|---|
| 394 |         set DIE="^PSDRUG(",DR="64"
 | 
|---|
| 395 |         set DA=DISPDRG
 | 
|---|
| 396 |         do ^DIE
 | 
|---|
| 397 |         kill VAR
 | 
|---|
| 398 |         quit
 | 
|---|
| 399 |         ;
 | 
|---|
| 400 | MF      if $P($G(^PS(59.7,1,80)),"^",2)>1 if $data(^PSDRUG(DISPDRG,2)) DO
 | 
|---|
| 401 |         . set PSSOR=$P(^PSDRUG(DISPDRG,2),"^",1)
 | 
|---|
| 402 |         . if PSSOR]"" DO
 | 
|---|
| 403 |         . . DO EN^PSSPOIDT(PSSOR)
 | 
|---|
| 404 |         . . DO EN2^PSSHL1(PSSOR,"MUP")
 | 
|---|
| 405 |         quit
 | 
|---|
| 406 |         ;
 | 
|---|
| 407 | MFA     if $P($G(^PS(59.7,1,80)),"^",2)>1 do
 | 
|---|
| 408 |         . set PSSOR=$P(^PS(52.6,ENTRY,0),"^",11)
 | 
|---|
| 409 |         . set PSSDD=$P(^PS(52.6,ENTRY,0),"^",2)
 | 
|---|
| 410 |         . if PSSOR]"" do
 | 
|---|
| 411 |         . . do EN^PSSPOIDT(PSSOR)
 | 
|---|
| 412 |         . . do EN2^PSSHL1(PSSOR,"MUP")
 | 
|---|
| 413 |         . . do MFDD
 | 
|---|
| 414 |         quit
 | 
|---|
| 415 |         ;
 | 
|---|
| 416 | MFS     if $P($G(^PS(59.7,1,80)),"^",2)>1 do
 | 
|---|
| 417 |         . set PSSOR=$P(^PS(52.7,ENTRY,0),"^",11)
 | 
|---|
| 418 |         . set PSSDD=$P(^PS(52.7,ENTRY,0),"^",2)
 | 
|---|
| 419 |         . if PSSOR]"" do
 | 
|---|
| 420 |         . . do EN^PSSPOIDT(PSSOR)
 | 
|---|
| 421 |         . . do EN2^PSSHL1(PSSOR,"MUP")
 | 
|---|
| 422 |         . . do MFDD
 | 
|---|
| 423 |         quit
 | 
|---|
| 424 |         ;
 | 
|---|
| 425 | MFDD    if $data(^PSDRUG(PSSDD,2)) do
 | 
|---|
| 426 |         . set PSSOR=$P(^PSDRUG(PSSDD,2),"^",1)
 | 
|---|
| 427 |         . if PSSOR]"" do
 | 
|---|
| 428 |         . . do EN^PSSPOIDT(PSSOR)
 | 
|---|
| 429 |         . . do EN2^PSSHL1(PSSOR,"MUP")
 | 
|---|
| 430 |         quit
 | 
|---|
| 431 |         ;
 | 
|---|
| 432 | OPEI    if $data(^PSDRUG(DISPDRG,"ND")),$P(^PSDRUG(DISPDRG,"ND"),"^",10)]"" do
 | 
|---|
| 433 |         . set DIE="^PSDRUG("
 | 
|---|
| 434 |         . set DR="28"
 | 
|---|
| 435 |         . set DA=DISPDRG
 | 
|---|
| 436 |         . do ^DIE
 | 
|---|
| 437 |         quit
 | 
|---|
| 438 |         ;
 | 
|---|
| 439 | DEA     ;
 | 
|---|
| 440 |         if $P($G(^PSDRUG(DISPDRG,3)),"^")=1,($P(^PSDRUG(DISPDRG,0),"^",3)[1!($P(^(0),"^",3)[2)) do DSH
 | 
|---|
| 441 |         quit
 | 
|---|
| 442 |         ;
 | 
|---|
| 443 | DSH     W !!,"****************************************************************************"
 | 
|---|
| 444 |         W !,"This entry contains a ""1"" or a ""2"" in the ""DEA, SPECIAL HDLG""",!
 | 
|---|
| 445 |         w "field, therefore this item has been UNMARKED for CMOP transmission."
 | 
|---|
| 446 |         W !,"****************************************************************************",!
 | 
|---|
| 447 |         S $P(^PSDRUG(DISPDRG,3),"^")=0
 | 
|---|
| 448 |         kill ^PSDRUG("AQ",DISPDRG)
 | 
|---|
| 449 |         set DA=DISPDRG
 | 
|---|
| 450 |         N %
 | 
|---|
| 451 |         do ^PSSREF
 | 
|---|
| 452 |         quit
 | 
|---|