Пример #1
0
function generate_order_summary($orderid)
{
    // If requested, save checkbox selections as to which procedures are not sendable.
    if ($_POST['bn_save']) {
        sqlStatement("UPDATE procedure_order_code " . "SET do_not_send = 0 WHERE " . "procedure_order_id = ? AND " . "do_not_send != 0", array($orderid));
        if (!empty($_POST['form_omit'])) {
            foreach ($_POST['form_omit'] as $key) {
                sqlStatement("UPDATE procedure_order_code " . "SET do_not_send = 1 WHERE " . "procedure_order_id = ? AND " . "do_not_send = 0 AND " . "procedure_order_seq = ?", array($orderid, intval($key)));
            }
        }
    }
    $orow = sqlQuery("SELECT " . "po.procedure_order_id, po.patient_id, po.date_ordered, po.order_status, " . "po.date_collected, po.specimen_type, po.specimen_location, po.lab_id, po.clinical_hx, " . "pd.pubpid, pd.lname, pd.fname, pd.mname, pd.DOB, pd.sex, " . "pd.street, pd.city, pd.state, pd.postal_code, " . "fe.date, " . "pp.name AS labname, " . "u.lname AS ulname, u.fname AS ufname, u.mname AS umname, " . "ru.lname AS ref_lname, ru.fname AS ref_fname, ru.mname AS ref_mname, " . "ru.street AS ref_street, ru.city AS ref_city, ru.state AS ref_state, ru.zip AS ref_zip " . "FROM procedure_order AS po " . "LEFT JOIN patient_data AS pd ON pd.pid = po.patient_id " . "LEFT JOIN procedure_providers AS pp ON pp.ppid = po.lab_id " . "LEFT JOIN users AS u ON u.id = po.provider_id " . "LEFT JOIN users AS ru ON ru.id = pd.ref_providerID " . "LEFT JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " . "WHERE po.procedure_order_id = ?", array($orderid));
    $lab_id = intval($orow['lab_id']);
    $patient_id = intval($orow['patient_id']);
    $encdate = substr($orow['date'], 0, 10);
    // Get insurance info.
    $ins_policy = '';
    $ins_group = '';
    $ins_name = '';
    $ins_addr = '';
    $ins_city = '';
    $ins_state = '';
    $ins_zip = '';
    $irow = getInsuranceDataByDate($patient_id, $encdate, 'primary', "insd.provider, insd.policy_number, insd.group_number");
    if (!empty($irow['provider'])) {
        $ins_policy = $irow['policy_number'];
        $ins_group = $irow['group_number'];
        $insco = new InsuranceCompany($irow['provider']);
        if (!empty($insco)) {
            $ins_name = $insco->get_name();
            $tmp = $insco->get_address();
            $ins_addr = $tmp->get_line1();
            $ins_city = $tmp->get_city();
            $ins_state = $tmp->get_state();
            $ins_zip = $tmp->get_zip();
        }
    }
    ?>

<style>

.ordsum tr.head   { font-size:10pt; background-color:#cccccc; text-align:center; }
.ordsum tr.detail { font-size:10pt; }
.ordsum a, .ordsum a:visited, .ordsum a:hover { color:#0000cc; }

.ordsum table {
 border-style: solid;
 border-width: 1px 0px 0px 1px;
 border-color: black;
}

.ordsum td, .ordsum th {
 border-style: solid;
 border-width: 0px 1px 1px 0px;
 border-color: black;
}

/* specifically exclude from printing */
@media print {
 .unprintable {
  visibility: hidden;
  display: none;
 }
}

</style>

<form method='post' action='order_manifest.php?orderid=<?php 
    echo $orderid;
    ?>
'>

<div class='ordsum'>

<table width='100%' cellpadding='2' cellspacing='0'>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Patient Name');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['lname'] . ', ' . $orow['fname'] . ' ' . $orow['mname']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Ordered By');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['ulname'] . ', ' . $orow['ufname'] . ' ' . $orow['umname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td width='5%' nowrap><?php 
    echo xlt('MRN (pid)');
    ?>
</td>
  <td width='45%'><?php 
    echo myCellText($patient_id);
    ?>
</td>
  <td width='5%' nowrap><?php 
    echo xlt('Order ID');
    ?>
</td>
  <td width='45%'><?php 
    echo myCellText($orow['procedure_order_id']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Encounter Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($encdate));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Order Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['date_ordered']));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Birth Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['DOB']));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Lab');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['labname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Sex');
    ?>
</td>
  <td><?php 
    echo myCellText(getListItem('sex', $orow['sex']));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Specimen Type');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['specimen_type']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Address');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['street'] . ', ' . $orow['city'] . ', ' . $orow['state'] . ' ' . $orow['postal_code']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Collection Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['date_collected']));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Name');
    ?>
</td>
  <td><?php 
    echo myCellText($ins_name);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Clinical History');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['clinical_hx']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Address');
    ?>
</td>
  <td><?php 
    echo myCellText("{$ins_addr}, {$ins_city}, {$ins_state} {$ins_zip}");
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Order Status');
    ?>
</td>
  <td><?php 
    echo myCellText(getListItem('ord_status', $orow['order_status']));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Policy');
    ?>
</td>
  <td><?php 
    echo myCellText($ins_policy);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Referrer');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['ref_lname'] . ', ' . $orow['ref_fname'] . ' ' . $orow['ref_mname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Group');
    ?>
</td>
  <td><?php 
    echo myCellText($ins_group);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Referrer Address');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['ref_street'] . ', ' . $orow['ref_city'] . ', ' . $orow['ref_state'] . ' ' . $orow['ref_zip']);
    ?>
</td>
 </tr>
</table>

&nbsp;<br />

<table width='100%' cellpadding='2' cellspacing='0'>

 <tr class='head'>
  <td><?php 
    echo xlt('Omit');
    ?>
