DGPMBSR1 ;ALB/LM - BED STATUS REPORT RECALCULATION CONT.; 16 JAN 91
;;5.3;Registration;**85,1015**;Aug 13, 1993;Build 21
;
A S DIE="^DG(43,",DA=1,DR="53///"_RD D ^DIE K DA,DIE,DR ; Date when recalc up to
S W=0 F I=0:0 S W=$O(^DIC(42,W)) Q:'W D SET
S D=0 F I=0:0 S D=$O(^DG(40.8,D)) Q:'D S ^UTILITY("DGD",$J,D)=$S($D(^DG(40.8,D,"CEN",PD,0)):$P(^(0),"^",12),1:0),^UTILITY("DGDN",$J,D)="" S T=0 F I1=0:0 S T=$O(^DG(40.8,D,"TS",T)) Q:'T D TSET
K I,I1,T,W,D
D ^DGPMGLG
Q
;
SET S X=$S($D(^DG(41.9,W,"C",PD,0)):^(0),1:""),X=RD_"^"_$P(X,"^",2,99)
S:$E(PD,4,7)="0930" X=$P(X,"^",1,2) ; New fiscal year
S ^UTILITY("DGC",$J,W)=X ; Census
S ^UTILITY("DGCN",$J,W)="" ; New census
S ^UTILITY("DGOD",$J,+W)=0 ; One Day Admissions
S X1=$S($D(^DG(41.9,W,"C",PD,1)):$P(^(1),"^",1,10),1:"")
S ^UTILITY("DGR",$J,W)=X1 ; Remaining
S ^UTILITY("DGRN",$J,W)="" ; New remaining (one node)
S ^UTILITY("DGFR",$J,+W)=0 ; Female Patients Remaining
S ^UTILITY("DG6",$J,+W)=0 ; Bed Occupants 65 & Over
S ^UTILITY("DGVN",$J,+W)=0 ; Bed Occupants VN
S ^UTILITY("DGPS",$J,+W)=$S('REM:+$P(X1,"^",5),1:0) ; Pass
S ^UTILITY("DGAA",$J,+W)=$S('REM:+$P(X1,"^",6),1:0) ; Auth absense
S ^UTILITY("DGUA",$J,+W)=$S('REM:+$P(X1,"^",7),1:0) ; Unauth absense
S:'REM ^UTILITY("DGAS",$J,+W)=+$P(X1,"^",8) ; ASIH
S:REM ^UTILITY("DGIP",$J,+W)=0 ; if count pt. remaining
CEN S ^DG(41.9,W,"C",RD,0)=RD_"^"_$P(^UTILITY("DGC",$J,W),"^",2,99)
S:'$D(^DG(41.9,W,0))#2 ^(0)=W,^DG(41.9,"B",W,W)="",$P(^(0),"^",4)=$P(^DG(41.9,0),"^",4)+1,$P(^(0),"^",3)=RD
S:'$D(^DG(41.9,W,"C",0))#2 ^(0)="^41.91DA^^"
Q
;
TSET I TSRI>RD Q ; If TSR Initialization date is greater than report date quit
S X=$S($D(^DG(40.8,D,"TS",T,"C",PD,0)):^(0),1:""),X=RD_"^"_$P(X,"^",2,99)
I RD=TSRI,$P(X,U,2)']"" S X=RD_"^"_$P(^DG(40.8,D,"TS",T,0),"^",3)
S:$E(PD,4,7)="0930" X=$P(X,"^",1,2)
S ^UTILITY("DGS",$J,+D,+T)=X ; Treating Specialty census
S ^UTILITY("DGSN",$J,+D,+T)="" ; Treating Specialty new census
S ^UTILITY("DGTOD",$J,+D,+T)=0 ; One Day Admissions
S X1=$S($D(^DG(40.8,D,"TS",T,"C",PD,1)):$P(^(1),"^",1,10),1:"")
S ^UTILITY("DGS1",$J,+D,+T)=X1 ; Treating Specialty remaining
S ^UTILITY("DGSN1",$J,+D,+T)="" ; Treating Specialty new remaining (one node)
S ^UTILITY("DGTF",$J,+D,+T)=0 ; Female Patients Remaining
S ^UTILITY("DGT6",$J,+D,+T)=0 ; Bed Occupants 65 & Over
S ^UTILITY("DGTV",$J,+D,+T)=0 ; Bed Occupants VN
S ^UTILITY("DGTP",$J,+D,+T)=$S('REM:+$P(X1,"^",5),1:0) ; Treating Specialty Pass
S ^UTILITY("DGTA",$J,+D,+T)=$S('REM:+$P(X1,"^",6),1:0) ; Treating Specialty Auth absense
S ^UTILITY("DGTU",$J,+D,+T)=$S('REM:+$P(X1,"^",7),1:0) ; Treating Specialty Unauth absense
S:'REM ^UTILITY("DGTAS",$J,+D,+T)=+$P(X1,"^",8) ; Treating Specialty ASIH
S:REM ^UTILITY("DGTI",$J,+D,+T)=0 ; if count pt. remaining
TCEN S ^DG(40.8,D,"TS",T,"C",RD,0)=RD_"^"_$P(^UTILITY("DGS",$J,D,T),"^",2,99),^DG(40.8,D,"TS",T,"C","B",RD,RD)=""
S:'$D(^DG(40.8,D,"TS",T,0))#2 ^(0)=T,^DG(40.8,D,"TS","B",T,T)=""
S:'$D(^DG(40.8,D,"TS",T,"C",0))#2 ^(0)="^40.807D^^",^DG(40.8,D,"TS",T,"C","B",T,T)=""
Q
;
UTIL ; Utility Nodes
; DGD=Monthly Planned Dom. (yesterday) ;
; DGDN=Monthly Planned Dom. (new) ;
; DGC=Zero Node Census file (yesterday) ;
; DGCN=Zero Node Census file (new) ;
; DGR=One Node Census file (yesterday) ;
; DGRN=One Node Census file (new) ;
; DGS=Treating Specialty (yesterday) ;
; DGSN=Treating Specialty (new) ;
; DGS1=Treating Specialty One Node (yesterday) ;
; DGSN1=Treating Specialty One Node (new) ;
;
VAR ; RC=ReCalc from date ; YD=YesterDay ; RD=Report Date ;
; BS=Bed Status ; GL=G&L ; REM=Recalc patient days ;
; PD=Previous Day ; W=Ward ; D=Division ; T=Treating Specialty
DGPMBSR1 ;ALB/LM - BED STATUS REPORT RECALCULATION CONT.; 16 JAN 91
+1 ;;5.3;Registration;**85,1015**;Aug 13, 1993;Build 21
+2 ;
A ; Date when recalc up to
SET DIE="^DG(43,"
SET DA=1
SET DR="53///"_RD
DO ^DIE
KILL DA,DIE,DR
+1 SET W=0
FOR I=0:0
SET W=$ORDER(^DIC(42,W))
IF 'W
QUIT
DO SET
+2 SET D=0
FOR I=0:0
SET D=$ORDER(^DG(40.8,D))
IF 'D
QUIT
SET ^UTILITY("DGD",$JOB,D)=$SELECT($DATA(^DG(40.8,D,"CEN",PD,0)):$PIECE(^(0),"^",12),1:0)
SET ^UTILITY("DGDN",$JOB,D)=""
SET T=0
FOR I1=0:0
SET T=$ORDER(^DG(40.8,D,"TS",T))
IF 'T
QUIT
DO TSET
+3 KILL I,I1,T,W,D
+4 DO ^DGPMGLG
+5 QUIT
+6 ;
SET SET X=$SELECT($DATA(^DG(41.9,W,"C",PD,0)):^(0),1:"")
SET X=RD_"^"_$PIECE(X,"^",2,99)
+1 ; New fiscal year
IF $EXTRACT(PD,4,7)="0930"
SET X=$PIECE(X,"^",1,2)
+2 ; Census
SET ^UTILITY("DGC",$JOB,W)=X
+3 ; New census
SET ^UTILITY("DGCN",$JOB,W)=""
+4 ; One Day Admissions
SET ^UTILITY("DGOD",$JOB,+W)=0
+5 SET X1=$SELECT($DATA(^DG(41.9,W,"C",PD,1)):$PIECE(^(1),"^",1,10),1:"")
+6 ; Remaining
SET ^UTILITY("DGR",$JOB,W)=X1
+7 ; New remaining (one node)
SET ^UTILITY("DGRN",$JOB,W)=""
+8 ; Female Patients Remaining
SET ^UTILITY("DGFR",$JOB,+W)=0
+9 ; Bed Occupants 65 & Over
SET ^UTILITY("DG6",$JOB,+W)=0
+10 ; Bed Occupants VN
SET ^UTILITY("DGVN",$JOB,+W)=0
+11 ; Pass
SET ^UTILITY("DGPS",$JOB,+W)=$SELECT('REM:+$PIECE(X1,"^",5),1:0)
+12 ; Auth absense
SET ^UTILITY("DGAA",$JOB,+W)=$SELECT('REM:+$PIECE(X1,"^",6),1:0)
+13 ; Unauth absense
SET ^UTILITY("DGUA",$JOB,+W)=$SELECT('REM:+$PIECE(X1,"^",7),1:0)
+14 ; ASIH
IF 'REM
SET ^UTILITY("DGAS",$JOB,+W)=+$PIECE(X1,"^",8)
+15 ; if count pt. remaining
IF REM
SET ^UTILITY("DGIP",$JOB,+W)=0
CEN SET ^DG(41.9,W,"C",RD,0)=RD_"^"_$PIECE(^UTILITY("DGC",$JOB,W),"^",2,99)
+1 IF '$DATA(^DG(41.9,W,0))#2
SET ^(0)=W
SET ^DG(41.9,"B",W,W)=""
SET $PIECE(^(0),"^",4)=$PIECE(^DG(41.9,0),"^",4)+1
SET $PIECE(^(0),"^",3)=RD
+2 IF '$DATA(^DG(41.9,W,"C",0))#2
SET ^(0)="^41.91DA^^"
+3 QUIT
+4 ;
TSET ; If TSR Initialization date is greater than report date quit
IF TSRI>RD
QUIT
+1 SET X=$SELECT($DATA(^DG(40.8,D,"TS",T,"C",PD,0)):^(0),1:"")
SET X=RD_"^"_$PIECE(X,"^",2,99)
+2 IF RD=TSRI
IF $PIECE(X,U,2)']""
SET X=RD_"^"_$PIECE(^DG(40.8,D,"TS",T,0),"^",3)
+3 IF $EXTRACT(PD,4,7)="0930"
SET X=$PIECE(X,"^",1,2)
+4 ; Treating Specialty census
SET ^UTILITY("DGS",$JOB,+D,+T)=X
+5 ; Treating Specialty new census
SET ^UTILITY("DGSN",$JOB,+D,+T)=""
+6 ; One Day Admissions
SET ^UTILITY("DGTOD",$JOB,+D,+T)=0
+7 SET X1=$SELECT($DATA(^DG(40.8,D,"TS",T,"C",PD,1)):$PIECE(^(1),"^",1,10),1:"")
+8 ; Treating Specialty remaining
SET ^UTILITY("DGS1",$JOB,+D,+T)=X1
+9 ; Treating Specialty new remaining (one node)
SET ^UTILITY("DGSN1",$JOB,+D,+T)=""
+10 ; Female Patients Remaining
SET ^UTILITY("DGTF",$JOB,+D,+T)=0
+11 ; Bed Occupants 65 & Over
SET ^UTILITY("DGT6",$JOB,+D,+T)=0
+12 ; Bed Occupants VN
SET ^UTILITY("DGTV",$JOB,+D,+T)=0
+13 ; Treating Specialty Pass
SET ^UTILITY("DGTP",$JOB,+D,+T)=$SELECT('REM:+$PIECE(X1,"^",5),1:0)
+14 ; Treating Specialty Auth absense
SET ^UTILITY("DGTA",$JOB,+D,+T)=$SELECT('REM:+$PIECE(X1,"^",6),1:0)
+15 ; Treating Specialty Unauth absense
SET ^UTILITY("DGTU",$JOB,+D,+T)=$SELECT('REM:+$PIECE(X1,"^",7),1:0)
+16 ; Treating Specialty ASIH
IF 'REM
SET ^UTILITY("DGTAS",$JOB,+D,+T)=+$PIECE(X1,"^",8)
+17 ; if count pt. remaining
IF REM
SET ^UTILITY("DGTI",$JOB,+D,+T)=0
TCEN SET ^DG(40.8,D,"TS",T,"C",RD,0)=RD_"^"_$PIECE(^UTILITY("DGS",$JOB,D,T),"^",2,99)
SET ^DG(40.8,D,"TS",T,"C","B",RD,RD)=""
+1 IF '$DATA(^DG(40.8,D,"TS",T,0))#2
SET ^(0)=T
SET ^DG(40.8,D,"TS","B",T,T)=""
+2 IF '$DATA(^DG(40.8,D,"TS",T,"C",0))#2
SET ^(0)="^40.807D^^"
SET ^DG(40.8,D,"TS",T,"C","B",T,T)=""
+3 QUIT
+4 ;
UTIL ; Utility Nodes
+1 ; DGD=Monthly Planned Dom. (yesterday) ;
+2 ; DGDN=Monthly Planned Dom. (new) ;
+3 ; DGC=Zero Node Census file (yesterday) ;
+4 ; DGCN=Zero Node Census file (new) ;
+5 ; DGR=One Node Census file (yesterday) ;
+6 ; DGRN=One Node Census file (new) ;
+7 ; DGS=Treating Specialty (yesterday) ;
+8 ; DGSN=Treating Specialty (new) ;
+9 ; DGS1=Treating Specialty One Node (yesterday) ;
+10 ; DGSN1=Treating Specialty One Node (new) ;
+11 ;
VAR ; RC=ReCalc from date ; YD=YesterDay ; RD=Report Date ;
+1 ; BS=Bed Status ; GL=G&L ; REM=Recalc patient days ;
+2 ; PD=Previous Day ; W=Ward ; D=Division ; T=Treating Specialty