incremented database counter for prior feature
[openemr.git] / interface / billing / sl_receipts_report.php
blob0a38559e70a6749dac7daacb99c170b63d1876f7
1 <?php
2 /**
3 * Report - Cash receipts by Provider
5 * This module was written for one of my clients to report on cash
6 * receipts by practitioner. It is not as complete as it should be
7 * but I wanted to make the code available to the project because
8 * many other practices have this same need. - rod@sunsetsystems.com
10 * Copyright (C) 2016 Terry Hill <terry@lillysystems.com>
11 * Copyright (C) 2006-2016 Rod Roark <rod@sunsetsystems.com>
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * @package OpenEMR
19 * @author Rod Roark <rod@sunsetsystems.com>
20 * @author Terry Hill <terry@lillysystems.com>
21 * @link http://open-emr.org
24 $sanitize_all_escapes=true;
25 $fake_register_globals=false;
27 require_once('../globals.php');
28 require_once($GLOBALS['srcdir'].'/patient.inc');
29 require_once($GLOBALS['srcdir'].'/acl.inc');
30 require_once($GLOBALS['srcdir'].'/formatting.inc.php');
31 require_once($GLOBALS['srcdir'].'/options.inc.php');
32 require_once($GLOBALS['srcdir'].'/formdata.inc.php');
33 require_once($GLOBALS['fileroot'].'/custom/code_types.inc.php');
35 // This determines if a particular procedure code corresponds to receipts
36 // for the "Clinic" column as opposed to receipts for the practitioner. Each
37 // practice will have its own policies in this regard, so you'll probably
38 // have to customize this function. If you use the "fee sheet" encounter
39 // form then the code below may work for you.
41 require_once('../forms/fee_sheet/codes.php');
42 function is_clinic($code) {
43 global $bcodes;
44 $i = strpos($code, ':');
45 if ($i) $code = substr($code, 0, $i);
46 return ($bcodes['CPT4'][xl('Lab')][$code] ||
47 $bcodes['CPT4'][xl('Immunizations')][$code] ||
48 $bcodes['HCPCS'][xl('Therapeutic Injections')][$code]);
51 function bucks($amount) {
52 if ($amount) echo attr(oeFormatMoney($amount));
55 if (! acl_check('acct', 'rep')) die(xlt("Unauthorized access."));
58 $form_use_edate = $_POST['form_use_edate'];
60 $form_proc_codefull = trim($_POST['form_proc_codefull']);
61 // Parse the code type and the code from <code_type>:<code>
62 $tmp_code_array = explode(':',$form_proc_codefull);
63 $form_proc_codetype = $tmp_code_array[0];
64 $form_proc_code = $tmp_code_array[1];
66 $form_dx_codefull = trim($_POST['form_dx_codefull']);
67 // Parse the code type and the code from <code_type>:<code>
68 $tmp_code_array = explode(':',$form_dx_codefull);
69 $form_dx_codetype = $tmp_code_array[0];
70 $form_dx_code = $tmp_code_array[1];
72 $form_procedures = empty($_POST['form_procedures']) ? 0 : 1;
73 $form_from_date = fixDate($_POST['form_from_date'], date('Y-m-01'));
74 $form_to_date = fixDate($_POST['form_to_date'], date('Y-m-d'));
75 $form_facility = $_POST['form_facility'];
77 <html>
78 <head>
79 <?php if (function_exists('html_header_show')) html_header_show(); ?>
80 <style type="text/css">
81 /* specifically include & exclude from printing */
82 @media print {
83 #report_parameters {
84 visibility: hidden;
85 display: none;
87 #report_parameters_daterange {
88 visibility: visible;
89 display: inline;
91 #report_results {
92 margin-top: 30px;
96 /* specifically exclude some from the screen */
97 @media screen { N
98 #report_parameters_daterange {
99 visibility: hidden;
100 display: none;
103 </style>
105 <script type="text/javascript" src="<?php echo $GLOBALS['webroot']; ?>/library/dialog.js?v=<?php echo $v_js_includes; ?>"></script>
106 <script type="text/javascript" src="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-9-1/index.js"></script>
107 <script type="text/javascript" src="<?php echo $GLOBALS['webroot']; ?>/library/js/report_helper.js?v=<?php echo $v_js_includes; ?>"></script>
109 <script language="JavaScript">
111 $(document).ready(function() {
112 oeFixedHeaderSetup(document.getElementById('mymaintable'));
113 var win = top.printLogSetup ? top : opener.top;
114 win.printLogSetup(document.getElementById('printbutton'));
117 // This is for callback by the find-code popup.
118 // Erases the current entry
119 // The target element is set by the find-code popup
120 // (this allows use of this in multiple form elements on the same page)
121 function set_related_target(codetype, code, selector, codedesc, target_element) {
122 var f = document.forms[0];
123 var s = f[target_element].value;
124 if (code) {
125 s = codetype + ':' + code;
126 } else {
127 s = '';
129 f[target_element].value = s;
132 // This invokes the find-code (procedure/service codes) popup.
133 function sel_procedure() {
134 dlgopen('../patient_file/encounter/find_code_popup.php?target_element=form_proc_codefull&codetype=<?php echo attr(collect_codetypes("procedure","csv")) ?>', '_blank', 500, 400);
137 // This invokes the find-code (diagnosis codes) popup.
138 function sel_diagnosis() {
139 dlgopen('../patient_file/encounter/find_code_popup.php?target_element=form_dx_codefull&codetype=<?php echo attr(collect_codetypes("diagnosis","csv")) ?>', '_blank', 500, 400);
142 </script>
144 <title><?php echo xlt('Cash Receipts by Provider')?></title>
145 </head>
147 <body class="body_top">
149 <span class='title'><?php echo xlt('Report'); ?> - <?php echo xlt('Cash Receipts by Provider'); ?></span>
151 <form method='post' action='sl_receipts_report.php' id='theform'>
153 <div id="report_parameters">
155 <input type='hidden' name='form_refresh' id='form_refresh' value=''/>
157 <table>
158 <tr>
159 <td width='660px'>
160 <div style='float:left'>
162 <table class='text'>
163 <tr>
164 <td class='label'>
165 <?php echo xlt('Facility'); ?>:
166 </td>
167 <td>
168 <?php dropdown_facility($form_facility, 'form_facility'); ?>
169 </td>
170 <td class='label'>
171 <?php echo xlt('Provider'); ?>:
172 </td>
173 <td>
174 <?php
175 if (acl_check('acct', 'rep_a')) {
176 // Build a drop-down list of providers.
178 $query = "select id, lname, fname from users where " .
179 "authorized = 1 order by lname, fname";
180 $res = sqlStatement($query);
181 echo " &nbsp;<select name='form_doctor'>\n";
182 echo " <option value=''>-- " . xlt('All Providers') . " --\n";
183 while ($row = sqlFetchArray($res)) {
184 $provid = $row['id'];
185 echo " <option value='". attr($provid) ."'";
186 if ($provid == $_POST['form_doctor']) echo " selected";
187 echo ">" . text($row['lname']) . ", " . text($row['fname']) . "\n";
189 echo " </select>\n";
190 } else {
191 echo "<input type='hidden' name='form_doctor' value='" . attr($_SESSION['authUserID']) . "'>";
194 </td>
195 <td>
196 <select name='form_use_edate'>
197 <option value='0'><?php echo xlt('Payment Date'); ?></option>
198 <option value='1'<?php if ($form_use_edate) echo ' selected' ?>><?php echo xlt('Invoice Date'); ?></option>
199 </select>
200 </td>
201 </tr>
202 <tr>
203 <td class='label'>
204 <?php echo xlt('From'); ?>:
205 </td>
206 <td>
207 <input type='text' name='form_from_date' id="form_from_date" size='10' value='<?php echo attr($form_from_date); ?>'
208 title='<?php echo xla('Date of appointments mm/dd/yyyy'); ?>' >
209 <img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22'
210 id='img_from_date' border='0' alt='[?]' style='cursor:pointer'
211 title='<?php echo xla('Click here to choose a date'); ?>'>
212 </td>
213 <td class='label'>
214 <?php echo xlt('To'); ?>:
215 </td>
216 <td>
217 <input type='text' name='form_to_date' id="form_to_date" size='10' value='<?php echo attr($form_to_date); ?>'
218 title='<?php echo xla('Optional end date mm/dd/yyyy'); ?>' >
219 <img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22'
220 id='img_to_date' border='0' alt='[?]' style='cursor:pointer'
221 title='<?php echo xla('Click here to choose a date'); ?>'>
222 </td>
223 <td>&nbsp;</td>
224 </tr>
225 <tr>
226 <td>
227 <?php if (!$GLOBALS['simplified_demographics']) echo '&nbsp;' . xlt('Procedure/Service') . ':'; ?>
228 </td>
229 <td>
230 <input type='text' name='form_proc_codefull' size='11' value='<?php echo attr($form_proc_codefull); ?>' onclick='sel_procedure()'
231 title='<?php echo xla('Optional procedure/service code'); ?>'
232 <?php if ($GLOBALS['simplified_demographics']) echo "style='display:none'"; ?>>
233 </td>
235 <td>
236 <?php if (!$GLOBALS['simplified_demographics']) echo '&nbsp;' . xlt('Diagnosis') . ':'; ?>
237 </td>
238 <td>
239 <input type='text' name='form_dx_codefull' size='11' value='<?php echo attr($form_dx_codefull); ?>' onclick='sel_diagnosis()'
240 title='<?php echo xla('Enter a diagnosis code to exclude all invoices not containing it'); ?>'
241 <?php if ($GLOBALS['simplified_demographics']) echo "style='display:none'"; ?>>
242 </td>
244 <td>
245 <input type='checkbox' name='form_details' value='1'<?php if ($_POST['form_details']) echo " checked"; ?>><?php echo xlt('Details')?>
246 <input type='checkbox' name='form_procedures' value='1'<?php if ($form_procedures) echo " checked"; ?>><?php echo xlt('Procedures')?>
247 </td>
248 </tr>
250 </table>
252 </div>
254 </td>
256 <td align='left' valign='middle' height="100%">
258 <table style='border-left:1px solid; width:100%; height:100%' >
259 <tr>
260 <td>
261 <div style='margin-left:15px'>
262 <a href='#' class='css_button' onclick='$("#form_refresh").attr("value","true"); $("#theform").submit();'>
263 <span>
264 <?php echo xlt('Submit'); ?>
265 </span>
266 </a>
268 <?php if ($_POST['form_refresh']) { ?>
269 <a href='#' class='css_button' id='printbutton'>
270 <span>
271 <?php echo xlt('Print'); ?>
272 </span>
273 </a>
274 <?php } ?>
275 </div>
276 </td>
277 </tr>
278 </table>
279 </td>
280 </tr>
281 </table>
282 </div>
284 <?php
285 if ($_POST['form_refresh']) {
287 <div id="report_results">
288 <table border='0' cellpadding='1' cellspacing='2' width='98%' id='mymaintable'>
289 <thead>
290 <th>
291 <?php echo xlt('Practitioner') ?>
292 </th>
293 <th>
294 <?php echo xlt('Date') ?>
295 </th>
296 <?php if ($form_procedures) { ?>
297 <th>
298 <?php if ($GLOBALS['cash_receipts_report_invoice'] == '0') {
299 echo xlt('Invoice');
300 } else {
301 echo xlt('Name');
303 </th>
304 <?php } ?>
305 <?php if ($form_proc_codefull) { ?>
306 <th align='right'>
307 <?php echo xlt('InvAmt') ?>
308 </th>
309 <?php } ?>
310 <?php if ($form_proc_codefull) { ?>
311 <th>
312 <?php echo xlt('Insurance') ?>
313 </th>
314 <?php } ?>
315 <?php if ($form_procedures) { ?>
316 <th>
317 <?php echo xlt('Procedure') ?>
318 </th>
319 <th align="right">
320 <?php echo xlt('Prof.') ?>
321 </th>
322 <th align="right">
323 <?php echo xlt('Clinic') ?>
324 </th>
325 <?php } else { ?>
326 <th align="right">
327 <?php echo xlt('Received') ?>
328 </th>
329 <?php } ?>
330 </thead>
331 <?php
332 if ($_POST['form_refresh']) {
333 $form_doctor = $_POST['form_doctor'];
334 $arows = array();
336 $ids_to_skip = array();
337 $irow = 0;
339 // Get copays. These will be ignored if a CPT code was specified.
341 if (!$form_proc_code || !$form_proc_codetype) {
342 /*************************************************************
343 $query = "SELECT b.fee, b.pid, b.encounter, b.code_type, b.code, b.modifier, " .
344 "fe.date, fe.id AS trans_id, u.id AS docid " .
345 "FROM billing AS b " .
346 "JOIN form_encounter AS fe ON fe.pid = b.pid AND fe.encounter = b.encounter " .
347 "JOIN forms AS f ON f.pid = b.pid AND f.encounter = b.encounter AND f.formdir = 'newpatient' " .
348 "LEFT OUTER JOIN users AS u ON u.username = f.user " .
349 "WHERE b.code_type = 'COPAY' AND b.activity = 1 AND " .
350 "fe.date >= '$form_from_date 00:00:00' AND fe.date <= '$form_to_date 23:59:59'";
351 // If a facility was specified.
352 if ($form_facility) {
353 $query .= " AND fe.facility_id = '$form_facility'";
355 // If a doctor was specified.
356 if ($form_doctor) {
357 $query .= " AND u.id = '$form_doctor'";
359 *************************************************************/
360 $sqlBindArray = array();
361 $query = "SELECT b.fee, b.pid, b.encounter, b.code_type, b.code, b.modifier, " .
362 "fe.date, fe.id AS trans_id, fe.provider_id AS docid, fe.invoice_refno " .
363 "FROM billing AS b " .
364 "JOIN form_encounter AS fe ON fe.pid = b.pid AND fe.encounter = b.encounter " .
365 "WHERE b.code_type = 'COPAY' AND b.activity = 1 AND " .
366 "fe.date >= ? AND fe.date <= ?";
367 array_push($sqlBindArray,$form_from_date . " 00:00:00",$form_to_date . " 23:59:59");
368 // If a facility was specified.
369 if ($form_facility) {
370 $query .= " AND fe.facility_id = ?";
371 array_push($sqlBindArray,$form_facility);
373 // If a doctor was specified.
374 if ($form_doctor) {
375 $query .= " AND fe.provider_id = ?";
376 array_push($sqlBindArray,$form_doctor);
378 /************************************************************/
380 $res = sqlStatement($query,$sqlBindArray);
381 while ($row = sqlFetchArray($res)) {
382 $trans_id = $row['trans_id'];
383 $thedate = substr($row['date'], 0, 10);
384 $patient_id = $row['pid'];
385 $encounter_id = $row['encounter'];
387 if (!empty($ids_to_skip[$trans_id])) continue;
389 // If a diagnosis code was given then skip any invoices without
390 // that diagnosis.
391 if ($form_dx_code && $form_dx_codetype) {
392 $tmp = sqlQuery("SELECT count(*) AS count FROM billing WHERE " .
393 "pid = ? AND encounter = ? AND " .
394 "code_type = ? AND code LIKE ? AND " .
395 "activity = 1", array($patient_id,$encounter_id,$form_dx_codetype,$form_dx_code));
396 if (empty($tmp['count'])) {
397 $ids_to_skip[$trans_id] = 1;
398 continue;
402 $key = sprintf("%08u%s%08u%08u%06u", $row['docid'], $thedate,
403 $patient_id, $encounter_id, ++$irow);
404 $arows[$key] = array();
405 $arows[$key]['transdate'] = $thedate;
406 $arows[$key]['amount'] = $row['fee'];
407 $arows[$key]['docid'] = $row['docid'];
408 $arows[$key]['project_id'] = 0;
409 $arows[$key]['memo'] = '';
410 if ($GLOBALS['cash_receipts_report_invoice'] == '0') {
411 $arows[$key]['invnumber'] = "$patient_id.$encounter_id";
412 } else{
413 $arows[$key]['invnumber'] = "$patient_name";
415 $arows[$key]['irnumber'] = $row['invoice_refno'];
416 } // end while
417 } // end copays (not $form_proc_code)
419 // Get ar_activity (having payments), form_encounter, forms, users, optional ar_session
420 /***************************************************************
421 $query = "SELECT a.pid, a.encounter, a.post_time, a.code, a.modifier, a.pay_amount, " .
422 "fe.date, fe.id AS trans_id, u.id AS docid, s.deposit_date, s.payer_id " .
423 "FROM ar_activity AS a " .
424 "JOIN form_encounter AS fe ON fe.pid = a.pid AND fe.encounter = a.encounter " .
425 "JOIN forms AS f ON f.pid = a.pid AND f.encounter = a.encounter AND f.formdir = 'newpatient' " .
426 "LEFT OUTER JOIN users AS u ON u.username = f.user " .
427 "LEFT OUTER JOIN ar_session AS s ON s.session_id = a.session_id " .
428 "WHERE a.pay_amount != 0 AND ( " .
429 "a.post_time >= '$form_from_date 00:00:00' AND a.post_time <= '$form_to_date 23:59:59' " .
430 "OR fe.date >= '$form_from_date 00:00:00' AND fe.date <= '$form_to_date 23:59:59' " .
431 "OR s.deposit_date >= '$form_from_date' AND s.deposit_date <= '$form_to_date' )";
432 // If a procedure code was specified.
433 if ($form_proc_code) $query .= " AND a.code = '$form_proc_code'";
434 // If a facility was specified.
435 if ($form_facility) $query .= " AND fe.facility_id = '$form_facility'";
436 // If a doctor was specified.
437 if ($form_doctor) $query .= " AND u.id = '$form_doctor'";
438 ***************************************************************/
439 $sqlBindArray = array();
440 $query = "SELECT a.pid, a.encounter, a.post_time, a.code, a.modifier, a.pay_amount, " .
441 "fe.date, fe.id AS trans_id, fe.provider_id AS docid, fe.invoice_refno, s.deposit_date, s.payer_id, " .
442 "b.provider_id, concat(p.lname, ' ', p.fname) as 'pat_fulname' " .
443 "FROM ar_activity AS a " .
444 "JOIN form_encounter AS fe ON fe.pid = a.pid AND fe.encounter = a.encounter " .
445 "LEFT OUTER JOIN ar_session AS s ON s.session_id = a.session_id " .
446 "LEFT OUTER JOIN patient_data AS p ON p.pid = a.pid " .
447 "LEFT OUTER JOIN billing AS b ON b.pid = a.pid AND b.encounter = a.encounter AND " .
448 "b.code = a.code AND b.modifier = a.modifier AND b.activity = 1 AND " .
449 "b.code_type != 'COPAY' AND b.code_type != 'TAX' " .
450 "WHERE a.pay_amount != 0 AND ( " .
451 "a.post_time >= ? AND a.post_time <= ? " .
452 "OR fe.date >= ? AND fe.date <= ? " .
453 "OR s.deposit_date >= ? AND s.deposit_date <= ? )";
454 array_push($sqlBindArray,$form_from_date . " 00:00:00",$form_to_date . " 23:59:59",$form_from_date . " 00:00:00",$form_to_date . " 23:59:59",$form_from_date,$form_to_date);
455 // If a procedure code was specified.
456 // Support code type if it is in the ar_activity table. Note it is not always included, so
457 // also support a blank code type in ar_activity table.
458 if ($form_proc_codetype && $form_proc_code) {
459 $query .= " AND (a.code_type = ? OR a.code_type = '') AND a.code = ?";
460 array_push($sqlBindArray,$form_proc_codetype,$form_proc_code);
462 // If a facility was specified.
463 if ($form_facility) {
464 $query .= " AND fe.facility_id = ?";
465 array_push($sqlBindArray,$form_facility);
467 // If a doctor was specified.
468 if ($form_doctor) {
469 $query .= " AND ( b.provider_id = ? OR " .
470 "( ( b.provider_id IS NULL OR b.provider_id = 0 ) AND " .
471 "fe.provider_id = ? ) )";
472 array_push($sqlBindArray,$form_doctor,$form_doctor);
474 /**************************************************************/
476 $res = sqlStatement($query,$sqlBindArray);
477 while ($row = sqlFetchArray($res)) {
478 $trans_id = $row['trans_id'];
479 $patient_id = $row['pid'];
480 $encounter_id = $row['encounter'];
481 $patient_name = $row['pat_fulname'];
483 if (!empty($ids_to_skip[$trans_id])) continue;
485 if ($form_use_edate) {
486 $thedate = substr($row['date'], 0, 10);
487 } else {
488 if (!empty($row['deposit_date']))
489 $thedate = $row['deposit_date'];
490 else
491 $thedate = substr($row['post_time'], 0, 10);
493 if (strcmp($thedate, $form_from_date) < 0 || strcmp($thedate, $form_to_date) > 0) continue;
495 // If a diagnosis code was given then skip any invoices without
496 // that diagnosis.
497 if ($form_dx_code && $form_dx_codetype) {
498 $tmp = sqlQuery("SELECT count(*) AS count FROM billing WHERE " .
499 "pid = ? AND encounter = ? AND " .
500 "code_type = ? AND code LIKE ? AND " .
501 "activity = 1", array($patient_id,$encounter_id,$form_dx_codetype,$form_dx_code));
502 if (empty($tmp['count'])) {
503 $ids_to_skip[$trans_id] = 1;
504 continue;
508 $docid = empty($row['encounter_id']) ? $row['docid'] : $row['encounter_id'];
509 $key = sprintf("%08u%s%08u%08u%06u", $docid, $thedate,
510 $patient_id, $encounter_id, ++$irow);
511 $arows[$key] = array();
512 $arows[$key]['transdate'] = $thedate;
513 $arows[$key]['amount'] = 0 - $row['pay_amount'];
514 $arows[$key]['docid'] = $docid;
515 $arows[$key]['project_id'] = empty($row['payer_id']) ? 0 : $row['payer_id'];
516 $arows[$key]['memo'] = $row['code'];
517 if ($GLOBALS['cash_receipts_report_invoice'] == '0') {
518 $arows[$key]['invnumber'] = "$patient_id.$encounter_id";
519 } else{
520 $arows[$key]['invnumber'] = "$patient_name";
522 $arows[$key]['irnumber'] = $row['invoice_refno'];
523 } // end while
525 ksort($arows);
526 $docid = 0;
528 foreach ($arows as $row) {
530 // Get insurance company name
531 $insconame = '';
532 if ($form_proc_codefull && $row['project_id']) {
533 $tmp = sqlQuery("SELECT name FROM insurance_companies WHERE " .
534 "id = ?", array($row['project_id']));
535 $insconame = $tmp['name'];
538 $amount1 = 0;
539 $amount2 = 0;
540 if ($form_procedures && is_clinic($row['memo']))
541 $amount2 -= $row['amount'];
542 else
543 $amount1 -= $row['amount'];
545 // if ($docid != $row['employee_id']) {
546 if ($docid != $row['docid']) {
547 if ($docid) {
548 // Print doc totals.
551 <tr bgcolor="#ddddff">
552 <td class="detail" colspan="<?php echo ($form_proc_codefull ? 4 : 2) + ($form_procedures ? 2 : 0); ?>">
553 <?php echo xlt('Totals for ') . text($docname) ?>
554 </td>
555 <td align="right">
556 <?php bucks($doctotal1) ?>
557 </td>
558 <?php if ($form_procedures) { ?>
559 <td align="right">
560 <?php bucks($doctotal2) ?>
561 </td>
562 <?php } ?>
563 </tr>
564 <?php
566 $doctotal1 = 0;
567 $doctotal2 = 0;
569 $docid = $row['docid'];
570 $tmp = sqlQuery("SELECT lname, fname FROM users WHERE id = ?", array($docid));
571 $docname = empty($tmp) ? xl('Unknown') : $tmp['fname'] . ' ' . $tmp['lname'];
573 $docnameleft = $docname;
576 if ($_POST['form_details']) {
579 <tr>
580 <td class="detail">
581 <?php echo text($docnameleft); $docnameleft = " " ?>
582 </td>
583 <td class="detail">
584 <?php echo oeFormatShortDate($row['transdate']) ?>
585 </td>
586 <?php if ($form_procedures) { ?>
587 <td class="detail">
588 <?php echo empty($row['irnumber']) ? text($row['invnumber']) : text($row['irnumber']); ?>
589 </td>
590 <?php } ?>
591 <?php
592 if ($form_proc_code && $form_proc_codetype) {
593 echo " <td class='detail' align='right'>";
594 list($patient_id, $encounter_id) = explode(".", $row['invnumber']);
595 $tmp = sqlQuery("SELECT SUM(fee) AS sum FROM billing WHERE " .
596 "pid = ? AND encounter = ? AND " .
597 "code_type = ? AND code = ? AND activity = 1", array($patient_id,$encounter_id,$form_proc_codetype,$form_proc_code));
598 bucks($tmp['sum']);
599 echo " </td>\n";
602 <?php if ($form_proc_codefull) { ?>
603 <td class="detail">
604 <?php echo text($insconame) ?>
605 </td>
606 <?php } ?>
607 <?php if ($form_procedures) { ?>
608 <td class="detail">
609 <?php echo text($row['memo']) ?>
610 </td>
611 <?php } ?>
612 <td class="detail" align="right">
613 <?php bucks($amount1) ?>
614 </td>
615 <?php if ($form_procedures) { ?>
616 <td class="detail" align="right">
617 <?php bucks($amount2) ?>
618 </td>
619 <?php } ?>
620 </tr>
621 <?php
622 } // end details
623 $doctotal1 += $amount1;
624 $doctotal2 += $amount2;
625 $grandtotal1 += $amount1;
626 $grandtotal2 += $amount2;
630 <tr bgcolor="#ddddff">
631 <td class="detail" colspan="<?php echo ($form_proc_codefull ? 4 : 2) + ($form_procedures ? 2 : 0); ?>">
632 <?php echo xlt('Totals for ') . text($docname) ?>
633 </td>
634 <td align="right">
635 <?php bucks($doctotal1) ?>
636 </td>
637 <?php if ($form_procedures) { ?>
638 <td align="right">
639 <?php bucks($doctotal2) ?>
640 </td>
641 <?php } ?>
642 </tr>
644 <tr bgcolor="#ffdddd">
645 <td class="detail" colspan="<?php echo ($form_proc_codefull ? 4 : 2) + ($form_procedures ? 2 : 0); ?>">
646 <?php echo xlt('Grand Totals') ?>
647 </td>
648 <td align="right">
649 <?php bucks($grandtotal1) ?>
650 </td>
651 <?php if ($form_procedures) { ?>
652 <td align="right">
653 <?php bucks($grandtotal2) ?>
654 </td>
655 <?php } ?>
656 </tr>
657 <?php $report_from_date = oeFormatShortDate($form_from_date) ;
658 $report_to_date = oeFormatShortDate($form_to_date) ;
660 <div align='right'><span class='title' ><?php echo xlt('Report Date'). ' '; ?><?php echo text($report_from_date);?> - <?php echo text($report_to_date);?></span></div>
662 <?php
666 </table>
667 </div>
668 <?php } else { ?>
669 <div class='text'>
670 <?php echo xlt('Please input search criteria above, and click Submit to view results.'); ?>
671 </div>
672 <?php } ?>
674 </form>
675 </body>
677 <!-- stuff for the popup calendar -->
678 <link rel='stylesheet' href='<?php echo $css_header ?>' type='text/css'>
679 <style type="text/css">@import url(<?php echo $GLOBALS['webroot']; ?>/library/dynarch_calendar.css);</style>
680 <script type="text/javascript" src="<?php echo $GLOBALS['webroot']; ?>/library/dynarch_calendar.js"></script>
681 <?php require_once($GLOBALS['srcdir'].'/dynarch_calendar_en.inc.php'); ?>
682 <script type="text/javascript" src="<?php echo $GLOBALS['webroot']; ?>/library/dynarch_calendar_setup.js"></script>
684 <script language="Javascript">
685 Calendar.setup({inputField:"form_from_date", ifFormat:"%Y-%m-%d", button:"img_from_date"});
686 Calendar.setup({inputField:"form_to_date", ifFormat:"%Y-%m-%d", button:"img_to_date"});
687 </script>
689 </html>