</td>
  <td><?php 
    echo xlt('Code');
    ?>
</td>
  <td><?php 
    echo xlt('Description');
    ?>
</td>
  <td><?php 
    echo xlt('Diagnoses');
    ?>
</td>
  <td><?php 
    echo xlt('Notes');
    ?>
</td>
 </tr>

<?php 
    $query = "SELECT " . "procedure_order_seq, procedure_code, procedure_name, diagnoses, do_not_send " . "FROM procedure_order_code WHERE " . "procedure_order_id =  ? ";
    if (!empty($_POST['bn_show_sendable'])) {
        $query .= "AND do_not_send = 0 ";
    }
    $query .= "ORDER BY procedure_order_seq";
    $res = sqlStatement($query, array($orderid));
    $encount = 0;
    while ($row = sqlFetchArray($res)) {
        $order_seq = empty($row['procedure_order_seq']) ? 0 : $row['procedure_order_seq'] + 0;
        $procedure_code = empty($row['procedure_code']) ? '' : $row['procedure_code'];
        $procedure_name = empty($row['procedure_name']) ? '' : $row['procedure_name'];
        $diagnoses = empty($row['diagnoses']) ? '' : $row['diagnoses'];
        // Create a string of HTML representing the procedure answers.
        // This code cloned from gen_hl7_order.inc.php.
        // Should maybe refactor it into something like a ProcedureAnswer class.
        $qres = sqlStatement("SELECT " . "a.question_code, a.answer, q.fldtype, q.question_text " . "FROM procedure_answers AS a " . "LEFT JOIN procedure_questions AS q ON " . "q.lab_id = ? " . "AND q.procedure_code = ? AND " . "q.question_code = a.question_code " . "WHERE " . "a.procedure_order_id = ? AND " . "a.procedure_order_seq = ? " . "ORDER BY q.seq, a.answer_seq", array($lab_id, $procedure_code, $orderid, $order_seq));
        $notes = '';
        while ($qrow = sqlFetchArray($qres)) {
            // Formatting of these answer values may be lab-specific and we'll figure
            // out how to deal with that as more labs are supported.
            $answer = trim($qrow['answer']);
            $fldtype = $qrow['fldtype'];
            if ($fldtype == 'G') {
                $weeks = intval($answer / 7);
                $days = $answer % 7;
                $answer = $weeks . 'wks ' . $days . 'days';
            }
            if ($notes) {
                $notes .= '<br />';
            }
            $notes .= text($qrow['question_text'] . ': ' . $answer);
        }
        if ($notes === '') {
            $notes = '&nbsp;';
        }
        ++$encount;
        $bgcolor = "#" . ($encount & 1 ? "ddddff" : "ffdddd");
        echo " <tr class='detail' bgcolor='{$bgcolor}'>\n";
        echo "  <td><input type='checkbox' name='form_omit[{$order_seq}]' value='1'";
        if (!empty($row['do_not_send'])) {
            echo " checked";
        }
        echo " /></td>\n";
        echo "  <td>" . myCellText("{$procedure_code}") . "</td>\n";
        echo "  <td>" . myCellText("{$procedure_name}") . "</td>\n";
        echo "  <td>" . myCellText("{$diagnoses}") . "</td>\n";
        echo "  <td>{$notes}</td>\n";
        echo " </tr>\n";
    }
    ?>

</table>
</div>

<center>
<p class='unprintable'>
<input type='submit' name='bn_save' value='<?php 
    echo xla('Save omission selections');
    ?>
' />
&nbsp;
<input type='submit' name='bn_show_all' value='<?php 
    echo xla('Show all procedures');
    ?>
' />
&nbsp;
<input type='submit' name='bn_show_sendable' value='<?php 
    echo xla('Show only procedures not omitted');
    ?>
' />
</p>
</center>

</form>

