| 1 | PSODSPL ;IHS/DSD/JCM - DISPLAY RX PROFILE TO SCREEN ;03/07/93 18:11 | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**132**;DEC 1997 | 
|---|
| 3 | ; Input Variables: PSOSD(, | 
|---|
| 4 | ; Optional Inupt Variables: PSOOPT | 
|---|
| 5 | ; | 
|---|
| 6 | ; display profiles needs PSOOPT=3 from new PSOOPT=4 from refill, | 
|---|
| 7 | ; or PSOOPT=0 from anywhere | 
|---|
| 8 | ; PSOOPT=-1 to get numbered list but no refill/renew message | 
|---|
| 9 | ;--------------------------------------------------------------- | 
|---|
| 10 | START ; | 
|---|
| 11 | I '$G(PSOSD) W $C(7),!!,"This patient has no prescriptions",! G END | 
|---|
| 12 | D EOJ,SHOW | 
|---|
| 13 | END D EOJ | 
|---|
| 14 | Q | 
|---|
| 15 | ;----------------------------------------------------------------- | 
|---|
| 16 | SHOW ; | 
|---|
| 17 | S PSOPENFL=0 | 
|---|
| 18 | S (PSOSTA,PSODRUG)="",(PSOCNT,PSOQFLG)=0 | 
|---|
| 19 | D HD F PSCNT=0:0 S PSOSTA=$O(PSOSD(PSOSTA)) Q:PSOSTA=""!($G(PSOQFLG))  D STA F PSOCT=0:0 S PSODRUG=$O(PSOSD(PSOSTA,PSODRUG)) Q:PSODRUG=""  Q:PSOCNT>1000!PSOQFLG  D | 
|---|
| 20 | .S PSODATA=PSOSD(PSOSTA,PSODRUG),PSOCNT=PSOCNT+1 I PSOSTA="PENDING" D PEN Q | 
|---|
| 21 | .I PSOSTA="ZNONVA" D  Q | 
|---|
| 22 | ..W !,"  "_$P(PSODRUG,"^")_" "_$P(PSODATA,"^",6)_" "_$P(PSODATA,"^",8) | 
|---|
| 23 | ..I ($L("  "_$P(PSODRUG,"^")_" "_$P(PSODATA,"^",6)_" "_$P(PSODATA,"^",8))+20)>70 W ! | 
|---|
| 24 | ..W ?50,"Date Documented: "_$E($P(PSODATA,"^",9),4,5)_"/"_$E($P(PSODATA,"^",9),6,7)_"/"_$E($P(PSODATA,"^",9),2,3) | 
|---|
| 25 | .S:'$D(^PSRX(+PSODATA,0)) PSOCNT=PSOCNT-1 D:$D(^(0)) DISPL | 
|---|
| 26 | I PSOQFLG G SHOWX | 
|---|
| 27 | K DIR S DIR(0)="EA",DIR("A")="Press RETURN to continue: " D ^DIR ;S:'$D(DFN) DFN=PSODFN D:'$G(INPAT) GMRA^PSODEM | 
|---|
| 28 | SHOWX W ! K DIRUT,DTOUT,DUOUT,DIROUT S PSOCNT=PSOCNT-1 K PSODRUG | 
|---|
| 29 | Q | 
|---|
| 30 | ; | 
|---|
| 31 | HD ; | 
|---|
| 32 | I $Y+5>IOSL S (DX,DY)=0 X ^%ZOSF("XY") K DX,DY | 
|---|
| 33 | Q:$G(PSOPENFL)  K LINE | 
|---|
| 34 | W !!,?61,"ISSUE",?68,"LAST",?73,"REF DAY",!,?4,"RX #",?17,"DRUG",?54,"QTY",?58,"ST",?62,"DATE",?68,"FILL",?73,"REM",?77,"SUP" S $P(LINE,"-",80)="-" W !,LINE K LINE | 
|---|
| 35 | Q | 
|---|
| 36 | DISPL W ! I $G(PSOOPT) W $J(PSOCNT,2) | 
|---|
| 37 | S PSODQLZ=$L($P(PSODRUG,"^"))+$L($P(^PSRX(+PSODATA,0),"^",7)) | 
|---|
| 38 | W ?3,$P(^PSRX(+PSODATA,0),"^")_$S($G(^PSRX(+PSODATA,"IB")):"$",1:"") | 
|---|
| 39 | S PSOQTLZ=57-$L($P(^PSRX(+PSODATA,0),"^",7)) I PSODQLZ<39 W ?17,$P(PSODRUG,"^"),?PSOQTLZ,$P(^PSRX(+PSODATA,0),"^",7) | 
|---|
| 40 | E  W ?17,$P(PSODRUG,"^") | 
|---|
| 41 | N PSOCMOP | 
|---|
| 42 | I $D(^PSDRUG("AQ",$P(^PSRX(+PSODATA,0),"^",6))) S PSOCMOP=">" | 
|---|
| 43 | N X S X="PSXOPUTL" X ^%ZOSF("TEST") K X I $T D | 
|---|
| 44 | .N DA S DA=+PSODATA D ^PSXOPUTL K DA | 
|---|
| 45 | .I $G(PSXZ(PSXZ("L")))=0!($G(PSXZ(PSXZ("L")))=2) S PSOCMOP="T" | 
|---|
| 46 | .K PSXZ | 
|---|
| 47 | S STA="A^N^R^H^N^S^^^^^^E^DC^^DC^DE^H^P^" W ?58,$P(STA,"^",$P(PSODATA,"^",2)+1) W $G(PSOCMOP) K STA | 
|---|
| 48 | S PSOID=$P(^PSRX(+PSODATA,0),"^",13),PSOLF=+^(3) W ?61,$E(PSOID,4,5)_"-"_$E(PSOID,6,7) | 
|---|
| 49 | F PSOX=0:0 S PSOX=$O(^PSRX(+PSODATA,1,PSOX)) Q:'PSOX  I +^PSRX(+PSODATA,1,PSOX,0)=PSOLF,$P(^PSRX(+PSODATA,1,PSOX,0),"^",16) S PSOLF=PSOLF_"^R" | 
|---|
| 50 | I '$O(^PSRX(+PSODATA,1,0)),$P(^PSRX(+PSODATA,2),"^",15) S PSOLF=PSOLF_"^R" | 
|---|
| 51 | W ?67,$S(+PSOLF:$E(PSOLF,4,5)_"-"_$E(PSOLF,6,7),1:"  -  "),$P(PSOLF,"^",2) | 
|---|
| 52 | W ?74,$J($P(PSODATA,"^",6),2) | 
|---|
| 53 | W ?78,$J($P(PSODATA,"^",8),2) | 
|---|
| 54 | I PSODQLZ>38 S PSOQTLZ=PSOQTLZ-5 W !?PSOQTLZ,"Qty: ",$P(^PSRX(+PSODATA,0),"^",7) | 
|---|
| 55 | K PSODQLZ,PSOQTLZ,PSODATA,PSOID,PSOLF,PSOX | 
|---|
| 56 | ; | 
|---|
| 57 | EOF I $Y+5>IOSL,$O(PSOSD(PSOSTA,PSODRUG))]"" K DIR S DIR(0)="E" D ^DIR K DIR S:$D(DUOUT) PSOHI=PSOCNT,PSOQFLG=1 K DIRUT,DTOUT,DUOUT,DIROUT D:'PSOQFLG HD,STA | 
|---|
| 58 | ; | 
|---|
| 59 | Q | 
|---|
| 60 | STA ; | 
|---|
| 61 | Q:$G(PSOQFLG) | 
|---|
| 62 | I PSOSTA="ZNONVA" S ZSTA=PSOSTA,PSOSTA="Non-VA MEDS (Not dispensed by VA)" | 
|---|
| 63 | S STR=($L(PSOSTA)+IOM/2)-$L(PSOSTA),STP=IOM-(STR+$L(PSOSTA)) W ! F I=1:1:STR W "-" | 
|---|
| 64 | W PSOSTA F I=1:1:STP W "-" | 
|---|
| 65 | I $G(ZSTA)]"" W "-" S PSOSTA=ZSTA K ZSTA | 
|---|
| 66 | Q | 
|---|
| 67 | EOJ ; | 
|---|
| 68 | K PSOHI,PSOQFLG,PSODRUG,PSODATA,PSOID,PSOLF,PSOCNT,PSOLO1,PSOPENFL | 
|---|
| 69 | Q | 
|---|
| 70 | PEN ; | 
|---|
| 71 | N PSCMOPR S PSCMOPR=0 I $P($G(PSODATA),"^",11),$D(^PSDRUG("AQ",$P(PSODATA,"^",11))) S PSCMOPR=1 | 
|---|
| 72 | W ! I $G(PSOOPT) W $J(PSOCNT,2) | 
|---|
| 73 | S PSOPENFL=1 | 
|---|
| 74 | S PSODQLZ=$L($P(PSODRUG,"^")),PSOQTLZ=$L($P(PSODATA,"^",8)) | 
|---|
| 75 | W ?3,$P(PSODRUG,"^") I +$G(PSODQLZ)>37 W ! | 
|---|
| 76 | ;W ?49,"ISDT: ",$S('$P(PSODATA,"^",9):"     ",1:$E($P(PSODATA,"^",9),4,5)_"-"_$E($P(PSODATA,"^",9),6,7))_"  QTY: "_$S(PSOQTLZ=1:"  ",PSOQTLZ=2:" ",1:"")_$P(PSODATA,"^",8)_"  REF: "_$J($P(PSODATA,"^",6),2) | 
|---|
| 77 | W ?42,"QTY: ",$P(PSODATA,"^",8),?59,"ISDT: ",$S('$P(PSODATA,"^",9):"     ",1:$E($P(PSODATA,"^",9),4,5)_"-"_$E($P(PSODATA,"^",9),6,7))_$S($G(PSCMOPR):"> ",1:"  ")_"REF: "_$J($P(PSODATA,"^",6),2) | 
|---|
| 78 | K PSODATA,PSOID,PSOLF,PSODQLZ,PSOQTLZ D EOF | 
|---|
| 79 | Q | 
|---|