PSDPSTK ;BIR/JPW-Print Data for CS Stock Drugs ; 7 Sept 92
;;3.0; CONTROLLED SUBSTANCES ;;13 Feb 97
I '$D(PSDSITE) D ^PSDSET Q:'$D(PSDSITE)
W !!,"This report lists data stored for CS Stock Drugs.",!!,"This report is designed for a 132 column format.",!,"You may queue this report to print at a later time.",!!
I '$O(^PSD(58.8,0)) W !!,"You MUST create NAOUs before running this report!" Q
D NOW^%DTC S PSDT=X
DEV ;ask device and queueing information
K %ZIS,IOP,IO("Q"),POP S %ZIS="QM",%ZIS("B")="" D ^%ZIS I POP W !,"NO DEVICE SELECTED OR REPORT PRINTED!" G END
I $D(IO("Q")) K IO("Q") S PSDIO=ION,ZTIO="" K ZTSAVE,ZTDTH,ZTSK S ZTRTN="START^PSDPSTK",ZTDESC="Compile Data for CS PHARM Stock Drugs",ZTSAVE("PSDIO")="",ZTSAVE("PSDSITE")="",ZTSAVE("PSDT")="" D ^%ZTLOAD K ZTSK G END
U IO
START ;compile data for stock drug report
K ^TMP("PSDPSTK",$J)
F NAOU=0:0 S NAOU=$O(^PSD(58.8,NAOU)) G:('NAOU)&($D(ZTQUEUED)) PRTQUE G:'NAOU PRINT^PSDPSTK1 I $D(^PSD(58.8,NAOU,0)),$P(^(0),"^",3)=+PSDSITE,$P(^(0),"^",2)'="P" F DRUG=0:0 S DRUG=$O(^PSD(58.8,NAOU,1,DRUG)) Q:'DRUG D
.Q:'$D(^PSD(58.8,NAOU,1,DRUG,0)) I +$P(^PSD(58.8,NAOU,1,DRUG,0),"^",14) D NOW^%DTC I $P(^PSD(58.8,NAOU,1,DRUG,0),"^",14)'>X Q
.Q:'$D(^PSDRUG(DRUG,0)) I $D(^PSDRUG(DRUG,0)) S DRUGN=$S($P(^PSDRUG(DRUG,0),"^")]"":$P(^(0),"^"),1:"ZZ/"_DRUG)
.I $D(^PSD(58.8,NAOU,"I")),$P(^("I"),"^"),$P(^("I"),"^")'>PSDT S ^TMP("PSDPSTK",$J,DRUGN,NAOU,0)="I^"_$P(^("I"),"^") Q
.S NODE=^PSD(58.8,NAOU,1,DRUG,0),LOC=$S($P(NODE,"^",2)]"":$P(NODE,"^",2),1:"NONE"),STK=$S($P(NODE,"^",3)]"":$P(NODE,"^",3),1:"NONE")
.S TYPE="" F TYP=0:0 S TYP=$O(^PSD(58.8,NAOU,1,DRUG,2,TYP)) Q:'TYP S TYPE=TYPE_";;"_TYP
.S WARD="" F WRD=0:0 S WRD=$O(^PSD(58.8,NAOU,1,DRUG,1,WRD)) Q:'WRD S WARD=WARD_";;"_WRD
.S:TYPE="" TYPE=";;NONE" S:WARD="" WARD=";;NONE" S ^TMP("PSDPSTK",$J,DRUGN,NAOU,0)=LOC_"^"_STK_"^"_TYPE
.S ^TMP("PSDPSTK",$J,DRUGN,NAOU,1)=WARD
Q
END ;
K %,%H,%I,%ZIS,DA,DATEI,DIK,DRUG,DRUGN,IO("Q"),LOC,NAOU,NODE,POP,PSDIO,PSDT,STK,TYP,TYPE,WARD,WRD
K X,Y,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTRTN,^TMP("PSDPSTK",$J) D ^%ZISC
S:$D(ZTQUEUED) ZTREQ="@"
Q
PRTQUE ;queues print after data is compiled
K ZTSAVE,ZTIO S ZTIO=PSDIO,ZTRTN="PRINT^PSDPSTK1",ZTDESC="Print Data for CS PHARM Stock Drugs",ZTDTH=$H,ZTSAVE("^TMP(""PSDPSTK"",$J,")=""
D ^%ZTLOAD K ^TMP("PSDPSTK",$J) K ZTSK G END
PSDPSTK ;BIR/JPW-Print Data for CS Stock Drugs ; 7 Sept 92
+1 ;;3.0; CONTROLLED SUBSTANCES ;;13 Feb 97
+2 IF '$DATA(PSDSITE)
DO ^PSDSET
IF '$DATA(PSDSITE)
QUIT
+3 WRITE !!,"This report lists data stored for CS Stock Drugs.",!!,"This report is designed for a 132 column format.",!,"You may queue this report to print at a later time.",!!
+4 IF '$ORDER(^PSD(58.8,0))
WRITE !!,"You MUST create NAOUs before running this report!"
QUIT
+5 DO NOW^%DTC
SET PSDT=X
DEV ;ask device and queueing information
+1 KILL %ZIS,IOP,IO("Q"),POP
SET %ZIS="QM"
SET %ZIS("B")=""
DO ^%ZIS
IF POP
WRITE !,"NO DEVICE SELECTED OR REPORT PRINTED!"
GOTO END
+2 IF $DATA(IO("Q"))
KILL IO("Q")
SET PSDIO=ION
SET ZTIO=""
KILL ZTSAVE,ZTDTH,ZTSK
SET ZTRTN="START^PSDPSTK"
SET ZTDESC="Compile Data for CS PHARM Stock Drugs"
SET ZTSAVE("PSDIO")=""
SET ZTSAVE("PSDSITE")=""
SET ZTSAVE("PSDT")=""
DO ^%ZTLOAD
KILL ZTSK
GOTO END
+3 USE IO
START ;compile data for stock drug report
+1 KILL ^TMP("PSDPSTK",$JOB)
+2 FOR NAOU=0:0
SET NAOU=$ORDER(^PSD(58.8,NAOU))
IF ('NAOU)&($DATA(ZTQUEUED))
GOTO PRTQUE
IF 'NAOU
GOTO PRINT^PSDPSTK1
IF $DATA(^PSD(58.8,NAOU,0))
IF $PIECE(^(0),"^",3)=+PSDSITE
IF $PIECE(^(0),"^",2)'="P"
FOR DRUG=0:0
SET DRUG=$ORDER(^PSD(58.8,NAOU,1,DRUG))
IF 'DRUG
QUIT
Begin DoDot:1
+3 IF '$DATA(^PSD(58.8,NAOU,1,DRUG,0))
QUIT
IF +$PIECE(^PSD(58.8,NAOU,1,DRUG,0),"^",14)
DO NOW^%DTC
IF $PIECE(^PSD(58.8,NAOU,1,DRUG,0),"^",14)'>X
QUIT
+4 IF '$DATA(^PSDRUG(DRUG,0))
QUIT
IF $DATA(^PSDRUG(DRUG,0))
SET DRUGN=$SELECT($PIECE(^PSDRUG(DRUG,0),"^")]"":$PIECE(^(0),"^"),1:"ZZ/"_DRUG)
+5 IF $DATA(^PSD(58.8,NAOU,"I"))
IF $PIECE(^("I"),"^")
IF $PIECE(^("I"),"^")'>PSDT
SET ^TMP("PSDPSTK",$JOB,DRUGN,NAOU,0)="I^"_$PIECE(^("I"),"^")
QUIT
+6 SET NODE=^PSD(58.8,NAOU,1,DRUG,0)
SET LOC=$SELECT($PIECE(NODE,"^",2)]"":$PIECE(NODE,"^",2),1:"NONE")
SET STK=$SELECT($PIECE(NODE,"^",3)]"":$PIECE(NODE,"^",3),1:"NONE")
+7 SET TYPE=""
FOR TYP=0:0
SET TYP=$ORDER(^PSD(58.8,NAOU,1,DRUG,2,TYP))
IF 'TYP
QUIT
SET TYPE=TYPE_";;"_TYP
+8 SET WARD=""
FOR WRD=0:0
SET WRD=$ORDER(^PSD(58.8,NAOU,1,DRUG,1,WRD))
IF 'WRD
QUIT
SET WARD=WARD_";;"_WRD
+9 IF TYPE=""
SET TYPE=";;NONE"
IF WARD=""
SET WARD=";;NONE"
SET ^TMP("PSDPSTK",$JOB,DRUGN,NAOU,0)=LOC_"^"_STK_"^"_TYPE
+10 SET ^TMP("PSDPSTK",$JOB,DRUGN,NAOU,1)=WARD
End DoDot:1
+11 QUIT
END ;
+1 KILL %,%H,%I,%ZIS,DA,DATEI,DIK,DRUG,DRUGN,IO("Q"),LOC,NAOU,NODE,POP,PSDIO,PSDT,STK,TYP,TYPE,WARD,WRD
+2 KILL X,Y,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTRTN,^TMP("PSDPSTK",$JOB)
DO ^%ZISC
+3 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+4 QUIT
PRTQUE ;queues print after data is compiled
+1 KILL ZTSAVE,ZTIO
SET ZTIO=PSDIO
SET ZTRTN="PRINT^PSDPSTK1"
SET ZTDESC="Print Data for CS PHARM Stock Drugs"
SET ZTDTH=$HOROLOG
SET ZTSAVE("^TMP(""PSDPSTK"",$J,")=""
+2 DO ^%ZTLOAD
KILL ^TMP("PSDPSTK",$JOB)
KILL ZTSK
GOTO END