<?php 
}
function generate_order_report($orderid, $input_form = false, $genstyles = true, $finals_only = false)
{
    global $aNotes;
    // Check authorization.
    $thisauth = acl_check('patients', 'med');
    if (!$thisauth) {
        return xl('Not authorized');
    }
    $orow = sqlQuery("SELECT " . "po.procedure_order_id, po.date_ordered, po.control_id, " . "po.order_status, po.specimen_type, po.patient_id, " . "pd.pubpid, pd.lname, pd.fname, pd.mname, pd.cmsportal_login, pd.language, " . "fe.date, " . "pp.name AS labname, " . "u.lname AS ulname, u.fname AS ufname, u.mname AS umname " . "FROM procedure_order AS po " . "LEFT JOIN patient_data AS pd ON pd.pid = po.patient_id " . "LEFT JOIN procedure_providers AS pp ON pp.ppid = po.lab_id " . "LEFT JOIN users AS u ON u.id = po.provider_id " . "LEFT JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " . "WHERE po.procedure_order_id = ?", array($orderid));
    $patient_id = $orow['patient_id'];
    $language = $orow['language'];
    ?>

<?php 
    if ($genstyles) {
        ?>
<style>
.labres tr.head   { font-size:10pt; background-color:#cccccc; text-align:center; }
.labres tr.detail { font-size:10pt; }
.labres a, .labres a:visited, .labres a:hover { color:#0000cc; }
.labres table {
 border-style: solid;
 border-width: 1px 0px 0px 1px;
 border-color: black;
}
.labres td, .labres th {
 border-style: solid;
 border-width: 0px 1px 1px 0px;
 border-color: black;
}
</style>
<?php 
    }
    ?>

<?php 
    if ($input_form) {
        ?>
<script type="text/javascript" src="<?php 
        echo $GLOBALS['webroot'];
        ?>
/library/textformat.js"></script>
<?php 
    }
    // end if input form
    ?>

<?php 
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        ?>

<script type="text/javascript" src="<?php 
        echo $GLOBALS['webroot'];
        ?>
/library/dialog.js"></script>
<script language="JavaScript">

var mypcc = '<?php 
        echo $GLOBALS['phone_country_code'];
        ?>
';

// Called to show patient notes related to this order in the "other" frame.
// This works even if we are in a separate window.
function showpnotes(orderid) {
 // Find the top or bottom frame that contains or opened this page; return if none.
 var w = window.opener ? window.opener : window;
 for (; w.name != 'RTop' && w.name != 'RBot'; w = w.parent) {
  if (w.parent == w) {
   // This message is not translated because a developer will need to find it.
   alert('Internal error locating target frame in ' + (window.opener ? 'opener' : 'window'));
   return false;
  }
 }
 var othername = (w.name == 'RTop') ? 'RBot' : 'RTop';
 w.parent.left_nav.forceDual();
 w.parent.left_nav.setRadio(othername, 'pno');
 w.parent.left_nav.loadFrame('pno1', othername, 'patient_file/summary/pnotes_full.php?orderid=' + orderid);
 return false;
}

// Process click on LOINC code for patient education popup.
function educlick(codetype, codevalue) {
  dlgopen('<?php 
        echo $GLOBALS['webroot'];
        ?>
/interface/patient_file/education.php' +
    '?type=' + encodeURIComponent(codetype) +
    '&code=' + encodeURIComponent(codevalue) +
    '&language=<?php 
        echo urlencode($language);
        ?>
',
    '_blank', 1024, 750);
}

</script>

<?php 
    }
    // end if not patient report
    ?>

<?php 
    if ($input_form) {
        ?>
<form method='post' action='single_order_results.php?orderid=<?php 
        echo $orderid;
        ?>
'>
<?php 
    }
    // end if input form
    ?>

<div class='labres'>

<table width='100%' cellpadding='2' cellspacing='0'>
 <tr bgcolor='#cccccc'>
  <td width='5%' nowrap><?php 
    echo xlt('Patient ID');
    ?>
</td>
  <td width='45%'><?php 
    echo myCellText($orow['pubpid']);
    ?>
</td>
  <td width='5%' nowrap><?php 
    echo xlt('Order ID');
    ?>
</td>
  <td width='45%'>
<?php 
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        echo "   <a href='" . $GLOBALS['webroot'];
        echo "/interface/orders/order_manifest.php?orderid=";
        echo attr($orow['procedure_order_id']);
        echo "' target='_blank' onclick='top.restoreSession()'>";
    }
    echo myCellText($orow['procedure_order_id']);
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        echo "</a>\n";
    }
    if ($orow['control_id']) {
        echo myCellText(' ' . xl('Lab') . ': ' . $orow['control_id']);
    }
    ?>
  </td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Patient Name');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['lname'] . ', ' . $orow['fname'] . ' ' . $orow['mname']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Ordered By');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['ulname'] . ', ' . $orow['ufname'] . ' ' . $orow['umname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Order Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['date_ordered']));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Print Date');
    ?>
</td>
  <td><?php 
    echo oeFormatShortDate(date('Y-m-d'));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Order Status');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['order_status']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Encounter Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate(substr($orow['date'], 0, 10)));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Lab');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['labname']);
    ?>
</td>
  <td nowrap><?php 
    echo $orow['specimen_type'] ? xlt('Specimen Type') : '&nbsp;';
    ?>
</td>
  <td><?php 
    echo myCellText($orow['specimen_type']);
    ?>
</td>
 </tr>
</table>

&nbsp;<br />

<table width='100%' cellpadding='2' cellspacing='0'>

 <tr class='head'>
  <td rowspan='2' valign='middle'><?php 
    echo xlt('Ordered Procedure');
    ?>
</td>
  <td colspan='5'><?php 
    echo xlt('Report');
    ?>
</td>
  <td colspan='7'><?php 
    echo xlt('Results');
    ?>
</td>
 </tr>

 <tr class='head'>
  <td><?php 
    echo xlt('Reported');
    ?>
</td>
  <td><?php 
    echo xlt('Collected');
    ?>
</td>
  <td><?php 
    echo xlt('Specimen');
    ?>
</td>
  <td><?php 
    echo xlt('Status');
    ?>
</td>
  <td><?php 
    echo xlt('Note');
    ?>
</td>
  <td><?php 
    echo xlt('Code');
    ?>
</td>
  <td><?php 
    echo xlt('Name');
    ?>
</td>
  <td><?php 
    echo xlt('Abn');
    ?>
</td>
  <td><?php 
    echo xlt('Value');
    ?>
</td>
  <td><?php 
    echo xlt('Range');
    ?>
</td>
  <td><?php 
    echo xlt('Units');
    ?>
</td>
  <td><?php 
    echo xlt('Note');
    ?>
</td>
 </tr>

