PSDOPTZ ;BIR/LTL-Review OP Transactions by Rx # ; 29 Aug 94
;;3.0; CONTROLLED SUBSTANCES ;;13 Feb 97
S PSDRX=PSDRX(4)-1,(PSD,PSDU)=0
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 PSDRX=PSDRX(4)-1,PSDT(1)=0
LOOP .F S PSDRX=$O(^PSD(58.81,"AOP",PSDRX)) W:$E(IOST)="C" "." Q:'PSDRX!(PSDRX>PSDRX(2)) S PSDRX(5)=0 F S PSDRX(5)=$O(^PSD(58.81,"AOP",PSDRX,PSDRX(5))) Q:'PSDRX(5) D Q:PSDOUT
..S PSDR(2)=$G(^PSD(58.81,PSDRX(5),0))
..Q:$P(PSDR(2),U,3)'=PSDLOC!($P(PSDR(2),U,5)'=PSDU(1))
..S PSDR(4)=$G(^PSD(58.81,PSDRX(5),6))
..D:$Y+6>IOSL HEADER Q:PSDOUT
..S PSDT(1)=$G(PSDT(1))+1 W:PSDT(1)=1 !,PSDU,?60,PSD,!
..S Y=$E($P(PSDR(2),U,4),1,12) X ^DD("DD") W !,Y,?19
..S DFN=$P($G(^PSRX(+$P(PSDR(4),U),0)),U,2)
..N C S Y=DFN,C=$P(^DD(58.81,73,0),U,2) D Y^DIQ
..W $P(PSDR(4),U,5),?28,Y
..D PID^VADPT6 W " ("_VA("BID")_")",?60
..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
..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
..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
..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
..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")
..W !,LN,!
END W:$E(IOST)'="C" @IOF
I $E(IOST)="C",'PSDOUT S DIR(0)="EA",DIR("A")="END OF REPORT! Press <RET> to return to the menu." D ^DIR
D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
D KVAR^VADPT K IO("Q"),VA("PID"),VA("BID"),^TMP("PSD",$J)
Q
I $E(IOST,1,2)'="P-",PG S DIR(0)="E" D ^DIR K DIR I 'Y S PSDOUT=1 Q
I $$S^%ZTLOAD W !!,"Task #",$G(ZTSK),", ",$G(ZTDESC)," was stopped by ",$P($G(^VA(200,+$G(DUZ),0)),U),"." S PSDOUT=1
W:$Y @IOF S $P(LN,"-",81)="",PG=PG+1 W !,"Outpatient Activity from Rx # ",PSDRX(1)," to Rx # ",PSDRX(3),?70,"PAGE: ",PG,!,LN,!,"Date Posted",?19,"Rx#",?28,"Patient",?60,"Date Released",!,LN W:$G(PSDT(1)) !,PSDU," (continued)",!
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSDOPTZ 2179 printed Dec 13, 2024@01:47:25 Page 2
PSDOPTZ ;BIR/LTL-Review OP Transactions by Rx # ; 29 Aug 94
+1 ;;3.0; CONTROLLED SUBSTANCES ;;13 Feb 97
+2 SET PSDRX=PSDRX(4)-1
SET (PSD,PSDU)=0
+3 FOR
SET PSD=$ORDER(^TMP("PSD",$JOB,PSD))
if PSD']""
QUIT
FOR
SET PSDU=$ORDER(^TMP("PSD",$JOB,PSD,PSDU))
if PSDU']""
QUIT
SET PSDU(1)=$ORDER(^TMP("PSD",$JOB,PSD,PSDU,0))
Begin DoDot:1
LOOP FOR
SET PSDRX=$ORDER(^PSD(58.81,"AOP",PSDRX))
if $EXTRACT(IOST)="C"
WRITE "."
if 'PSDRX!(PSDRX>PSDRX(2))
QUIT
SET PSDRX(5)=0
FOR
SET PSDRX(5)=$ORDER(^PSD(58.81,"AOP",PSDRX,PSDRX(5)))
if 'PSDRX(5)
QUIT
Begin DoDot:2
+1 SET PSDR(2)=$GET(^PSD(58.81,PSDRX(5),0))
+2 if $PIECE(PSDR(2),U,3)'=PSDLOC!($PIECE(PSDR(2),U,5)'=PSDU(1))
QUIT
+3 SET PSDR(4)=$GET(^PSD(58.81,PSDRX(5),6))
+4 if $Y+6>IOSL
DO HEADER
if PSDOUT
QUIT
+5 SET PSDT(1)=$GET(PSDT(1))+1
if PSDT(1)=1
WRITE !,PSDU,?60,PSD,!
+6 SET Y=$EXTRACT($PIECE(PSDR(2),U,4),1,12)
XECUTE ^DD("DD")
WRITE !,Y,?19
+7 SET DFN=$PIECE($GET(^PSRX(+$PIECE(PSDR(4),U),0)),U,2)
+8 NEW C
SET Y=DFN
SET C=$PIECE(^DD(58.81,73,0),U,2)
DO Y^DIQ
+9 WRITE $PIECE(PSDR(4),U,5),?28,Y
+10 DO PID^VADPT6
WRITE " ("_VA("BID")_")",?60
+11 IF $PIECE(PSDR(4),U,2)
SET Y=$PIECE($GET(^PSRX(+$PIECE(PSDR(4),U),1,+$PIECE(PSDR(4),U,2),0)),U,18)
XECUTE ^DD("DD")
WRITE Y
+12 IF $PIECE(PSDR(4),U,4)
SET Y=$PIECE($GET(^PSRX(+$PIECE(PSDR(4),U),"P",+$PIECE(PSDR(4),U,4),0)),U,19)
XECUTE ^DD("DD")
WRITE Y
+13 IF '$PIECE(PSDR(4),U,2)&('$PIECE(PSDR(4),U,4))
SET Y=$PIECE($GET(^PSRX(+$PIECE(PSDR(4),U),2)),U,13)
XECUTE ^DD("DD")
WRITE Y
+14 WRITE !,"Qty: ",$PIECE(PSDR(2),U,6)," Bal: ",$PIECE(PSDR(2),U,10)-$PIECE(PSDR(2),U,6),?22,"RPH=> ",$PIECE($GET(^VA(200,+$PIECE(PSDR(2),U,7),0)),U),?60
+15 WRITE $SELECT($PIECE(PSDR(4),U,2):"Refill #"_$PIECE(PSDR(4),U,2),$PIECE(PSDR(4),U,4):"Partial #"_$PIECE(PSDR(4),U,4),1:"Original")
+16 WRITE !,LN,!
End DoDot:2
if PSDOUT
QUIT
End DoDot:1
if PSDOUT
GOTO END
SET PSDRX=PSDRX(4)-1
SET PSDT(1)=0
END if $EXTRACT(IOST)'="C"
WRITE @IOF
+1 IF $EXTRACT(IOST)="C"
IF 'PSDOUT
SET DIR(0)="EA"
SET DIR("A")="END OF REPORT! Press <RET> to return to the menu."
DO ^DIR
+2 DO ^%ZISC
if $DATA(ZTQUEUED)
SET ZTREQ="@"
+3 DO KVAR^VADPT
KILL IO("Q"),VA("PID"),VA("BID"),^TMP("PSD",$JOB)
+4 QUIT
+1 IF $EXTRACT(IOST,1,2)'="P-"
IF PG
SET DIR(0)="E"
DO ^DIR
KILL DIR
IF 'Y
SET PSDOUT=1
QUIT
+2 IF $$S^%ZTLOAD
WRITE !!,"Task #",$GET(ZTSK),", ",$GET(ZTDESC)," was stopped by ",$PIECE($GET(^VA(200,+$GET(DUZ),0)),U),"."
SET PSDOUT=1
+3 if $Y
WRITE @IOF
SET $PIECE(LN,"-",81)=""
SET PG=PG+1
WRITE !,"Outpatient Activity from Rx # ",PSDRX(1)," to Rx # ",PSDRX(3),?70,"PAGE: ",PG,!,LN,!,"Date Posted",?19,"Rx#",?28,"Patient",?60,"Date Released",!,LN
if $GET(PSDT(1))
WRITE !,PSDU," (continued)",!