Update shared.make_timestamp.php
[openemr.git] / interface / orders / order_manifest.php
blob03d39c4a1288f2b1fbe5fde83ccd4efc54aa2735
1 <?php
2 /**
3 * Script to display a summary of a given procedure order before it has been processed.
5 * Copyright (C) 2013 Rod Roark <rod@sunsetsystems.com>
7 * LICENSE: This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://opensource.org/licenses/gpl-license.php>.
18 * @package OpenEMR
19 * @author Rod Roark <rod@sunsetsystems.com>
22 $sanitize_all_escapes = true;
23 $fake_register_globals = false;
25 require_once("../globals.php");
26 require_once("$srcdir/acl.inc");
27 require_once("$srcdir/formdata.inc.php");
28 require_once("$srcdir/options.inc.php");
29 require_once("$srcdir/formatting.inc.php");
30 require_once("$srcdir/patient.inc");
31 require_once("$srcdir/classes/InsuranceCompany.class.php");
33 function getListItem($listid, $value) {
34 $lrow = sqlQuery("SELECT title FROM list_options " .
35 "WHERE list_id = ? AND option_id = ?",
36 array($listid, $value));
37 $tmp = xl_list_label($lrow['title']);
38 if (empty($tmp)) $tmp = "($report_status)";
39 return $tmp;
42 function myCellText($s) {
43 if ($s === '') return '&nbsp;';
44 return text($s);
47 function generate_order_summary($orderid) {
48 $orow = sqlQuery("SELECT " .
49 "po.procedure_order_id, po.patient_id, po.date_ordered, po.order_status, " .
50 "po.date_collected, po.specimen_type, po.specimen_location, " .
51 "pd.pubpid, pd.lname, pd.fname, pd.mname, pd.DOB, " .
52 "fe.date, " .
53 "pp.name AS labname, " .
54 "u.lname AS ulname, u.fname AS ufname, u.mname AS umname " .
55 "FROM procedure_order AS po " .
56 "LEFT JOIN patient_data AS pd ON pd.pid = po.patient_id " .
57 "LEFT JOIN procedure_providers AS pp ON pp.ppid = po.lab_id " .
58 "LEFT JOIN users AS u ON u.id = po.provider_id " .
59 "LEFT JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " .
60 "WHERE po.procedure_order_id = ?",
61 array($orderid));
63 $patient_id = intval($orow['patient_id']);
64 $encdate = substr($orow['date'], 0, 10);
66 // Get insurance info.
67 $ins_policy = '';
68 $ins_group = '';
69 $ins_name = '';
70 $ins_addr = '';
71 $ins_city = '';
72 $ins_state = '';
73 $ins_zip = '';
74 $irow = getInsuranceDataByDate($patient_id, $encdate, 'primary',
75 "insd.provider, insd.policy_number, insd.group_number");
76 if (!empty($irow['provider'])) {
77 $ins_policy = $irow['policy_number'];
78 $ins_group = $irow['group_number'];
79 $insco = new InsuranceCompany($irow['provider']);
80 if (!empty($insco)) {
81 $ins_name = $insco->get_name();
82 $tmp = $insco->get_address();
83 $ins_addr = $tmp->get_line1();
84 $ins_city = $tmp->get_city();
85 $ins_state = $tmp->get_state();
86 $ins_zip = $tmp->get_zip();
91 <style>
93 .ordsum tr.head { font-size:10pt; background-color:#cccccc; text-align:center; }
94 .ordsum tr.detail { font-size:10pt; }
95 .ordsum a, .ordsum a:visited, .ordsum a:hover { color:#0000cc; }
97 .ordsum table {
98 border-style: solid;
99 border-width: 1px 0px 0px 1px;
100 border-color: black;
103 .ordsum td, .ordsum th {
104 border-style: solid;
105 border-width: 0px 1px 1px 0px;
106 border-color: black;
109 </style>
111 <div class='ordsum'>
113 <table width='100%' cellpadding='2' cellspacing='0'>
114 <tr bgcolor='#cccccc'>
115 <td nowrap><?php echo xlt('Patient Name'); ?></td>
116 <td><?php echo myCellText($orow['lname'] . ', ' . $orow['fname'] . ' ' . $orow['mname']); ?></td>
117 <td nowrap><?php echo xlt('Ordered By'); ?></td>
118 <td><?php echo myCellText($orow['ulname'] . ', ' . $orow['ufname'] . ' ' . $orow['umname']); ?></td>
119 </tr>
120 <tr bgcolor='#cccccc'>
121 <td width='5%' nowrap><?php echo xlt('MRN (pid)'); ?></td>
122 <td width='45%'><?php echo myCellText($patient_id); ?></td>
123 <td width='5%' nowrap><?php echo xlt('Order ID'); ?></td>
124 <td width='45%'><?php echo myCellText($orow['procedure_order_id']); ?></td>
125 </tr>
126 <tr bgcolor='#cccccc'>
127 <td nowrap><?php echo xlt('Encounter Date'); ?></td>
128 <td><?php echo myCellText(oeFormatShortDate($encdate)); ?></td>
129 <td nowrap><?php echo xlt('Order Date'); ?></td>
130 <td><?php echo myCellText(oeFormatShortDate($orow['date_ordered'])); ?></td>
131 </tr>
132 <tr bgcolor='#cccccc'>
133 <td nowrap><?php echo xlt('Birth Date'); ?></td>
134 <td><?php echo myCellText(oeFormatShortDate($orow['DOB'])); ?></td>
135 <td nowrap><?php echo xlt('Lab'); ?></td>
136 <td><?php echo myCellText($orow['labname']); ?></td>
137 </tr>
138 <tr bgcolor='#cccccc'>
139 <td nowrap><?php echo xlt('Ins Name'); ?></td>
140 <td><?php echo myCellText($ins_name); ?></td>
141 <td nowrap><?php echo xlt('Specimen Type'); ?></td>
142 <td><?php echo myCellText($orow['specimen_type']); ?></td>
143 </tr>
144 <tr bgcolor='#cccccc'>
145 <td nowrap><?php echo xlt('Ins Address'); ?></td>
146 <td><?php echo myCellText("$ins_addr, $ins_city, $ins_state $ins_zip"); ?></td>
147 <td nowrap><?php echo xlt('Collection Date'); ?></td>
148 <td><?php echo myCellText(oeFormatShortDate($orow['date_collected'])); ?></td>
149 </tr>
150 <tr bgcolor='#cccccc'>
151 <td nowrap><?php echo xlt('Ins Policy'); ?></td>
152 <td><?php echo myCellText($ins_policy); ?></td>
153 <td nowrap><?php echo xlt('Specimen Location'); ?></td>
154 <td><?php echo myCellText($orow['specimen_location']); ?></td>
155 </tr>
156 <tr bgcolor='#cccccc'>
157 <td nowrap><?php echo xlt('Ins Group'); ?></td>
158 <td><?php echo myCellText($ins_group); ?></td>
159 <td nowrap><?php echo xlt('Order Status'); ?></td>
160 <td><?php echo myCellText($orow['order_status']); ?></td>
161 </tr>
162 </table>
164 &nbsp;<br />
166 <table width='100%' cellpadding='2' cellspacing='0'>
168 <tr class='head'>
169 <td><?php echo xlt('Code'); ?></td>
170 <td><?php echo xlt('Description'); ?></td>
171 <td><?php echo xlt('Diagnoses'); ?></td>
172 </tr>
174 <?php
175 $query = "SELECT " .
176 "procedure_order_seq, procedure_code, procedure_name, diagnoses " .
177 "FROM procedure_order_code WHERE " .
178 "procedure_order_id = ? ORDER BY procedure_order_seq";
179 $res = sqlStatement($query, array($orderid));
181 $encount = 0;
183 while ($row = sqlFetchArray($res)) {
184 $order_seq = empty($row['procedure_order_seq']) ? 0 : ($row['procedure_order_seq'] + 0);
185 $procedure_code = empty($row['procedure_code' ]) ? '' : $row['procedure_code'];
186 $procedure_name = empty($row['procedure_name' ]) ? '' : $row['procedure_name'];
187 $diagnoses = empty($row['diagnoses' ]) ? '' : $row['diagnoses'];
188 ++$encount;
189 $bgcolor = "#" . (($encount & 1) ? "ddddff" : "ffdddd");
190 echo " <tr class='detail' bgcolor='$bgcolor'>\n";
191 echo " <td>" . text("$procedure_code") . "</td>\n";
192 echo " <td>" . text("$procedure_name") . "</td>\n";
193 echo " <td>" . text("$diagnoses" ) . "</td>\n";
194 echo " </tr>\n";
198 </table>
199 </div>
201 <?php
202 } // end function generate_order_summary
204 // Check authorization.
205 $thisauth = acl_check('patients', 'med');
206 if (!$thisauth) die(xl('Not authorized'));
208 $orderid = intval($_GET['orderid']);
210 <html>
211 <head>
212 <?php html_header_show(); ?>
213 <link rel="stylesheet" href='<?php echo $css_header; ?>' type='text/css'>
214 <title><?php echo xlt('Order Summary'); ?></title>
215 <style>
216 body {
217 margin: 9pt;
218 font-family: sans-serif;
219 font-size: 1em;
221 </style>
222 </head>
223 <body>
224 <?php
225 generate_order_summary($orderid);
227 </body>
228 </html>