FHADM4 ; HISC/REL/NCA - Staffing Data Report ;1/23/98 16:08
;;5.5;DIETETICS;;Jan 28, 2005
EN1 ; Enter/Edit Staffing Data
; Check for multidivisional site
I $P($G(^FH(119.9,1,0)),U,20)'="N" D EN1^FHMADM4 Q
D NOW^%DTC S DT=%\1
E1 S %DT="AEPX",%DT("A")="STAFFING DATA Date: " W ! D ^%DT G KIL:"^"[X!$D(DTOUT),E1:Y<1
S DA=+Y I DA>DT W *7,!!,"** Date must not be in the future!",! G E1
K DIC,DIE S DIE="^FH(117.1," I '$D(^FH(117.1,DA,0)) S ^FH(117.1,DA,0)=DA,^FH(117.1,"B",DA,DA)="",X0=^FH(117.1,0),$P(^FH(117.1,0),"^",3,4)=DA_"^"_($P(X0,"^",4)+1)
S X1=DA,X2=-1 D C^%DTC S DM1=X,FHX1=$P($G(^FH(117.1,DM1,0)),"^",2,6)
S DR="[FHADM4]" D ^DIE G EN1
EN2 ; Print Staffing Data Report
; Check for multidivisional site
I $P($G(^FH(119.9,1,0)),U,20)'="N" D EN2^FHMADM4 Q
D DT^FHADM2 G:"^"[X KIL
W !!,"The report requires a 132 column printer.",!
K IOP,%ZIS S %ZIS("A")="Print on Device: ",%ZIS="MQ" W ! D ^%ZIS K %ZIS,IOP G:POP KIL
I $D(IO("Q")) S FHPGM="Q1^FHADM4",FHLST="EDT^SDT" D EN2^FH G KIL
U IO D Q1 D ^%ZISC K %ZIS,IOP G KIL
Q1 ; Process Printing Staffing Report
S DTP=SDT\1 D DTP^FH S DTE=DTP_" to " S DTP=EDT\1 D DTP^FH S DTE=DTE_DTP
S X=SDT D DOW^%DTC S DOW=Y+1
D NOW^%DTC S DTP=% D DTP^FH S HDT=DTP,PG=0 D HDR
K S,AV F K=1:1:23 S S(K)=0
S SIZ="61 51 51 51 51 50 30 30 30 30 30 30 30 30 30 30 30 30 30 51 50 50 50"
S D1=SDT,(ND,FHTOT,TO1,TOT)=0 F L1=0:0 D N1 S X1=D1,X2=1 D C^%DTC Q:X>EDT S D1=X,DOW=DOW+1 S:DOW=8 DOW=1
D LN G:ND>62 Q2
W !?7,"Total",?15 F K=1:1:5,20,21,6:1:10,22,11:1:19,23 S X=$P(SIZ," ",K) W $J(S(K),$E(X,1)+1,$E(X,2))
Q2 I ND W !?7,"Avg.",?15 F K=1:1:5,20,21,6:1:10,22,11:1:19,23 S X=$P(SIZ," ",K) W $J(S(K)/ND,$E(X,1)+1,$E(X,2))
I S(22) W !?7,"% Paid",?68 F K=8,9,10,22,11:1:19,23 S X=$P(SIZ," ",K) W $J(S(K)/S(22)*100,$E(X,1)+1,0)
I TOT W !!?7,"Adjustment for Unscheduled and Intermittent",!!?7,"UNS/INT Total " S TOT=TOT/8 W $J(TOT,5,1)," FTEE",!?7,"Adjusted Measured FTEE " S TOT=TOT+TO1 W $J(TOT,6,1) I ND W !?7,"Avg Measured FTEE ",$J(TOT/ND,5,1)
I FHTOT S MAN=S(22)*60 W !!?7,"Man Minutes/Meal: ",$J(MAN/FHTOT,0,0)
W ! Q
HDR W:'($E(IOST,1,2)'="C-"&'PG) @IOF S PG=PG+1 W !?4,HDT,?44,"S T A F F I N G D A T A W O R K S H E E T",?122,"Page ",PG
W !!?(132-$L(DTE)\2),DTE
W !!?15,"| DAILY| CLIN|ADMIN| SUPP| SUPV| MEAS| POT | OFF |WOP| OT|UNS|INT| PAID|COP| AL| SL|OTH|LND|CMP|TRN|VOL|BOR|TOTAL"
W !?15,"| FTEE| FTEE| FTEE| FTEE| FTEE| FTEE| HRS | HRS |HRS|HRS|HRS|HRS| HRS |HRS|HRS|HRS|HRS|HRS|HRS|HRS|HRS|HRS| HRS"
LN W !?4,"----------------------------------------------------------------------------------------------------------------------------" Q
N1 S Y0=$G(^FH(117.1,D1,0)),ND=ND+1
S DTP=D1 D DTP^FH D:$Y>(IOSL-8) HDR
K N F L=2:1:20 S N(L-1)=$P(Y0,"^",L)
S N(20)=N(1)-N(2)-N(3)-N(4)-N(5),N(21)=N(20)*8
S N(22)=N(21)-N(6)-N(7)+N(8)+N(9)+N(10),N(23)=N(22)-N(11)-N(12)-N(13)-N(14)-N(15)+N(16)+N(17)+N(18)+N(19),TOT=TOT+N(9)+N(10),TO1=TO1+N(20)
W !?4,$P("Sun Mon Tue Wed Thu Fri Sat"," ",DOW)," ",$E(DTP,1,6)," "
F K=1:1:5,20,21,6:1:10,22,11:1:19,23 S S(K)=S(K)+N(K),X=$P(SIZ," ",K),N(K)=$S('N(K):$J("",$E(X,1)),1:$J(N(K),$E(X,1),$E(X,2))) W "|",N(K)
D M1
Q
M1 ; Get total Meals
S Y1=$G(^FH(117,D1,0)) Q:Y1="" S Y2=$G(^FH(117,D1,1))
K M S K=1 F L=1,2,4,5,7,8 S K=K+1,M(L)=$P(Y1,"^",K)
S K=10 F L=1:3:16 S K=K+1,M(K)=$P(Y2,"^",L)+$P(Y2,"^",L+1)+$P(Y2,"^",L+2)
S M(3)=M(1)-M(2)*3,M(6)=M(4)-M(5)*3,M(9)=M(7)-M(8)*3
S M(10)=M(3)+M(6)+M(9)
S M(16)=M(14)+M(15)+M(16),M(13)=M(12)+M(13),M(17)=M(11)+M(13)+M(16),M(18)=M(10)+M(17)
S FHTOT=FHTOT+M(18) Q
KIL G KILL^XUSCLEAN
FHADM4 ; HISC/REL/NCA - Staffing Data Report ;1/23/98 16:08
+1 ;;5.5;DIETETICS;;Jan 28, 2005
EN1 ; Enter/Edit Staffing Data
+1 ; Check for multidivisional site
+2 IF $PIECE($GET(^FH(119.9,1,0)),U,20)'="N"
DO EN1^FHMADM4
QUIT
+3 DO NOW^%DTC
SET DT=%\1
E1 SET %DT="AEPX"
SET %DT("A")="STAFFING DATA Date: "
WRITE !
DO ^%DT
IF "^"[X!$DATA(DTOUT)
GOTO KIL
IF Y<1
GOTO E1
+1 SET DA=+Y
IF DA>DT
WRITE *7,!!,"** Date must not be in the future!",!
GOTO E1
+2 KILL DIC,DIE
SET DIE="^FH(117.1,"
IF '$DATA(^FH(117.1,DA,0))
SET ^FH(117.1,DA,0)=DA
SET ^FH(117.1,"B",DA,DA)=""
SET X0=^FH(117.1,0)
SET $PIECE(^FH(117.1,0),"^",3,4)=DA_"^"_($PIECE(X0,"^",4)+1)
+3 SET X1=DA
SET X2=-1
DO C^%DTC
SET DM1=X
SET FHX1=$PIECE($GET(^FH(117.1,DM1,0)),"^",2,6)
+4 SET DR="[FHADM4]"
DO ^DIE
GOTO EN1
EN2 ; Print Staffing Data Report
+1 ; Check for multidivisional site
+2 IF $PIECE($GET(^FH(119.9,1,0)),U,20)'="N"
DO EN2^FHMADM4
QUIT
+3 DO DT^FHADM2
IF "^"[X
GOTO KIL
+4 WRITE !!,"The report requires a 132 column printer.",!
+5 KILL IOP,%ZIS
SET %ZIS("A")="Print on Device: "
SET %ZIS="MQ"
WRITE !
DO ^%ZIS
KILL %ZIS,IOP
IF POP
GOTO KIL
+6 IF $DATA(IO("Q"))
SET FHPGM="Q1^FHADM4"
SET FHLST="EDT^SDT"
DO EN2^FH
GOTO KIL
+7 USE IO
DO Q1
DO ^%ZISC
KILL %ZIS,IOP
GOTO KIL
Q1 ; Process Printing Staffing Report
+1 SET DTP=SDT\1
DO DTP^FH
SET DTE=DTP_" to "
SET DTP=EDT\1
DO DTP^FH
SET DTE=DTE_DTP
+2 SET X=SDT
DO DOW^%DTC
SET DOW=Y+1
+3 DO NOW^%DTC
SET DTP=%
DO DTP^FH
SET HDT=DTP
SET PG=0
DO HDR
+4 KILL S,AV
FOR K=1:1:23
SET S(K)=0
+5 SET SIZ="61 51 51 51 51 50 30 30 30 30 30 30 30 30 30 30 30 30 30 51 50 50 50"
+6 SET D1=SDT
SET (ND,FHTOT,TO1,TOT)=0
FOR L1=0:0
DO N1
SET X1=D1
SET X2=1
DO C^%DTC
IF X>EDT
QUIT
SET D1=X
SET DOW=DOW+1
IF DOW=8
SET DOW=1
+7 DO LN
IF ND>62
GOTO Q2
+8 WRITE !?7,"Total",?15
FOR K=1:1:5,20,21,6:1:10,22,11:1:19,23
SET X=$PIECE(SIZ," ",K)
WRITE $JUSTIFY(S(K),$EXTRACT(X,1)+1,$EXTRACT(X,2))
Q2 IF ND
WRITE !?7,"Avg.",?15
FOR K=1:1:5,20,21,6:1:10,22,11:1:19,23
SET X=$PIECE(SIZ," ",K)
WRITE $JUSTIFY(S(K)/ND,$EXTRACT(X,1)+1,$EXTRACT(X,2))
+1 IF S(22)
WRITE !?7,"% Paid",?68
FOR K=8,9,10,22,11:1:19,23
SET X=$PIECE(SIZ," ",K)
WRITE $JUSTIFY(S(K)/S(22)*100,$EXTRACT(X,1)+1,0)
+2 IF TOT
WRITE !!?7,"Adjustment for Unscheduled and Intermittent",!!?7,"UNS/INT Total "
SET TOT=TOT/8
WRITE $JUSTIFY(TOT,5,1)," FTEE",!?7,"Adjusted Measured FTEE "
SET TOT=TOT+TO1
WRITE $JUSTIFY(TOT,6,1)
IF ND
WRITE !?7,"Avg Measured FTEE ",$JUSTIFY(TOT/ND,5,1)
+3 IF FHTOT
SET MAN=S(22)*60
WRITE !!?7,"Man Minutes/Meal: ",$JUSTIFY(MAN/FHTOT,0,0)
+4 WRITE !
QUIT
HDR IF '($EXTRACT(IOST,1,2)'="C-"&'PG)
WRITE @IOF
SET PG=PG+1
WRITE !?4,HDT,?44,"S T A F F I N G D A T A W O R K S H E E T",?122,"Page ",PG
+1 WRITE !!?(132-$LENGTH(DTE)\2),DTE
+2 WRITE !!?15,"| DAILY| CLIN|ADMIN| SUPP| SUPV| MEAS| POT | OFF |WOP| OT|UNS|INT| PAID|COP| AL| SL|OTH|LND|CMP|TRN|VOL|BOR|TOTAL"
+3 WRITE !?15,"| FTEE| FTEE| FTEE| FTEE| FTEE| FTEE| HRS | HRS |HRS|HRS|HRS|HRS| HRS |HRS|HRS|HRS|HRS|HRS|HRS|HRS|HRS|HRS| HRS"
LN WRITE !?4,"----------------------------------------------------------------------------------------------------------------------------"
QUIT
N1 SET Y0=$GET(^FH(117.1,D1,0))
SET ND=ND+1
+1 SET DTP=D1
DO DTP^FH
IF $Y>(IOSL-8)
DO HDR
+2 KILL N
FOR L=2:1:20
SET N(L-1)=$PIECE(Y0,"^",L)
+3 SET N(20)=N(1)-N(2)-N(3)-N(4)-N(5)
SET N(21)=N(20)*8
+4 SET N(22)=N(21)-N(6)-N(7)+N(8)+N(9)+N(10)
SET N(23)=N(22)-N(11)-N(12)-N(13)-N(14)-N(15)+N(16)+N(17)+N(18)+N(19)
SET TOT=TOT+N(9)+N(10)
SET TO1=TO1+N(20)
+5 WRITE !?4,$PIECE("Sun Mon Tue Wed Thu Fri Sat"," ",DOW)," ",$EXTRACT(DTP,1,6)," "
+6 FOR K=1:1:5,20,21,6:1:10,22,11:1:19,23
SET S(K)=S(K)+N(K)
SET X=$PIECE(SIZ," ",K)
SET N(K)=$SELECT('N(K):$JUSTIFY("",$EXTRACT(X,1)),1:$JUSTIFY(N(K),$EXTRACT(X,1),$EXTRACT(X,2)))
WRITE "|",N(K)
+7 DO M1
+8 QUIT
M1 ; Get total Meals
+1 SET Y1=$GET(^FH(117,D1,0))
IF Y1=""
QUIT
SET Y2=$GET(^FH(117,D1,1))
+2 KILL M
SET K=1
FOR L=1,2,4,5,7,8
SET K=K+1
SET M(L)=$PIECE(Y1,"^",K)
+3 SET K=10
FOR L=1:3:16
SET K=K+1
SET M(K)=$PIECE(Y2,"^",L)+$PIECE(Y2,"^",L+1)+$PIECE(Y2,"^",L+2)
+4 SET M(3)=M(1)-M(2)*3
SET M(6)=M(4)-M(5)*3
SET M(9)=M(7)-M(8)*3
+5 SET M(10)=M(3)+M(6)+M(9)
+6 SET M(16)=M(14)+M(15)+M(16)
SET M(13)=M(12)+M(13)
SET M(17)=M(11)+M(13)+M(16)
SET M(18)=M(10)+M(17)
+7 SET FHTOT=FHTOT+M(18)
QUIT
KIL GOTO KILL^XUSCLEAN