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>.
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/classes/InsuranceCompany.class.php");
32 function getListItem($listid, $value) {
33 $lrow = sqlQuery("SELECT title FROM list_options " .
34 "WHERE list_id = ? AND option_id = ?",
35 array($listid, $value));
36 $tmp = xl_list_label($lrow['title']);
37 if (empty($tmp)) $tmp = "($report_status)";
41 function myCellText($s) {
42 if ($s === '') return ' ';
46 function generate_order_summary($orderid) {
47 $orow = sqlQuery("SELECT " .
48 "po.procedure_order_id, po.patient_id, po.date_ordered, po.order_status, " .
49 "po.date_collected, po.specimen_type, po.specimen_location, " .
50 "pd.pubpid, pd.lname, pd.fname, pd.mname, pd.DOB, " .
52 "pp.name AS labname, " .
53 "u.lname AS ulname, u.fname AS ufname, u.mname AS umname " .
54 "FROM procedure_order AS po " .
55 "LEFT JOIN patient_data AS pd ON pd.pid = po.patient_id " .
56 "LEFT JOIN procedure_providers AS pp ON pp.ppid = po.lab_id " .
57 "LEFT JOIN users AS u ON u.id = po.provider_id " .
58 "LEFT JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " .
59 "WHERE po.procedure_order_id = ?",
62 $patient_id = intval($orow['patient_id']);
63 $encdate = substr($orow['date'], 0, 10);
65 // Get insurance info.
73 $irow = getInsuranceDataByDate($patient_id, $encdate, 'primary',
74 "insd.provider, insd.policy_number, insd.group_number");
75 if (!empty($irow['provider'])) {
76 $ins_policy = $irow['policy_number'];
77 $ins_group = $irow['group_number'];
78 $insco = new InsuranceCompany($irow['provider']);
80 $ins_name = $insco->get_name();
81 $tmp = $insco->get_address();
82 $ins_addr = $tmp->get_line1();
83 $ins_city = $tmp->get_city();
84 $ins_state = $tmp->get_state();
85 $ins_zip = $tmp->get_zip();
92 .ordsum tr
.head
{ font
-size
:10pt
; background
-color
:#cccccc; text-align:center; }
93 .ordsum tr
.detail
{ font
-size
:10pt
; }
94 .ordsum a
, .ordsum a
:visited
, .ordsum a
:hover
{ color
:#0000cc; }
98 border
-width
: 1px
0px
0px
1px
;
102 .ordsum td
, .ordsum th
{
104 border
-width
: 0px
1px
1px
0px
;
112 <table width
='100%' cellpadding
='2' cellspacing
='0'>
113 <tr bgcolor
='#cccccc'>
114 <td nowrap
><?php
echo xlt('Patient Name'); ?
></td
>
115 <td
><?php
echo myCellText($orow['lname'] . ', ' . $orow['fname'] . ' ' . $orow['mname']); ?
></td
>
116 <td nowrap
><?php
echo xlt('Ordered By'); ?
></td
>
117 <td
><?php
echo myCellText($orow['ulname'] . ', ' . $orow['ufname'] . ' ' . $orow['umname']); ?
></td
>
119 <tr bgcolor
='#cccccc'>
120 <td width
='5%' nowrap
><?php
echo xlt('MRN (pid)'); ?
></td
>
121 <td width
='45%'><?php
echo myCellText($patient_id); ?
></td
>
122 <td width
='5%' nowrap
><?php
echo xlt('Order ID'); ?
></td
>
123 <td width
='45%'><?php
echo myCellText($orow['procedure_order_id']); ?
></td
>
125 <tr bgcolor
='#cccccc'>
126 <td nowrap
><?php
echo xlt('Encounter Date'); ?
></td
>
127 <td
><?php
echo myCellText(oeFormatShortDate($encdate)); ?
></td
>
128 <td nowrap
><?php
echo xlt('Order Date'); ?
></td
>
129 <td
><?php
echo myCellText(oeFormatShortDate($orow['date_ordered'])); ?
></td
>
131 <tr bgcolor
='#cccccc'>
132 <td nowrap
><?php
echo xlt('Birth Date'); ?
></td
>
133 <td
><?php
echo myCellText(oeFormatShortDate($orow['DOB'])); ?
></td
>
134 <td nowrap
><?php
echo xlt('Lab'); ?
></td
>
135 <td
><?php
echo myCellText($orow['labname']); ?
></td
>
137 <tr bgcolor
='#cccccc'>
138 <td nowrap
><?php
echo xlt('Ins Name'); ?
></td
>
139 <td
><?php
echo myCellText($ins_name); ?
></td
>
140 <td nowrap
><?php
echo xlt('Specimen Type'); ?
></td
>
141 <td
><?php
echo myCellText($orow['specimen_type']); ?
></td
>
143 <tr bgcolor
='#cccccc'>
144 <td nowrap
><?php
echo xlt('Ins Address'); ?
></td
>
145 <td
><?php
echo myCellText("$ins_addr, $ins_city, $ins_state $ins_zip"); ?
></td
>
146 <td nowrap
><?php
echo xlt('Collection Date'); ?
></td
>
147 <td
><?php
echo myCellText(oeFormatShortDate($orow['date_collected'])); ?
></td
>
149 <tr bgcolor
='#cccccc'>
150 <td nowrap
><?php
echo xlt('Ins Policy'); ?
></td
>
151 <td
><?php
echo myCellText($ins_policy); ?
></td
>
152 <td nowrap
><?php
echo xlt('Specimen Location'); ?
></td
>
153 <td
><?php
echo myCellText($orow['specimen_location']); ?
></td
>
155 <tr bgcolor
='#cccccc'>
156 <td nowrap
><?php
echo xlt('Ins Group'); ?
></td
>
157 <td
><?php
echo myCellText($ins_group); ?
></td
>
158 <td nowrap
><?php
echo xlt('Order Status'); ?
></td
>
159 <td
><?php
echo myCellText($orow['order_status']); ?
></td
>
165 <table width
='100%' cellpadding
='2' cellspacing
='0'>
168 <td
><?php
echo xlt('Code'); ?
></td
>
169 <td
><?php
echo xlt('Description'); ?
></td
>
170 <td
><?php
echo xlt('Diagnoses'); ?
></td
>
175 "procedure_order_seq, procedure_code, procedure_name, diagnoses " .
176 "FROM procedure_order_code WHERE " .
177 "procedure_order_id = ? ORDER BY procedure_order_seq";
178 $res = sqlStatement($query, array($orderid));
182 while ($row = sqlFetchArray($res)) {
183 $order_seq = empty($row['procedure_order_seq']) ?
0 : ($row['procedure_order_seq'] +
0);
184 $procedure_code = empty($row['procedure_code' ]) ?
'' : $row['procedure_code'];
185 $procedure_name = empty($row['procedure_name' ]) ?
'' : $row['procedure_name'];
186 $diagnoses = empty($row['diagnoses' ]) ?
'' : $row['diagnoses'];
188 $bgcolor = "#" . (($encount & 1) ?
"ddddff" : "ffdddd");
189 echo " <tr class='detail' bgcolor='$bgcolor'>\n";
190 echo " <td>" . text("$procedure_code") . "</td>\n";
191 echo " <td>" . text("$procedure_name") . "</td>\n";
192 echo " <td>" . text("$diagnoses" ) . "</td>\n";
201 } // end function generate_order_summary
203 // Check authorization.
204 $thisauth = acl_check('patients', 'med');
205 if (!$thisauth) die(xl('Not authorized'));
207 $orderid = intval($_GET['orderid']);
211 <?php
html_header_show(); ?
>
212 <link rel
="stylesheet" href
='<?php echo $css_header; ?>' type
='text/css'>
213 <title
><?php
echo xlt('Order Summary'); ?
></title
>
217 font
-family
: sans
-serif
;
224 generate_order_summary($orderid);