<?php 
    $query = "SELECT " . "po.lab_id, po.date_ordered, pc.procedure_order_seq, pc.procedure_code, " . "pc.procedure_name, " . "pr.procedure_report_id, pr.date_report, pr.date_collected, pr.specimen_num, " . "pr.report_status, pr.review_status, pr.report_notes " . "FROM procedure_order AS po " . "JOIN procedure_order_code AS pc ON pc.procedure_order_id = po.procedure_order_id " . "LEFT JOIN procedure_report AS pr ON pr.procedure_order_id = po.procedure_order_id AND " . "pr.procedure_order_seq = pc.procedure_order_seq " . "WHERE po.procedure_order_id = ? " . "ORDER BY pc.procedure_order_seq, pr.date_report, pr.procedure_report_id";
    $res = sqlStatement($query, array($orderid));
    $aNotes = array();
    $finals = array();
    $empty_results = array('result_code' => '');
    // Context for this call that may be used in other functions.
    $ctx = array('lastpcid' => -1, 'lastprid' => -1, 'encount' => 0, 'lino' => 0, 'sign_list' => '', 'seen_report_ids' => array());
    while ($row = sqlFetchArray($res)) {
        $report_id = empty($row['procedure_report_id']) ? 0 : $row['procedure_report_id'] + 0;
        $query = "SELECT " . "ps.result_code, ps.result_text, ps.abnormal, ps.result, ps.range, " . "ps.result_status, ps.facility, ps.units, ps.comments, ps.document_id, ps.date " . "FROM procedure_result AS ps " . "WHERE ps.procedure_report_id = ? " . "ORDER BY ps.result_code, ps.procedure_result_id";
        $rres = sqlStatement($query, array($report_id));
        if ($finals_only) {
            // We are consolidating reports.
            if (sqlNumRows($rres)) {
                $rrowsets = array();
                // First pass creates a $rrowsets[$key] for each unique result code in *this* report, with
                // the value being an array of the corresponding result rows. This caters to multiple
                // occurrences of the same result code in the same report.
                while ($rrow = sqlFetchArray($rres)) {
                    $result_code = empty($rrow['result_code']) ? '' : $rrow['result_code'];
                    $key = sprintf('%05d/', $row['procedure_order_seq']) . $result_code;
                    if (!isset($rrowsets[$key])) {
                        $rrowsets[$key] = array();
                    }
                    $rrowsets[$key][] = $rrow;
                }
                // Second pass builds onto the array of final results for *all* reports, where each final
                // result for a given result code is its *array* of result rows from *one* of the reports.
                foreach ($rrowsets as $key => $rrowset) {
                    // When two reports have the same date, use the result date to decide which is "latest".
                    if (isset($finals[$key]) && $row['date_report'] == $finals[$key][0]['date_report'] && !empty($rrow['date']) && !empty($finals[$key][1]['date']) && $rrow['date'] < $finals[$key][1]['date']) {
                        $finals[$key][2] = true;
                        continue;
                    }
                    $finals[$key] = array($row, $rrowset, isset($finals[$key]));
                }
            } else {
                // We have no results for this report.
                $key = sprintf('%05d/', $row['procedure_order_seq']);
                $finals[$key] = array($row, array($empty_results), false);
            }
        } else {
            // We are showing all results for all reports.
            if (sqlNumRows($rres)) {
                while ($rrow = sqlFetchArray($rres)) {
                    generate_result_row($ctx, $row, $rrow, false);
                }
            } else {
                generate_result_row($ctx, $row, $empty_results, false);
            }
        }
    }
    if ($finals_only) {
        ksort($finals);
        foreach ($finals as $final) {
            foreach ($final[1] as $rrow) {
                generate_result_row($ctx, $final[0], $rrow, $final[2]);
            }
        }
    }
    ?>

</table>

&nbsp;<br />
<table width='100%' style='border-width:0px;'>
 <tr>
  <td style='border-width:0px;'>
<?php 
    if (!empty($aNotes)) {
        echo "<table cellpadding='3' cellspacing='0'>\n";
        echo " <tr bgcolor='#cccccc'>\n";
        echo "  <th align='center' colspan='2'>" . xlt('Notes') . "</th>\n";
        echo " </tr>\n";
        foreach ($aNotes as $key => $value) {
            echo " <tr>\n";
            echo "  <td valign='top'>" . ($key + 1) . "</td>\n";
            echo "  <td>" . nl2br(text($value)) . "</td>\n";
            echo " </tr>\n";
        }
        echo "</table>\n";
    }
    ?>
  </td>
  <td style='border-width:0px;' align='right' valign='top'>
<?php 
    if ($input_form && !empty($ctx['priors_omitted'])) {
        ?>
   <input type='submit' name='form_showall' value='<?php 
        echo xla('Show All Results');
        ?>
'
    title='<?php 
        echo xla('Include all values reported for each result code');
        ?>
' />
<?php 
    } else {
        if ($input_form && !empty($_POST['form_showall'])) {
            ?>
   <input type='submit' name='form_latest' value='<?php 
            echo xla('Latest Results Only');
            ?>
'
    title='<?php 
            echo xla('Show only latest values reported for each result code');
            ?>
' />
<?php 
        }
    }
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        ?>
   &nbsp;
   <input type='button' value='<?php 
        echo xla('Related Patient Notes');
        ?>
' 
    onclick='showpnotes(<?php 
        echo $orderid;
        ?>
)' />
<?php 
    }
    if ($input_form && $ctx['sign_list']) {
        ?>
   &nbsp;
   <input type='hidden' name='form_sign_list' value='<?php 
        echo attr($ctx['sign_list']);
        ?>
' />
   <input type='submit' name='form_sign' value='<?php 
        echo xla('Sign Results');
        ?>
'
    title='<?php 
        echo xla('Mark these reports as reviewed');
        ?>
' />
<?php 
        // If this is a portal patient, sending them a copy is an option.
        if ($GLOBALS['gbl_portal_cms_enable'] && $orow['cmsportal_login'] !== '') {
            echo "&nbsp;";
            echo "<input type='checkbox' name='form_send_to_portal' value='" . attr($orow['cmsportal_login']) . "' checked />\n";
            echo xlt('Send to portal');
        }
    }
    if ($input_form) {
        ?>
   &nbsp;
   <input type='button' value='<?php 
        echo xla('Close');
        ?>
' onclick='window.close()' />
<?php 
    }
    ?>
  </td>
 </tr>
</table>

</div>

<?php 
    if ($input_form) {
        ?>
</form>
<?php 
    }
    // end if input form
    ?>

