1 | FHOMRBLD ;Hines OIFO/RVD-OUTPATIENT REPORT UTILITY ;2/03/04 10:05
|
---|
2 | ;;5.5;DIETETICS;;Jan 28, 2005
|
---|
3 | ;
|
---|
4 | ;RVD 2/3/04 - modified for Outpatient Meals
|
---|
5 | ;
|
---|
6 | ;ENTRY POINTS:
|
---|
7 | ; GETRM - get outpatient recurring meals data from starting dt.
|
---|
8 | ; GETSM - get outpatient special meals data from starting dt.
|
---|
9 | ;
|
---|
10 | GETRM(FHSDT,FHCOM,FHLOC,FHRDFN) ;get special recurring data.
|
---|
11 | ;input variables:
|
---|
12 | ; FHSDT = starting date
|
---|
13 | ; FHCOM = IEN of communication office, 'ALL' for all.
|
---|
14 | ; = if NULL, considered 'ALL'
|
---|
15 | ; FHLOC = IEN of location, 'ALL' for all.
|
---|
16 | ; = if NULL, considered 'ALL'
|
---|
17 | ; FHRDFN = IEN of NUTRITION PERSON, 'ALL' for all.
|
---|
18 | ; = if NULL, considered 'ALL'
|
---|
19 | ;
|
---|
20 | ;ouput:
|
---|
21 | ; ^TMP($J,"OP","R",COMMUNICATION OFF,NUTRITION LOCATION,PATIENT,DTE)
|
---|
22 | ; = for outpatient recurring meals
|
---|
23 | ;
|
---|
24 | ;contents of ^TMP($J global:
|
---|
25 | ; Piece 1 = patient DFN(IEN in file #115)
|
---|
26 | ; Piece 2 = recurring meals IEN
|
---|
27 | ; Piece 3 = recurring date/time
|
---|
28 | ; Piece 4 = diet
|
---|
29 | ; Piece 5 = meal
|
---|
30 | ; Piece 6 = bagged meal
|
---|
31 | ; Piece 7 = meal plan order number
|
---|
32 | ; Piece 8 = ADDITIONAL ORDER TEXT
|
---|
33 | ; Piece 9 = ADDITIONAL ORDER CLERK
|
---|
34 | ; Piece 10 = ADDITIONAL ORDER DATE AND TIME
|
---|
35 | ; Piece 11 = EARLY/LATE TRAY TIME
|
---|
36 | ; Piece 12 = EARLY/LATE TRAY BAGGED MEAL
|
---|
37 | ; Piece 13 = EARLY/LATE TRAY CLERK
|
---|
38 | ; Piece 14 = EARLY/LATE TRAY ENTRY DATE
|
---|
39 | ; Piece 15 = TUBEFEEDING COMMENT
|
---|
40 | ; Piece 16 = TF TOTAL CC'S
|
---|
41 | ; Piece 17 = TF TOTAL KCALS/DAY
|
---|
42 | ; Piece 18 = SERVICE (T,C,D or combination of 3)
|
---|
43 | ; Piece 19 = Status
|
---|
44 | ;
|
---|
45 | ;error:
|
---|
46 | ; ^TMP($J,"OP","ER") = error message
|
---|
47 | K ^TMP($J,"OP","R")
|
---|
48 | D NEWVAR
|
---|
49 | I '$O(^FHPT("RM",FHSDT)) S ^TMP($J,"OP","ER")="NO RECURRING MEALS FOR THIS DATE RANGE" Q
|
---|
50 | S:FHLOC="" FHLOC="ALL"
|
---|
51 | S:FHCOM="" FHCOM="ALL"
|
---|
52 | S:FHRDFN="" FHRDFN="ALL"
|
---|
53 | F FHSMDT=FHSDT:0 S FHSMDT=$O(^FHPT("RM",FHSMDT)) Q:FHSMDT'>0 D
|
---|
54 | .F FHDFN=0:0 S FHDFN=$O(^FHPT("RM",FHSMDT,FHDFN)) Q:FHDFN'>0 D
|
---|
55 | ..F FHIN=0:0 S FHIN=$O(^FHPT("RM",FHSMDT,FHDFN,FHIN)) Q:FHIN'>0 D
|
---|
56 | ...I $G(FHRDFN),(FHRDFN'=FHDFN) Q ;quit entry is different.
|
---|
57 | ...S (FHLCOMN,FHLCOM,FHLOCN,FHPTNM,FHDIET,FHTCD)=""
|
---|
58 | ...S FHNODE=$G(^FHPT(FHDFN,"OP",FHIN,0))
|
---|
59 | ...S FHD=$P(FHNODE,U,1)
|
---|
60 | ...D PATNAME^FHOMUTL S FHPTNM=$E(FHPTNM,1,18)
|
---|
61 | ...S:'$D(FHPTNM) FHPTNM="***"
|
---|
62 | ...S:FHPTNM="" FHPTNM="***"
|
---|
63 | ...S FHD=$$FMTE^XLFDT(FHSMDT,"P")
|
---|
64 | ...S FHD=$E(FHD,1,12)
|
---|
65 | ...S FHLPT=$P(FHNODE,U,3)
|
---|
66 | ...I $G(FHLOC),FHLOC'=FHLPT Q ;quit if location is not the same
|
---|
67 | ...S:$G(FHLPT) FHLCOM=$P($G(^FH(119.6,FHLPT,0)),U,8)
|
---|
68 | ...I $G(FHCOM),FHCOM'=FHLCOM Q ;quit if not same communication office
|
---|
69 | ...S:$G(FHLCOM) FHLCOMN=$P($G(^FH(119.73,FHLCOM,0)),U,1)
|
---|
70 | ...S:FHLCOMN="" FHLCOMN="***"
|
---|
71 | ...I $G(FHLPT) D
|
---|
72 | ....S FHLOCN=$P($G(^FH(119.6,FHLPT,0)),U,1)
|
---|
73 | ....S:$P($G(^FH(119.6,FHLPT,0)),U,5) FHTCD=FHTCD_"T"
|
---|
74 | ....S:$P($G(^FH(119.6,FHLPT,0)),U,6) FHTCD=FHTCD_"C"
|
---|
75 | ....S:$P($G(^FH(119.6,FHLPT,0)),U,7) FHTCD=FHTCD_"D"
|
---|
76 | ...S:FHLOCN="" FHLOCN="***"
|
---|
77 | ...S FHDPT=$P(FHNODE,U,2) S:FHDPT="" FHDPT=$P(FHNODE,U,7)
|
---|
78 | ...S:FHDPT="" FHDPT=$P(FHNODE,U,8) S:FHDPT="" FHDPT=$P(FHNODE,U,9)
|
---|
79 | ...S:FHDPT="" FHDPT=$P(FHNODE,U,10) S:FHDPT="" FHDPT=$P(FHNODE,U,11)
|
---|
80 | ...S:$G(FHDPT) FHDIET=$P($G(^FH(111,FHDPT,0)),U,1)
|
---|
81 | ...S:FHDIET="" FHDIET="***"
|
---|
82 | ...S FHMEAL=$P(FHNODE,U,4)
|
---|
83 | ...S:FHMEAL="" FHMEAL=$P(FHNODE,U,7)
|
---|
84 | ...S:FHMEAL="" FHMEAL=$P(FHNODE,U,8)
|
---|
85 | ...S:FHMEAL="" FHMEAL=$P(FHNODE,U,9)
|
---|
86 | ...S:FHMEAL="" FHMEAL=$P(FHNODE,U,10)
|
---|
87 | ...S:FHMEAL="" FHMEAL=$P(FHNODE,U,11)
|
---|
88 | ...S FHBAGM=$P(FHNODE,U,5)
|
---|
89 | ...S FHMPO=$P(FHNODE,U,6)
|
---|
90 | ...S FHMPO=$E(FHMPO,1,70)
|
---|
91 | ...S FHSTAT=$P(FHNODE,U,15)
|
---|
92 | ...S (FHADO,FHADOC,FHADODT,FHELT,FHELTB)=""
|
---|
93 | ...S (FHELTC,FHELTED,FHTFC,FHTFTC,FHTFTK)=""
|
---|
94 | ...I $D(^FHPT(FHDFN,"OP",FHIN,1)) D
|
---|
95 | ....S FHEL=$G(^FHPT(FHDFN,"OP",FHIN,1))
|
---|
96 | ....S FHADO=$P(FHEL,U,1)
|
---|
97 | ....S FHADOC=$P(FHEL,U,2)
|
---|
98 | ....I $G(FHADOC),($D(^VA(200,FHADOC,0))) S FHADOC=$P(^VA(200,FHADOC,0),U,1)
|
---|
99 | ....S FHADDT=$P(FHEL,U,3)
|
---|
100 | ...I $D(^FHPT(FHDFN,"OP",FHIN,2)) D
|
---|
101 | ....S FHEL2=$G(^FHPT(FHDFN,"OP",FHIN,2))
|
---|
102 | ....S FHELT=$P(FHEL2,U,1)
|
---|
103 | ....S FHELTB=$P(FHEL2,U,2)
|
---|
104 | ....S FHELTC=$P(FHEL2,U,3)
|
---|
105 | ....S FHELTED=$P(FHEL2,U,4)
|
---|
106 | ...I $D(^FHPT(FHDFN,"OP",FHIN,3)) D
|
---|
107 | ....S FHEL3=$G(^FHPT(FHDFN,"OP",FHIN,3))
|
---|
108 | ....S FHTFC=$P(FHEL3,U,1)
|
---|
109 | ....S FHTFTC=$P(FHEL3,U,2)
|
---|
110 | ....S FHTFTK=$P(FHEL3,U,3)
|
---|
111 | ...S FHDAT=FHDFN_"^"_FHD_"^"_FHDIET_"^"_FHMEAL_"^"_FHBAGM_"^"_FHMPO
|
---|
112 | ...S FHDAT=FHDAT_"^"_FHADO_"^"_FHADOC_"^"_FHADODT_"^"_FHELT_"^"_FHELTB
|
---|
113 | ...S FHDAT=FHDAT_"^"_FHELTC_"^"_FHELTED_"^"_FHTFC_"^"_FHTFTC_"^"_FHTFTK
|
---|
114 | ...S ^TMP($J,"OP","R",FHLCOMN,FHLOCN,FHPTNM,FHSMDT)=FHDAT_"^"_FHTCD_"^"_FHSTAT
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | ;
|
---|
118 | GETSM(FHSDT,FHCOM,FHLOC,FHSDFN) ;get special meals data.
|
---|
119 | ;input variables:
|
---|
120 | ; FHSDT = starting date
|
---|
121 | ; FHCOM = IEN of communication office, 'ALL' for all.
|
---|
122 | ; = if NULL, considered 'ALL'
|
---|
123 | ; FHLOC = IEN of location, 'ALL' for all.
|
---|
124 | ; = if NULL, considered 'ALL'
|
---|
125 | ; FHSDFN = IEN of file #115, 'ALL' for all.
|
---|
126 | ; = if NULL, considered 'ALL'
|
---|
127 | ;
|
---|
128 | ;ouput:
|
---|
129 | ; ^TMP($J,"OP","S",COMMUNICATION OFF,NUTRITION LOCATION,PATIENT,DTE)
|
---|
130 | ; = for outpatient special meals
|
---|
131 | ;
|
---|
132 | ;contents of ^TMP($J global:
|
---|
133 | ; Piece 1 = patient DFN
|
---|
134 | ; Piece 2 = special meal date/time
|
---|
135 | ; Piece 3 = status
|
---|
136 | ; Piece 4 = diet
|
---|
137 | ; Piece 5 = requestor
|
---|
138 | ; Piece 6 = authorizor
|
---|
139 | ; Piece 7 = authorize/deny date/time
|
---|
140 | ; Piece 8 = comment
|
---|
141 | ; Piece 9 = meal
|
---|
142 | ; Piece 10 = early/late tray time
|
---|
143 | ; Piece 11 = early/late tray bagged meal
|
---|
144 | ; Piece 12 = early/late tray clerk
|
---|
145 | ; Piece 13 = SERVICE (T,C,D or combination of 3)
|
---|
146 | ;
|
---|
147 | ;error:
|
---|
148 | ; ^TMP($J,"OP","ER")
|
---|
149 | K ^TMP($J,"OP","S")
|
---|
150 | D NEWVAR
|
---|
151 | S FHSDT=FHSDT-.000001
|
---|
152 | I '$O(^FHPT("SM",FHSDT)) S ^TMP($J,"OP","ER")="NO SPECIAL MEALS FOR THIS DATE RANGE" Q
|
---|
153 | S:FHLOC="" FHLOC="ALL"
|
---|
154 | S:FHCOM="" FHCOM="ALL"
|
---|
155 | S:FHSDFN="" FHSDFN="ALL"
|
---|
156 | S FHS="ACDP"
|
---|
157 | F FHSMDT=FHSDT:0 S FHSMDT=$O(^FHPT("SM",FHSMDT)) Q:FHSMDT'>0 D
|
---|
158 | .F FHDFN=0:0 S FHDFN=$O(^FHPT("SM",FHSMDT,FHDFN)) Q:FHDFN'>0 D
|
---|
159 | ..I $G(FHSDFN),(FHSDFN'=FHDFN) Q
|
---|
160 | ..S (FHLCOMN,FHLCOM,FHLOCN,FHPTNM,FHDIET,FHTCD)=""
|
---|
161 | ..S FHNODE=$G(^FHPT(FHDFN,"SM",FHSMDT,0))
|
---|
162 | ..S FHSTAT=$P(FHNODE,U,2)
|
---|
163 | ..I FHS'[FHSTAT Q
|
---|
164 | ..S FHSTAT=$S(FHSTAT="P":"PENDING",FHSTAT="A":"AUTHORIZED",FHSTAT="D":"DENIED",1:"CANCELLED")
|
---|
165 | ..D PATNAME^FHOMUTL S FHPTNM=$E(FHPTNM,1,18)
|
---|
166 | ..S:FHPTNM="" FHPTNM="***"
|
---|
167 | ..S FHD=$$FMTE^XLFDT(FHSMDT,"P")
|
---|
168 | ..S FHD=$E(FHD,1,12)
|
---|
169 | ..S FHSTAT=$P(FHNODE,U,2)
|
---|
170 | ..S FHLPT=$P(FHNODE,U,3)
|
---|
171 | ..I $G(FHLOC),FHLOC'=FHLPT Q
|
---|
172 | ..S:$G(FHLPT) FHLCOM=$P($G(^FH(119.6,FHLPT,0)),U,8)
|
---|
173 | ..I $G(FHCOM),FHCOM'=FHLCOM Q ;quit if d same communication office
|
---|
174 | ..S:$G(FHLCOM) FHLCOMN=$P($G(^FH(119.73,FHLCOM,0)),U,1)
|
---|
175 | ..S:FHLCOMN="" FHLCOMN="***"
|
---|
176 | ..I $G(FHLPT) D
|
---|
177 | ...S FHLOCN=$P($G(^FH(119.6,FHLPT,0)),U,1)
|
---|
178 | ...S:$P($G(^FH(119.6,FHLPT,0)),U,5) FHTCD=FHTCD_"T"
|
---|
179 | ...S:$P($G(^FH(119.6,FHLPT,0)),U,6) FHTCD=FHTCD_"C"
|
---|
180 | ...S:$P($G(^FH(119.6,FHLPT,0)),U,7) FHTCD=FHTCD_"D"
|
---|
181 | ..S:FHLOCN="" FHLOCN="***"
|
---|
182 | ..S FHDPT=$P(FHNODE,U,4)
|
---|
183 | ..S:$G(FHDPT) FHDIET=$P($G(^FH(111,FHDPT,0)),U,1)
|
---|
184 | ..S:FHDIET="" FHDIET="***"
|
---|
185 | ..S (FHAUTR,FHREQ)=""
|
---|
186 | ..S FHCOMM=$P(FHNODE,U,8)
|
---|
187 | ..S FHMEAL=$P(FHNODE,U,9)
|
---|
188 | ..S FHADDT=$P(FHNODE,U,7)
|
---|
189 | ..S FHAUTR=$P(FHNODE,U,6)
|
---|
190 | ..S FHREQ=$P(FHNODE,U,5)
|
---|
191 | ..S:$L(FHCOMM)>70 FHCOMM=$E(FHCOMM,1,70)
|
---|
192 | ..I $G(FHAUTR),($D(^VA(200,FHAUTR,0))) S FHAUTR=$P(^VA(200,FHAUTR,0),U,1)
|
---|
193 | ..I $G(FHREQ),($D(^VA(200,FHREQ,0))) S FHREQ=$P(^VA(200,FHREQ,0),U,1)
|
---|
194 | ..S (FHELT,FHELBG,FHELC)=""
|
---|
195 | ..I $D(^FHPT(FHDFN,"SM",FHSMDT,1)) D
|
---|
196 | ...S FHEL=$G(^FHPT(FHDFN,"SM",FHSMDT,1))
|
---|
197 | ...S FHELT=$P(FHEL,U,1)
|
---|
198 | ...S FHELBG=$P(FHEL,U,2)
|
---|
199 | ...S FHELC=$P(FHEL,U,3)
|
---|
200 | ..S FHDAT=FHDFN_"^"_FHD_"^"_FHSTAT_"^"_FHDIET_"^"_FHREQ
|
---|
201 | ..S FHDAT=FHDAT_"^"_FHAUTR_"^"_FHADDT_"^"_FHCOMM
|
---|
202 | ..S FHDAT=FHDAT_"^"_FHMEAL_"^"_FHELT_"^"_FHELBG_"^"_FHELC_"^"_FHTCD
|
---|
203 | ..S ^TMP($J,"OP","S",FHLCOMN,FHLOCN,FHPTNM,FHSMDT)=FHDAT
|
---|
204 | Q
|
---|
205 | ;
|
---|
206 | NEWVAR ;new all variables.
|
---|
207 | N FHPTNM,FHD,FHDIET,FHMEAL,FHELTT,FHELBG,FHDAT,FHSTAT,FHLPT
|
---|
208 | N FHAGE,FHCH,FHCL,FHDOB,FHGMDT,FHML,FHNODE,FHPCZN,FHSEX,FHSSN,FILE
|
---|
209 | N FHDAT,FHDPT,FHEL,FHLPT,FHS,FHSMDT,FHSTAT,FHNN,FH
|
---|
210 | Q
|
---|