[613] | 1 | FHDCR1A ; HISC/REL/NCA/RVD - Build Diet Cards ;1/21/99 14:04
|
---|
| 2 | ;;5.5;DIETETICS;**1,5**;Jan 28, 2005;Build 53
|
---|
| 3 | ;patch #5 - added the screen for cancelled Guest meal.
|
---|
| 4 | B1 ; Store wards
|
---|
| 5 | K ^TMP($J),NN,N,P S MFLG=0 D Q1^FHDCR1B D NOW^%DTC S (DTP,TIM)=% D DTP^FH S HD=DTP S:MEAL="A" MFLG=1
|
---|
| 6 | S DTP=D1 D DTP^FH S (MDT,MEALDT)=DTP,MEALDT=$J("",62-$L(MEALDT)\2)_MEALDT
|
---|
| 7 | S FHBOT=$P($G(^FH(119.9,1,4)),"^",1)
|
---|
| 8 | S FHD1=D1-.00001,FHD2=D1+.99999
|
---|
| 9 | S FHDFNSAV="",FHW1SAV=W1,FHFHPSAV=FHP,FHMEALSA=MEAL
|
---|
| 10 | S:$G(FHDFN) FHDFNSAV=FHDFN
|
---|
| 11 | I $G(DFN),'$D(^DPT(DFN,.1)) G OUTALL
|
---|
| 12 | I '$G(DFN),$G(FHDFN) G OUTALL
|
---|
| 13 | ;next process inpatient data
|
---|
| 14 | DFN I $G(DFN),$G(FHDFN) D Q
|
---|
| 15 | .S ADM=+$G(^DPT(DFN,.105)),W1=+$P($G(^FHPT(FHDFN,"A",+ADM,0)),"^",8)
|
---|
| 16 | .S K1=$G(^FH(119.6,+W1,0)),WRDN=$P(K1,"^",1),SP=$P(K1,"^",5),SP1=$P(K1,"^",6),FHPAR=$P(K1,"^",24),RM=$G(^DPT(DFN,.101))
|
---|
| 17 | .I 'SP Q:FHPAR'="Y" S SP=SP1 Q:'SP
|
---|
| 18 | .K PP,S,MM S NBR=0
|
---|
| 19 | .I 'TPP D BLD^FHDCR11 D:NBR UPD,PRT^FHDCR1C Q
|
---|
| 20 | .I 'MFLG D BLD^FHDCR1D D:NBR UPD,PRT^FHMTK1C Q
|
---|
| 21 | .F MEAL="B","N","E" D BLD^FHDCR1D
|
---|
| 22 | .D UPD
|
---|
| 23 | .D:NBR PRT^FHMTK1C
|
---|
| 24 | ;if ward, do specific ward/location;otherwise, do all entry for all
|
---|
| 25 | ;wards/locations and all communication offices.
|
---|
| 26 | WARD I W1 S ^TMP($J,"W","01"_$P($G(^FH(119.6,+W1,0)),"^",1))=W1_"^"_$P($G(^FH(119.6,+W1,0)),"^",5,6)_"^"_$P($G(^FH(119.6,+W1,0)),"^",24)
|
---|
| 27 | E F W1=0:0 S W1=$O(^FH(119.6,W1)) Q:W1<1 D
|
---|
| 28 | .S P0=$G(^FH(119.6,W1,0)),WRDN=$P(P0,"^",1),SP=$P(P0,"^",5,6),D2=$P(P0,"^",8),FHPAR=$P(P0,"^",24),P0=$P(P0,"^",4),P0=$S(P0<1:99,P0<10:"0"_P0,1:P0)
|
---|
| 29 | .I FHP,D2'=FHP Q
|
---|
| 30 | .S ^TMP($J,"W",P0_WRDN)=W1_"^"_SP_"^"_FHPAR Q
|
---|
| 31 | S NX="" F S NX=$O(^TMP($J,"W",NX)) Q:NX="" S X1=$G(^(NX)),W1=+X1,FHS=$P(X1,"^",2),SP1=$P(X1,"^",3),FHPAR=$P(X1,"^",4),WRDN=$E(NX,3,99) S:'FHS&(FHPAR="Y") FHS=SP1 I FHS K ^TMP($J,"D") D
|
---|
| 32 | .F FHDFN=0:0 S FHDFN=$O(^FHPT("AW",W1,FHDFN)) Q:FHDFN<1 D
|
---|
| 33 | ..D PATNAME^FHOMUTL Q:'$G(DFN)
|
---|
| 34 | ..S ADM=$G(^FHPT("AW",W1,FHDFN))
|
---|
| 35 | ..I SORT="A" S RM=$P($G(^DPT(DFN,0)),"^",1),DL=0,RMB=$G(^DPT(DFN,.101)) S:RMB="" RMB="***"
|
---|
| 36 | ..E S RI=$G(^DPT(DFN,.108)),RM=$G(^DPT(DFN,.101)) S:RM="" RM="***" S:RI RE=$O(^FH(119.6,"AR",+RI,W1,0)) S:'RI RE="" S DL=$S(RE:$P($G(^FH(119.6,W1,"R",+RE,0)),"^",2),1:""),RMB=""
|
---|
| 37 | ..S DL=$S(DL<1:99,DL<10:"0"_DL,1:DL)
|
---|
| 38 | ..S ^TMP($J,"D",DL_"~"_RM_"~"_$S(SORT="R":DFN,1:RMB))=DFN_"^"_ADM_"^"_FHDFN Q
|
---|
| 39 | .;
|
---|
| 40 | .K ^TMP($J,"MP"),^TMP($J,0),MM,PP,S S X9="",NBR=0 F S X9=$O(^TMP($J,"D",X9)) Q:X9="" S FHX6=$G(^(X9)) S DFN=$P(FHX6,"^",1),ADM=$P(FHX6,"^",2) D
|
---|
| 41 | ..S FHDFN=$P(FHX6,"^",3)
|
---|
| 42 | ..S RM=$S(SORT="R":$P(X9,"~",2),1:$P(X9,"~",3)) S SP=FHS
|
---|
| 43 | ..I TPP D Q
|
---|
| 44 | ...I 'MFLG D BLD^FHDCR1D,UPD Q
|
---|
| 45 | ...F MEAL="B","N","E" D BLD^FHDCR1D
|
---|
| 46 | ...D UPD
|
---|
| 47 | ...Q
|
---|
| 48 | ..I 'TPP D BLD^FHDCR11 D UPD Q
|
---|
| 49 | .I NBR,TPP D PRT^FHMTK1C Q
|
---|
| 50 | .D:NBR PRT^FHDCR1C
|
---|
| 51 | ;
|
---|
| 52 | OUTALL K ^TMP($J,"D") ;reset/clean-up tmp global outpatient process.
|
---|
| 53 | ;process outpatient data
|
---|
| 54 | ;next recurring
|
---|
| 55 | F FHK1=FHD1:0 S FHK1=$O(^FHPT("RM",FHK1)) Q:(FHK1'>0)!(FHK1>FHD2) D
|
---|
| 56 | .F FHDFN=0:0 S FHDFN=$O(^FHPT("RM",FHK1,FHDFN)) Q:FHDFN'>0 D
|
---|
| 57 | ..F FHKD=0:0 S FHKD=$O(^FHPT("RM",FHK1,FHDFN,FHKD)) Q:FHKD'>0 D
|
---|
| 58 | ...S FHKDAT=^FHPT(FHDFN,"OP",FHKD,0)
|
---|
| 59 | ...S (W1,FHW1)=$P(FHKDAT,U,3)
|
---|
| 60 | ...S FHRMB=$P(FHKDAT,U,18)
|
---|
| 61 | ...S FHDIET=$P(FHKDAT,U,2),FHMEAL=$P(FHKDAT,U,4),FHSTAT=$P(FHKDAT,U,15)
|
---|
| 62 | ...S:FHDIET="" FHDIET=$E(FHKDAT,7,11)
|
---|
| 63 | ...I (FHMEALSA'="A"),(FHMEAL'=FHMEALSA) Q
|
---|
| 64 | ...I FHSTAT="C" Q
|
---|
| 65 | ...I $G(FHW1SAV),(FHW1'=FHW1SAV) Q
|
---|
| 66 | ...I $G(FHDFNSAV),(FHDFN'=FHDFNSAV) Q
|
---|
| 67 | ...S FHLOC="",FHRGS="OP"
|
---|
| 68 | ...Q:'$G(FHW1)
|
---|
| 69 | ...S:$D(^FH(119.6,FHW1,0)) FHLOC=$P(^FH(119.6,FHW1,0),U,8)
|
---|
| 70 | ...I $G(FHFHPSAV),$G(FHLOC),(FHFHPSAV'=FHLOC) Q
|
---|
| 71 | ...S FHDFN1=$P(^FHPT(FHDFN,0),U,1)
|
---|
| 72 | ...I $G(FHW1SAV)!($G(FHFHPSAV)) D OUTW Q
|
---|
| 73 | ...I $G(FHDFNSAV) D OUTP Q
|
---|
| 74 | ...D OUTW
|
---|
| 75 | ;next guest
|
---|
| 76 | F FHKD=FHD1:0 S FHKD=$O(^FHPT("GM",FHKD)) Q:(FHKD'>0)!(FHKD>FHD2) D
|
---|
| 77 | .F FHDFN=0:0 S FHDFN=$O(^FHPT("GM",FHKD,FHDFN)) Q:FHDFN'>0 D
|
---|
| 78 | ..S FHKDAT=^FHPT(FHDFN,"GM",FHKD,0)
|
---|
| 79 | ..S (W1,FHW1)=$P(FHKDAT,U,5)
|
---|
| 80 | ..S FHSTAT=$P(FHKDAT,U,9)
|
---|
| 81 | ..Q:FHSTAT="C"
|
---|
| 82 | ..S FHRMB=$P(FHKDAT,U,11)
|
---|
| 83 | ..S FHDIET=$P(FHKDAT,U,6),FHMEAL=$P(FHKDAT,U,3)
|
---|
| 84 | ..I (FHMEALSA'="A"),(FHMEAL'=FHMEALSA) Q
|
---|
| 85 | ..I $G(FHW1SAV),(FHW1'=FHW1SAV) Q
|
---|
| 86 | ..I $G(FHDFNSAV),(FHDFN'=FHDFNSAV) Q
|
---|
| 87 | ..S FHLOC="",FHRGS="GM"
|
---|
| 88 | ..Q:'$G(FHW1)
|
---|
| 89 | ..S:$D(^FH(119.6,FHW1,0)) FHLOC=$P(^FH(119.6,FHW1,0),U,8)
|
---|
| 90 | ..I $G(FHFHPSAV),$G(FHLOC),(FHFHPSAV'=FHLOC) Q
|
---|
| 91 | ..S FHDFN1=$P(^FHPT(FHDFN,0),U,1)
|
---|
| 92 | ..I $G(FHW1SAV)!($G(FHFHPSAV)) D OUTW Q
|
---|
| 93 | ..I $G(FHDFNSAV) D OUTP Q
|
---|
| 94 | ..D OUTW
|
---|
| 95 | ;next SPECIAL
|
---|
| 96 | F FHKD=FHD1:0 S FHKD=$O(^FHPT("SM",FHKD)) Q:(FHKD'>0)!(FHKD>FHD2) D
|
---|
| 97 | .F FHDFN=0:0 S FHDFN=$O(^FHPT("SM",FHKD,FHDFN)) Q:FHDFN'>0 D
|
---|
| 98 | ..S FHKDAT=^FHPT(FHDFN,"SM",FHKD,0)
|
---|
| 99 | ..S (W1,FHW1)=$P(FHKDAT,U,3)
|
---|
| 100 | ..S FHRMB=$P(FHKDAT,U,13)
|
---|
| 101 | ..S FHDFN1=$P(^FHPT(FHDFN,0),U,1)
|
---|
| 102 | ..S FHDIET=$P(FHKDAT,U,4),FHMEAL=$P(FHKDAT,U,9),FHSTAT=$P(FHKDAT,U,2)
|
---|
| 103 | ..I (FHMEALSA'="A"),(FHMEAL'=FHMEALSA) Q
|
---|
| 104 | ..I (FHSTAT="C")!(FHSTAT="D") Q
|
---|
| 105 | ..I $G(FHW1SAV),(FHW1'=FHW1SAV) Q
|
---|
| 106 | ..I $G(FHDFNSAV),(FHDFN'=FHDFNSAV) Q
|
---|
| 107 | ..S FHLOC="",FHRGS="SM"
|
---|
| 108 | ..Q:'$G(FHW1)
|
---|
| 109 | ..S:$D(^FH(119.6,FHW1,0)) FHLOC=$P(^FH(119.6,FHW1,0),U,8)
|
---|
| 110 | ..I $G(FHFHPSAV),$G(FHLOC),(FHFHPSAV'=FHLOC) Q
|
---|
| 111 | ..S FHDFN1=$P(^FHPT(FHDFN,0),U,1)
|
---|
| 112 | ..I $G(FHW1SAV)!($G(FHFHPSAV)) D OUTW Q
|
---|
| 113 | ..I $G(FHDFNSAV) D OUTP Q
|
---|
| 114 | ..D OUTW
|
---|
| 115 | ;
|
---|
| 116 | K ^TMP($J,"MP"),^TMP($J,0),MM,PP,S S X9="",NBR=0 F S X9=$O(^TMP($J,"D",X9)) Q:X9="" S FHX6=$G(^(X9)) S FHDFN=$P(FHX6,"^",1),ADM=$P(FHX6,"^",2) D
|
---|
| 117 | .S RM=$S(SORT="R":$P(X9,"~",2),1:$P(X9,"~",3)) S SP=FHS
|
---|
| 118 | .S FHDFN=$P(FHX6,"^",1),FHRGS=$P(FHX6,"^",2)
|
---|
| 119 | .D PATNAME^FHOMUTL
|
---|
| 120 | .S FHKD=$P(FHX6,"^",3),W1=$P(FHX6,"^",4)
|
---|
| 121 | .Q:$G(FHRGS)!('$G(FHKD))
|
---|
| 122 | .S FHSTAT="",FHADM=FHKD
|
---|
| 123 | .S FHKDAT=$G(^FHPT(FHDFN,""_FHRGS_"",FHKD,0))
|
---|
| 124 | .I FHRGS="GM" S W1=$P(FHKDAT,U,5),FHDIET=$P(FHKDAT,U,6),FHMEAL=$P(FHKDAT,U,3)
|
---|
| 125 | .I FHRGS="OP" S W1=$P(FHKDAT,U,3),FHDIET=$P(FHKDAT,U,2),FHMEAL=$P(FHKDAT,U,4),FHSTAT=$P(FHKDAT,U,15)
|
---|
| 126 | .I FHRGS="SM" S W1=$P(FHKDAT,U,3),FHDIET=$P(FHKDAT,U,4),FHMEAL=$P(FHKDAT,U,9),FHSTAT=$P(FHKDAT,U,2)
|
---|
| 127 | .;don't process IF STATUS IS cancelled or denied
|
---|
| 128 | .I (FHSTAT="C")!(FHSTAT="D") Q
|
---|
| 129 | .S K1=$G(^FH(119.6,+W1,0)),WRDN=$P(K1,"^",1),SP=$P(K1,"^",5),SP1=$P(K1,"^",6),FHPAR=$P(K1,"^",24)
|
---|
| 130 | .I 'SP Q:FHPAR'="Y" S SP=SP1 Q:'SP
|
---|
| 131 | .I TPP D Q
|
---|
| 132 | ..I 'MFLG,'ADM D OUT^FHDCR1D,@FHRGS Q
|
---|
| 133 | ..F MEAL="B","N","E" D:'ADM OUT^FHDCR1D
|
---|
| 134 | ..D:'ADM @FHRGS
|
---|
| 135 | .I 'TPP,'ADM D OUT^FHDCR11 D @FHRGS Q
|
---|
| 136 | I NBR,TPP D PRT^FHMTK1C Q
|
---|
| 137 | D:NBR PRT^FHDCR1C
|
---|
| 138 | Q
|
---|
| 139 | ;
|
---|
| 140 | UPD ; Update Date/Time Diet Card was Printed
|
---|
| 141 | S $P(^FHPT(FHDFN,"A",ADM,0),"^",16)=TIM Q
|
---|
| 142 | OUTP ;process outpatient using patient
|
---|
| 143 | S RM="***"
|
---|
| 144 | S K1=$G(^FH(119.6,+W1,0)),WRDN=$P(K1,"^",1),SP=$P(K1,"^",5),SP1=$P(K1,"^",6),FHPAR=$P(K1,"^",24)
|
---|
| 145 | I 'SP Q:FHPAR'="Y" S SP=SP1 Q:'SP
|
---|
| 146 | K PP,S,MM S NBR=0,FHADM=FHKD I $G(FHRMB),$D(^DG(405.4,FHRMB,0)) S RM=$P(^DG(405.4,FHRMB,0),U,1)
|
---|
| 147 | I 'TPP D OUT^FHDCR11 D:NBR @FHRGS,PRT^FHDCR1C K ^TMP($J,"MP"),^TMP($J,0),PP,S,TT,SRT Q
|
---|
| 148 | I 'MFLG D OUT^FHDCR1D D:NBR @FHRGS,PRT^FHMTK1C Q
|
---|
| 149 | F MEAL="B","N","E" D OUT^FHDCR1D
|
---|
| 150 | D @FHRGS
|
---|
| 151 | D:NBR PRT^FHMTK1C
|
---|
| 152 | Q
|
---|
| 153 | OP S $P(^FHPT(FHDFN,"OP",FHKD,0),"^",14)=TIM Q
|
---|
| 154 | GM S $P(^FHPT(FHDFN,"GM",FHKD,0),"^",8)=TIM Q
|
---|
| 155 | SM S $P(^FHPT(FHDFN,"SM",FHKD,0),"^",11)=TIM Q
|
---|
| 156 | ;
|
---|
| 157 | OUTW ;process outpatient using all and ward.
|
---|
| 158 | ;F FHDFN=0:0 S FHDFN=$O(^FHPT("AW",W1,FHDFN)) Q:FHDFN<1 D
|
---|
| 159 | D PATNAME^FHOMUTL
|
---|
| 160 | S (RM,RMB)="***"
|
---|
| 161 | I $G(FHRMB),$D(^DG(405.4,FHRMB,0)) S RMB=$P(^DG(405.4,FHRMB,0),U,1)
|
---|
| 162 | I SORT="A" S RM=FHPTNM,DL=0
|
---|
| 163 | E S (RI,RE,DL)="***",RM=RMB
|
---|
| 164 | S ^TMP($J,"D",DL_"~"_RM_"~"_$S(SORT="R":FHDFN,1:RMB)_FHMEAL)=FHDFN_"^"_FHRGS_"^"_FHKD_"^"_W1
|
---|
| 165 | Q
|
---|