<?php 
}
function generate_order_report($orderid, $input_form = false)
{
    global $aNotes;
    // Check authorization.
    $thisauth = acl_check('patients', 'med');
    if (!$thisauth) {
        return xl('Not authorized');
    }
    $orow = sqlQuery("SELECT " . "po.procedure_order_id, po.date_ordered, po.control_id, " . "po.order_status, po.specimen_type, po.patient_id, " . "pd.pubpid, pd.lname, pd.fname, pd.mname, pd.cmsportal_login, pd.language, " . "fe.date, " . "pp.name AS labname, " . "u.lname AS ulname, u.fname AS ufname, u.mname AS umname " . "FROM procedure_order AS po " . "LEFT JOIN patient_data AS pd ON pd.pid = po.patient_id " . "LEFT JOIN procedure_providers AS pp ON pp.ppid = po.lab_id " . "LEFT JOIN users AS u ON u.id = po.provider_id " . "LEFT JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " . "WHERE po.procedure_order_id = ?", array($orderid));
    $patient_id = $orow['patient_id'];
    $language = $orow['language'];
    ?>

<style>

.labres tr.head   { font-size:10pt; background-color:#cccccc; text-align:center; }
.labres tr.detail { font-size:10pt; }
.labres a, .labres a:visited, .labres a:hover { color:#0000cc; }

.labres table {
 border-style: solid;
 border-width: 1px 0px 0px 1px;
 border-color: black;
}

.labres td, .labres th {
 border-style: solid;
 border-width: 0px 1px 1px 0px;
 border-color: black;
}

</style>

<?php 
    if ($input_form) {
        ?>
<script type="text/javascript" src="<?php 
        echo $GLOBALS['webroot'];
        ?>
/library/textformat.js"></script>
<?php 
    }
    // end if input form
    ?>

<?php 
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        ?>

<script type="text/javascript" src="<?php 
        echo $GLOBALS['webroot'];
        ?>
/library/dialog.js"></script>
<script language="JavaScript">

var mypcc = '<?php 
        echo $GLOBALS['phone_country_code'];
        ?>
';

// Called to show patient notes related to this order in the "other" frame.
// This works even if we are in a separate window.
function showpnotes(orderid) {
 // Find the top or bottom frame that contains or opened this page; return if none.
 var w = window.opener ? window.opener : window;
 for (; w.name != 'RTop' && w.name != 'RBot'; w = w.parent) {
  if (w.parent == w) {
   // This message is not translated because a developer will need to find it.
   alert('Internal error locating target frame in ' + (window.opener ? 'opener' : 'window'));
   return false;
  }
 }
 var othername = (w.name == 'RTop') ? 'RBot' : 'RTop';
 w.parent.left_nav.forceDual();
 w.parent.left_nav.setRadio(othername, 'pno');
 w.parent.left_nav.loadFrame('pno1', othername, 'patient_file/summary/pnotes_full.php?orderid=' + orderid);
 return false;
}

// Process click on LOINC code for patient education popup.
function educlick(codetype, codevalue) {
  dlgopen('<?php 
        echo $GLOBALS['webroot'];
        ?>
/interface/patient_file/education.php' +
    '?type=' + encodeURIComponent(codetype) +
    '&code=' + encodeURIComponent(codevalue) +
    '&language=<?php 
        echo urlencode($language);
        ?>
',
    '_blank', 1024, 750);
}

</script>

<?php 
    }
    // end if not patient report
    ?>

<?php 
    if ($input_form) {
        ?>
<form method='post' action='single_order_results.php?orderid=<?php 
        echo $orderid;
        ?>
'>
<?php 
    }
    // end if input form
    ?>

<div class='labres'>

<table width='100%' cellpadding='2' cellspacing='0'>
 <tr bgcolor='#cccccc'>
  <td width='5%' nowrap><?php 
    echo xlt('Patient ID');
    ?>
</td>
  <td width='45%'><?php 
    echo myCellText($orow['pubpid']);
    ?>
</td>
  <td width='5%' nowrap><?php 
    echo xlt('Order ID');
    ?>
</td>
  <td width='45%'>
<?php 
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        echo "   <a href='" . $GLOBALS['webroot'];
        echo "/interface/orders/order_manifest.php?orderid=";
        echo attr($orow['procedure_order_id']);
        echo "' target='_blank' onclick='top.restoreSession()'>";
    }
    echo myCellText($orow['procedure_order_id']);
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        echo "</a>\n";
    }
    if ($orow['control_id']) {
        echo myCellText(' ' . xl('Lab') . ': ' . $orow['control_id']);
    }
    ?>
  </td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Patient Name');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['lname'] . ', ' . $orow['fname'] . ' ' . $orow['mname']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Ordered By');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['ulname'] . ', ' . $orow['ufname'] . ' ' . $orow['umname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Order Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['date_ordered']));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Print Date');
    ?>
</td>
  <td><?php 
    echo oeFormatShortDate(date('Y-m-d'));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Order Status');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['order_status']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Encounter Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate(substr($orow['date'], 0, 10)));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Lab');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['labname']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Specimen Type');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['specimen_type']);
    ?>
</td>
 </tr>
</table>

&nbsp;<br />

<table width='100%' cellpadding='2' cellspacing='0'>

 <tr class='head'>
  <td rowspan='2' valign='middle'><?php 
    echo xlt('Ordered Procedure');
    ?>
</td>
  <td colspan='4'><?php 
    echo xlt('Report');
    ?>
</td>
  <td colspan='7'><?php 
    echo xlt('Results');
    ?>
</td>
 </tr>

 <tr class='head'>
  <td><?php 
    echo xlt('Reported');
    ?>
</td>
  <td><?php 
    echo xlt('Specimen');
    ?>
</td>
  <td><?php 
    echo xlt('Status');
    ?>
</td>
  <td><?php 
    echo xlt('Note');
    ?>
</td>
  <td><?php 
    echo xlt('Code');
    ?>
</td>
  <td><?php 
    echo xlt('Name');
    ?>
