2 // Copyright (C) 2010 OpenEMR Support LLC
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 // This report lists prescriptions and their dispensations according
10 // to various input selection criteria.
12 // Prescription report written by Rod Roark, 2010
13 // Fixed drug name search to work in a broader sense - tony@mi-squared.com, 2010
14 // Added five new reports as per EHR certification requirements for Patient Lists - OpenEMR Support LLC, 2010
16 //SANITIZE ALL ESCAPES
17 $sanitize_all_escapes=true;
20 //STOP FAKE REGISTER GLOBALS
21 $fake_register_globals=false;
23 require_once("../globals.php");
24 require_once("$srcdir/patient.inc");
25 require_once("$srcdir/options.inc.php");
26 require_once("../drugs/drugs.inc.php");
27 require_once("$srcdir/formatting.inc.php");
28 require_once("../../custom/code_types.inc.php");
30 function add_date($givendate,$day=0,$mth=0,$yr=0) {
31 $cd = strtotime($givendate);
32 $newdate = date('Y-m-d', mktime(date('h',$cd),
33 date('i',$cd), date('s',$cd), date('m',$cd)+
$mth,
34 date('d',$cd)+
$day, date('Y',$cd)+
$yr));
38 $type = $_POST["type"];
39 $facility = isset($_POST['facility']) ?
$_POST['facility'] : '';
40 $sql_date_from = fixDate($_POST['date_from'], date('Y-01-01'));
41 $sql_date_to = fixDate($_POST['date_to'] , add_date(date('Y-m-d')));
42 $patient_id = trim($_POST["patient_id"]);
43 $age_from = $_POST["age_from"];
44 $age_to = $_POST["age_to"];
45 $sql_gender = $_POST["gender"];
46 $sql_ethnicity = $_POST["ethnicity"];
47 $sql_race=$_POST["race"];
48 $form_drug_name = trim($_POST["form_drug_name"]);
49 $form_diagnosis = trim($_POST["form_diagnosis"]);
50 $form_lab_results = trim($_POST["form_lab_results"]);
51 $form_service_codes = trim($_POST["form_service_codes"]);
56 <?php
html_header_show();?
>
58 <?php
echo htmlspecialchars(xl('Clinical Reports'),ENT_NOQUOTES
); ?
>
60 <script type
="text/javascript" src
="../../library/overlib_mini.js"></script
>
61 <script type
="text/javascript" src
="../../library/textformat.js"></script
>
62 <script type
="text/javascript" src
="../../library/dialog.js"></script
>
63 <script type
="text/javascript" src
="../../library/js/jquery.1.3.2.js"></script
>
64 <script language
="JavaScript">
66 var mypcc
= '<?php echo $GLOBALS['phone_country_code
'] ?>';
69 var tr
= document
.getElementById(id
);
70 if (tr
==null) { return; }
71 var bExpand
= tr
.style
.display
== '';
72 tr
.style
.display
= (bExpand ?
'none' : '');
74 function changeimage(id
, sMinus
, sPlus
) {
75 var img
= document
.getElementById(id
);
77 var bExpand
= img
.src
.indexOf(sPlus
) >= 0;
79 img
.src
= "../pic/blue-up-arrow.gif";
81 img
.src
= "../pic/blue-down-arrow.gif";
84 function Toggle_trGrpHeader2(t_id
,i_id
) {
86 changeimage(img
, 'blue-down-arrow.gif', 'blue-up-arrow.gif');
90 // This is for callback by the find-code popup.
91 // Appends to or erases the current list of diagnoses.
92 function set_related(codetype
, code
, selector
, codedesc
) {
93 var f
= document
.forms
[0][current_sel_name
];
96 if (s
.length
> 0) s +
= ';';
97 s +
= codetype +
':' + code
;
104 //This invokes the find-code popup.
105 function sel_diagnosis(e
) {
106 current_sel_name
= e
.name
;
107 dlgopen('../patient_file/encounter/find_code_popup.php?codetype=<?php echo collect_codetypes("diagnosis","csv"); ?>', '_blank', 500, 400);
110 //This invokes the find-code popup.
111 function sel_procedure(e
) {
112 current_sel_name
= e
.name
;
113 dlgopen('../patient_file/encounter/find_code_popup.php?codetype=<?php echo collect_codetypes("procedure","csv"); ?>', '_blank', 500, 400);
116 <link rel
='stylesheet' href
='<?php echo $css_header ?>' type
='text/css'>
117 <style type
="text/css">
118 /* specifically include & exclude from printing */
124 #report_parameters_daterange {
128 #report_results table {
133 /* specifically exclude some from the screen */
135 #report_parameters_daterange {
140 .optional_area_service_codes
{
142 if($type != 'Service Codes' ||
$type == '')
151 <script language
="javascript" type
="text/javascript">
152 function checkType() {
153 if($
('#type').val() == 'Service Codes')
155 $
('.optional_area_service_codes').css("display", "inline");
159 $
('.optional_area_service_codes').css("display", "none");
163 function submitForm() {
164 var d_from
= new String($
('#date_from').val());
165 var d_to
= new String($
('#date_to').val());
167 var d_from_arr
= d_from
.split('-');
168 var d_to_arr
= d_to
.split('-');
170 var dt_from
= new Date(d_from_arr
[0], d_from_arr
[1], d_from_arr
[2]);
171 var dt_to
= new Date(d_to_arr
[0], d_to_arr
[1], d_to_arr
[2]);
173 var mili_from
= dt_from
.getTime();
174 var mili_to
= dt_to
.getTime();
175 var diff
= mili_to
- mili_from
;
177 $
('#date_error').css("display", "none");
179 if(diff
< 0) //negative
181 $
('#date_error').css("display", "inline");
185 $
("#form_refresh").attr("value","true");
186 $
("#theform").submit();
190 $
(document
).ready(function() {
191 $
(".numeric_only").keydown(function(event
) {
192 //alert(event.keyCode);
193 // Allow only backspace and delete
194 if ( event
.keyCode
== 46 || event
.keyCode
== 8 ) {
195 // let it happen, don't do anything
198 if(!((event
.keyCode
>= 96 && event
.keyCode
<= 105) ||
(event
.keyCode
>= 48 && event
.keyCode
<= 57)))
200 event
.preventDefault();
207 <body
class="body_top">
208 <!-- Required
for the popup date selectors
-->
209 <div id
="overDiv" style
="position:absolute; visibility:hidden; z-index:1000;"></div
>
211 <?php
echo htmlspecialchars(xl('Report - Clinical'),ENT_NOQUOTES
); ?
>
213 <!-- Search can be done using age range
, gender
, and ethnicity filters
.
214 Search options
include diagnosis
, procedure
, prescription
, medical history
, and lab results
.
216 <div id
="report_parameters_daterange"> <?php
echo htmlspecialchars(date("d F Y", strtotime($sql_date_from)),ENT_NOQUOTES
) .
217 " to ". htmlspecialchars(date("d F Y", strtotime($sql_date_to)),ENT_NOQUOTES
); ?
> </div
>
218 <form name
='theform' id
='theform' method
='post' action
='clinical_reports.php'>
219 <div id
="report_parameters">
220 <input type
='hidden' name
='form_refresh' id
='form_refresh' value
=''/>
223 <td width
='740px'><div style
='float:left'>
226 <td
class='label' width
="100"><?php
echo htmlspecialchars(xl('Facility'),ENT_NOQUOTES
); ?
>: </td
>
227 <td width
="250"> <?php
dropdown_facility($facility,'facility',false); ?
> </td
>
228 <td
class='label' width
="100"><?php
echo htmlspecialchars(xl('From'),ENT_NOQUOTES
); ?
>: </td
>
229 <td
><input type
='text' name
='date_from' id
="date_from" size
='10' value
='<?php echo htmlspecialchars($sql_date_from,ENT_QUOTES); ?>' onkeyup
='datekeyup(this,mypcc)' onblur
='dateblur(this,mypcc)' title
='yyyy-mm-dd'> <img src
='../pic/show_calendar.gif' align
='absbottom' width
='24' height
='22' id
='img_from_date' border
='0' alt
='[?]' style
='cursor:pointer' title
='<?php echo htmlspecialchars(xl('Click here to choose a date
'),ENT_QUOTES); ?>'></td
>
232 <td
class='label'><?php
echo htmlspecialchars(xl('Patient ID'),ENT_NOQUOTES
); ?
>:</td
>
233 <td
><input name
='patient_id' class="numeric_only" type
='text' id
="patient_id" title
='<?php echo htmlspecialchars(xl('Optional
numeric patient ID
'),ENT_QUOTES); ?>' value
='<?php echo htmlspecialchars($patient_id,ENT_QUOTES); ?>' size
='10' maxlength
='20' /></td
>
234 <td
class='label'><?php
echo htmlspecialchars(xl('To'),ENT_NOQUOTES
); ?
>: </td
>
235 <td
><input type
='text' name
='date_to' id
="date_to" size
='10' value
='<?php echo htmlspecialchars($sql_date_to,ENT_QUOTES); ?>' onKeyUp
='datekeyup(this,mypcc)' onBlur
='dateblur(this,mypcc)' title
='yyyy-mm-dd'> <img src
='../pic/show_calendar.gif' align
='absbottom' width
='24' height
='22' id
='img_to_date' border
='0' alt
='[?]' style
='cursor:pointer' title
='<?php echo htmlspecialchars(xl('Click here to choose a date
'),ENT_QUOTES); ?>'></td
>
238 <td
class='label'><?php
echo htmlspecialchars(xl('Age Range'),ENT_NOQUOTES
); ?
>:</td
>
239 <td
><?php
echo htmlspecialchars(xl('From'),ENT_NOQUOTES
); ?
>
240 <input name
='age_from' class="numeric_only" type
='text' id
="age_from" value
="<?php echo htmlspecialchars($age_from,ENT_QUOTES); ?>" size
='3' maxlength
='3' /> <?php
echo htmlspecialchars(xl('To'),ENT_NOQUOTES
); ?
>
241 <input name
='age_to' class="numeric_only" type
='text' id
="age_to" value
="<?php echo htmlspecialchars($age_to,ENT_QUOTES); ?>" size
='3' maxlength
='3' /></td
>
242 <td
class='label'><?php
echo htmlspecialchars(xl('Problem DX'),ENT_NOQUOTES
); ?
>:</td
>
243 <td
><input type
='text' name
='form_diagnosis' size
='10' maxlength
='250' value
='<?php echo htmlspecialchars($form_diagnosis,ENT_QUOTES); ?>' onclick
='sel_diagnosis(this)' title
='<?php echo htmlspecialchars(xl('Click to select
or change diagnoses
'),ENT_QUOTES); ?>' readonly
/></td
>
248 <td
class='label'><?php
echo htmlspecialchars(xl('Gender'),ENT_NOQUOTES
); ?
>:</td
>
249 <td
><?php
echo generate_select_list('gender', 'sex', $sql_gender, 'Select Gender', 'Unassigned', '', ''); ?
></td
>
250 <td
class='label'><?php
echo htmlspecialchars(xl('Drug'),ENT_NOQUOTES
); ?
>:</td
>
251 <td
><input type
='text' name
='form_drug_name' size
='10' maxlength
='250' value
='<?php echo htmlspecialchars($form_drug_name,ENT_QUOTES); ?>' title
='<?php echo htmlspecialchars(xl('Optional drug name
, use %
as a wildcard
'),ENT_QUOTES); ?>' /></td
>
255 <td
class='label'><?php
echo htmlspecialchars(xl('Race'),ENT_NOQUOTES
); ?
>:</td
>
256 <td
><?php
echo generate_select_list('race', 'race', $sql_race, 'Select Race', 'Unassigned', '', ''); ?
></td
>
257 <td
class='label'><?php
echo htmlspecialchars(xl('Ethnicity'),ENT_NOQUOTES
); ?
>:</td
>
258 <td
><?php
echo generate_select_list('ethnicity', 'ethnicity', $sql_ethnicity, 'Select Ethnicity', 'Unassigned', '', ''); ?
></td
>
262 <td
class='label' width
='100'><?php
echo htmlspecialchars(xl('Lab Result'),ENT_NOQUOTES
); ?
>:</td
>
263 <td width
='100'><input type
='text' name
='form_lab_results' size
='13' maxlength
='250' value
='<?php echo htmlspecialchars($form_lab_results,ENT_QUOTES); ?>' title
='<?php echo htmlspecialchars(xl('Result
, use %
as a wildcard
'),ENT_QUOTES); ?>' /></td
>
265 <td
class='label' width
='100'><?php
echo htmlspecialchars(xl('Option'),ENT_NOQUOTES
); ?
>:</td
>
266 <td
><select name
="type" id
="type" onChange
="checkType();">
267 <option
> <?php
echo htmlspecialchars(xl('Select'),ENT_NOQUOTES
); ?
></option
>
268 <option value
="Procedure" <?php
if($type == 'Procedure') { echo "selected"; } ?
>><?php
echo htmlspecialchars(xl('Procedure'),ENT_NOQUOTES
); ?
></option
>
269 <option value
="Medical History" <?php
if($type == 'Medical History') { echo "selected"; } ?
>><?php
echo htmlspecialchars(xl('Medical History'),ENT_NOQUOTES
); ?
></option
>
271 <option value
="Service Codes" <?php
if($type == 'Service Codes') { echo "selected"; } ?
>><?php
echo htmlspecialchars(xl('Service Codes'),ENT_NOQUOTES
); ?
></option
>
277 <tr
class="optional_area_service_codes">
278 <td width
='100'> 
;</td
>
279 <td width
='100'> 
;</td
>
280 <td width
='195'> 
;</td
>
281 <td
class='label' width
='76'><?php
echo htmlspecialchars(xl('Code'),ENT_NOQUOTES
); ?
>:</td
>
282 <td
> <input type
='text' name
='form_service_codes' size
='10' maxlength
='250' value
='<?php echo htmlspecialchars($form_service_codes,ENT_QUOTES); ?>' onclick
='sel_procedure(this)' title
='<?php echo htmlspecialchars(xl('Click to select
or change service codes
'),ENT_QUOTES); ?>' readonly
/> 
;</td
>
287 <!-- Sort by Start
-->
288 <td
class='label' width
='63'><?php
echo htmlspecialchars(xl('Sort By'),ENT_NOQUOTES
); ?
>:</td
>
290 <input type
='checkbox' name
='form_pt_name'<?php
if ($_POST['form_pt_name'] == true) echo ' checked'; ?
>>
291 <?php
echo htmlspecialchars(xl('Patient Name'),ENT_NOQUOTES
); ?
> 
;
293 <input type
='checkbox' name
='form_pt_age'<?php
if ($_POST['form_pt_age'] == true) echo ' checked'; ?
>>
294 <?php
echo htmlspecialchars(xl('Age'),ENT_NOQUOTES
); ?
> 
;
296 <input type
='checkbox' name
='form_diagnosis_code'<?php
if ($_POST['form_diagnosis_code'] == true) echo ' checked'; ?
>>
297 <?php
echo htmlspecialchars(xl('Diagnosis Code'),ENT_NOQUOTES
); ?
> 
;
299 <input type
='checkbox' name
='form_diagnosis_tit'<?php
if ($_POST['form_diagnosis_tit'] == true) echo ' checked'; ?
>>
300 <?php
echo htmlspecialchars(xl('Diagnosis Title'),ENT_NOQUOTES
); ?
> 
;
302 <input type
='checkbox' name
='form_drug'<?php
if ($_POST['form_drug'] == true) echo ' checked'; ?
>>
303 <?php
echo htmlspecialchars(xl('Drug'),ENT_NOQUOTES
); ?
> 
;
305 <input type
='checkbox' name
='ndc_no'<?php
if ($_POST['ndc_no'] == true) echo ' checked'; ?
>>
306 <?php
echo htmlspecialchars(xl('NDC Number'),ENT_NOQUOTES
); ?
> 
;
307 <input type
='checkbox' name
='lab_results'<?php
if ($_POST['lab_results'] == true) echo ' checked'; ?
>>
308 <?php
echo htmlspecialchars(xl('Lab Results'),ENT_NOQUOTES
); ?
> 
;
311 <!-- Sort by ends
-->
314 <td colspan
=3><span id
="date_error" style
="color: #F00; font-siz: 11px; display: none;"><?php
echo htmlspecialchars(xl('From Date Cannot be Greater than To Date.'),ENT_NOQUOTES
); ?
></span
> 
;</td
>
318 <td height
="100%" valign
='middle' width
="175"><table style
='border-left:1px solid; width:100%; height:100%'>
320 <td
><div style
='margin-left:15px'> <a href
='#' class='css_button' onclick
='submitForm();'> <span
>
321 <?php
echo htmlspecialchars(xl('Submit'),ENT_NOQUOTES
); ?
>
323 <?php
if ($_POST['form_refresh']) { ?
>
324 <a href
='#' class='css_button' onclick
='window.print()'> <span
>
325 <?php
echo htmlspecialchars(xl('Print'),ENT_NOQUOTES
); ?
>
334 <!-- end of parameters
-->
336 // SQL scripts for the various searches
337 $sqlBindArray = array();
338 if ($_POST['form_refresh'])
341 concat(pd.fname, ' ', pd.lname) AS patient_name,
342 pd.pid AS patient_id,
343 DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),pd.dob)), '%Y')+0 AS patient_age,
344 pd.sex AS patient_sex,
345 pd.race AS patient_race,pd.ethnicity AS patient_ethinic,
346 concat(u.fname, ' ', u.lname) AS users_provider";
347 if(strlen($form_diagnosis) > 0) {
348 $sqlstmt=$sqlstmt.",li.date AS lists_date,
349 li.diagnosis AS lists_diagnosis,
350 li.title AS lists_title";
352 if(strlen($form_drug_name) > 0) {
354 $sqlstmt=$sqlstmt.",r.id as id, r.date_modified AS prescriptions_date_modified, r.dosage as dosage, r.route as route, r.interval as hinterval, r.refills as refills, r.drug as drug,
355 r.form as hform, r.size as size, r.unit as hunit, d.name as name, d.ndc_number as ndc_number,r.quantity as quantity";
357 if(strlen($form_lab_results) > 0) {
359 $sqlstmt = $sqlstmt.",pr.date AS procedure_result_date,
360 pr.facility AS procedure_result_facility,
361 pr.units AS procedure_result_units,
362 pr.result AS procedure_result_result,
363 pr.range AS procedure_result_range,
364 pr.abnormal AS procedure_result_abnormal,
365 pr.comments AS procedure_result_comments,
366 pr.document_id AS procedure_result_document_id";
368 if ( $type == 'Procedure') {
369 $sqlstmt = $sqlstmt.",po.date_ordered AS procedure_order_date_ordered,
370 pt.standard_code AS procedure_type_standard_code,
371 pt.name as procedure_name,
372 po.order_priority AS procedure_order_order_priority,
373 po.order_status AS procedure_order_order_status,
374 po.encounter_id AS procedure_order_encounter,
375 po.patient_instructions AS procedure_order_patient_instructions,
376 po.activity AS procedure_order_activity,
377 po.control_id AS procedure_order_control_id ";
379 if ( $type == 'Medical History') {
380 $sqlstmt = $sqlstmt.",hd.date AS history_data_date,
381 hd.tobacco AS history_data_tobacco,
382 hd.alcohol AS history_data_alcohol,
383 hd.recreational_drugs AS history_data_recreational_drugs ";
385 if($type == 'Service Codes') {
386 $sqlstmt .= ", c.code as code,
387 c.code_text as code_text,
388 fe.encounter as encounter,
390 $mh_stmt = $mh_stmt.",code,code_text,encounter,date";
393 $sqlstmt=$sqlstmt." from patient_data as pd left outer join users as u on u.id = pd.providerid
394 left outer join facility as f on f.id = u.facility_id";
396 if(strlen($form_diagnosis) > 0 ){
397 $sqlstmt = $sqlstmt." left outer join lists as li on li.pid = pd.pid ";
399 if ( $type == 'Procedure' ||
( strlen($form_lab_results)!=0) ) {
400 $sqlstmt = $sqlstmt." left outer join procedure_order as po on po.patient_id = pd.pid
401 left outer join procedure_report as pp on pp.procedure_order_id = po.procedure_order_id
402 left outer join procedure_type as pt on pt.procedure_type_id = po.procedure_type_id ";
404 if (strlen($form_lab_results)!=0 ) {
405 $sqlstmt = $sqlstmt." left outer join procedure_result as pr on pr.procedure_report_id = pp.procedure_report_id
406 and pr.procedure_type_id = po.procedure_type_id ";
408 if(strlen($form_drug_name)!=0) {
409 $sqlstmt=$sqlstmt." left outer join prescriptions AS r on r.patient_id=pd.pid
410 LEFT OUTER JOIN drugs AS d ON d.drug_id = r.drug_id";
412 if ( $type == 'Medical History') {
413 $sqlstmt = $sqlstmt." left outer join history_data as hd on hd.pid = pd.pid
414 and (isnull(hd.tobacco) = 0
415 or isnull(hd.alcohol) = 0
416 or isnull(hd.recreational_drugs) = 0)";
418 if($type == 'Service Codes') {
419 $sqlstmt = $sqlstmt." left outer join billing as b on b.pid = pd.pid
420 left outer join form_encounter as fe on fe.encounter = b.encounter and b.code_type = 'CPT4'
421 left outer join codes as c on c.code = b.code ";
424 $whr_stmt="where 1=1";
425 if(strlen($form_diagnosis) > 0 ) {
426 $whr_stmt=$whr_stmt." AND li.date >= ? AND li.date < DATE_ADD(?, INTERVAL 1 DAY) AND li.date <= ?";
427 array_push($sqlBindArray, $sql_date_from, $sql_date_to, date("Y-m-d H:i:s"));
429 if(strlen($form_lab_results)!=0 ) {
430 $whr_stmt=$whr_stmt." AND pr.date >= ? AND pr.date < DATE_ADD(?, INTERVAL 1 DAY) AND pr.date <= ?";
431 array_push($sqlBindArray, $sql_date_from, $sql_date_to, date("Y-m-d H:i:s"));
433 if(strlen($form_drug_name)!=0) {
434 $whr_stmt=$whr_stmt." AND r.date_modified >= ? AND r.date_modified < DATE_ADD(?, INTERVAL 1 DAY) AND r.date_modified <= ?";
435 array_push($sqlBindArray, $sql_date_from, $sql_date_to, date("Y-m-d H:i:s"));
437 if($type == 'Medical History') {
438 $whr_stmt=$whr_stmt." AND hd.date >= ? AND hd.date < DATE_ADD(?, INTERVAL 1 DAY) AND hd.date <= ?";
439 array_push($sqlBindArray, $sql_date_from, $sql_date_to, date("Y-m-d H:i:s"));
441 if($type == 'Procedure') {
442 $whr_stmt=$whr_stmt." AND po.date_ordered >= ? AND po.date_ordered < DATE_ADD(?, INTERVAL 1 DAY) AND po.date_ordered <= ?";
443 array_push($sqlBindArray, $sql_date_from, $sql_date_to, date("Y-m-d H:i:s"));
445 if($type == "Service Codes") {
446 $whr_stmt=$whr_stmt." AND b.date >= ? AND b.date < DATE_ADD(?, INTERVAL 1 DAY) AND b.date <= ?";
447 array_push($sqlBindArray, $sql_date_from, $sql_date_to, date("Y-m-d H:i:s"));
449 if(strlen($form_lab_results) != 0) {
450 $whr_stmt= $whr_stmt." AND (pr.result LIKE ?) ";
451 array_push($sqlBindArray, $form_lab_results);
453 if(strlen($form_drug_name) > 0) {
458 array_push($sqlBindArray, $form_drug_name, $form_drug_name);
460 if($type == 'Service Codes') {
461 if(strlen($form_service_codes) != 0) {
462 $whr_stmt = $whr_stmt." AND (b.code = ?) ";
463 $service_code = explode(":",$form_service_codes);
464 array_push($sqlBindArray, $service_code[1]);
467 if(strlen($patient_id) != 0) {
468 $whr_stmt = $whr_stmt." and pd.pid = ?";
469 array_push($sqlBindArray, $patient_id);
472 if(strlen($age_from) != 0) {
473 $whr_stmt = $whr_stmt." and DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),pd.dob)), '%Y')+0 >= ?";
474 array_push($sqlBindArray, $age_from);
476 if(strlen($age_to) != 0) {
477 $whr_stmt = $whr_stmt." and DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),pd.dob)), '%Y')+0 <= ?";
478 array_push($sqlBindArray, $age_to);
480 if(strlen($sql_gender) != 0) {
481 $whr_stmt = $whr_stmt." and pd.sex = ?";
482 array_push($sqlBindArray, $sql_gender);
484 if(strlen($sql_ethnicity) != 0) {
485 $whr_stmt = $whr_stmt." and pd.ethnicity = ?";
486 array_push($sqlBindArray, $sql_ethnicity);
488 if(strlen($sql_race) != 0) {
489 $whr_stmt = $whr_stmt." and pd.race = ?";
490 array_push($sqlBindArray, $sql_race);
492 if($facility != '') {
493 $whr_stmt = $whr_stmt." and f.id = ? ";
494 array_push($sqlBindArray, $facility);
496 if(strlen($form_diagnosis) > 0) {
497 $whr_stmt = $whr_stmt." AND (li.diagnosis LIKE ? or li.diagnosis LIKE ? or li.diagnosis LIKE ? or li.diagnosis = ?) ";
498 array_push($sqlBindArray, $form_diagnosis.";%", '%;'.$form_diagnosis.';%', '%;'.$form_diagnosis, $form_diagnosis);
501 $odrstmt = $odrstmt."ORDER BY patient_id";
502 if ($_POST['form_pt_name'] == true){
503 $odrstmt=$odrstmt.",patient_name";
505 if ($_POST['form_pt_age'] == true) {
506 $odrstmt=$odrstmt.",patient_age";
508 if (($_POST['form_diagnosis_code'] == true) && (strlen($form_diagnosis) > 0)){
509 $odrstmt=$odrstmt.",lists_diagnosis";
511 if (($_POST['form_diagnosis_tit'] == true) && (strlen($form_diagnosis) > 0)){
512 $odrstmt=$odrstmt.",lists_title";
514 if (($_POST['form_drug'] == true)&& (strlen($form_drug_name) > 0)){
515 $odrstmt=$odrstmt.",r.drug";
517 if (($_POST['ndc_no'] == true) && (strlen($form_drug_name) > 0)) {
518 $odrstmt=$odrstmt.",d.ndc_number";
520 if (($_POST['lab_results'] == true) && (strlen($form_lab_results) > 0)) {
521 $odrstmt=$odrstmt.",procedure_result_result";
525 if($type == 'Medical History') {
526 $sqlstmt="select * from (".$sqlstmt." ".$whr_stmt." ".$odrstmt.",history_data_date desc) a group by patient_id";
529 $sqlstmt=$sqlstmt." ".$whr_stmt." ".$odrstmt;
531 $result = sqlStatement($sqlstmt,$sqlBindArray);
533 $row_id = 1.1;//given to each row to identify and toggle
537 if(sqlNumRows($result) > 0)
541 <div id
= "report_results">
542 <?php
while ($row = sqlFetchArray($result)) { ?
>
543 <table width
=90% align
="center" cellpadding
="5" cellspacing
="0" style
="font-family:tahoma;color:black;" border
="0">
544 <tr bgcolor
= "#CCCCCC" style
="font-size:15px;">
545 <td
><b
><?php
echo htmlspecialchars(xl('Summary of'),ENT_NOQUOTES
); echo " "; ?
> <?php
echo htmlspecialchars($row['patient_name'],ENT_NOQUOTES
); ?
></b
></td
>
549 <span onclick
="javascript:Toggle_trGrpHeader2(<?php echo $row_id; ?>,<?php echo $img_id; ?>);"><img src
="../pic/blue-down-arrow.gif" id
="<?php echo $img_id; $img_id++; ?>" title
="<?php echo htmlspecialchars( xl('Click here to view patient details'), ENT_QUOTES); ?>" /></span
>
551 <table width
="100%" align
="center" id
= "<?php echo $row_id; $row_id++;?>" class="border1" style
="display:none; font-size:13px;" cellpadding
=5>
552 <tr bgcolor
="#C3FDB8" align
="left">
553 <td
><b
><?php
echo htmlspecialchars(xl('Patient Name'),ENT_NOQUOTES
); ?
></b
></td
>
554 <td
><b
><?php
echo htmlspecialchars(xl('PID'),ENT_NOQUOTES
);?
></b
></td
>
555 <td
><b
><?php
echo htmlspecialchars(xl('Age'),ENT_NOQUOTES
);?
></b
></td
>
556 <td
><b
><?php
echo htmlspecialchars(xl('Gender'),ENT_NOQUOTES
); ?
></b
></td
>
557 <td
><b
><?php
echo htmlspecialchars(xl('Race'),ENT_NOQUOTES
);?
></b
></td
>
558 <td
><b
><?php
echo htmlspecialchars(xl('Ethnicity'),ENT_NOQUOTES
);?
></b
></td
>
559 <td colspan
=5><b
><?php
echo htmlspecialchars(xl('Provider'),ENT_NOQUOTES
);?
></b
></td
>
561 <tr bgcolor
="#FFFFFF">
562 <td
><?php
echo htmlspecialchars($row['patient_name'],ENT_NOQUOTES
); ?
> 
;</td
>
563 <td
> <?php
echo htmlspecialchars($row['patient_id'],ENT_NOQUOTES
); ?
> 
;</td
>
564 <td
> <?php
echo htmlspecialchars($row['patient_age'],ENT_NOQUOTES
); ?
> 
;</td
>
565 <td
> <?php
echo htmlspecialchars(generate_display_field(array('data_type'=>'1','list_id'=>'sex'), $row['patient_sex']),ENT_NOQUOTES
); ?
> 
;</td
>
566 <td
> <?php
echo htmlspecialchars(generate_display_field(array('data_type'=>'1','list_id'=>'race'), $row['patient_race']),ENT_NOQUOTES
); ?
> 
;</td
>
567 <td
> <?php
echo htmlspecialchars(generate_display_field(array('data_type'=>'1','list_id'=>'ethnicity'), $row['patient_ethinic']),ENT_NOQUOTES
); ?
> 
;</td
>
568 <td colspan
=5> <?php
echo htmlspecialchars($row['users_provider'],ENT_NOQUOTES
); ?
> 
;</td
>
570 <!-- Diagnosis Report Start
-->
572 if(strlen($form_diagnosis) > 0)
575 <tr bgcolor
="#C3FDB8" align
= "left">
576 <td colspan
=12><b
><?php
echo "#"; echo htmlspecialchars(xl('Diagnosis Report'),ENT_NOQUOTES
);?
></b
></td
>
578 <tr bgcolor
="#C3FDB8" align
= "left">
579 <td
><b
><?php
echo htmlspecialchars(xl('Diagnosis Date'),ENT_NOQUOTES
);?
></b
></td
>
580 <td
><b
><?php
echo htmlspecialchars(xl('Diagnosis'),ENT_NOQUOTES
);?
></b
></td
>
581 <td colspan
=9><b
><?php
echo htmlspecialchars(xl('Diagnosis Name'),ENT_NOQUOTES
);?
></b
></td
>
583 <tr bgcolor
="#FFFFFF">
584 <td
><?php
echo htmlspecialchars($row['lists_date'],ENT_NOQUOTES
); ?
> 
;</td
>
585 <td
><?php
echo htmlspecialchars($row['lists_diagnosis'],ENT_NOQUOTES
); ?
> 
;</td
>
586 <td colspan
=9><?php
echo htmlspecialchars($row['lists_title'],ENT_NOQUOTES
); ?
> 
;</td
>
589 <!-- Diagnosis Report End
-->
591 <!-- Prescription Report Start
-->
593 if(strlen($form_drug_name) > 0)
596 <tr bgcolor
="#C3FDB8" align
= "left">
597 <td colspan
=12><b
><?php
echo "#"; echo htmlspecialchars(xl('Prescription Report'),ENT_NOQUOTES
);?
><b
></td
></tr
>
598 <tr bgcolor
="#C3FDB8" align
= "left">
599 <td
><b
><?php
echo htmlspecialchars(xl('Date'),ENT_NOQUOTES
); ?
></b
></td
>
600 <td
><b
><?php
echo htmlspecialchars(xl('Drug Name'),ENT_NOQUOTES
);?
></b
></td
>
601 <td
><b
><?php
echo htmlspecialchars(xl('Route'),ENT_NOQUOTES
);?
></b
></td
>
602 <td
><b
><?php
echo htmlspecialchars(xl('Dosage'),ENT_NOQUOTES
);?
></b
></td
>
603 <td
><b
><?php
echo htmlspecialchars(xl('Form'),ENT_NOQUOTES
);?
></b
></td
>
604 <td
><b
><?php
echo htmlspecialchars(xl('Interval'),ENT_NOQUOTES
);?
></b
></td
>
605 <td
><b
><?php
echo htmlspecialchars(xl('Size'),ENT_NOQUOTES
);?
></b
></td
>
606 <td
><b
><?php
echo htmlspecialchars(xl('Unit'),ENT_NOQUOTES
);?
></b
></td
>
607 <td
><b
><?php
echo htmlspecialchars(xl('ReFill'),ENT_NOQUOTES
);?
></b
></td
>
608 <td
><b
><?php
echo htmlspecialchars(xl('Quantity'),ENT_NOQUOTES
);?
></b
></td
>
609 <td
><b
><?php
echo htmlspecialchars(xl('NDC'),ENT_NOQUOTES
);?
></b
></td
>
611 <tr bgcolor
="#FFFFFF" align
="">
613 $rx_route = generate_display_field(array('data_type'=>'1','list_id'=>'drug_route'), $row['route']) ;
614 $rx_form = generate_display_field(array('data_type'=>'1','list_id'=>'drug_form'), $row['hform']) ;
615 $rx_interval = generate_display_field(array('data_type'=>'1','list_id'=>'drug_interval'), $row['hinterval']) ;
616 $rx_units = generate_display_field(array('data_type'=>'1','list_id'=>'drug_units'), $row['hunit']);
618 <td
> <?php
echo htmlspecialchars(oeFormatShortDate($row['prescriptions_date_modified']),ENT_NOQUOTES
); ?
> 
;</td
>
619 <td
><?php
echo htmlspecialchars($row['drug'],ENT_NOQUOTES
); ?
></td
>
620 <td
><?php
echo htmlspecialchars($rx_route,ENT_NOQUOTES
); ?
></td
>
621 <td
><?php
echo htmlspecialchars($row['dosage'],ENT_NOQUOTES
); ?
></td
>
622 <td
><?php
echo htmlspecialchars($rx_form,ENT_NOQUOTES
); ?
></td
>
623 <td
><?php
echo htmlspecialchars($rx_interval,ENT_NOQUOTES
); ?
></td
>
624 <td
><?php
echo htmlspecialchars($row['size'],ENT_NOQUOTES
); ?
></td
>
625 <td
><?php
echo htmlspecialchars($rx_units,ENT_NOQUOTES
); ?
></td
>
626 <td
><?php
echo htmlspecialchars($row['refills'],ENT_NOQUOTES
); ?
></td
>
627 <td
><?php
echo htmlspecialchars($row['quantity'],ENT_NOQUOTES
); ?
></td
>
628 <td
><?php
echo htmlspecialchars($row['ndc_number'],ENT_NOQUOTES
); ?
></td
>
631 <!-- Prescription Report End
-->
633 <!-- Lab Results Report Start
-->
635 if(strlen($form_lab_results) > 0)
638 <tr bgcolor
="#C3FDB8" align
= "left">
639 <td colspan
=12><b
><?php
echo "#"; echo htmlspecialchars(xl('Lab Results Report'),ENT_NOQUOTES
);?
><b
></td
></tr
>
640 <tr bgcolor
="#C3FDB8" align
= "left">
641 <td
><b
><?php
echo htmlspecialchars(xl('Date'),ENT_NOQUOTES
); ?
></b
></td
>
642 <td
><b
><?php
echo htmlspecialchars(xl('Facility'),ENT_NOQUOTES
);?
></b
></td
>
643 <td
><b
><?php
echo htmlspecialchars(xl('Unit'),ENT_NOQUOTES
);?
></b
></td
>
644 <td
><b
><?php
echo htmlspecialchars(xl('Result'),ENT_NOQUOTES
);?
></b
></td
>
645 <td
><b
><?php
echo htmlspecialchars(xl('Range'),ENT_NOQUOTES
);?
></b
></td
>
646 <td
><b
><?php
echo htmlspecialchars(xl('Abnormal'),ENT_NOQUOTES
);?
></b
></td
>
647 <td
><b
><?php
echo htmlspecialchars(xl('Comments'),ENT_NOQUOTES
);?
></b
></td
>
648 <td colspan
=4><b
><?php
echo htmlspecialchars(xl('Document ID'),ENT_NOQUOTES
);?
></b
></td
>
650 <tr bgcolor
="#FFFFFF">
651 <td
> <?php
echo htmlspecialchars(oeFormatShortDate($row['procedure_result_date']),ENT_NOQUOTES
); ?
> 
;</td
>
652 <td
> <?php
echo htmlspecialchars($row['procedure_result_facility'],ENT_NOQUOTES
); ?
> 
;</td
>
653 <td
> <?php
echo htmlspecialchars(generate_display_field(array('data_type'=>'1','list_id'=>'proc_unit'),$row['procedure_result_units']),ENT_NOQUOTES
); ?
> 
;</td
>
654 <td
> <?php
echo htmlspecialchars($row['procedure_result_result'],ENT_NOQUOTES
); ?
> 
;</td
>
655 <td
> <?php
echo htmlspecialchars($row['procedure_result_range'],ENT_NOQUOTES
); ?
> 
;</td
>
656 <td
> <?php
echo htmlspecialchars($row['procedure_result_abnormal'],ENT_NOQUOTES
); ?
> 
;</td
>
657 <td
> <?php
echo htmlspecialchars($row['procedure_result_comments'],ENT_NOQUOTES
); ?
> 
;</td
>
658 <td colspan
=4> <?php
echo htmlspecialchars($row['procedure_result_document_id'],ENT_NOQUOTES
); ?
> 
;</td
>
661 <!-- Lab Results End
-->
663 <!-- Procedures Report Start
-->
665 if ( $type == 'Procedure')
668 <tr bgcolor
="#C3FDB8" align
= "left">
669 <td colspan
=12><b
><?php
echo "#"; echo htmlspecialchars(xl('Procedure Report'),ENT_NOQUOTES
);?
><b
></td
></tr
>
670 <tr bgcolor
="#C3FDB8" align
= "left">
671 <td
><b
><?php
echo htmlspecialchars(xl('Date'),ENT_NOQUOTES
); ?
></b
></td
>
672 <td
><b
><?php
echo htmlspecialchars(xl('Standard Name'),ENT_NOQUOTES
);?
></b
></td
>
673 <td
><b
><?php
echo htmlspecialchars(xl('Procedure'),ENT_NOQUOTES
); ?
></b
></td
>
674 <td
><b
><?php
echo htmlspecialchars(xl('Encounter'),ENT_NOQUOTES
);?
></b
></td
>
675 <td
><b
><?php
echo htmlspecialchars(xl('Priority'),ENT_NOQUOTES
);?
></b
></td
>
676 <td
><b
><?php
echo htmlspecialchars(xl('Status'),ENT_NOQUOTES
);?
></b
></td
>
677 <td
><b
><?php
echo htmlspecialchars(xl('Instruction'),ENT_NOQUOTES
);?
></b
></td
>
678 <td
><b
><?php
echo htmlspecialchars(xl('Activity'),ENT_NOQUOTES
);?
></b
></td
>
679 <td colspan
=3><b
><?php
echo htmlspecialchars(xl('Control ID'),ENT_NOQUOTES
);?
></b
></td
>
681 <tr bgcolor
="#FFFFFF">
683 $procedure_type_standard_code_arr = explode(':', $row['procedure_type_standard_code']);
684 $procedure_type_standard_code = $procedure_type_standard_code_arr[1];
687 <td
> <?php
echo htmlspecialchars(oeFormatShortDate($row['procedure_order_date_ordered']),ENT_NOQUOTES
); ?
> 
;</td
>
688 <td
> <?php
echo htmlspecialchars($procedure_type_standard_code,ENT_NOQUOTES
); ?
> 
;</td
>
689 <td
> <?php
echo htmlspecialchars($row['procedure_name'],ENT_NOQUOTES
); ?
> 
;</td
>
690 <td
> <?php
echo htmlspecialchars($row['procedure_order_encounter'],ENT_NOQUOTES
); ?
> 
;</td
>
691 <td
> <?php
echo htmlspecialchars(generate_display_field(array('data_type'=>'1','list_id'=>'ord_priority'),$row['procedure_order_order_priority']),ENT_NOQUOTES
); ?
> 
;</td
>
692 <td
> <?php
echo htmlspecialchars(generate_display_field(array('data_type'=>'1','list_id'=>'ord_status'),$row['procedure_order_order_status']),ENT_NOQUOTES
); ?
> 
;</td
>
693 <td
> <?php
echo htmlspecialchars($row['procedure_order_patient_instructions'],ENT_NOQUOTES
); ?
> 
;</td
>
694 <td
> <?php
echo htmlspecialchars($row['procedure_order_activity'],ENT_NOQUOTES
); ?
> 
;</td
>
695 <td colspan
=3> <?php
echo htmlspecialchars($row['procedure_order_control_id'],ENT_NOQUOTES
); ?
> 
;</td
>
699 <!-- Procedure Report End
-->
701 <!-- Medical History Report Start
-->
703 if ( $type == 'Medical History')
706 <tr bgcolor
="#C3FDB8" align
= "left">
707 <td colspan
=12><b
><?php
echo "#"; echo htmlspecialchars(xl('Medical History'),ENT_NOQUOTES
);?
><b
></td
></tr
>
708 <tr bgcolor
="#C3FDB8" align
= "left">
709 <td
><b
><?php
echo htmlspecialchars(xl('History Date'),ENT_NOQUOTES
); ?
></b
></td
>
710 <td
><b
><?php
echo htmlspecialchars(xl('Tobacco'),ENT_NOQUOTES
);?
></b
></td
>
711 <td
><b
><?php
echo htmlspecialchars(xl('Alcohol'),ENT_NOQUOTES
);?
></b
></td
>
712 <td colspan
=8><b
><?php
echo htmlspecialchars(xl('Recreational Drugs'),ENT_NOQUOTES
);?
></b
></td
>
714 <tr bgcolor
="#FFFFFF">
716 $tmp_t = explode('|', $row['history_data_tobacco']);
717 $tmp_a = explode('|', $row['history_data_alcohol']);
718 $tmp_d = explode('|', $row['history_data_recreational_drugs']);
719 $his_tobac = generate_display_field(array('data_type'=>'1','list_id'=>'smoking_status'), $tmp_t[3]) ;
721 <td
> <?php
echo htmlspecialchars(oeFormatShortDate($row['history_data_date']),ENT_NOQUOTES
); ?
> 
;</td
>
722 <td
> <?php
echo htmlspecialchars($his_tobac,ENT_NOQUOTES
); ?
> 
;</td
>
724 if ($tmp_a[1] == "currentalcohol") $res = xl('Current Alcohol');
725 if ($tmp_a[1] == "quitalcohol") $res = xl('Quit Alcohol');
726 if ($tmp_a[1] == "neveralcohol") $res = xl('Never Alcohol');
727 if ($tmp_a[1] == "not_applicablealcohol") $res = xl('N/A');
729 <td
> <?php
echo htmlspecialchars($res,ENT_NOQUOTES
); ?
> 
;</td
>
731 if ($tmp_d[1] == "currentrecreational_drugs") $resd = xl('Current Recreational Drugs');
732 if ($tmp_d[1] == "quitrecreational_drugs") $resd = xl('Quit');
733 if ($tmp_d[1] == "neverrecreational_drugs") $resd = xl('Never');
734 if ($tmp_d[1] == "not_applicablerecreational_drugs") $resd = xl('N/A');
736 <td colspan
=8> <?php
echo htmlspecialchars($resd,ENT_NOQUOTES
); ?
> 
;</td
>
739 <!-- Medical History Report End
-->
741 <!-- Service Codes Report Start
-->
743 if ( $type == 'Service Codes') {
745 <tr bgcolor
="#C3FDB8" align
= "left">
746 <td colspan
=11><b
><?php
echo "#"; echo htmlspecialchars(xl('Service Codes'),ENT_NOQUOTES
);?
><b
></td
></tr
>
747 <tr bgcolor
="#C3FDB8" align
= "left">
748 <td
><b
><?php
echo htmlspecialchars(xl('Date'),ENT_NOQUOTES
); ?
></b
></td
>
749 <td
><b
><?php
echo htmlspecialchars(xl('Code'),ENT_NOQUOTES
);?
></b
></td
>
750 <td
><b
><?php
echo htmlspecialchars(xl('Encounter ID'),ENT_NOQUOTES
);?
></b
></td
>
751 <td colspan
=8><b
><?php
echo htmlspecialchars(xl('Code Text'),ENT_NOQUOTES
);?
></b
></td
></tr
>
752 <tr bgcolor
="#FFFFFF">
753 <td
><?php
echo htmlspecialchars(oeFormatShortDate($row['date']),ENT_NOQUOTES
); ?
> 
;</td
>
754 <td
><?php
echo htmlspecialchars($row['code'],ENT_NOQUOTES
); ?
> 
;</td
>
755 <td
><?php
echo htmlspecialchars($row['encounter'],ENT_NOQUOTES
); ?
> 
;</td
>
756 <td colspan
=8><?php
echo htmlspecialchars($row['code_text'],ENT_NOQUOTES
); ?
> 
;</td
>
759 <!-- Service Codes Report End
-->
761 <?php
} //while loop end ?>
762 </table
> <!-- Main table ends
-->
765 } //End if form_refresh
768 ?
><div
class='text'> <?php
echo htmlspecialchars(xl('Please input search criteria above, and click Submit to view results.'),ENT_NOQUOTES
); ?
> </div
><?php
774 <!-- stuff
for the popup calendar
-->
775 <style type
="text/css">
776 @import
url(../../library
/dynarch_calendar
.css
);
778 <script type
="text/javascript" src
="../../library/dynarch_calendar.js"></script
>
779 <?php
include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?
>
780 <script type
="text/javascript" src
="../../library/dynarch_calendar_setup.js"></script
>
781 <script language
="Javascript">
782 Calendar
.setup({inputField
:"date_from", ifFormat
:"%Y-%m-%d", button
:"img_from_date"});
783 Calendar
.setup({inputField
:"date_to", ifFormat
:"%Y-%m-%d", button
:"img_to_date"});