acknowledgments update
[openemr.git] / interface / orders / pending_followup.php
blob0eb9cc9cab8048ad8631e026691b815f8ad5a82b
1 <?php
2 // Copyright (C) 2010 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 require_once("../globals.php");
10 require_once("../../library/patient.inc");
11 require_once("../../library/acl.inc");
12 require_once("../../custom/code_types.inc.php");
14 function thisLineItem($row, $codetype, $code) {
15 global $code_types;
17 $provname = $row['provider_lname'];
18 if (!empty($row['provider_fname'])) {
19 $provname .= ', ' . $row['provider_fname'];
20 if (!empty($row['provider_mname'])) {
21 $provname .= ' ' . $row['provider_mname'];
25 $crow = sqlQuery("SELECT code_text FROM codes WHERE " .
26 "code_type = '" . $code_types[$codetype]['id'] . "' AND " .
27 "code = '$code' LIMIT 1");
28 $code_text = $crow['code_text'];
30 if ($_POST['form_csvexport']) {
31 echo '"' . addslashes($row['patient_name' ]) . '",';
32 echo '"' . addslashes($row['pubpid' ]) . '",';
33 echo '"' . addslashes($row['date_ordered' ]) . '",';
34 echo '"' . addslashes($row['procedure_name']) . '",';
35 echo '"' . addslashes($provname ) . '",';
36 echo '"' . addslashes($code ) . '",';
37 echo '"' . addslashes($code_text ) . '"' . "\n";
39 else {
41 <tr>
42 <td class="detail"><?php echo $row['patient_name' ]; ?></td>
43 <td class="detail"><?php echo $row['pubpid' ]; ?></td>
44 <td class="detail"><?php echo $row['date_ordered' ]; ?></td>
45 <td class="detail"><?php echo $row['procedure_name']; ?></td>
46 <td class="detail"><?php echo $provname; ?></td>
47 <td class="detail"><?php echo $code; ?></td>
48 <td class="detail"><?php echo $code_text; ?></td>
49 </tr>
50 <?php
51 } // End not csv export
54 if (! acl_check('acct', 'rep')) die(xl("Unauthorized access."));
56 $form_from_date = fixDate($_POST['form_from_date'], date('Y-m-d'));
57 $form_to_date = fixDate($_POST['form_to_date'] , date('Y-m-d'));
58 $form_facility = $_POST['form_facility'];
60 if ($_POST['form_csvexport']) {
61 header("Pragma: public");
62 header("Expires: 0");
63 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
64 header("Content-Type: application/force-download");
65 header("Content-Disposition: attachment; filename=pending_followup.csv");
66 header("Content-Description: File Transfer");
67 // CSV headers:
68 echo '"' . xl('Patient') . '",';
69 echo '"' . xl('ID') . '",';
70 echo '"' . xl('Ordered') . '",';
71 echo '"' . xl('Procedure') . '",';
72 echo '"' . xl('Provider') . '",';
73 echo '"' . xl('Code') . '",';
74 echo '"' . xl('Service') . '"' . "\n";
76 else { // not export
78 <html>
79 <head>
80 <?php html_header_show();?>
81 <title><?php xl('Pending Followup from Results','e') ?></title>
82 </head>
84 <body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
85 <center>
87 <h2><?php xl('Pending Followup from Results','e')?></h2>
89 <form method='post' action='pending_followup.php'>
91 <table border='0' cellpadding='3'>
93 <tr>
94 <td>
95 <?php
96 // Build a drop-down list of facilities.
98 $query = "SELECT id, name FROM facility ORDER BY name";
99 $fres = sqlStatement($query);
100 echo " <select name='form_facility'>\n";
101 echo " <option value=''>-- All Facilities --\n";
102 while ($frow = sqlFetchArray($fres)) {
103 $facid = $frow['id'];
104 echo " <option value='$facid'";
105 if ($facid == $form_facility) echo " selected";
106 echo ">" . $frow['name'] . "\n";
108 echo " </select>\n";
110 &nbsp;<?xl('From:','e')?>
111 <input type='text' name='form_from_date' id="form_from_date" size='10' value='<?php echo $form_from_date ?>'
112 onkeyup='datekeyup(this,mypcc)' onblur='dateblur(this,mypcc)' title='yyyy-mm-dd'>
113 <img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22'
114 id='img_from_date' border='0' alt='[?]' style='cursor:pointer'
115 title='<?php xl('Click here to choose a date','e'); ?>'>
116 &nbsp;To:
117 <input type='text' name='form_to_date' id="form_to_date" size='10' value='<?php echo $form_to_date ?>'
118 onkeyup='datekeyup(this,mypcc)' onblur='dateblur(this,mypcc)' title='yyyy-mm-dd'>
119 <img src='../pic/show_calendar.gif' align='absbottom' width='24' height='22'
120 id='img_to_date' border='0' alt='[?]' style='cursor:pointer'
121 title='<?php xl('Click here to choose a date','e'); ?>'>
122 &nbsp;
123 <input type='submit' name='form_refresh' value="<?php xl('Refresh','e') ?>">
124 &nbsp;
125 <input type='submit' name='form_csvexport' value="<?php xl('Export to CSV','e') ?>">
126 &nbsp;
127 <input type='button' value='<?php xl('Print','e'); ?>' onclick='window.print()' />
128 </td>
129 </tr>
131 <tr>
132 <td height="1">
133 </td>
134 </tr>
136 </table>
138 <table border='0' cellpadding='1' cellspacing='2' width='98%'>
139 <tr bgcolor="#dddddd">
140 <td class="dehead"><?php xl('Patient','e' ) ?></td>
141 <td class="dehead"><?php xl('ID','e' ) ?></td>
142 <td class="dehead"><?php xl('Ordered','e' ) ?></td>
143 <td class="dehead"><?php xl('Procedure','e') ?></td>
144 <td class="dehead"><?php xl('Provider','e' ) ?></td>
145 <td class="dehead"><?php xl('Code','e' ) ?></td>
146 <td class="dehead"><?php xl('Service','e' ) ?></td>
147 </tr>
148 <?php
149 } // end not export
151 // If generating a report.
153 if ($_POST['form_refresh'] || $_POST['form_csvexport']) {
154 $from_date = $form_from_date;
155 $to_date = $form_to_date;
157 $query = "SELECT po.patient_id, po.encounter_id, po.date_ordered, " .
158 "pd.pubpid, " .
159 "CONCAT(pd.lname, ', ', pd.fname, ' ', pd.mname) AS patient_name, " .
160 "pto.name AS procedure_name, " .
161 "pts.related_code, " .
162 "u1.lname AS provider_lname, u1.fname AS provider_fname, u1.mname AS provider_mname, " .
163 "pr.procedure_report_id, pr.date_report, pr.report_status " .
164 "FROM procedure_order AS po " .
165 "JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " .
166 "JOIN patient_data AS pd ON pd.pid = po.patient_id " .
167 "JOIN procedure_report AS pr ON pr.procedure_order_id = po.procedure_order_id " .
168 "JOIN procedure_result AS ps ON ps.procedure_report_id = pr.procedure_report_id " .
169 "AND ps.abnormal != '' AND ps.abnormal != 'no' " .
170 "JOIN procedure_type AS pto ON pto.procedure_type_id = po.procedure_type_id " .
171 "JOIN procedure_type AS pts ON pts.procedure_type_id = ps.procedure_type_id " .
172 "AND pts.related_code != '' " .
173 "LEFT JOIN users AS u1 ON u1.id = po.provider_id " .
174 "WHERE " .
175 "po.date_ordered >= '$from_date' AND po.date_ordered <= '$to_date'";
177 if ($form_facility) {
178 $query .= " AND fe.facility_id = '$form_facility'";
180 $query .= " ORDER BY pd.lname, pd.fname, pd.mname, po.patient_id, " .
181 "po.date_ordered, po.procedure_order_id";
183 $res = sqlStatement($query);
184 while ($row = sqlFetchArray($res)) {
185 $patient_id = $row['patient_id'];
186 $date_ordered = $row['date_ordered'];
188 $relcodes = explode(';', $row['related_code']);
189 foreach ($relcodes as $codestring) {
190 if ($codestring === '') continue;
191 list($codetype, $code) = explode(':', $codestring);
193 $brow = sqlQuery("SELECT count(*) AS count " .
194 "FROM billing AS b, form_encounter AS fe WHERE " .
195 "b.pid = '$patient_id' AND " .
196 "b.code_type = '$codetype' AND " .
197 "b.code = '$code' AND " .
198 "b.activity = 1 AND " .
199 "fe.pid = b.pid AND fe.encounter = b.encounter AND " .
200 "fe.date >= '$date_ordered 00:00:00'");
202 // If there was such a service, then this followup is not pending.
203 if (!empty($brow['count'])) continue;
205 thisLineItem($row, $codetype, $code);
209 } // end report generation
211 if (! $_POST['form_csvexport']) {
214 </table>
215 </form>
216 </center>
217 </body>
219 <!-- stuff for the popup calendar -->
220 <style type="text/css">@import url(../../library/dynarch_calendar.css);</style>
221 <script type="text/javascript" src="../../library/dynarch_calendar.js"></script>
222 <?php include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?>
223 <script type="text/javascript" src="../../library/dynarch_calendar_setup.js"></script>
224 <script language="Javascript">
225 Calendar.setup({inputField:"form_from_date", ifFormat:"%Y-%m-%d", button:"img_from_date"});
226 Calendar.setup({inputField:"form_to_date", ifFormat:"%Y-%m-%d", button:"img_to_date"});
227 </script>
229 </html>
230 <?php
231 } // End not csv export