</td>
  <td><?php 
    echo xlt('Abn');
    ?>
</td>
  <td><?php 
    echo xlt('Value');
    ?>
</td>
  <td><?php 
    echo xlt('Range');
    ?>
</td>
  <td><?php 
    echo xlt('Units');
    ?>
</td>
  <td><?php 
    echo xlt('Note');
    ?>
</td>
 </tr>

<?php 
    $query = "SELECT " . "po.lab_id, po.date_ordered, pc.procedure_order_seq, pc.procedure_code, " . "pc.procedure_name, " . "pr.procedure_report_id, pr.date_report, pr.date_collected, pr.specimen_num, " . "pr.report_status, pr.review_status, pr.report_notes " . "FROM procedure_order AS po " . "JOIN procedure_order_code AS pc ON pc.procedure_order_id = po.procedure_order_id " . "LEFT JOIN procedure_report AS pr ON pr.procedure_order_id = po.procedure_order_id AND " . "pr.procedure_order_seq = pc.procedure_order_seq " . "WHERE po.procedure_order_id = ? " . "ORDER BY pc.procedure_order_seq, pr.procedure_report_id";
    $res = sqlStatement($query, array($orderid));
    $lastpoid = -1;
    $lastpcid = -1;
    $lastprid = -1;
    $encount = 0;
    $lino = 0;
    $extra_html = '';
    $aNotes = array();
    $sign_list = '';
    while ($row = sqlFetchArray($res)) {
        $lab_id = empty($row['lab_id']) ? 0 : $row['lab_id'] + 0;
        $order_type_id = empty($row['order_type_id']) ? 0 : $row['order_type_id'] + 0;
        $order_seq = empty($row['procedure_order_seq']) ? 0 : $row['procedure_order_seq'] + 0;
        $report_id = empty($row['procedure_report_id']) ? 0 : $row['procedure_report_id'] + 0;
        $procedure_code = empty($row['procedure_code']) ? '' : $row['procedure_code'];
        $procedure_name = empty($row['procedure_name']) ? '' : $row['procedure_name'];
        $date_report = empty($row['date_report']) ? '' : $row['date_report'];
        $date_collected = empty($row['date_collected']) ? '' : substr($row['date_collected'], 0, 16);
        $specimen_num = empty($row['specimen_num']) ? '' : $row['specimen_num'];
        $report_status = empty($row['report_status']) ? '' : $row['report_status'];
        $review_status = empty($row['review_status']) ? 'received' : $row['review_status'];
        if ($review_status != 'reviewed' && $report_id) {
            if ($sign_list) {
                $sign_list .= ',';
            }
            $sign_list .= $report_id;
        }
        $report_noteid = '';
        if (!empty($row['report_notes'])) {
            $report_noteid = 1 + storeNote($row['report_notes']);
        }
        $query = "SELECT " . "ps.result_code, ps.result_text, ps.abnormal, ps.result, ps.range, " . "ps.result_status, ps.facility, ps.units, ps.comments, ps.document_id " . "FROM procedure_result AS ps " . "WHERE ps.procedure_report_id = ? " . "ORDER BY ps.result_code, ps.procedure_result_id";
        $rres = sqlStatement($query, array($report_id));
        $rrows = array();
        while ($rrow = sqlFetchArray($rres)) {
            $rrows[] = $rrow;
        }
        if (empty($rrows)) {
            $rrows[0] = array('result_code' => '');
        }
        foreach ($rrows as $rrow) {
            $result_code = empty($rrow['result_code']) ? '' : $rrow['result_code'];
            $result_text = empty($rrow['result_text']) ? '' : $rrow['result_text'];
            $result_abnormal = empty($rrow['abnormal']) ? '' : $rrow['abnormal'];
            $result_result = empty($rrow['result']) ? '' : $rrow['result'];
            $result_units = empty($rrow['units']) ? '' : $rrow['units'];
            $result_facility = empty($rrow['facility']) ? '' : $rrow['facility'];
            $result_comments = empty($rrow['comments']) ? '' : $rrow['comments'];
            $result_range = empty($rrow['range']) ? '' : $rrow['range'];
            $result_status = empty($rrow['result_status']) ? '' : $rrow['result_status'];
            $result_document_id = empty($rrow['document_id']) ? '' : $rrow['document_id'];
            $result_comments = trim($result_comments);
            $result_noteid = '';
            if (!empty($result_comments)) {
                $result_noteid = 1 + storeNote($result_comments);
            }
            if ($lastpoid != $order_id || $lastpcid != $order_seq) {
                ++$encount;
            }
            $bgcolor = "#" . ($encount & 1 ? "ddddff" : "ffdddd");
            echo " <tr class='detail' bgcolor='{$bgcolor}'>\n";
            if ($lastpcid != $order_seq) {
                $lastprid = -1;
                // force report fields on first line of each procedure
                $tmp = text("{$procedure_code}: {$procedure_name}");
                // Get the LOINC code if one exists in the compendium for this order type.
                if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
                    $trow = sqlQuery("SELECT standard_code FROM procedure_type WHERE " . "lab_id = ? AND procedure_code = ? AND procedure_type = 'ord' " . "ORDER BY procedure_type_id LIMIT 1", array($lab_id, $procedure_code));
                    if (!empty($trow['standard_code'])) {
                        $tmp = "<a href='javascript:educlick(\"LOINC\",\"" . attr($trow['standard_code']) . "\")'>{$tmp}</a>";
                    }
                }
                echo "  <td>{$tmp}</td>\n";
            } else {
                echo "  <td style='background-color:transparent'>&nbsp;</td>";
            }
            // If this starts a new report or a new order, generate the report fields.
            if ($report_id != $lastprid) {
                echo "  <td>";
                echo myCellText(oeFormatShortDate($date_report));
                echo "</td>\n";
                echo "  <td>";
                echo myCellText($specimen_num);
                echo "</td>\n";
                echo "  <td title='" . xla('Check mark indicates reviewed') . "'>";
                echo myCellText(getListItem('proc_rep_status', $report_status));
                if ($row['review_status'] == 'reviewed') {
                    echo " &#x2713;";
                    // unicode check mark character
                }
                echo "</td>\n";
                echo "  <td align='center'>";
                echo myCellText($report_noteid);
                echo "</td>\n";
            } else {
                echo "  <td colspan='4' style='background-color:transparent'>&nbsp;</td>\n";
            }
            if ($result_code !== '' || $result_document_id) {
                $tmp = myCellText($result_code);
                if (empty($GLOBALS['PATIENT_REPORT_ACTIVE']) && !empty($result_code)) {
                    $tmp = "<a href='javascript:educlick(\"LOINC\",\"" . attr($result_code) . "\")'>{$tmp}</a>";
                }
                echo "  <td>{$tmp}</td>\n";
                echo "  <td>";
                echo myCellText($result_text);
                echo "</td>\n";
                echo "  <td>";
                echo myCellText(getListItem('proc_res_abnormal', $result_abnormal));
                echo "</td>\n";
                //
                if ($result_document_id) {
                    $d = new Document($result_document_id);
                    echo "  <td colspan='3'>";
                    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
                        echo "<a href='" . $GLOBALS['webroot'] . "/controller.php?document";
                        echo "&retrieve&patient_id={$patient_id}&document_id={$result_document_id}' ";
                        echo "onclick='top.restoreSession()'>";
                    }
                    echo $d->get_url_file();
                    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
                        echo "</a>";
                    }
                    echo "</td>\n";
                } else {
                    echo "  <td>";
                    echo myCellText($result_result);
                    echo "</td>\n";
                    echo "  <td>";
                    echo myCellText($result_range);
                    echo "</td>\n";
                    echo "  <td>";
                    echo myCellText($result_units);
                    echo "</td>\n";
                }
                echo "  <td align='center'>";
                echo myCellText($result_noteid);
                echo "</td>\n";
            } else {
                echo "  <td colspan='7' style='background-color:transparent'>&nbsp;</td>\n";
            }
            echo " </tr>\n";
            $lastpoid = $order_id;
            $lastpcid = $order_seq;
            $lastprid = $report_id;
            ++$lino;
        }
    }
    ?>

