| 1 | PSOORNEW ;BIR/SAB - display orders from oerr ;4/25/07 8:50am | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**11,23,27,32,55,46,71,90,94,106,131,133,143,237,222,258,206**;DEC 1997;Build 39 | 
|---|
| 3 | ;^PS(50.7 -2223 | 
|---|
| 4 | ;^PSDRUG -221 | 
|---|
| 5 | ;^PS(50.606 -2174 | 
|---|
| 6 | ;^PS(55 -2228 | 
|---|
| 7 | ; | 
|---|
| 8 | ;PSO*237 quit Finish if Today > Issue date + 365 | 
|---|
| 9 | ; | 
|---|
| 10 | DSPL I $G(PSODSPL) S VALMBCK="Q" K PSODSPL,PSOANSQD Q | 
|---|
| 11 | Q:'$D(PSOLMC)  K ^TMP("PSOPO",$J) S PSOLMC=PSOLMC+1 | 
|---|
| 12 | I $D(CLOZPAT) S PSONEW("DAYS SUPPLY")=$S($G(PSONEW("DAYS SUPPLY")):PSONEW("DAYS SUPPLY"),1:7) G OI | 
|---|
| 13 | S PSONEW("DAYS SUPPLY")=$S($G(PSONEW("DAYS SUPPLY")):PSONEW("DAYS SUPPLY"),+$G(^PS(55,PSODFN,"PS"))&($P(^PS(53,+$G(^PS(55,PSODFN,"PS")),0),"^",3))&('$G(PSONEW("DAYS SUPPLY"))):$P(^PS(53,+$G(^PS(55,PSODFN,"PS")),0),"^",3),1:30) | 
|---|
| 14 | OI I '$G(PSODRUG("OI")) D | 
|---|
| 15 | .S (OI,PSODRUG("OI"))=$P(OR0,"^",8),PSODRUG("OIN")=$P(^PS(50.7,$P(OR0,"^",8),0),"^"),OID=$P(OR0,"^",9) | 
|---|
| 16 | .I $P($G(OR0),"^",9) S POERR=1,DREN=$P(OR0,"^",9) D DRG^PSOORDRG K POERR | 
|---|
| 17 | I '$D(CLOZPAT) I $G(PSODRUG("DEA"))["A",$G(PSODRUG("DEA"))'["B"!($G(PSODRUG("DEA"))["F")!($G(PSODRUG("DEA"))[1)!($G(PSODRUG("DEA"))[2) S PSONEW("# OF REFILLS")=0 | 
|---|
| 18 | I $D(CLOZPAT) S PSONEW("# OF REFILLS")=$S($D(PSONEW("# OF REFILLS")):PSONEW("# OF REFILLS"),$G(CLOZPAT)=2&($P(OR0,"^",11)>2):3,$G(CLOZPAT)&($P(OR0,"^",11)>1):1,1:0) | 
|---|
| 19 | S IEN=0 D OBX^PSOORFI1,DIN^PSONFI(PSODRUG("OI"),$S($G(PSODRUG("IEN")):PSODRUG("IEN"),1:"")) | 
|---|
| 20 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="*(1) Orderable Item: "_$P(^PS(50.7,PSODRUG("OI"),0),"^")_" "_$P(^PS(50.606,$P(^(0),"^",2),0),"^")_NFIO | 
|---|
| 21 | S:NFIO["<DIN>" NFIO=IEN_","_($L(^TMP("PSOPO",$J,IEN,0))-4) | 
|---|
| 22 | K LST I $G(PSODRUG("NAME"))]"" D  G PT | 
|---|
| 23 | .S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" (2)"_$S($D(^PSDRUG("AQ",PSODRUG("IEN"))):"      CMOP ",1:"           ")_"Drug: "_PSODRUG("NAME")_NFID | 
|---|
| 24 | .S:NFID["<DIN>" NFID=IEN_","_($L(^TMP("PSOPO",$J,IEN,0))-4) | 
|---|
| 25 | .I $P($G(^PSDRUG(PSODRUG("IEN"),0)),"^",10)]"" S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="       Drug Message:" D DRGMSG | 
|---|
| 26 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" (2)           Drug: No Dispense Drug Selected" | 
|---|
| 27 | PT D DOSE2^PSOORFI4 | 
|---|
| 28 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" (4)   Pat Instruct:" D:$O(PSONEW("SIG",0)) INST^PSOORFI4 | 
|---|
| 29 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="  Provider Comments:" S TY=3 D INST^PSOORFI1 | 
|---|
| 30 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="       Instructions:" S TY=2 D INST^PSOORFI1 | 
|---|
| 31 | K PSOELSE S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="                SIG:" | 
|---|
| 32 | F I=0:0 S I=$O(SIG(I)) Q:'I  S SIG=SIG(I) D | 
|---|
| 33 | .F SG=1:1:$L(SIG) S:$L(^TMP("PSOPO",$J,IEN,0)_" "_$P(SIG," ",SG))>80 IEN=IEN+1,$P(^TMP("PSOPO",$J,IEN,0)," ",20)=" " S:$P(SIG," ",SG)'="" ^TMP("PSOPO",$J,IEN,0)=$G(^TMP("PSOPO",$J,IEN,0))_" "_$P(SIG," ",SG) | 
|---|
| 34 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" (5) Patient Status: "_$P($G(^PS(53,+PSONEW("PATIENT STATUS"),0)),"^") | 
|---|
| 35 | K PSOELSE I $G(PSONEW("ISSUE DATE"))']"" S PSOELSE=1 S IEN=IEN+1,(PSOID,Y)=$E($P(OR0,"^",6),1,7) X ^DD("DD") S PSONEW("ISSUE DATE")=Y,^TMP("PSOPO",$J,IEN,0)=" (4)     Issue Date: "_Y | 
|---|
| 36 | I '$G(PSOELSE) S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" (6)     Issue Date: "_PSONEW("ISSUE DATE") | 
|---|
| 37 | K PSOELSE I $G(PSORX("FILL DATE"))']"" S PSOELSE=1 D | 
|---|
| 38 | .S (Y,PSORX("FILL DATE"))=$S($E($P(OR0,"^",6),1,7)<DT:DT,1:$E($P(OR0,"^",6),1,7)) X ^DD("DD") S PSONEW("FILL DATE")=Y,^TMP("PSOPO",$J,IEN,0)=^TMP("PSOPO",$J,IEN,0)_"                  (5) Fill Date: "_Y | 
|---|
| 39 | I '$G(PSOELSE) S Y=PSORX("FILL DATE") X ^DD("DD") S PSORX("FILL DATE")=Y,^TMP("PSOPO",$J,IEN,0)=^TMP("PSOPO",$J,IEN,0)_"       (7) Fill Date: "_PSORX("FILL DATE") | 
|---|
| 40 | I $P(OR0,"^",18) S IEN=IEN+1,Y=$P(OR0,"^",18) X ^DD("DD") S $P(^TMP("PSOPO",$J,IEN,0)," ",39)="Effective Date: "_Y | 
|---|
| 41 | I $D(CLOZPAT) D ELIG^PSOORFI2 S:'$D(PSONEW("QTY")) PSONEW("QTY")=0 | 
|---|
| 42 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)=" (8)    Days Supply: "_PSONEW("DAYS SUPPLY") | 
|---|
| 43 | S ^TMP("PSOPO",$J,IEN,0)=^TMP("PSOPO",$J,IEN,0)_"               (9)   QTY"_$S($P($G(^PSDRUG(+$G(PSODRUG("IEN")),660)),"^",8)]"":" ("_$P($G(^PSDRUG(+PSODRUG("IEN"),660)),"^",8)_")",1:" (  )") | 
|---|
| 44 | S ^TMP("PSOPO",$J,IEN,0)=^TMP("PSOPO",$J,IEN,0)_": "_$S($G(PSONEW("QTY"))]"":PSONEW("QTY"),1:$P(OR0,"^",10)) | 
|---|
| 45 | I $P($G(^PSDRUG(+$G(PSODRUG("IEN")),5)),"^")]"" D | 
|---|
| 46 | .S $P(RN," ",79)=" ",IEN=IEN+1 | 
|---|
| 47 | .S ^TMP("PSOPO",$J,IEN,0)=$E(RN,$L("QTY DSP MSG: "_$P(^PSDRUG(PSODRUG("IEN"),5),"^"))+1,79)_"QTY DSP MSG: "_$P(^PSDRUG(PSODRUG("IEN"),5),"^") K RN | 
|---|
| 48 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="       Provider ordered "_+$P(OR0,"^",11)_" refills" | 
|---|
| 49 | D:$D(CLOZPAT) PQTY^PSOORFI4 | 
|---|
| 50 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="(10)   # of Refills: "_$S($G(PSONEW("# OF REFILLS"))]"":PSONEW("# OF REFILLS"),1:$P(OR0,"^",11))_"               (11)   Routing: "_$S($G(PSONEW("MAIL/WINDOW"))="M":"MAIL",1:"WINDOW") | 
|---|
| 51 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="(12)         Clinic: "_PSORX("CLINIC") | 
|---|
| 52 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="(13)       Provider: "_PSONEW("PROVIDER NAME") | 
|---|
| 53 | I $P($G(^VA(200,$S($G(PSONEW("PROVIDER")):PSONEW("PROVIDER"),1:$P(OR0,"^",5)),"PS")),"^",7)&($P($G(^("PS")),"^",8)) D | 
|---|
| 54 | .S IEN=IEN+1,PSONEW("COSIGNING PROVIDER")=$S($G(PSONEW("COSIGNING PROVIDER")):PSONEW("COSIGNING PROVIDER"),1:$P(^("PS"),"^",8)) | 
|---|
| 55 | .S ^TMP("PSOPO",$J,IEN,0)="       Cos-Provider: "_$P(^VA(200,PSONEW("COSIGNING PROVIDER"),0),"^") | 
|---|
| 56 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="(14)         Copies: "_$S($G(PSONEW("COPIES")):PSONEW("COPIES"),1:1) | 
|---|
| 57 | S PSONEW("REMARKS")=$S($G(PSONEW("REMARKS"))]"":PSONEW("REMARKS"),$P(OR0,"^",17)="C":"Administered in Clinic.",1:"") | 
|---|
| 58 | S IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="(15)        Remarks:" | 
|---|
| 59 | I $G(PSONEW("REMARKS"))]"" D | 
|---|
| 60 | .F SG=1:1:$L(PSONEW("REMARKS")) S:$L(^TMP("PSOPO",$J,IEN,0)_" "_$P(PSONEW("REMARKS")," ",SG))>80 IEN=IEN+1,$P(^TMP("PSOPO",$J,IEN,0)," ",20)=" " D | 
|---|
| 61 | ..S:$P(PSONEW("REMARKS")," ",SG)'="" ^TMP("PSOPO",$J,IEN,0)=$G(^TMP("PSOPO",$J,IEN,0))_" "_$P(PSONEW("REMARKS")," ",SG) | 
|---|
| 62 | I $G(PSOSIGFL)!(PSODRUG("OI")'=$P(OR0,"^",8)) S PSONEW("CLERK CODE")=DUZ,PSORX("CLERK CODE")=$P(^VA(200,DUZ,0),"^"),VALMSG="This change will create a new prescription!" | 
|---|
| 63 | S $P(RN," ",35)=" ",IEN=IEN+1,^TMP("PSOPO",$J,IEN,0)="   Entry By: "_$P(^VA(200,PSONEW("CLERK CODE"),0),"^")_$E(RN,$L($P(^VA(200,PSONEW("CLERK CODE"),0),"^"))+1,35) | 
|---|
| 64 | S Y=$P(OR0,"^",12) X ^DD("DD") S ^TMP("PSOPO",$J,IEN,0)=^TMP("PSOPO",$J,IEN,0)_"Entry Date: "_$E($P(OR0,"^",12),4,5)_"/"_$E($P(OR0,"^",12),6,7)_"/"_$E($P(OR0,"^",12),2,3)_" "_$P(Y,"@",2) K RN | 
|---|
| 65 | I PSOLMC<2 D ^PSOLMPO1 S VALMBCK="Q",PSOLMC=0 | 
|---|
| 66 | S:PSOLMC>1 VALMBCK="R" | 
|---|
| 67 | Q | 
|---|
| 68 | ORCHK D PROVCOM^PSOORFI4,ORCHK^PSOORFI4 | 
|---|
| 69 | Q | 
|---|
| 70 | EDT D KV S DIR("A",1)="* Indicates which fields will create an new Order",DIR("A")="Select Field to Edit by number",DIR(0)="LO^1:15" D ^DIR Q:$D(DTOUT)!($D(DUOUT)) | 
|---|
| 71 | EDTSEL N LST,FLD,OUT D KV S OUT=0 | 
|---|
| 72 | I +Y S LST=Y D FULL^VALM1 N PSODOSE M PSODOSE=PSONEW D  G DSPL | 
|---|
| 73 | .F FLD=1:1:$L(LST,",") Q:$P(LST,",",FLD)']""!(OUT)  D @(+$P(LST,",",FLD)) D:$P(LST,",",FLD)=8 REF D KV | 
|---|
| 74 | E  S VALMBCK="" Q | 
|---|
| 75 | Q | 
|---|
| 76 | ACP ; | 
|---|
| 77 | I $D(CLOZPAT),+$G(PSONEW("QTY"))=0 S VALMSG="Unable to calculate the quantity, enter a quantity" G DSPL | 
|---|
| 78 | S (PSODIR("DFLG"),PSORX("DFLG"),PSODIR("QFLD"))=0,ACP=1 D ORCHK | 
|---|
| 79 | G:$G(PSONEW("QFLG")) DSPL | 
|---|
| 80 | I $G(PSODIR("DFLG"))!$G(PSORX("DFLG")) Q | 
|---|
| 81 | I $G(PSONEW("FLD"))!($G(PSODRUG("NAME"))']"")!('$O(SIG(0))) G DSPL | 
|---|
| 82 | I $G(PSODRUG("NAME"))]"",'$G(ORCHK)!($G(ORDRG)'=PSODRUG("NAME")) D  I $G(PSORX("DFLG")) D CLEAN^PSOVER1 G DSPL | 
|---|
| 83 | .D POST^PSODRG S:'$G(PSORX("DFLG")) ORCHK=1,ORDRG=PSODRUG("NAME") | 
|---|
| 84 | I '$D(PSONEW("RX #")) S PSOFROM="NEW",RTN=$S($P($G(PSOPAR),"^",7):"AUTO^PSONRXN",1:"MANUAL^PSONRXN") D @RTN Q:PSONEW("QFLG")  I '$P($G(PSOPAR),"^",7) S PSOX=PSONEW("RX #") D CHECK^PSONRXN | 
|---|
| 85 | D RXNCHK^PSOORNE1 I $G(PSONEW("QFLG")) S PSONEW("DFLG")=1 Q | 
|---|
| 86 | I DT>$$FMADD^XLFDT($P(OR0,"^",6),365) D EXPR^PSONEW2 G DSPL | 
|---|
| 87 | D STOP^PSONEW2,DISPLAY^PSONEW2,^PSONEWF | 
|---|
| 88 | I $G(PSOCPZ("DFLG")) W !!,"No action taken!",! K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR,KV K PSOCPZ("DFLG"),DRET,PSOANSQD S VALMBCK="Q" Q | 
|---|
| 89 | K PSOCPZ("DFLG") D KV S DIR(0)="Y",DIR("A")="Are you sure you want to Accept this Order",DIR("B")="NO" D ^DIR I $D(DIRUT) D KV K DRET,PSOANSQ,PSOANSQD S VALMBCK="Q" Q | 
|---|
| 90 | D KV I 'Y K PSOANSQ G DSPL | 
|---|
| 91 | I $G(PSONEW("MAIL/WINDOW"))["W" D:$P($G(PSOPAR),"^",12)  S BINGCRT="Y",BINGRTE="W",PSORX("MAIL/WINDOW")="WINDOW" K RTN | 
|---|
| 92 | .W ! K DIR,DIRUT S DIR(0)="52,35O" | 
|---|
| 93 | .S:$G(PSORX("METHOD OF PICK-UP"))]"" DIR("B")=PSORX("METHOD OF PICK-UP") D ^DIR I $D(DIRUT) K DIR,DIRUT Q | 
|---|
| 94 | .S (PSONEW("METHOD OF PICK-UP"),PSORX("METHOD OF PICK-UP"))=Y K X,Y | 
|---|
| 95 | S PSONEW("POE")=1 D EN^PSON52(.PSONEW) G:$G(PSONEW("DFLG")) ABORT D DCORD^PSONEW2 | 
|---|
| 96 | D NPSOSD^PSOUTIL(.PSONEW),FULL^VALM1 K PSORX("MAIL/WINDOW") | 
|---|
| 97 | D EOJ^PSONEW | 
|---|
| 98 | ABORT S VALMBCK="Q",DIR(0)="E",DIR("A")="Press Return to Continue" D ^DIR,CLEAN^PSOVER1,KV | 
|---|
| 99 | Q | 
|---|
| 100 | KV K DIRUT,DUOUT,DTOUT,DIR | 
|---|
| 101 | Q | 
|---|
| 102 | REF D REF^PSOORFI4 | 
|---|
| 103 | Q | 
|---|
| 104 | 1 N PSOBDR,PSOBDRG S PSOBDRG=1 D 1^PSOORNW2 Q  ;oi | 
|---|
| 105 | ; | 
|---|
| 106 | 4 D INS^PSOORNW2 Q | 
|---|
| 107 | ; | 
|---|
| 108 | 3 D DOSE^PSOORED4(.PSONEW) Q | 
|---|
| 109 | ; | 
|---|
| 110 | 6 D 4^PSOORNW2 Q  ;idt | 
|---|
| 111 | ; | 
|---|
| 112 | 7 D 5^PSOORNW2 Q  ;fdt | 
|---|
| 113 | ; | 
|---|
| 114 | 5 D 3^PSOORNW2 Q  ;pstat | 
|---|
| 115 | ; | 
|---|
| 116 | 13 D 12^PSOORNW2 Q  ;doc | 
|---|
| 117 | ; | 
|---|
| 118 | 12 D 11^PSOORNW2 Q  ;cli | 
|---|
| 119 | ; | 
|---|
| 120 | 2 N PSOCSIG I '$G(PSOBDRG) N PSOBDR,PSOBDRG S PSOBDRG=1 | 
|---|
| 121 | D 2^PSOORNW1 Q:$G(PSOQFLG)  D EN^PSODIAG  ;drg/ICD | 
|---|
| 122 | I $G(PSOCSIG) K PSOCSIG G 3 | 
|---|
| 123 | Q | 
|---|
| 124 | ; | 
|---|
| 125 | 9 D 8^PSOORNW2 Q  ;qty | 
|---|
| 126 | ; | 
|---|
| 127 | 8 D 7^PSOORNW2 Q  ;ds | 
|---|
| 128 | ; | 
|---|
| 129 | 10 D 9^PSOORNW2 Q  ;#rfs | 
|---|
| 130 | ; | 
|---|
| 131 | 14 D 13^PSOORNW2 Q  ;cop | 
|---|
| 132 | ; | 
|---|
| 133 | 11 D 10^PSOORNW2 Q  ;m/w | 
|---|
| 134 | ; | 
|---|
| 135 | 15 D 14^PSOORNW2 Q  ;rem | 
|---|
| 136 | ; | 
|---|
| 137 | DRGMSG ; | 
|---|
| 138 | F SG=1:1:$L($P(^PSDRUG(PSODRUG("IEN"),0),"^",10)) S:$L(^TMP("PSOPO",$J,IEN,0)_" "_$P($P(^PSDRUG(PSODRUG("IEN"),0),"^",10)," ",SG))>80 IEN=IEN+1,$P(^TMP("PSOPO",$J,IEN,0)," ",20)=" " D | 
|---|
| 139 | .S:$P($P(^PSDRUG(PSODRUG("IEN"),0),"^",10)," ",SG)'="" ^TMP("PSOPO",$J,IEN,0)=$G(^TMP("PSOPO",$J,IEN,0))_" "_$P($P(^PSDRUG(PSODRUG("IEN"),0),"^",10)," ",SG) | 
|---|
| 140 | K SG Q | 
|---|