DGYMBSRX ;ALB/ABR - REPORT OF G&L ORDERS FROM FILE 42
;;5.3;Registration;**59**;Aug 13, 1993
;
EN ;set up temp global based on G&L ORDER
W !!,"WARD LOCATION FILE DIAGNOSTIC ROUTINE",!!
S ZTDESC="Diagnostic List for WARD LOCATION file",ZTRTN="EN1^DGYMBSRX"
D ZIS^DGUTQ
I 'POP D EN1^DGYMBSRX
Q K I,POP,X,ZTDESC,ZTIO,ZTRTN,ZTSK
D CLOSE^DGUTQ
Q
;
EN1 ;
D KILL
S DGGDATE=$$HTE^XLFDT($H)
N PAGE,FLAG,LINE S (PAGE,FLAG)=0
D HEADER I FLAG Q
F I=0:0 S I=$O(^DIC(42,I)) Q:'I S DGGL=+$G(^DIC(42,I,"ORDER")) S ^TMP("DG59",$J,DGGL)=$G(^TMP("DG59",$J,DGGL))+1,^(DGGL,I)="" D LVL
D NOGLO I FLAG G KILL
D SAMEGLO I FLAG G KILL
D LEVEL I FLAG G KILL
W:$E(IOST,1,2)="C-" !!,">> DONE!"
;
KILL K I,J,DGGL,DGGDATE,DGNO,DGLVL,DGOLVL,SAGL,^TMP("DG59",$J)
Q
;
LVL ; check for sequential TOTALS
N DGLVL,DGOLVL
F DGLVL=0:0 S DGOLVL=DGLVL,DGLVL=$O(^DIC(42,I,1,DGLVL)) Q:'DGLVL I DGLVL-DGOLVL'=1 S ^TMP("DG59",$J,"DGLVL",I)=$P(^DIC(42,I,0),"^")
K DGLVL,DGOLVL
Q
;
NOGLO ;LOCATIONS W/ NO G&L ORDER
I '$G(^TMP("DG59",$J,0)) Q
S $P(LINE,"=",31)=""
W !!,"**The following ward locations have no G&L order, ",!,"and do not appear on the G&L Sheet or Bed Status Report."
W !!,"IEN",?10,"Ward Location",!,LINE
F DGNO=0:0 S DGNO=$O(^TMP("DG59",$J,0,DGNO)) Q:'DGNO D Q:FLAG
.I $Y>(IOSL-4) D HEADER I FLAG Q
.W !,DGNO,?10,$P(^DIC(42,DGNO,0),"^")
W !
Q
;
SAMEGLO ;shared g&l orders
N DGCHK S DGCHK=1
F I=0:0 S I=$O(^TMP("DG59",$J,I)) Q:'I I ^(I)>1 D
.I DGCHK,$Y>(IOSL-8) D HEADER I FLAG Q
.I DGCHK W !!,"*SHARED G&L ORDERS*",!,"===================" S DGCHK=0
. W !!,"The following locations all have the G&L ORDER = ",I
. F SAGL=0:0 S SAGL=$O(^TMP("DG59",$J,I,SAGL)) Q:'SAGL D Q:FLAG
..I $Y>(IOSL-4) D HEADER I FLAG Q
..W !,"IEN = ",SAGL,?12,"WARD LOCATION = ",$P(^DIC(42,SAGL,0),"^")
. W !?15,"*** ONLY THE LAST OF THIS GROUP WILL APPEAR ON THE BSR ***"
W !
Q
;
LEVEL ; list wards with problem TOTALS
S $P(LINE,"=",31)=""
I '$O(^TMP("DG59",$J,"DGLVL",0)) Q
W !!,"**The following locations are missing lower level TOTALS:",!
W !,"IEN",?10,"Ward Location",!,LINE
F DGLVL=0:0 S DGLVL=$O(^TMP("DG59",$J,"DGLVL",DGLVL)) Q:'DGLVL W !,DGLVL,?10,^(DGLVL)
Q
;
N DIR,DIRUT,DTOUT,DUOUT,LINE2,X,Y,I
S PAGE=PAGE+1,$P(LINE2,"=",80)=""
I $E(IOST,1,2)="C-",(PAGE>1) S DIR(0)="E" D ^DIR S FLAG='Y I FLAG Q
W @IOF,!,"WARD LOCATION FILE Diagnostics Report",?70,"PAGE: ",$J(PAGE,2)
W !,DGGDATE
W !,LINE2
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGYMBSRX 2535 printed Nov 22, 2024@18:10:16 Page 2
DGYMBSRX ;ALB/ABR - REPORT OF G&L ORDERS FROM FILE 42
+1 ;;5.3;Registration;**59**;Aug 13, 1993
+2 ;
EN ;set up temp global based on G&L ORDER
+1 WRITE !!,"WARD LOCATION FILE DIAGNOSTIC ROUTINE",!!
+2 SET ZTDESC="Diagnostic List for WARD LOCATION file"
SET ZTRTN="EN1^DGYMBSRX"
+3 DO ZIS^DGUTQ
+4 IF 'POP
DO EN1^DGYMBSRX
Q KILL I,POP,X,ZTDESC,ZTIO,ZTRTN,ZTSK
+1 DO CLOSE^DGUTQ
+2 QUIT
+3 ;
EN1 ;
+1 DO KILL
+2 SET DGGDATE=$$HTE^XLFDT($HOROLOG)
+3 NEW PAGE,FLAG,LINE
SET (PAGE,FLAG)=0
+4 DO HEADER
IF FLAG
QUIT
+5 FOR I=0:0
SET I=$ORDER(^DIC(42,I))
if 'I
QUIT
SET DGGL=+$GET(^DIC(42,I,"ORDER"))
SET ^TMP("DG59",$JOB,DGGL)=$GET(^TMP("DG59",$JOB,DGGL))+1
SET ^(DGGL,I)=""
DO LVL
+6 DO NOGLO
IF FLAG
GOTO KILL
+7 DO SAMEGLO
IF FLAG
GOTO KILL
+8 DO LEVEL
IF FLAG
GOTO KILL
+9 if $EXTRACT(IOST,1,2)="C-"
WRITE !!,">> DONE!"
+10 ;
KILL KILL I,J,DGGL,DGGDATE,DGNO,DGLVL,DGOLVL,SAGL,^TMP("DG59",$JOB)
+1 QUIT
+2 ;
LVL ; check for sequential TOTALS
+1 NEW DGLVL,DGOLVL
+2 FOR DGLVL=0:0
SET DGOLVL=DGLVL
SET DGLVL=$ORDER(^DIC(42,I,1,DGLVL))
if 'DGLVL
QUIT
IF DGLVL-DGOLVL'=1
SET ^TMP("DG59",$JOB,"DGLVL",I)=$PIECE(^DIC(42,I,0),"^")
+3 KILL DGLVL,DGOLVL
+4 QUIT
+5 ;
NOGLO ;LOCATIONS W/ NO G&L ORDER
+1 IF '$GET(^TMP("DG59",$JOB,0))
QUIT
+2 SET $PIECE(LINE,"=",31)=""
+3 WRITE !!,"**The following ward locations have no G&L order, ",!,"and do not appear on the G&L Sheet or Bed Status Report."
+4 WRITE !!,"IEN",?10,"Ward Location",!,LINE
+5 FOR DGNO=0:0
SET DGNO=$ORDER(^TMP("DG59",$JOB,0,DGNO))
if 'DGNO
QUIT
Begin DoDot:1
+6 IF $Y>(IOSL-4)
DO HEADER
IF FLAG
QUIT
+7 WRITE !,DGNO,?10,$PIECE(^DIC(42,DGNO,0),"^")
End DoDot:1
if FLAG
QUIT
+8 WRITE !
+9 QUIT
+10 ;
SAMEGLO ;shared g&l orders
+1 NEW DGCHK
SET DGCHK=1
+2 FOR I=0:0
SET I=$ORDER(^TMP("DG59",$JOB,I))
if 'I
QUIT
IF ^(I)>1
Begin DoDot:1
+3 IF DGCHK
IF $Y>(IOSL-8)
DO HEADER
IF FLAG
QUIT
+4 IF DGCHK
WRITE !!,"*SHARED G&L ORDERS*",!,"==================="
SET DGCHK=0
+5 WRITE !!,"The following locations all have the G&L ORDER = ",I
+6 FOR SAGL=0:0
SET SAGL=$ORDER(^TMP("DG59",$JOB,I,SAGL))
if 'SAGL
QUIT
Begin DoDot:2
+7 IF $Y>(IOSL-4)
DO HEADER
IF FLAG
QUIT
+8 WRITE !,"IEN = ",SAGL,?12,"WARD LOCATION = ",$PIECE(^DIC(42,SAGL,0),"^")
End DoDot:2
if FLAG
QUIT
+9 WRITE !?15,"*** ONLY THE LAST OF THIS GROUP WILL APPEAR ON THE BSR ***"
End DoDot:1
+10 WRITE !
+11 QUIT
+12 ;
LEVEL ; list wards with problem TOTALS
+1 SET $PIECE(LINE,"=",31)=""
+2 IF '$ORDER(^TMP("DG59",$JOB,"DGLVL",0))
QUIT
+3 WRITE !!,"**The following locations are missing lower level TOTALS:",!
+4 WRITE !,"IEN",?10,"Ward Location",!,LINE
+5 FOR DGLVL=0:0
SET DGLVL=$ORDER(^TMP("DG59",$JOB,"DGLVL",DGLVL))
if 'DGLVL
QUIT
WRITE !,DGLVL,?10,^(DGLVL)
+6 QUIT
+7 ;
+1 NEW DIR,DIRUT,DTOUT,DUOUT,LINE2,X,Y,I
+2 SET PAGE=PAGE+1
SET $PIECE(LINE2,"=",80)=""
+3 IF $EXTRACT(IOST,1,2)="C-"
IF (PAGE>1)
SET DIR(0)="E"
DO ^DIR
SET FLAG='Y
IF FLAG
QUIT
+4 WRITE @IOF,!,"WARD LOCATION FILE Diagnostics Report",?70,"PAGE: ",$JUSTIFY(PAGE,2)
+5 WRITE !,DGGDATE
+6 WRITE !,LINE2
+7 QUIT