PSGWPSI ;BHAM ISC/CML-Print Data for AR/WS Stock Items ; 19 Mar 93 / 8:34 AM
;;2.3; Automatic Replenishment/Ward Stock ;;4 JAN 94
D NOW^%DTC S PSGWDT=$P(%,".")
W !!!,"This report shows data stored for AR/WS Stock Items.",!!,"Right margin for this report is 132 columns.",!,"You may queue the report to print at a later time.",!!
I '$O(^PSI(58.1,0)) W !,"You MUST create AOUs before running this report!" K %,%I,%H,PSGWDT Q
DEV K %ZIS,IOP S %ZIS="QM",%ZIS("B")="" D ^%ZIS I POP W !,"NO DEVICE SELECTED OR REPORT PRINTED!" G QUIT^PSGWPSI1
I $D(IO("Q")) K IO("Q") S PSGWIO=ION,ZTIO="" K ZTSAVE,ZTDTH,ZTSK S ZTRTN="ENQ^PSGWPSI",ZTDESC="Compile Data for AR/WS Stock Items",ZTSAVE("PSGWIO")="",ZTSAVE("PSGWDT")=""
I D ^%ZTLOAD,HOME^%ZIS K ZTSK G QUIT^PSGWPSI1
U IO
;
ENQ ;ENTRY POINT WHEN QUEUED
AOU K ^TMP("PSGWPSI",$J) F AOU=0:0 S AOU=$O(^PSI(58.1,AOU)) G:('AOU)&($D(ZTQUEUED)) PRTQUE G:'AOU PRINT^PSGWPSI1 D XREF
;
XREF F DRGDA=0:0 S DRGDA=$O(^PSI(58.1,AOU,1,"B",DRGDA)) Q:'DRGDA F ITMDA=0:0 S ITMDA=$O(^PSI(58.1,AOU,1,"B",DRGDA,ITMDA)) Q:'ITMDA D BUILD
Q
BUILD ;BUILD DATA ELEMENTS
Q:'$D(^PSI(58.1,AOU,1,ITMDA,0)) S NODE=^(0) I +$P(NODE,"^",3),+$P(NODE,"^",3)'>DT Q
I '$O(^PSDRUG(DRGDA,0)) S DIK="^PSI(58.1,"_AOU_",1,",DA=ITMDA,DA(1)=AOU D ^DIK K DIK Q
I $O(^PSDRUG(DRGDA,0)) S ITMNM=$S($P(^PSDRUG(DRGDA,0),"^")]"":$P(^(0),"^"),1:"ZZ/DRUG #"_DRGDA_" is missing NAME in the DRUG File.")
I $P(NODE,"^",10)="Y",$P(NODE,"^",3)="" S $P(^PSI(58.1,AOU,1,ITMDA,0),"^",10)=""
I $D(^PSI(58.1,AOU,"I")),$P(^("I"),"^"),$P(^("I"),"^")'>PSGWDT S ^TMP("PSGWPSI",$J,ITMNM,AOU)="I^"_$P(^("I"),"^") Q
S LOC=$S($P(NODE,"^",8)]"":$P(NODE,"^",8),1:"NONE"),STKLEV=$S($P(NODE,"^",2):$P(NODE,"^",2),1:"NONE")
S TYPE="" F LL=0:0 S LL=$O(^PSI(58.1,AOU,1,ITMDA,2,LL)) Q:'LL S TYPE=TYPE_";;"_LL
S WARD="" F LL=0:0 S LL=$O(^PSI(58.1,AOU,1,ITMDA,4,LL)) Q:'LL S WARD=WARD_";;"_LL
SETGL ;
S:WARD="" WARD=";;NONE" S:TYPE="" TYPE=";;NONE" S ^TMP("PSGWPSI",$J,ITMNM,AOU)=LOC_"^"_STKLEV_"^"_WARD_"^"_TYPE Q
Q
;
PRTQUE ;AFTER DATA IS COMPILED, QUEUE THE PRINT
K ZTSAVE,ZTIO S ZTIO=PSGWIO,ZTRTN="PRINT^PSGWPSI1",ZTDESC="Print Data for AR/WS Stock Items",ZTDTH=$H,ZTSAVE("^TMP(""PSGWPSI"",$J,")=""
D ^%ZTLOAD K ^TMP("PSGWPSI",$J) G QUIT^PSGWPSI1
PSGWPSI ;BHAM ISC/CML-Print Data for AR/WS Stock Items ; 19 Mar 93 / 8:34 AM
+1 ;;2.3; Automatic Replenishment/Ward Stock ;;4 JAN 94
+2 DO NOW^%DTC
SET PSGWDT=$PIECE(%,".")
+3 WRITE !!!,"This report shows data stored for AR/WS Stock Items.",!!,"Right margin for this report is 132 columns.",!,"You may queue the report to print at a later time.",!!
+4 IF '$ORDER(^PSI(58.1,0))
WRITE !,"You MUST create AOUs before running this report!"
KILL %,%I,%H,PSGWDT
QUIT
DEV KILL %ZIS,IOP
SET %ZIS="QM"
SET %ZIS("B")=""
DO ^%ZIS
IF POP
WRITE !,"NO DEVICE SELECTED OR REPORT PRINTED!"
GOTO QUIT^PSGWPSI1
+1 IF $DATA(IO("Q"))
KILL IO("Q")
SET PSGWIO=ION
SET ZTIO=""
KILL ZTSAVE,ZTDTH,ZTSK
SET ZTRTN="ENQ^PSGWPSI"
SET ZTDESC="Compile Data for AR/WS Stock Items"
SET ZTSAVE("PSGWIO")=""
SET ZTSAVE("PSGWDT")=""
+2 IF $TEST
DO ^%ZTLOAD
DO HOME^%ZIS
KILL ZTSK
GOTO QUIT^PSGWPSI1
+3 USE IO
+4 ;
ENQ ;ENTRY POINT WHEN QUEUED
AOU KILL ^TMP("PSGWPSI",$JOB)
FOR AOU=0:0
SET AOU=$ORDER(^PSI(58.1,AOU))
IF ('AOU)&($DATA(ZTQUEUED))
GOTO PRTQUE
IF 'AOU
GOTO PRINT^PSGWPSI1
DO XREF
+1 ;
XREF FOR DRGDA=0:0
SET DRGDA=$ORDER(^PSI(58.1,AOU,1,"B",DRGDA))
IF 'DRGDA
QUIT
FOR ITMDA=0:0
SET ITMDA=$ORDER(^PSI(58.1,AOU,1,"B",DRGDA,ITMDA))
IF 'ITMDA
QUIT
DO BUILD
+1 QUIT
BUILD ;BUILD DATA ELEMENTS
+1 IF '$DATA(^PSI(58.1,AOU,1,ITMDA,0))
QUIT
SET NODE=^(0)
IF +$PIECE(NODE,"^",3)
IF +$PIECE(NODE,"^",3)'>DT
QUIT
+2 IF '$ORDER(^PSDRUG(DRGDA,0))
SET DIK="^PSI(58.1,"_AOU_",1,"
SET DA=ITMDA
SET DA(1)=AOU
DO ^DIK
KILL DIK
QUIT
+3 IF $ORDER(^PSDRUG(DRGDA,0))
SET ITMNM=$SELECT($PIECE(^PSDRUG(DRGDA,0),"^")]"":$PIECE(^(0),"^"),1:"ZZ/DRUG #"_DRGDA_" is missing NAME in the DRUG File.")
+4 IF $PIECE(NODE,"^",10)="Y"
IF $PIECE(NODE,"^",3)=""
SET $PIECE(^PSI(58.1,AOU,1,ITMDA,0),"^",10)=""
+5 IF $DATA(^PSI(58.1,AOU,"I"))
IF $PIECE(^("I"),"^")
IF $PIECE(^("I"),"^")'>PSGWDT
SET ^TMP("PSGWPSI",$JOB,ITMNM,AOU)="I^"_$PIECE(^("I"),"^")
QUIT
+6 SET LOC=$SELECT($PIECE(NODE,"^",8)]"":$PIECE(NODE,"^",8),1:"NONE")
SET STKLEV=$SELECT($PIECE(NODE,"^",2):$PIECE(NODE,"^",2),1:"NONE")
+7 SET TYPE=""
FOR LL=0:0
SET LL=$ORDER(^PSI(58.1,AOU,1,ITMDA,2,LL))
IF 'LL
QUIT
SET TYPE=TYPE_";;"_LL
+8 SET WARD=""
FOR LL=0:0
SET LL=$ORDER(^PSI(58.1,AOU,1,ITMDA,4,LL))
IF 'LL
QUIT
SET WARD=WARD_";;"_LL
SETGL ;
+1 IF WARD=""
SET WARD=";;NONE"
IF TYPE=""
SET TYPE=";;NONE"
SET ^TMP("PSGWPSI",$JOB,ITMNM,AOU)=LOC_"^"_STKLEV_"^"_WARD_"^"_TYPE
QUIT
+2 QUIT
+3 ;
PRTQUE ;AFTER DATA IS COMPILED, QUEUE THE PRINT
+1 KILL ZTSAVE,ZTIO
SET ZTIO=PSGWIO
SET ZTRTN="PRINT^PSGWPSI1"
SET ZTDESC="Print Data for AR/WS Stock Items"
SET ZTDTH=$HOROLOG
SET ZTSAVE("^TMP(""PSGWPSI"",$J,")=""
+2 DO ^%ZTLOAD
KILL ^TMP("PSGWPSI",$JOB)
GOTO QUIT^PSGWPSI1