[613] | 1 | PSDOPTI ;BIR/LTL - Review OP Transactions by Inventory Type ; 29 Aug 94
|
---|
| 2 | ;;3.0; CONTROLLED SUBSTANCES ;**18,55**;13 Feb 97
|
---|
| 3 | ;
|
---|
| 4 | ;References to ^PSD(58.8, covered by DBIA2711
|
---|
| 5 | ;References to DD(58.81 and ^PSD(58.81 are covered by DBIA2808
|
---|
| 6 | ;References to ^PSDRUG( are covered by DBIA221
|
---|
| 7 | ;References to ^PSI(58.16 are covered by DBIA213
|
---|
| 8 | ;References to ^PSRX( are covered by DBIA986
|
---|
| 9 | S CNT=0 W !!,"You may select one, several, or ^ALL Inventory Types."
|
---|
| 10 | N PSDI S PSDI=0
|
---|
| 11 | INV F S DIC="^PSI(58.16,",DIC(0)="AEQ",DIC("A")="Please Select Inventory Type: " W ! D ^DIC K DIC G:X'="^ALL"&(Y<1)&('CNT) END Q:Y<0 S PSDI(+Y)=$P(Y,U,2),CNT=CNT+1
|
---|
| 12 | I X="^ALL" F S PSDI=$O(^PSI(58.16,PSDI)) Q:'PSDI S PSDI(PSDI)=$P($G(^PSI(58.16,PSDI,0)),U)
|
---|
| 13 | S CNT=0 W !!,"Now, you may select one, several, or ^ALL drugs."
|
---|
| 14 | CHKD F S DIC="^PSD(58.8,+PSDLOC,1,",DIC(0)="AEQ",DIC("A")="Please Select "_PSDLOCN_"'s Drug: ",DIC("S")="I $S($G(^(""I"")):$G(^(""I""))>DT,1:1)" W ! D ^DIC K DIC G:X'="^ALL"&(Y<1)&('CNT) END Q:Y<0 D
|
---|
| 15 | .I '$O(^PSD(58.81,"F",+Y,0)) W !!,"There have been no transactions for this drug.",!! Q
|
---|
| 16 | .S PSD(1)=0 F S PSD(1)=$O(^PSD(58.8,PSDLOC,1,+Y,2,PSD(1))) S:$D(PSDI(+PSD(1))) PSD(2)=PSD(1) Q:$G(PSD(2))!('PSD(1))
|
---|
| 17 | .I '$G(PSD(2)) W !!,"Not in selected Inventory Type(s)",!! Q
|
---|
| 18 | .S PSD=$P($G(^PSDRUG(+Y,0)),U),CNT=CNT+1
|
---|
| 19 | .S PSD=$S(PSD]"":PSD,1:"UNKNOWN DRUG #"_+Y)
|
---|
| 20 | .S ^TMP("PSD",$J,PSDI(PSD(2)),PSD,+Y)="" K PSD
|
---|
| 21 | I X="^ALL" F S PSDU=$O(^PSD(58.8,+PSDLOC,1,PSDU)) Q:'PSDU D
|
---|
| 22 | .Q:'$O(^PSD(58.81,"F",PSDU,0))
|
---|
| 23 | .S PSD(1)=0 F S PSD(1)=$O(^PSD(58.8,PSDLOC,1,PSDU,2,PSD(1))) S:$D(PSDI(+PSD(1))) PSD(2)=PSD(1) Q:$G(PSD(2))!('PSD(1))
|
---|
| 24 | .Q:'$G(PSD(2))
|
---|
| 25 | .S PSD=$P($G(^PSDRUG(PSDU,0)),U)
|
---|
| 26 | .S PSD=$S(PSD]"":PSD,1:"UNKNOWN DRUG #"_PSDU)
|
---|
| 27 | .S ^TMP("PSD",$J,PSDI(PSD(2)),PSD,PSDU)="" K PSD
|
---|
| 28 | S DIR(0)="S^1:Sort by Rx #;2:Sort by Date Posted"
|
---|
| 29 | S DIR("A")="Within Drug, Sort by",DIR("B")=1
|
---|
| 30 | S DIR("?")="For each drug, do you want the transactions listed in the order they were posted or by Rx #?"
|
---|
| 31 | D ^DIR K DIR G:$D(DIRUT) END I Y=1 S PSDI=1 G ^PSDOPTX
|
---|
| 32 | S DIR(0)="D^2910501:NOW:AEPT",DIR("A")="Beginning date@time",DIR("?")="I will list Outpatient transactions for your selected drug(s) within your selected date@time range" W ! D ^DIR G:Y<1 END
|
---|
| 33 | S (PSDT,PSDTB)=Y,PSDTB(2)=Y(0),DIR(0)="D^"_PSDT_":NOW:AEPT"
|
---|
| 34 | S DIR("A")="Ending date@time"
|
---|
| 35 | W ! D ^DIR K DIR G:Y<1 END S PSDTB(1)=Y,PSDTB(3)=Y(0)
|
---|
| 36 | S:'$P(PSDTB(1),".",2) PSDTB(1)=PSDTB(1)+.999999
|
---|
| 37 | S Y=$P($G(^PSD(58.8,+PSDLOC,2)),"^",9),C=$P(^DD(58.8,24,0),"^",2) D Y^DIQ S PSDEV=Y
|
---|
| 38 | DEV ;asks device and queuing info
|
---|
| 39 | K IO("Q") N %ZIS,IOP,POP S %ZIS="Q",%ZIS("B")=PSDEV W ! D ^%ZIS I POP W !,"NO DEVICE SELECTED OR OUTPUT PRINTED!" Q
|
---|
| 40 | I $D(IO("Q")) N ZTDESC,ZTIO,ZTRTN,ZTSAVE,ZTDTH,ZTSK S ZTRTN="START^PSDOPTI",ZTDESC="Drug OP transaction review" D SAVE D ^%ZTLOAD,HOME^%ZIS S PSDOUT=1 G END
|
---|
| 41 | START ;compiles and prints output
|
---|
| 42 | U IO N LN,PSDR,PG S (PG,PSDOUT)=0 D HEADER S (PSD,PSDU)=0
|
---|
| 43 | F S PSD=$O(^TMP("PSD",$J,PSD)) Q:PSD']"" F S PSDU=$O(^TMP("PSD",$J,PSD,PSDU)) Q:PSDU']"" S PSDU(1)=$O(^TMP("PSD",$J,PSD,PSDU,0)) D G:PSDOUT END S PSDT=PSDTB,PSDT(1)=0
|
---|
| 44 | LOOP .F S PSDT=$O(^PSD(58.81,"ACT",PSDT)) W:$E(IOST)="C" "." Q:'PSDT!(PSDT>PSDTB(1)) D:$O(^PSD(58.81,"ACT",PSDT,0))=PSDLOC&($O(^PSD(58.81,"ACT",PSDT,PSDLOC,0))=PSDU(1))&($O(^PSD(58.81,"ACT",PSDT,PSDLOC,+PSDU(1),6,0))) Q:PSDOUT
|
---|
| 45 | ..S PSDR(3)=+$O(^PSD(58.81,"ACT",PSDT,PSDLOC,+PSDU(1),6,0))
|
---|
| 46 | ..S PSDR(2)=$G(^PSD(58.81,PSDR(3),0))
|
---|
| 47 | ..S PSDR(4)=$G(^PSD(58.81,PSDR(3),6))
|
---|
| 48 | ..D:$Y+6>IOSL HEADER Q:PSDOUT
|
---|
| 49 | ..S PSDT(1)=$G(PSDT(1))+1 W:PSDT(1)=1 !,PSDU,?60,PSD,!
|
---|
| 50 | ..S Y=$E($P(PSDR(2),U,4),1,12) X ^DD("DD") W !,Y,?19
|
---|
| 51 | ..S DFN=$P($G(^PSRX(+$P(PSDR(4),U),0)),U,2)
|
---|
| 52 | ..N C S Y=DFN,C=$P(^DD(58.81,73,0),U,2) D Y^DIQ
|
---|
| 53 | ..W $P(PSDR(4),U,5),?28,Y
|
---|
| 54 | ..D PID^VADPT6 W " ("_VA("BID")_")",?60
|
---|
| 55 | ..I $P(PSDR(4),U,2) S Y=$P($G(^PSRX(+$P(PSDR(4),U),1,+$P(PSDR(4),U,2),0)),U,18) X ^DD("DD") W Y
|
---|
| 56 | ..I $P(PSDR(4),U,4) S Y=$P($G(^PSRX(+$P(PSDR(4),U),"P",+$P(PSDR(4),U,4),0)),U,19) X ^DD("DD") W Y
|
---|
| 57 | ..I '$P(PSDR(4),U,2)&('$P(PSDR(4),U,4)) S Y=$P($G(^PSRX(+$P(PSDR(4),U),2)),U,13) X ^DD("DD") W Y
|
---|
| 58 | ..W !,"Qty: ",$P(PSDR(2),U,6)," Bal: ",$P(PSDR(2),U,10)-$P(PSDR(2),U,6),?22,"RPH=> ",$P($G(^VA(200,+$P(PSDR(2),U,7),0)),U),?60
|
---|
| 59 | ..W $S($P(PSDR(4),U,2):"Refill #"_$P(PSDR(4),U,2),$P(PSDR(4),U,4):"Partial #"_$P(PSDR(4),U,4),1:"Original")
|
---|
| 60 | ..W !,LN,!
|
---|
| 61 | END W:$E(IOST)'="C" @IOF
|
---|
| 62 | I $E(IOST)="C",'PSDOUT S DIR(0)="EA",DIR("A")="END OF REPORT! Press <RET> to return to the menu." D ^DIR
|
---|
| 63 | D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
|
---|
| 64 | D KVAR^VADPT K IO("Q"),VA("PID"),VA("BID"),^TMP("PSD",$J)
|
---|
| 65 | Q
|
---|
| 66 | HEADER ;prints header info
|
---|
| 67 | I $E(IOST,1,2)'="P-",PG S DIR(0)="E" D ^DIR K DIR I 'Y S PSDOUT=1 Q
|
---|
| 68 | I $$S^%ZTLOAD W !!,"Task #",$G(ZTSK),", ",$G(ZTDESC)," was stopped by ",$P($G(^VA(200,+$G(DUZ),0)),U),"." S PSDOUT=1
|
---|
| 69 | W:$Y @IOF S $P(LN,"-",81)="",PG=PG+1 W !,"Outpatient Activity from ",PSDTB(2)," to ",PSDTB(3),?70,"PAGE: ",PG,!,LN,!,"Date Posted",?19,"Rx#",?28,"Patient",?60,"Date Released",!,LN W:$G(PSDT(1)) !,PSDU," (continued)",!
|
---|
| 70 | Q
|
---|
| 71 | SAVE ;save queued variables
|
---|
| 72 | S ZTSAVE("^TMP(""PSD"",$J,")=""
|
---|
| 73 | S (ZTSAVE("PSDT"),ZTSAVE("PSDTB"),ZTSAVE("PSDTB("),ZTSAVE("PSDLOC"))=""
|
---|
| 74 | Q
|
---|