</table>

&nbsp;<br />
<table width='100%' style='border-width:0px;'>
 <tr>
  <td style='border-width:0px;'>
<?php 
    if (!empty($aNotes)) {
        echo "<table cellpadding='3' cellspacing='0'>\n";
        echo " <tr bgcolor='#cccccc'>\n";
        echo "  <th align='center' colspan='2'>" . xlt('Notes') . "</th>\n";
        echo " </tr>\n";
        foreach ($aNotes as $key => $value) {
            echo " <tr>\n";
            echo "  <td valign='top'>" . ($key + 1) . "</td>\n";
            echo "  <td>" . nl2br(text($value)) . "</td>\n";
            echo " </tr>\n";
        }
        echo "</table>\n";
    }
    ?>
  </td>
  <td style='border-width:0px;' align='right' valign='top'>
<?php 
    if (empty($GLOBALS['PATIENT_REPORT_ACTIVE'])) {
        ?>
   <input type='button' value='<?php 
        echo xla('Related Patient Notes');
        ?>
' 
    onclick='showpnotes(<?php 
        echo $orderid;
        ?>
)' />
<?php 
    }
    if ($input_form && $sign_list) {
        ?>
   &nbsp;
   <input type='hidden' name='form_sign_list' value='<?php 
        echo attr($sign_list);
        ?>
' />
   <input type='submit' name='form_sign' value='<?php 
        echo xla('Sign Results');
        ?>
'
    title='<?php 
        echo xla('Mark these reports as reviewed');
        ?>
' />
<?php 
        // If this is a portal patient, sending them a copy is an option.
        if ($GLOBALS['gbl_portal_cms_enable'] && $orow['cmsportal_login'] !== '') {
            echo "&nbsp;";
            echo "<input type='checkbox' name='form_send_to_portal' value='" . attr($orow['cmsportal_login']) . "' checked />\n";
            echo xlt('Send to portal');
        }
    }
    if ($input_form) {
        ?>
   &nbsp;
   <input type='button' value='<?php 
        echo xla('Close');
        ?>
' onclick='window.close()' />
<?php 
    }
    ?>
  </td>
 </tr>
</table>

</div>

<?php 
    if ($input_form) {
        ?>
</form>
<?php 
    }
    // end if input form
    ?>

