FHPRO5 ; HISC/REL - Recipe Preparation ;7/18/94 16:39
;;5.5;DIETETICS;**3**;Jan 28, 2005
;RVD 5/23/05 0 - as part of AFP project.
I FHP3="Y"!(FHP4="Y") D Q1 D:FHP3="Y" Q2 D:FHP4="Y" ^FHPRO6
D:FHP5="Y" ^FHPRO7 Q
Q1 ; Set-up Recipe Prep and Storeroom scratch global
K R S K4="" F K=0:0 S K4=$O(^TMP($J,"FH","T",K4)) Q:K4="" F L1=0:0 S L1=$O(^TMP($J,"FH","T",K4,L1)) Q:L1<1 S:'$D(R(L1)) R(L1)=0 S R(L1)=R(L1)+^(L1)
G1 F K1=0:0 S K1=$O(R(K1)) Q:K1<1 D P3
G:$O(R(""))'="" G1
Q
P3 S X0=$G(^FH(114,K1,0)),P1=R(K1),MUL=$P(X0,"^",2) K R(K1) Q:'MUL S MUL=P1/MUL
S S1=$P(X0,"^",12) S:S1 S1=$P($G(^FH(114.2,S1,0)),"^",3)
S S1=$S(S1<1:99,S1<10:"0"_S1,1:S1)_$E($P(X0,"^",1),1,28)
I FHP3="Y" S:$D(^TMP($J,"FH","I",S1,K1))#2=0 ^TMP($J,"FH","I",S1,K1)=0 S ^(K1)=^(K1)+P1
F KK=0:0 S KK=$O(^FH(114,K1,"I",KK)) Q:KK<1 S Y=^(KK,0) D P4
F KK=0:0 S KK=$O(^FH(114,K1,"R",KK)) Q:KK<1 S Y=^(KK,0) D P6
Q
P4 S X1=+Y,Q=$P(Y,"^",2)*MUL
S Y0=$G(^FHING(X1,0))
S S2=$P(Y0,"^",12) S:S2 S2=$P($G(^FH(113.1,S2,0)),"^",3)
S S2=$S(S2<1:99,S2<10:"0"_S2,1:S2)_$E($P(Y0,"^",1),1,28) G:FHP3'="Y" P5
S:'$D(^TMP($J,"FH","I",S1,K1,S2,X1)) ^TMP($J,"FH","I",S1,K1,S2,X1)=0 S ^(X1)=^(X1)+Q
P5 Q:FHP4'="Y"
S:'$D(^TMP($J,"FH","S",S2,X1,S1,K1)) ^TMP($J,"FH","S",S2,X1,S1,K1)=0 S ^(K1)=^(K1)+Q Q
P6 S P1=$P(Y,"^",2)*MUL S:'$D(R(+Y)) R(+Y)=0 S R(+Y)=R(+Y)+P1 Q
Q2 ; Print Recipe Preparation
S OLD="",R1="" I $P(FHPAR,"^",4)'="Y" S PG=0 D HDR
S1 S R1=$O(^TMP($J,"FH","I",R1)) I R1="" W ! Q
F K1=0:0 S K1=$O(^TMP($J,"FH","I",R1,K1)) Q:K1<1 S TOT=^(K1),FLG=0,R2="",X0=^FH(114,K1,0) D S2
G S1
S2 I $P(FHPAR,"^",4)="Y",OLD'=$E(R1,1,2) S OLD=$E(R1,1,2),PG=0 D HDR
S3 S R2=$O(^TMP($J,"FH","I",R1,K1,R2)) Q:R2=""
F X1=0:0 S X1=$O(^TMP($J,"FH","I",R1,K1,R2,X1)) Q:X1<1 D S4
G S3
S4 D:$Y>(IOSL-7) HDR W ! G:FLG S5 W !,$P(X0,"^",1) S FLG=1
I $P(FHPAR,"^",4)'="Y" S Z=$P(X0,"^",12) S:Z Z=$P(^FH(114.2,Z,0),"^",2) W:Z'="" " (",Z,")"
W ?39,$J(TOT,5,0)
S5 S (Y,I1)=^TMP($J,"FH","I",R1,K1,R2,X1)
S Y(0)=$G(^FHING(X1,0)),UNT=$P(Y(0),"^",16) D EN2^FHREC1
W ?46,$E($P(Y(0),"^",1),1,42),?90,Y S I2=$P(Y(0),"^",17) Q:'I2 S I1=I1/I2 Q:'I1
S I1=+$J(I1,0,1) W ?113,I1," ",$P(Y(0),"^",6) Q
B0 S LAB=$P(FHPAR,"^",10),R2=LAB=2*5+32
F KK=0:0 S KK=$O(^TMP($J,"FH","I",KK)) Q:KK<1 F K1=0:0 S K1=$O(^TMP($J,"FH","I",KK,K1)) Q:K1<1 D B1
F X1=1:1:18 W !
Q
B1 F X1=0:0 S X1=$O(^TMP($J,"FH","I",KK,K1,X1)) Q:X1<1 S (Y,I1)=^(X1) D B2
Q
B2 S Y(0)=^FHING(X1,0),UNT=$P(Y(0),"^",16) D EN2^FHREC1
S I2=$P(Y(0),"^",17) Q:'I2 S I1=I1/I2
S I1=$S(I1<1:1,I1#1<.1:I1\1,1:I1+.9\1)
W !,$E($P(Y(0),"^",1),1,R2),!!,I1," ",$P(Y(0),"^",6),!!,$E($P(^FH(114,K1,0),"^",1),1,R2),! Q
HDR S PG=PG+1 W @IOF,!,DTP,?48,"R E C I P E P R E P A R A T I O N",?125,"Page ",PG
W !,FHRETYP,?(131-$L(FHP6)),FHP6
W ! D:$P(FHPAR,"^",4)="Y" PRE W ?(132-$L(TIM)\2),TIM
W !!,"Recipe",?40,"Port. Ingredient",?90,"Quantity",?113,"Storeroom Amount"
W ! F K=1:1:131 W "-"
Q
PRE S K=$P(X0,"^",12) S:K K=$P($G(^FH(114.2,K,0)),"^",1)
W:K'="" K Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HFHPRO5 3029 printed Oct 16, 2024@17:55:29 Page 2
FHPRO5 ; HISC/REL - Recipe Preparation ;7/18/94 16:39
+1 ;;5.5;DIETETICS;**3**;Jan 28, 2005
+2 ;RVD 5/23/05 0 - as part of AFP project.
+3 IF FHP3="Y"!(FHP4="Y")
DO Q1
if FHP3="Y"
DO Q2
if FHP4="Y"
DO ^FHPRO6
+4 if FHP5="Y"
DO ^FHPRO7
QUIT
Q1 ; Set-up Recipe Prep and Storeroom scratch global
+1 KILL R
SET K4=""
FOR K=0:0
SET K4=$ORDER(^TMP($JOB,"FH","T",K4))
if K4=""
QUIT
FOR L1=0:0
SET L1=$ORDER(^TMP($JOB,"FH","T",K4,L1))
if L1<1
QUIT
if '$DATA(R(L1))
SET R(L1)=0
SET R(L1)=R(L1)+^(L1)
G1 FOR K1=0:0
SET K1=$ORDER(R(K1))
if K1<1
QUIT
DO P3
+1 if $ORDER(R(""))'=""
GOTO G1
+2 QUIT
P3 SET X0=$GET(^FH(114,K1,0))
SET P1=R(K1)
SET MUL=$PIECE(X0,"^",2)
KILL R(K1)
if 'MUL
QUIT
SET MUL=P1/MUL
+1 SET S1=$PIECE(X0,"^",12)
if S1
SET S1=$PIECE($GET(^FH(114.2,S1,0)),"^",3)
+2 SET S1=$SELECT(S1<1:99,S1<10:"0"_S1,1:S1)_$EXTRACT($PIECE(X0,"^",1),1,28)
+3 IF FHP3="Y"
if $DATA(^TMP($JOB,"FH","I",S1,K1))#2=0
SET ^TMP($JOB,"FH","I",S1,K1)=0
SET ^(K1)=^(K1)+P1
+4 FOR KK=0:0
SET KK=$ORDER(^FH(114,K1,"I",KK))
if KK<1
QUIT
SET Y=^(KK,0)
DO P4
+5 FOR KK=0:0
SET KK=$ORDER(^FH(114,K1,"R",KK))
if KK<1
QUIT
SET Y=^(KK,0)
DO P6
+6 QUIT
P4 SET X1=+Y
SET Q=$PIECE(Y,"^",2)*MUL
+1 SET Y0=$GET(^FHING(X1,0))
+2 SET S2=$PIECE(Y0,"^",12)
if S2
SET S2=$PIECE($GET(^FH(113.1,S2,0)),"^",3)
+3 SET S2=$SELECT(S2<1:99,S2<10:"0"_S2,1:S2)_$EXTRACT($PIECE(Y0,"^",1),1,28)
if FHP3'="Y"
GOTO P5
+4 if '$DATA(^TMP($JOB,"FH","I",S1,K1,S2,X1))
SET ^TMP($JOB,"FH","I",S1,K1,S2,X1)=0
SET ^(X1)=^(X1)+Q
P5 if FHP4'="Y"
QUIT
+1 if '$DATA(^TMP($JOB,"FH","S",S2,X1,S1,K1))
SET ^TMP($JOB,"FH","S",S2,X1,S1,K1)=0
SET ^(K1)=^(K1)+Q
QUIT
P6 SET P1=$PIECE(Y,"^",2)*MUL
if '$DATA(R(+Y))
SET R(+Y)=0
SET R(+Y)=R(+Y)+P1
QUIT
Q2 ; Print Recipe Preparation
+1 SET OLD=""
SET R1=""
IF $PIECE(FHPAR,"^",4)'="Y"
SET PG=0
DO HDR
S1 SET R1=$ORDER(^TMP($JOB,"FH","I",R1))
IF R1=""
WRITE !
QUIT
+1 FOR K1=0:0
SET K1=$ORDER(^TMP($JOB,"FH","I",R1,K1))
if K1<1
QUIT
SET TOT=^(K1)
SET FLG=0
SET R2=""
SET X0=^FH(114,K1,0)
DO S2
+2 GOTO S1
S2 IF $PIECE(FHPAR,"^",4)="Y"
IF OLD'=$EXTRACT(R1,1,2)
SET OLD=$EXTRACT(R1,1,2)
SET PG=0
DO HDR
S3 SET R2=$ORDER(^TMP($JOB,"FH","I",R1,K1,R2))
if R2=""
QUIT
+1 FOR X1=0:0
SET X1=$ORDER(^TMP($JOB,"FH","I",R1,K1,R2,X1))
if X1<1
QUIT
DO S4
+2 GOTO S3
S4 if $Y>(IOSL-7)
DO HDR
WRITE !
if FLG
GOTO S5
WRITE !,$PIECE(X0,"^",1)
SET FLG=1
+1 IF $PIECE(FHPAR,"^",4)'="Y"
SET Z=$PIECE(X0,"^",12)
if Z
SET Z=$PIECE(^FH(114.2,Z,0),"^",2)
if Z'=""
WRITE " (",Z,")"
+2 WRITE ?39,$JUSTIFY(TOT,5,0)
S5 SET (Y,I1)=^TMP($JOB,"FH","I",R1,K1,R2,X1)
+1 SET Y(0)=$GET(^FHING(X1,0))
SET UNT=$PIECE(Y(0),"^",16)
DO EN2^FHREC1
+2 WRITE ?46,$EXTRACT($PIECE(Y(0),"^",1),1,42),?90,Y
SET I2=$PIECE(Y(0),"^",17)
if 'I2
QUIT
SET I1=I1/I2
if 'I1
QUIT
+3 SET I1=+$JUSTIFY(I1,0,1)
WRITE ?113,I1," ",$PIECE(Y(0),"^",6)
QUIT
B0 SET LAB=$PIECE(FHPAR,"^",10)
SET R2=LAB=2*5+32
+1 FOR KK=0:0
SET KK=$ORDER(^TMP($JOB,"FH","I",KK))
if KK<1
QUIT
FOR K1=0:0
SET K1=$ORDER(^TMP($JOB,"FH","I",KK,K1))
if K1<1
QUIT
DO B1
+2 FOR X1=1:1:18
WRITE !
+3 QUIT
B1 FOR X1=0:0
SET X1=$ORDER(^TMP($JOB,"FH","I",KK,K1,X1))
if X1<1
QUIT
SET (Y,I1)=^(X1)
DO B2
+1 QUIT
B2 SET Y(0)=^FHING(X1,0)
SET UNT=$PIECE(Y(0),"^",16)
DO EN2^FHREC1
+1 SET I2=$PIECE(Y(0),"^",17)
if 'I2
QUIT
SET I1=I1/I2
+2 SET I1=$SELECT(I1<1:1,I1#1<.1:I1\1,1:I1+.9\1)
+3 WRITE !,$EXTRACT($PIECE(Y(0),"^",1),1,R2),!!,I1," ",$PIECE(Y(0),"^",6),!!,$EXTRACT($PIECE(^FH(114,K1,0),"^",1),1,R2),!
QUIT
HDR SET PG=PG+1
WRITE @IOF,!,DTP,?48,"R E C I P E P R E P A R A T I O N",?125,"Page ",PG
+1 WRITE !,FHRETYP,?(131-$LENGTH(FHP6)),FHP6
+2 WRITE !
if $PIECE(FHPAR,"^",4)="Y"
DO PRE
WRITE ?(132-$LENGTH(TIM)\2),TIM
+3 WRITE !!,"Recipe",?40,"Port. Ingredient",?90,"Quantity",?113,"Storeroom Amount"
+4 WRITE !
FOR K=1:1:131
WRITE "-"
+5 QUIT
PRE SET K=$PIECE(X0,"^",12)
if K
SET K=$PIECE($GET(^FH(114.2,K,0)),"^",1)
+1 if K'=""
WRITE K
QUIT