PSIVRP1 ;BIR/MLM-REPRINT IV LABELS FROM WARD OR MANUFACTURING LIST (CONT. FROM PSIVRP) ;20 JUN 94 / 3:22 PM
;;5.0; INPATIENT MEDICATIONS ;**58**;16 DEC 97
;
; Reference to ^PS(55 is supported by DBIA 2191.
;
DEQ ;
S STR=$S(LAST("LIST")="M":"LIST^PSIVT^PSIVDT^X1^X2^DFN^ON",1:"LIST^PSIVT^WRD^PSIVDT^DFN^ON") F X=1:1:$L(STR,"^") S @$P(STR,"^",X)=LAST($P(STR,"^",X))
S PSIVT=$E(PSIVDT,1),PSIVOD(PSIVT)=$E(PSIVDT,2,$L(PSIVDT)) D @($S($D(^PS(55,"PSIVWLM",PSIVSN,PSIVDT)):"MONL",1:"WONL")),QUIT
Q
GTDATE ;
I $D(PSR) S PSIVDT=$O(PSR(PSIVDT)) Q:PSIVDT="" S PSIVT=$E(PSIVDT,1),PSIVOD(PSIVT)=$E(PSIVDT,2,$L(PSIVDT)) D @($S($D(^PS(55,"PSIVWLM",PSIVSN,PSIVDT)):"X1",1:"WRD"))
Q
WONL ;
L +^PS(55,"PSIVWL",PSIVSN):1 E W:$Y @IOF W !!,"**** WARNING --- LABELS NOT RUN, WARD LIST IN PROGRESS" Q
D WON L -^PS(55,"PSIVWL",PSIVSN)
Q
MONL ;
L +^PS(55,"PSIVWLM",PSIVSN):1 E W:$Y @IOF W !!,"**** WARNING --- LABELS NOT RUN, MANUFACTURING LIST IN PROGRESS",! Q
D MON L -^PS(55,"PSIVWLM",PSIVSN)
Q
WRD ;
S WRD=$O(^PS(55,"PSIVWL",PSIVSN,WRD)) G:WRD=""!(PSIVDT="") GTDATE I WRD="",('$D(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT))) G GTDATE
WDFN ;
S DFN=$O(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN)) G:DFN="" WRD
WON ;
S ON=$O(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,+DFN,ON)) G:ON="" WDFN Q:DFN=NEXT("DFN")&(ON=NEXT("ON")) D MEOWRPT^PSIVLBL1 G WON
Q
X1 ;
S X1=$O(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1)) I X1="" S WRD="" G GTDATE
X2 ;
S X2=$O(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2)) G:X2="" X1
MDFN ;
S DFN=$O(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2,DFN)) G:DFN="" X2
MON ;
S ON=$O(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2,+DFN,ON)) G:ON="" MDFN Q:DFN=NEXT("DFN")&(ON=NEXT("ON")) S WRD=$S($D(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2,DFN,ON)):$P(^(ON),"^",2),1:"") D MEOWRPT^PSIVLBL1 G MON
Q
GTMES ;
S (WRD,ON)="" F X=0:0 S WRD=$O(^PS(55,"PSIVWL",PSIVSN,WRD)) Q:WRD="" S PSIVDT="" F X=0:0 S PSIVDT=$O(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT)) Q:PSIVDT="" I PSIVDT[Y D GTMES1
Q
GTMES1 ;
S DFN="" F X=0:0 S DFN=$O(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN)) Q:DFN=""!$D(PS(PSIVDT)) S ON="" F X=0:0 S ON=$O(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN,ON)) Q:ON=""!(ON="OK") D GTMES2
Q
GTMES2 ;
I $D(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN,ON)),$P(^(ON),"^",4) S PS(PSIVDT)=""
Q
QUIT ;
K C,D1,DFN,DIC,FILE,I,J,JJ,LAST,LIST,NAD,NEXT,NF,ON,P,POP,PRO,PS,PSCT,PSIVCD,PSIVMT,PSIVNOL,PSGDT,PSM,PSR,PSIVDRG,PSIVDT,PSIVDTS,PSIVST,PSIVT,PSIVOD,STR
K VAERR,WRD,X1,X2,X3,XT,XQUIT,Z,ZTDESC,ZTIO,ZTRTN,ZTSAVE D ENIVKV^PSGSETU S:$D(ZTQUEUED) ZTREQ="@"
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSIVRP1 2577 printed Oct 16, 2024@18:05:47 Page 2
PSIVRP1 ;BIR/MLM-REPRINT IV LABELS FROM WARD OR MANUFACTURING LIST (CONT. FROM PSIVRP) ;20 JUN 94 / 3:22 PM
+1 ;;5.0; INPATIENT MEDICATIONS ;**58**;16 DEC 97
+2 ;
+3 ; Reference to ^PS(55 is supported by DBIA 2191.
+4 ;
DEQ ;
+1 SET STR=$SELECT(LAST("LIST")="M":"LIST^PSIVT^PSIVDT^X1^X2^DFN^ON",1:"LIST^PSIVT^WRD^PSIVDT^DFN^ON")
FOR X=1:1:$LENGTH(STR,"^")
SET @$PIECE(STR,"^",X)=LAST($PIECE(STR,"^",X))
+2 SET PSIVT=$EXTRACT(PSIVDT,1)
SET PSIVOD(PSIVT)=$EXTRACT(PSIVDT,2,$LENGTH(PSIVDT))
DO @($SELECT($DATA(^PS(55,"PSIVWLM",PSIVSN,PSIVDT)):"MONL",1:"WONL"))
DO QUIT
+3 QUIT
GTDATE ;
+1 IF $DATA(PSR)
SET PSIVDT=$ORDER(PSR(PSIVDT))
if PSIVDT=""
QUIT
SET PSIVT=$EXTRACT(PSIVDT,1)
SET PSIVOD(PSIVT)=$EXTRACT(PSIVDT,2,$LENGTH(PSIVDT))
DO @($SELECT($DATA(^PS(55,"PSIVWLM",PSIVSN,PSIVDT)):"X1",1:"WRD"))
+2 QUIT
WONL ;
+1 LOCK +^PS(55,"PSIVWL",PSIVSN):1
IF '$TEST
if $Y
WRITE @IOF
WRITE !!,"**** WARNING --- LABELS NOT RUN, WARD LIST IN PROGRESS"
QUIT
+2 DO WON
LOCK -^PS(55,"PSIVWL",PSIVSN)
+3 QUIT
MONL ;
+1 LOCK +^PS(55,"PSIVWLM",PSIVSN):1
IF '$TEST
if $Y
WRITE @IOF
WRITE !!,"**** WARNING --- LABELS NOT RUN, MANUFACTURING LIST IN PROGRESS",!
QUIT
+2 DO MON
LOCK -^PS(55,"PSIVWLM",PSIVSN)
+3 QUIT
WRD ;
+1 SET WRD=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD))
if WRD=""!(PSIVDT="")
GOTO GTDATE
IF WRD=""
IF ('$DATA(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT)))
GOTO GTDATE
WDFN ;
+1 SET DFN=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN))
if DFN=""
GOTO WRD
WON ;
+1 SET ON=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,+DFN,ON))
if ON=""
GOTO WDFN
if DFN=NEXT("DFN")&(ON=NEXT("ON"))
QUIT
DO MEOWRPT^PSIVLBL1
GOTO WON
+2 QUIT
X1 ;
+1 SET X1=$ORDER(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1))
IF X1=""
SET WRD=""
GOTO GTDATE
X2 ;
+1 SET X2=$ORDER(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2))
if X2=""
GOTO X1
MDFN ;
+1 SET DFN=$ORDER(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2,DFN))
if DFN=""
GOTO X2
MON ;
+1 SET ON=$ORDER(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2,+DFN,ON))
if ON=""
GOTO MDFN
if DFN=NEXT("DFN")&(ON=NEXT("ON"))
QUIT
SET WRD=$SELECT($DATA(^PS(55,"PSIVWLM",PSIVSN,PSIVDT,PSIVT,X1,X2,DFN,ON)):$PIECE(^(ON),"^",2),1:"")
DO MEOWRPT^PSIVLBL1
GOTO MON
+2 QUIT
GTMES ;
+1 SET (WRD,ON)=""
FOR X=0:0
SET WRD=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD))
if WRD=""
QUIT
SET PSIVDT=""
FOR X=0:0
SET PSIVDT=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT))
if PSIVDT=""
QUIT
IF PSIVDT[Y
DO GTMES1
+2 QUIT
GTMES1 ;
+1 SET DFN=""
FOR X=0:0
SET DFN=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN))
if DFN=""!$DATA(PS(PSIVDT))
QUIT
SET ON=""
FOR X=0:0
SET ON=$ORDER(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN,ON))
if ON=""!(ON="OK")
QUIT
DO GTMES2
+2 QUIT
GTMES2 ;
+1 IF $DATA(^PS(55,"PSIVWL",PSIVSN,WRD,PSIVDT,DFN,ON))
IF $PIECE(^(ON),"^",4)
SET PS(PSIVDT)=""
+2 QUIT
QUIT ;
+1 KILL C,D1,DFN,DIC,FILE,I,J,JJ,LAST,LIST,NAD,NEXT,NF,ON,P,POP,PRO,PS,PSCT,PSIVCD,PSIVMT,PSIVNOL,PSGDT,PSM,PSR,PSIVDRG,PSIVDT,PSIVDTS,PSIVST,PSIVT,PSIVOD,STR
+2 KILL VAERR,WRD,X1,X2,X3,XT,XQUIT,Z,ZTDESC,ZTIO,ZTRTN,ZTSAVE
DO ENIVKV^PSGSETU
if $DATA(ZTQUEUED)
SET ZTREQ="@"
+3 QUIT