2 // Copyright (C) 2007-2009 Rod Roark <rod@sunsetsystems.com>
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 past encounters with filtering and sorting.
11 require_once("../globals.php");
12 require_once("$srcdir/forms.inc");
13 require_once("$srcdir/billing.inc");
14 require_once("$srcdir/patient.inc");
16 $alertmsg = ''; // not used yet but maybe later
18 // For each sorting option, specify the ORDER BY argument.
21 'doctor' => 'lower(u.lname), lower(u.fname), fe.date',
22 'patient' => 'lower(p.lname), lower(p.fname), fe.date',
23 'pubpid' => 'lower(p.pubpid), fe.date',
24 'time' => 'fe.date, lower(u.lname), lower(u.fname)',
27 function bucks($amount) {
28 if ($amount) printf("%.2f", $amount);
31 function show_doc_total($lastdocname, $doc_encounters) {
34 echo " <td class='detail'>$lastdocname</td>\n";
35 echo " <td class='detail' align='right'>$doc_encounters</td>\n";
40 $form_from_date = fixDate($_POST['form_from_date'], date('Y-m-d'));
41 $form_to_date = fixDate($_POST['form_to_date'], date('Y-m-d'));
42 $form_provider = $_POST['form_provider'];
43 $form_facility = $_POST['form_facility'];
44 $form_details = $_POST['form_details'] ?
true : false;
46 $form_orderby = $ORDERHASH[$_REQUEST['form_orderby']] ?
47 $_REQUEST['form_orderby'] : 'doctor';
48 $orderby = $ORDERHASH[$form_orderby];
53 "fe.encounter, fe.date, fe.reason, " .
54 "f.formdir, f.form_name, " .
55 "p.fname, p.mname, p.lname, p.pid, p.pubpid, " .
56 "u.lname AS ulname, u.fname AS ufname, u.mname AS umname " .
57 "FROM ( form_encounter AS fe, forms AS f ) " .
58 "LEFT OUTER JOIN patient_data AS p ON p.pid = fe.pid " .
59 "LEFT JOIN users AS u ON u.id = fe.provider_id " .
60 "WHERE f.encounter = fe.encounter AND f.formdir = 'newpatient' ";
62 $query .= "AND fe.date >= '$form_from_date 00:00:00' AND fe.date <= '$form_to_date 23:59:59' ";
64 $query .= "AND fe.date >= '$form_from_date 00:00:00' AND fe.date <= '$form_from_date 23:59:59' ";
67 $query .= "AND f.user = '$form_provider' ";
70 $query .= "AND fe.facility_id = '$form_facility' ";
72 $query .= "ORDER BY $orderby";
74 $res = sqlStatement($query);
78 <?php
html_header_show();?
>
79 <title
><?php
xl('Encounters Report','e'); ?
></title
>
81 <style type
="text/css">@import
url(../../library
/dynarch_calendar
.css
);</style
>
83 <link rel
=stylesheet href
="<?php echo $css_header;?>" type
="text/css">
84 <style type
="text/css">
86 /* specifically include & exclude from printing */
92 #report_parameters_daterange {
96 #report_results table {
101 /* specifically exclude some from the screen */
103 #report_parameters_daterange {
111 <script type
="text/javascript" src
="../../library/textformat.js"></script
>
112 <script type
="text/javascript" src
="../../library/dialog.js"></script
>
113 <script type
="text/javascript" src
="../../library/dynarch_calendar.js"></script
>
114 <?php
include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?
>
115 <script type
="text/javascript" src
="../../library/dynarch_calendar_setup.js"></script
>
116 <script type
="text/javascript" src
="../../library/js/jquery.1.3.2.js"></script
>
118 <script LANGUAGE
="JavaScript">
120 var mypcc
= '<?php echo $GLOBALS['phone_country_code
'] ?>';
122 function dosort(orderby
) {
123 var f
= document
.forms
[0];
124 f
.form_orderby
.value
= orderby
;
129 function refreshme() {
130 document
.forms
[0].submit();
136 <body
class="body_top">
137 <!-- Required
for the popup date selectors
-->
138 <div id
="overDiv" style
="position:absolute; visibility:hidden; z-index:1000;"></div
>
140 <span
class='title'><?php
xl('Report','e'); ?
> - <?php
xl('Encounters','e'); ?
></span
>
142 <div id
="report_parameters_daterange">
143 <?php
echo date("d F Y", strtotime($form_from_date)) ." to ". date("d F Y", strtotime($form_to_date)); ?
>
146 <form method
='post' name
='theform' id
='theform' action
='encounters_report.php'>
148 <div id
="report_parameters">
152 <div style
='float:left'>
157 <?php
xl('Facility','e'); ?
>:
161 // Build a drop-down list of facilities.
163 $query = "SELECT id, name FROM facility ORDER BY name";
164 $fres = sqlStatement($query);
165 echo " <select name='form_facility'>\n";
166 echo " <option value=''>-- " . xl('All Facilities') . " --\n";
167 while ($frow = sqlFetchArray($fres)) {
168 $facid = $frow['id'];
169 echo " <option value='$facid'";
170 if ($facid == $form_facility) echo " selected";
171 echo ">" . $frow['name'] . "\n";
173 echo " <option value='0'";
174 if ($form_facility === '0') echo " selected";
175 echo ">-- " . xl('Unspecified') . " --\n";
180 <?php
xl('Provider','e'); ?
>:
185 // Build a drop-down list of providers.
188 $query = "SELECT id, lname, fname FROM users WHERE ".
189 "authorized = 1 $provider_facility_filter ORDER BY lname, fname"; //(CHEMED) facility filter
191 $ures = sqlStatement($query);
193 echo " <select name='form_provider'>\n";
194 echo " <option value=''>-- " . xl('All') . " --\n";
196 while ($urow = sqlFetchArray($ures)) {
197 $provid = $urow['id'];
198 echo " <option value='$provid'";
199 if ($provid == $_POST['form_provider']) echo " selected";
200 echo ">" . $urow['lname'] . ", " . $urow['fname'] . "\n";
212 <?php
xl('From','e'); ?
>:
215 <input type
='text' name
='form_from_date' id
="form_from_date" size
='10' value
='<?php echo $form_from_date ?>'
216 onkeyup
='datekeyup(this,mypcc)' onblur
='dateblur(this,mypcc)' title
='yyyy-mm-dd'>
217 <img src
='../pic/show_calendar.gif' align
='absbottom' width
='24' height
='22'
218 id
='img_from_date' border
='0' alt
='[?]' style
='cursor:pointer'
219 title
='<?php xl('Click here to choose a date
','e
'); ?>'>
222 <?php
xl('To','e'); ?
>:
225 <input type
='text' name
='form_to_date' id
="form_to_date" size
='10' value
='<?php echo $form_to_date ?>'
226 onkeyup
='datekeyup(this,mypcc)' onblur
='dateblur(this,mypcc)' title
='yyyy-mm-dd'>
227 <img src
='../pic/show_calendar.gif' align
='absbottom' width
='24' height
='22'
228 id
='img_to_date' border
='0' alt
='[?]' style
='cursor:pointer'
229 title
='<?php xl('Click here to choose a date
','e
'); ?>'>
232 <input type
='checkbox' name
='form_details'<?php
if ($form_details) echo ' checked'; ?
>>
233 <?php
xl('Details','e'); ?
>
241 <td align
='left' valign
='middle' height
="100%">
242 <table style
='border-left:1px solid; width:100%; height:100%' >
245 <div style
='margin-left:15px'>
246 <a href
='#' class='css_button' onclick
='$("#form_refresh").attr("value","true"); $("#theform").submit();'>
248 <?php
xl('Submit','e'); ?
>
252 <?php
if ($_POST['form_refresh'] ||
$_POST['form_orderby'] ) { ?
>
253 <a href
='#' class='css_button' onclick
='window.print()'>
255 <?php
xl('Print','e'); ?
>
267 </div
> <!-- end report_parameters
-->
270 if ($_POST['form_refresh'] ||
$_POST['form_orderby']) {
272 <div id
="report_results">
276 <?php
if ($form_details) { ?
>
278 <a href
="nojs.php" onclick
="return dosort('doctor')"
279 <?php
if ($form_orderby == "doctor") echo " style=\"color:#00cc00\"" ?
>><?php
xl('Provider','e'); ?
> </a
>
282 <a href
="nojs.php" onclick
="return dosort('time')"
283 <?php
if ($form_orderby == "time") echo " style=\"color:#00cc00\"" ?
>><?php
xl('Date','e'); ?
></a
>
286 <a href
="nojs.php" onclick
="return dosort('patient')"
287 <?php
if ($form_orderby == "patient") echo " style=\"color:#00cc00\"" ?
>><?php
xl('Patient','e'); ?
></a
>
290 <a href
="nojs.php" onclick
="return dosort('pubpid')"
291 <?php
if ($form_orderby == "pubpid") echo " style=\"color:#00cc00\"" ?
>><?php
xl('ID','e'); ?
></a
>
294 <?php
xl('Status','e'); ?
>
297 <?php
xl('Encounter','e'); ?
>
300 <?php
xl('Form','e'); ?
>
303 <?php
xl('Coding','e'); ?
>
306 <th
><?php
xl('Provider','e'); ?
></td
>
307 <th
><?php
xl('Encounters','e'); ?
></td
>
315 while ($row = sqlFetchArray($res)) {
316 $patient_id = $row['pid'];
319 if (!empty($row['ulname']) ||
!empty($row['ufname'])) {
320 $docname = $row['ulname'];
321 if (!empty($row['ufname']) ||
!empty($row['umname']))
322 $docname .= ', ' . $row['ufname'] . ' ' . $row['umname'];
327 // Fetch all other forms for this encounter.
329 $encarr = getFormByEncounter($patient_id, $row['encounter'],
330 "formdir, user, form_name, form_id");
331 foreach ($encarr as $enc) {
332 if ($enc['formdir'] == 'newpatient') continue;
333 if ($encnames) $encnames .= '<br />';
334 $encnames .= $enc['form_name'];
337 // Fetch coding and compute billing status.
341 if ($billres = getBillingByEncounter($row['pid'], $row['encounter'],
342 "code_type, code, code_text, billed"))
344 foreach ($billres as $billrow) {
345 $title = addslashes($billrow['code_text']);
346 $coded .= $billrow['code'] . ', ';
347 if ($billrow['code_type'] != 'COPAY' && $billrow['code_type'] != 'TAX') {
348 if ($billrow['billed']) ++
$billed_count; else ++
$unbilled_count;
351 $coded = substr($coded, 0, strlen($coded) - 2);
354 // Figure product sales into billing status.
355 $sres = sqlStatement("SELECT billed FROM drug_sales " .
356 "WHERE pid = '{$row['pid']}' AND encounter = '{$row['encounter']}'");
357 while ($srow = sqlFetchArray($sres)) {
358 if ($srow['billed']) ++
$billed_count; else ++
$unbilled_count;
361 // Compute billing status.
362 if ($billed_count && $unbilled_count) $status = xl('Mixed' );
363 else if ($billed_count ) $status = xl('Closed');
364 else if ($unbilled_count ) $status = xl('Open' );
365 else $status = xl('Empty' );
367 <tr bgcolor
='<?php echo $bgcolor ?>'>
369 <?php
echo ($docname == $lastdocname) ?
"" : $docname ?
> 
;
372 <?php
echo substr($row['date'], 0, 10) ?
> 
;
375 <?php
echo $row['lname'] . ', ' . $row['fname'] . ' ' . $row['mname']; ?
> 
;
378 <?php
echo $row['pubpid']; ?
> 
;
381 <?php
echo $status; ?
> 
;
384 <?php
echo $row['reason']; ?
> 
;
387 <?php
echo $encnames; ?
> 
;
390 <?php
echo $coded; ?
>
395 if ($docname != $lastdocname) {
396 show_doc_total($lastdocname, $doc_encounters);
401 $lastdocname = $docname;
404 if (!$form_details) show_doc_total($lastdocname, $doc_encounters);
409 </div
> <!-- end encresults
-->
412 <?php
echo xl('Please input search criteria above, and click Submit to view results.', 'e' ); ?
>
416 <input type
="hidden" name
="form_orderby" value
="<?php echo $form_orderby ?>" />
417 <input type
='hidden' name
='form_refresh' id
='form_refresh' value
=''/>
422 <script language
='JavaScript'>
423 Calendar
.setup({inputField
:"form_from_date", ifFormat
:"%Y-%m-%d", button
:"img_from_date"});
424 Calendar
.setup({inputField
:"form_to_date", ifFormat
:"%Y-%m-%d", button
:"img_to_date"});
426 <?php
if ($alertmsg) { echo " alert('$alertmsg');\n"; } ?
>