<?php 
}
Пример #4
0
    if ($order_seq && $lastpcid != $order_seq) {
        if ($sendable) {
            echo "  <td>" . text($procedure_code) . "</td>\n";
            echo "  <td>" . text($procedure_name) . "</td>\n";
        } else {
            echo "  <td><strike>" . text($procedure_code) . "</strike></td>\n";
            echo "  <td><strike>" . text($procedure_name) . "</strike></td>\n";
        }
    } else {
        echo "  <td colspan='2' style='background-color:transparent'>&nbsp;</td>";
    }
    // Generate report columns.
    if ($report_id) {
        echo "  <td>" . text($date_report) . "</td>\n";
        echo "  <td title='" . xla('Check mark indicates reviewed') . "'>";
        echo myCellText(getListItem('proc_rep_status', $report_status));
        if ($review_status == 'reviewed') {
            echo " &#x2713;";
            // unicode check mark character
        }
        echo "</td>\n";
    } else {
        echo "  <td colspan='2' style='background-color:transparent'>&nbsp;</td>";
    }
    echo " </tr>\n";
    $lastptid = $patient_id;
    $lastpoid = $order_id;
    $lastpcid = $order_seq;
    ++$lino;
}
?>
Пример #5
0
function generate_order_summary($orderid)
{
    $orow = sqlQuery("SELECT " . "po.procedure_order_id, po.patient_id, po.date_ordered, po.order_status, " . "po.date_collected, po.specimen_type, po.specimen_location, " . "pd.pubpid, pd.lname, pd.fname, pd.mname, pd.DOB, " . "fe.date, " . "pp.name AS labname, " . "u.lname AS ulname, u.fname AS ufname, u.mname AS umname " . "FROM procedure_order AS po " . "LEFT JOIN patient_data AS pd ON pd.pid = po.patient_id " . "LEFT JOIN procedure_providers AS pp ON pp.ppid = po.lab_id " . "LEFT JOIN users AS u ON u.id = po.provider_id " . "LEFT JOIN form_encounter AS fe ON fe.pid = po.patient_id AND fe.encounter = po.encounter_id " . "WHERE po.procedure_order_id = ?", array($orderid));
    $patient_id = intval($orow['patient_id']);
    $encdate = substr($orow['date'], 0, 10);
    // Get insurance info.
    $ins_policy = '';
    $ins_group = '';
    $ins_name = '';
    $ins_addr = '';
    $ins_city = '';
    $ins_state = '';
    $ins_zip = '';
    $irow = getInsuranceDataByDate($patient_id, $encdate, 'primary', "insd.provider, insd.policy_number, insd.group_number");
    if (!empty($irow['provider'])) {
        $ins_policy = $irow['policy_number'];
        $ins_group = $irow['group_number'];
        $insco = new InsuranceCompany($irow['provider']);
        if (!empty($insco)) {
            $ins_name = $insco->get_name();
            $tmp = $insco->get_address();
            $ins_addr = $tmp->get_line1();
            $ins_city = $tmp->get_city();
            $ins_state = $tmp->get_state();
            $ins_zip = $tmp->get_zip();
        }
    }
    ?>

<style>

.ordsum tr.head   { font-size:10pt; background-color:#cccccc; text-align:center; }
.ordsum tr.detail { font-size:10pt; }
.ordsum a, .ordsum a:visited, .ordsum a:hover { color:#0000cc; }

.ordsum table {
 border-style: solid;
 border-width: 1px 0px 0px 1px;
 border-color: black;
}

.ordsum td, .ordsum th {
 border-style: solid;
 border-width: 0px 1px 1px 0px;
 border-color: black;
}

</style>

<div class='ordsum'>

<table width='100%' cellpadding='2' cellspacing='0'>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Patient Name');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['lname'] . ', ' . $orow['fname'] . ' ' . $orow['mname']);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Ordered By');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['ulname'] . ', ' . $orow['ufname'] . ' ' . $orow['umname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td width='5%' nowrap><?php 
    echo xlt('MRN (pid)');
    ?>
</td>
  <td width='45%'><?php 
    echo myCellText($patient_id);
    ?>
</td>
  <td width='5%' nowrap><?php 
    echo xlt('Order ID');
    ?>
</td>
  <td width='45%'><?php 
    echo myCellText($orow['procedure_order_id']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Encounter Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($encdate));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Order Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['date_ordered']));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Birth Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['DOB']));
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Lab');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['labname']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Name');
    ?>
</td>
  <td><?php 
    echo myCellText($ins_name);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Specimen Type');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['specimen_type']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Address');
    ?>
</td>
  <td><?php 
    echo myCellText("{$ins_addr}, {$ins_city}, {$ins_state} {$ins_zip}");
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Collection Date');
    ?>
</td>
  <td><?php 
    echo myCellText(oeFormatShortDate($orow['date_collected']));
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Policy');
    ?>
</td>
  <td><?php 
    echo myCellText($ins_policy);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Specimen Location');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['specimen_location']);
    ?>
</td>
 </tr>
 <tr bgcolor='#cccccc'>
  <td nowrap><?php 
    echo xlt('Ins Group');
    ?>
</td>
  <td><?php 
    echo myCellText($ins_group);
    ?>
</td>
  <td nowrap><?php 
    echo xlt('Order Status');
    ?>
</td>
  <td><?php 
    echo myCellText($orow['order_status']);
    ?>
</td>
 </tr>
</table>

&nbsp;<br />

<table width='100%' cellpadding='2' cellspacing='0'>

 <tr class='head'>
  <td><?php 
    echo xlt('Code');
    ?>
</td>
  <td><?php 
    echo xlt('Description');
    ?>
</td>
  <td><?php 
    echo xlt('Diagnoses');
    ?>
</td>
 </tr>

<?php 
    $query = "SELECT " . "procedure_order_seq, procedure_code, procedure_name, diagnoses " . "FROM procedure_order_code WHERE " . "procedure_order_id =  ? ORDER BY procedure_order_seq";
    $res = sqlStatement($query, array($orderid));
    $encount = 0;
    while ($row = sqlFetchArray($res)) {
        $order_seq = empty($row['procedure_order_seq']) ? 0 : $row['procedure_order_seq'] + 0;
        $procedure_code = empty($row['procedure_code']) ? '' : $row['procedure_code'];
        $procedure_name = empty($row['procedure_name']) ? '' : $row['procedure_name'];
        $diagnoses = empty($row['diagnoses']) ? '' : $row['diagnoses'];
        ++$encount;
        $bgcolor = "#" . ($encount & 1 ? "ddddff" : "ffdddd");
        echo " <tr class='detail' bgcolor='{$bgcolor}'>\n";
        echo "  <td>" . text("{$procedure_code}") . "</td>\n";
        echo "  <td>" . text("{$procedure_name}") . "</td>\n";
        echo "  <td>" . text("{$diagnoses}") . "</td>\n";
        echo " </tr>\n";
    }
    ?>

</table>
</div>

<?php 
}