Facility option contributed by Nethanel Vilensky
[openemr.git] / interface / reports / appointments_report.php
blob61b326b4c66cb2a339e9e243917777c965190288
1 <?
2 // Copyright (C) 2005 Rod Roark <rod@sunsetsystems.com>
3 //
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 shows upcoming appointments with filtering and
10 // sorting by patient, practitioner, appointment type, and date.
12 include_once("../globals.php");
13 include_once("../../library/patient.inc");
15 $alertmsg = ''; // not used yet but maybe later
17 // For each sorting option, specify the ORDER BY argument.
19 $ORDERHASH = array(
20 'doctor' => 'lower(u.lname), lower(u.fname), pc_eventDate, pc_startTime',
21 'patient' => 'lower(p.lname), lower(p.fname), pc_eventDate, pc_startTime',
22 'time' => 'pc_eventDate, pc_startTime, lower(u.lname), lower(u.fname)',
23 'type' => 'pc_catname, pc_eventDate, pc_startTime, lower(u.lname), lower(u.fname)'
26 function bucks($amount) {
27 if ($amount)
28 printf("%.2f", $amount);
31 $patient = $_REQUEST['patient'];
33 if ($patient && ! $_POST['form_from_date']) {
34 // If a specific patient, default to 2 years ago.
35 $tmp = date('Y') - 2;
36 $from_date = date("$tmp-m-d");
37 } else {
38 $from_date = fixDate($_POST['form_from_date'], date('Y-m-d'));
40 $to_date = fixDate($_POST['form_to_date'], '');
41 $provider = $_POST['form_provider'];
42 $facility = $_POST['form_facility']; //(CHEMED) facility filter
44 $form_orderby = $ORDERHASH[$_REQUEST['form_orderby']] ?
45 $_REQUEST['form_orderby'] : 'time';
46 $orderby = $ORDERHASH[$form_orderby];
48 $where = "e.pc_pid != '' AND e.pc_eventDate >= '$from_date'";
50 if ($to_date ) $where .= " AND e.pc_eventDate <= '$to_date'";
51 if ($provider) $where .= " AND e.pc_aid = '$provider'";
52 //(CHEMED) facility filter
53 $facility_filter = '';
54 if ($facility) {
55 $event_facility_filter = " AND e.pc_facility = '$facility'";
56 $provider_facility_filter = " AND users.facility_id = '$facility'";
58 //END (CHEMED)
59 if ($patient ) $where .= " AND e.pc_pid = '$patient'";
61 // Get the info.
63 $query = "SELECT " .
64 "e.pc_eventDate, e.pc_startTime, e.pc_catid, e.pc_eid, " .
65 "p.fname, p.mname, p.lname, p.pid, " .
66 "u.fname AS ufname, u.mname AS umname, u.lname AS ulname, " .
67 "c.pc_catname " .
68 "FROM openemr_postcalendar_events AS e " .
69 "LEFT OUTER JOIN patient_data AS p ON p.pid = e.pc_pid " .
70 "LEFT OUTER JOIN users AS u ON u.id = e.pc_aid " .
71 "LEFT OUTER JOIN openemr_postcalendar_categories AS c ON c.pc_catid = e.pc_catid " .
72 "WHERE $where $event_facility_filter ORDER BY $orderby"; //(CHEMED) facility filter
74 $res = sqlStatement($query);
76 <html>
77 <head>
78 <link rel=stylesheet href="<?echo $css_header;?>" type="text/css">
79 <title><?php xl('Appointments Report','e'); ?></title>
81 <script type="text/javascript" src="../../library/overlib_mini.js"></script>
82 <script type="text/javascript" src="../../library/calendar.js"></script>
83 <script type="text/javascript" src="../../library/textformat.js"></script>
84 <script type="text/javascript" src="../../library/dialog.js"></script>
86 <script LANGUAGE="JavaScript">
88 var mypcc = '<?php echo $GLOBALS['phone_country_code'] ?>';
90 function dosort(orderby) {
91 var f = document.forms[0];
92 f.form_orderby.value = orderby;
93 f.submit();
94 return false;
97 function oldEvt(eventid) {
98 dlgopen('../main/calendar/add_edit_event.php?eid=' + eventid, '_blank', 550, 270);
101 function refreshme() {
102 // location.reload();
103 document.forms[0].submit();
106 </script>
108 </head>
110 <body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
112 <!-- Required for the popup date selectors -->
113 <div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
115 <center>
117 <h2><?php xl('Appointments Report','e'); ?></h2>
119 <form method='post' name='theform' action='appointments_report.php'>
121 <table border='0' cellpadding='3'>
123 <tr>
124 <td>
125 <?php //(CHEMED) Facility filter
127 xl('Facility','e');
128 // Build a drop-down list of facilities.
130 $query = "SELECT id, name FROM facility WHERE " .
131 "service_location = 1 ORDER BY name ";
132 $ures = sqlStatement($query);
133 echo " <select name='form_facility' onChange='document.all.theform.submit()'>\n";
134 echo " <option value=''>-- All --\n";
135 while ($urow = sqlFetchArray($ures)) {
136 $fid = $urow['id'];
137 echo " <option value='$fid'";
138 if ($fid == $_POST['form_facility']) echo " selected";
139 echo ">" . $urow['name'] . "\n";
141 echo " </select>\n";
142 //END (CHEMED) Facility filter?>
144 <?php xl('Provider','e'); ?>:
146 // Build a drop-down list of providers.
148 $query = "SELECT id, lname, fname FROM users WHERE ".
149 "authorized = 1 $provider_facility_filter ORDER BY lname, fname"; //(CHEMED) facility filter
150 $ures = sqlStatement($query);
151 echo " <select name='form_provider'>\n";
152 echo " <option value=''>-- All --\n";
153 while ($urow = sqlFetchArray($ures)) {
154 $provid = $urow['id'];
155 echo " <option value='$provid'";
156 if ($provid == $_POST['form_provider']) echo " selected";
157 echo ">" . $urow['lname'] . ", " . $urow['fname'] . "\n";
159 echo " </select>\n";
162 &nbsp;<?php xl('From','e'); ?>:
163 <input type='text' name='form_from_date' size='10' value='<?php echo $from_date ?>'
164 onkeyup='datekeyup(this,mypcc)' onblur='dateblur(this,mypcc)' title='yyyy-mm-dd'>
165 <a href="javascript:show_calendar('theform.form_from_date')"
166 title=".xl('Click here to choose a date')."
167 ><img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22' border='0'></a>
168 &nbsp;<?php xl('To','e'); ?>:
169 <input type='text' name='form_to_date' size='10' value='<?php echo $to_date ?>'
170 onkeyup='datekeyup(this,mypcc)' onblur='dateblur(this,mypcc)' title='yyyy-mm-dd'>
171 <a href="javascript:show_calendar('theform.form_to_date')"
172 title=".xl('Click here to choose a date')."
173 ><img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22' border='0'></a>
174 &nbsp;
175 <input type='submit' name='form_refresh' value='<?php xl('Refresh','e'); ?>'>
176 </td>
177 </tr>
179 <tr>
180 <td height="1">
181 </td>
182 </tr>
184 </table>
186 <table border='0' cellpadding='1' cellspacing='2' width='98%'>
188 <tr bgcolor="#dddddd">
189 <td class="dehead">
190 <a href="nojs.php" onclick="return dosort('doctor')"
191 <?php if ($form_orderby == "doctor") echo " style=\"color:#00cc00\"" ?>><?php xl('Provider','e'); ?> </a>
192 </td>
193 <td class="dehead">
194 <a href="nojs.php" onclick="return dosort('time')"
195 <?php if ($form_orderby == "time") echo " style=\"color:#00cc00\"" ?>><?php xl('Time','e'); ?></a>
196 </td>
197 <td class="dehead">
198 <a href="nojs.php" onclick="return dosort('patient')"
199 <?php if ($form_orderby == "patient") echo " style=\"color:#00cc00\"" ?>><?php xl('Patient','e'); ?></a>
200 </td>
201 <td class="dehead">
202 <a href="nojs.php" onclick="return dosort('type')"
203 <?php if ($form_orderby == "type") echo " style=\"color:#00cc00\"" ?>><?php xl('Type','e'); ?></a>
204 </td>
205 </tr>
207 if ($res) {
208 $lastdocname = "";
209 while ($row = sqlFetchArray($res)) {
210 $patient_id = $row['pid'];
211 $docname = $row['ulname'] . ', ' . $row['ufname'] . ' ' . $row['umname'];
212 $errmsg = "";
214 <tr bgcolor='<?php echo $bgcolor ?>'>
215 <td class="detail">
216 &nbsp;<?php echo ($docname == $lastdocname) ? "" : $docname ?>
217 </td>
218 <td class="detail">
219 &nbsp;<a href='javascript:oldEvt(<?echo $row['pc_eid'] ?>)'>
220 <?php echo $row['pc_eventDate'] . ' ' . substr($row['pc_startTime'], 0, 5) ?>
221 </a>
222 </td>
223 <td class="detail">
224 &nbsp;<?php echo $row['fname'] . " " . $row['lname'] ?>
225 </td>
226 <td class="detail">
227 &nbsp;<?php echo $row['pc_catname'] ?>
228 </td>
229 </tr>
231 $lastdocname = $docname;
236 </table>
238 <input type="hidden" name="form_orderby" value="<?php echo $form_orderby ?>" />
239 <input type="hidden" name="patient" value="<?php echo $patient ?>" />
241 </form>
242 </center>
243 <script>
245 if ($alertmsg) {
246 echo " alert('$alertmsg');\n";
249 </script>
250 </body>
251 </html>