2 // ------------------------------------------------------------------------ //
3 // Garden State Health Systems //
4 // Copyright (c) 2010 gshsys.com //
5 // <http://www.gshsys.com/> //
6 // ------------------------------------------------------------------------ //
7 // This program is free software; you can redistribute it and/or modify //
8 // it under the terms of the GNU General Public License as published by //
9 // the Free Software Foundation; either version 2 of the License, or //
10 // (at your option) any later version. //
12 // You may not change or alter any portion of this comment or credits //
13 // of supporting developers from this source code or any supporting //
14 // source code which is considered copyrighted (c) material of the //
15 // original comment or credit authors. //
17 // This program is distributed in the hope that it will be useful, //
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
20 // GNU General Public License for more details. //
22 // You should have received a copy of the GNU General Public License //
23 // along with this program; if not, write to the Free Software //
24 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
25 // ------------------------------------------------------------------------ //
27 if($_POST['ccrAction'] == 'generate'){
28 if(isset($_POST['show_date'])){
30 $start = $_POST['Start'];
31 $start = $start." 00:00:00";
33 $end = $end." 23:59:59";
37 function getHeaderData() {
39 // Reserved for future use
43 function getMedicationData() {
44 global $pid,$set,$start,$end;
47 SELECT prescriptions.date_added ,
48 prescriptions.patient_id,
49 prescriptions.start_date,
50 prescriptions.quantity,
51 prescriptions.interval,
54 prescriptions.medication,
55 IF(prescriptions.active=1,'Active','Prior History No Longer Active') AS active,
56 prescriptions.provider_id,
58 prescriptions.rxnorm_drugcode,
59 IFNULL(prescriptions.refills,0) AS refills,
63 LEFT JOIN list_options AS lo
64 ON lo.list_id = 'drug_units' AND prescriptions.unit = lo.option_id
65 LEFT JOIN list_options AS lo2
66 ON lo2.list_id = 'drug_form' AND prescriptions.form = lo2.option_id
67 WHERE prescriptions.patient_id = ?
68 AND prescriptions.date_added BETWEEN ? AND ?
71 DATE(DATE) AS date_added,
73 begdate AS start_date,
79 IF((isnull(enddate) OR enddate = '0000-00-00' OR enddate >= CURDATE()),'Active','Prior History No Longer Active') AS active,
82 '' AS rxnorm_drugcode,
88 WHERE `type` = 'medication'
90 AND `date` BETWEEN ? AND ?";
91 $result = sqlStatement($sql, array($pid,$start,$end,$pid,$start,$end) );
94 SELECT prescriptions.date_added ,
95 prescriptions.patient_id,
96 prescriptions.start_date,
97 prescriptions.quantity,
98 prescriptions.interval,
101 prescriptions.medication,
102 IF(prescriptions.active=1,'Active','Prior History No Longer Active') AS active,
103 prescriptions.provider_id,
105 prescriptions.rxnorm_drugcode,
106 IFNULL(prescriptions.refills,0) AS refills,
110 LEFT JOIN list_options AS lo
111 ON lo.list_id = 'drug_units' AND prescriptions.unit = lo.option_id
112 LEFT JOIN list_options AS lo2
113 ON lo2.list_id = 'drug_form' AND prescriptions.form = lo2.option_id
114 WHERE prescriptions.patient_id = ?
117 DATE(DATE) AS date_added,
119 begdate AS start_date,
125 IF((isnull(enddate) OR enddate = '0000-00-00' OR enddate >= CURDATE()),'Active','Prior History No Longer Active') AS active,
128 '' AS rxnorm_drugcode,
134 WHERE `type` = 'medication'
136 $result = sqlStatement($sql, array($pid,$pid) );
141 function getImmunizationData() {
142 global $pid,$set,$start,$end;
145 immunizations.administered_date,
146 immunizations.patient_id,
147 immunizations.vis_date,
149 immunizations.immunization_id,
150 immunizations.manufacturer,
151 codes.code_text AS title
153 LEFT JOIN codes ON immunizations.cvx_code = codes.code
154 LEFT JOIN code_types ON codes.code_type = code_types.ct_id
155 WHERE immunizations.patient_id = ? AND code_types.ct_key = 'CVX'
156 AND create_date BETWEEN ? AND ?" ;
157 $result = sqlStatement($sql, array($pid,$start,$end) );
160 immunizations.administered_date,
161 immunizations.patient_id,
162 immunizations.vis_date,
164 immunizations.immunization_id,
165 immunizations.manufacturer,
166 codes.code_text AS title
168 LEFT JOIN codes ON immunizations.cvx_code = codes.code
169 LEFT JOIN code_types ON codes.code_type = code_types.ct_id
170 WHERE immunizations.patient_id = ? AND code_types.ct_key = 'CVX'";
171 $result = sqlStatement($sql, array($pid) );
177 function getProcedureData() {
179 global $pid,$set,$start,$end;
183 lists.title as proc_title,
184 lists.date as `date`,
185 list_options.title as outcome,
188 lists.type as `type`,
189 lists.diagnosis as `code`,
190 IF(SUBSTRING(lists.diagnosis,1,LOCATE(':',lists.diagnosis)-1) = 'ICD9','ICD9-CM',SUBSTRING(lists.diagnosis,1,LOCATE(':',lists.diagnosis)-1)) AS coding
193 LEFT JOIN issue_encounter
194 ON issue_encounter.list_id = lists.id
195 LEFT JOIN form_encounter
196 ON form_encounter.encounter = issue_encounter.encounter
198 ON form_encounter.facility_id = facility.id
200 ON form_encounter.provider_id = users.id
201 LEFT JOIN list_options
202 ON lists.outcome = list_options.option_id
203 AND list_options.list_id = 'outcome'
204 WHERE lists.type = 'surgery'
206 AND lists.date BETWEEN ? AND ?
209 pt.name as proc_title,
212 ptt.laterality as laterality,
213 ptt.body_site as body_site,
214 'Lab Order' as `type`,
215 ptt.standard_code as `code`,
216 IF(SUBSTRING(ptt.standard_code,1,LOCATE(':',ptt.standard_code)-1) = 'ICD9','ICD9-CM',SUBSTRING(ptt.standard_code,1,LOCATE(':',ptt.standard_code)-1)) AS coding
218 procedure_result AS prs
219 LEFT JOIN procedure_report AS prp
220 ON prs.procedure_report_id = prp.procedure_report_id
221 LEFT JOIN procedure_order AS po
222 ON prp.procedure_order_id = po.procedure_order_id
223 LEFT JOIN procedure_type AS pt
224 ON prs.procedure_type_id = pt.procedure_type_id
225 LEFT JOIN procedure_type AS ptt
226 ON pt.parent = ptt.procedure_type_id
227 AND ptt.procedure_type = 'ord'
228 LEFT JOIN list_options AS lo
229 ON lo.list_id = 'proc_unit'
230 AND pt.units = lo.option_id
231 WHERE po.patient_id = ?
232 AND prs.date BETWEEN ? AND ?";
234 $result = sqlStatement($sql, array($pid,$start,$end,$pid,$start,$end) );
238 lists.title as proc_title,
239 lists.date as `date`,
240 list_options.title as outcome,
243 lists.type as `type`,
244 lists.diagnosis as `code`,
245 IF(SUBSTRING(lists.diagnosis,1,LOCATE(':',lists.diagnosis)-1) = 'ICD9','ICD9-CM',SUBSTRING(lists.diagnosis,1,LOCATE(':',lists.diagnosis)-1)) AS coding
248 LEFT JOIN issue_encounter
249 ON issue_encounter.list_id = lists.id
250 LEFT JOIN form_encounter
251 ON form_encounter.encounter = issue_encounter.encounter
253 ON form_encounter.facility_id = facility.id
255 ON form_encounter.provider_id = users.id
256 LEFT JOIN list_options
257 ON lists.outcome = list_options.option_id
258 AND list_options.list_id = 'outcome'
259 WHERE lists.type = 'surgery'
263 pt.name as proc_title,
266 ptt.laterality as laterality,
267 ptt.body_site as body_site,
268 'Lab Order' as `type`,
269 ptt.standard_code as `code`,
270 IF(SUBSTRING(ptt.standard_code,1,LOCATE(':',ptt.standard_code)-1) = 'ICD9','ICD9-CM',SUBSTRING(ptt.standard_code,1,LOCATE(':',ptt.standard_code)-1)) AS coding
272 procedure_result AS prs
273 LEFT JOIN procedure_report AS prp
274 ON prs.procedure_report_id = prp.procedure_report_id
275 LEFT JOIN procedure_order AS po
276 ON prp.procedure_order_id = po.procedure_order_id
277 LEFT JOIN procedure_type AS pt
278 ON prs.procedure_type_id = pt.procedure_type_id
279 LEFT JOIN procedure_type AS ptt
280 ON pt.parent = ptt.procedure_type_id
281 AND ptt.procedure_type = 'ord'
282 LEFT JOIN list_options AS lo
283 ON lo.list_id = 'proc_unit'
284 AND pt.units = lo.option_id
285 WHERE po.patient_id = ? ";
287 $result = sqlStatement($sql, array($pid,$pid) );
293 function getProblemData() {
295 global $pid,$set,$start,$end;
298 SELECT fe.encounter, fe.reason, fe.provider_id, u.title, u.fname, u.lname,
299 fe.facility_id, f.street, f.city, f.state, ie.list_id, l.pid, l.title AS prob_title, l.diagnosis,
300 l.outcome, l.groupname, l.begdate, l.enddate, l.type, l.comments , l.date, cd.code_text
302 LEFT JOIN issue_encounter AS ie ON ie.list_id = l.id
303 LEFT JOIN form_encounter AS fe ON fe.encounter = ie.encounter
304 LEFT JOIN facility AS f ON fe.facility_id = f.id
305 LEFT JOIN users AS u ON fe.provider_id = u.id
306 LEFT JOIN codes AS cd ON cd.code = SUBSTRING(l.diagnosis, LOCATE(':',l.diagnosis)+1)
307 LEFT JOIN code_types AS ct ON ct.ct_id = cd.code_type
308 WHERE l.type = 'medical_problem' AND l.pid=? AND ct.ct_key = SUBSTRING(l.diagnosis, 1, LOCATE(':',l.diagnosis)-1)
309 AND l.date BETWEEN ? AND ?";
310 $result = sqlStatement($sql, array($pid,$start,$end) );
313 SELECT fe.encounter, fe.reason, fe.provider_id, u.title, u.fname, u.lname,
314 fe.facility_id, f.street, f.city, f.state, ie.list_id, l.pid, l.title AS prob_title, l.diagnosis,
315 l.outcome, l.groupname, l.begdate, l.enddate, l.type, l.comments , l.date, cd.code_text
317 LEFT JOIN issue_encounter AS ie ON ie.list_id = l.id
318 LEFT JOIN form_encounter AS fe ON fe.encounter = ie.encounter
319 LEFT JOIN facility AS f ON fe.facility_id = f.id
320 LEFT JOIN users AS u ON fe.provider_id = u.id
321 LEFT JOIN codes AS cd ON cd.code = SUBSTRING(l.diagnosis, LOCATE(':',l.diagnosis)+1)
322 LEFT JOIN code_types AS ct ON ct.ct_id = cd.code_type
323 WHERE l.type = 'medical_problem' AND l.pid=? AND ct.ct_key = SUBSTRING(l.diagnosis, 1, LOCATE(':',l.diagnosis)-1)";
324 $result = sqlStatement($sql, array($pid) );
330 function getAlertData() {
332 global $pid,$set,$start,$end;
335 select fe.reason, fe.provider_id, fe.facility_id, fe.encounter,
336 ie.list_id, l.pid, l.title as alert_title, l.outcome,
337 l.groupname, l.begdate, l.enddate, l.type, l.diagnosis, l.date ,
338 l.reaction , l.comments ,
339 f.street, f.city, f.state, u.title, u.fname, u.lname, cd.code_text
341 left join issue_encounter as ie
343 left join form_encounter as fe
344 on fe.encounter = ie.encounter
345 left join facility as f
346 on fe.facility_id = f.id
348 on fe.provider_id = u.id
349 left join codes as cd
350 on cd.code = SUBSTRING(l.diagnosis, LOCATE(':',l.diagnosis)+1)
351 where l.type = 'allergy' and l.pid=?
352 AND l.date BETWEEN ? AND ?";
354 $result = sqlStatement($sql, array($pid,$start,$end) );
357 select fe.reason, fe.provider_id, fe.facility_id, fe.encounter,
358 ie.list_id, l.pid, l.title as alert_title, l.outcome,
359 l.groupname, l.begdate, l.enddate, l.type, l.diagnosis, l.date ,
360 l.reaction , l.comments ,
361 f.street, f.city, f.state, u.title, u.fname, u.lname, cd.code_text
363 left join issue_encounter as ie
365 left join form_encounter as fe
366 on fe.encounter = ie.encounter
367 left join facility as f
368 on fe.facility_id = f.id
370 on fe.provider_id = u.id
371 left join codes as cd
372 on cd.code = SUBSTRING(l.diagnosis, LOCATE(':',l.diagnosis)+1)
373 where l.type = 'allergy' and l.pid=?";
375 $result = sqlStatement($sql, array($pid) );
381 function getResultData() {
383 global $pid,$set,$start,$end;
387 prs.procedure_result_id as `pid`,
389 pt.procedure_type_id as `type`,
391 concat_ws(' ',prs.result,lo.title) as `result`,
392 prs.range as `range`,
393 prs.abnormal as `abnormal`,
394 prs.comments as `comments`,
397 procedure_result AS prs
398 LEFT JOIN procedure_report AS prp
399 ON prs.procedure_report_id = prp.procedure_report_id
400 LEFT JOIN procedure_order AS po
401 ON prp.procedure_order_id = po.procedure_order_id
402 LEFT JOIN procedure_type AS pt
403 ON prs.procedure_type_id = pt.procedure_type_id
404 LEFT JOIN procedure_type AS ptt
405 ON pt.parent = ptt.procedure_type_id
406 AND ptt.procedure_type = 'ord'
407 LEFT JOIN list_options AS lo
408 ON lo.list_id = 'proc_unit' AND pt.units = lo.option_id
409 WHERE po.patient_id=?
410 AND prs.date BETWEEN ? AND ?";
412 $result = sqlStatement($sql, array($pid,$start,$end) );
416 prs.procedure_result_id as `pid`,
418 pt.procedure_type_id as `type`,
420 concat_ws(' ',prs.result,lo.title) as `result`,
421 prs.range as `range`,
422 prs.abnormal as `abnormal`,
423 prs.comments as `comments`,
426 procedure_result AS prs
427 LEFT JOIN procedure_report AS prp
428 ON prs.procedure_report_id = prp.procedure_report_id
429 LEFT JOIN procedure_order AS po
430 ON prp.procedure_order_id = po.procedure_order_id
431 LEFT JOIN procedure_type AS pt
432 ON prs.procedure_type_id = pt.procedure_type_id
433 LEFT JOIN procedure_type AS ptt
434 ON pt.parent = ptt.procedure_type_id
435 AND ptt.procedure_type = 'ord'
436 LEFT JOIN list_options AS lo
437 ON lo.list_id = 'proc_unit' AND pt.units = lo.option_id
438 WHERE po.patient_id=?";
440 $result = sqlStatement($sql, array($pid) );
446 function getActorData() {
450 select fname, lname, DOB, sex, pid, street, city, state, postal_code, phone_contact
454 $result[0] = sqlStatement($sql, array($pid) );
457 SELECT * FROM users AS u LEFT JOIN facility AS f ON u.facility_id = f.id WHERE u.id=?";
459 $result[1] = sqlStatement($sql2, array($_SESSION['authUserID']) );
466 LEFT JOIN procedure_order AS po
467 ON po.procedure_type_id = pt.procedure_type_id
469 ON f.form_id = po.procedure_order_id
470 LEFT JOIN list_options AS lo
471 ON lo.title = f.form_name
475 AND lo.list_id = 'proc_type'
476 AND lo.option_id = 'ord'
479 $result[2] = sqlStatement($sql3, array($pid) );
485 function getReportFilename() {
489 select fname, lname, pid
493 $result = sqlQuery($sql, array($pid) );
494 $result_filename = $result['lname']."-".$result['fname']."-".$result['pid']."-".date("mdY",time());
496 return $result_filename;