You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
5.0 KiB
178 lines
5.0 KiB
<?php |
|
|
|
/** |
|
* The purpose of this module is to show a list of insurance |
|
* companies that match the passed-in search strings, and to allow |
|
* one of them to be selected. |
|
* |
|
* @package OpenEMR |
|
* @link https://www.open-emr.org |
|
* @author Rod Roark <rod@sunsetsystems.com> |
|
* @author Brady Miller <brady.g.miller@gmail.com> |
|
* @author Stephen Waite <stephen.waite@cmsvt.com> |
|
* @copyright Copyright (c) 2005 Rod Roark <rod@sunsetsystems.com> |
|
* @copyright Copyright (c) 2018 Brady Miller <brady.g.miller@gmail.com> |
|
* @copyright Copyright (c) 2021 Stephen Waite <stephen.waite@cmsvt.com> |
|
* @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3 |
|
*/ |
|
|
|
require_once("../globals.php"); |
|
|
|
use OpenEMR\Common\Csrf\CsrfUtils; |
|
use OpenEMR\Core\Header; |
|
|
|
if (!CsrfUtils::verifyCsrfToken($_GET["csrf_token_form"])) { |
|
CsrfUtils::csrfNotVerified(); |
|
} |
|
|
|
|
|
// Putting a message here will cause a popup window to display it. |
|
$info_msg = ""; |
|
|
|
function addwhere($where, $colname, $value) |
|
{ |
|
if ($value) { |
|
$where .= " AND "; |
|
$where .= "$colname LIKE '%" . add_escape_custom($value) . "%'"; |
|
} |
|
|
|
return $where; |
|
} |
|
|
|
// The following code builds the appropriate SQL query from the |
|
// search parameters passed by our opener (ins_search.php). |
|
|
|
$where = ''; |
|
$where = addwhere($where, 'i.name', $_GET['form_name']); |
|
$where = addwhere($where, 'i.attn', $_GET['form_attn']); |
|
$where = addwhere($where, 'i.cms_id', $_GET['form_cms_id']); |
|
$where = addwhere($where, 'a.line1', $_GET['form_addr1']); |
|
$where = addwhere($where, 'a.line2', $_GET['form_addr2']); |
|
$where = addwhere($where, 'a.city', $_GET['form_city']); |
|
$where = addwhere($where, 'a.state', $_GET['form_state']); |
|
$where = addwhere($where, 'a.zip', $_GET['form_zip']); |
|
|
|
$phone_parts = array(); |
|
|
|
// Search by area code if there is one. |
|
if ( |
|
preg_match( |
|
"/(\d\d\d)/", |
|
$_GET['form_phone'], |
|
$phone_parts |
|
) |
|
) { |
|
$where = addwhere($where, 'p.area_code', $phone_parts[1]); |
|
} |
|
|
|
// If there is also an exchange, search for that too. |
|
if ( |
|
preg_match( |
|
"/\d\d\d\D*(\d\d\d)/", |
|
$_GET['form_phone'], |
|
$phone_parts |
|
) |
|
) { |
|
$where = addwhere($where, 'p.prefix', $phone_parts[1]); |
|
} |
|
|
|
// If the last 4 phone number digits are given, search for that too. |
|
if ( |
|
preg_match( |
|
"/\d\d\d\D*\d\d\d\D*(\d\d\d\d)/", |
|
$_GET['form_phone'], |
|
$phone_parts |
|
) |
|
) { |
|
$where = addwhere($where, 'p.number', $phone_parts[1]); |
|
} |
|
|
|
$query = "SELECT " . |
|
"i.id, i.name, i.attn, " . |
|
"a.line1, a.line2, a.city, a.state, a.zip "; |
|
|
|
$any_phone_numbers = sqlQuery("SELECT COUNT(*) AS count FROM phone_numbers"); |
|
if ($any_phone_numbers['count'] > 0) { |
|
$query .= ", p.area_code, p.prefix, p.number " . |
|
"FROM insurance_companies as i, addresses AS a " . |
|
", phone_numbers AS p "; |
|
} else { |
|
$query .= "FROM insurance_companies AS i, addresses AS a "; |
|
} |
|
|
|
$query .= "WHERE a.foreign_id = i.id "; |
|
|
|
if (!empty($phone_parts)) { |
|
$query .= "AND p.foreign_id = i.id "; |
|
} |
|
|
|
$query .= $where . " ORDER BY i.name, a.zip"; |
|
$res = sqlStatement($query); |
|
?> |
|
<html> |
|
<head> |
|
<title><?php echo xlt('List Insurance Companies');?></title> |
|
<?php Header::setupHeader(); ?> |
|
|
|
<style> |
|
td { |
|
font-size: 0.8125rem; |
|
} |
|
</style> |
|
|
|
<script> |
|
|
|
// This is invoked when an insurance company name is clicked. |
|
function setins(ins_id, ins_name) { |
|
opener.set_insurance(ins_id, ins_name); |
|
dlgclose(); |
|
return false; |
|
} |
|
|
|
</script> |
|
|
|
</head> |
|
|
|
<body class="body_top"> |
|
<form method='post' name='theform'> |
|
<center> |
|
|
|
<table class="table table-sm border-0 w-100"> |
|
<tr> |
|
<td class='font-weight-bold'><?php echo xlt('Name');?> </td> |
|
<td class='font-weight-bold'><?php echo xlt('Attn');?> </td> |
|
<td class='font-weight-bold'><?php echo xlt('Address');?> </td> |
|
<td class='font-weight-bold'> </td> |
|
<td class='font-weight-bold'><?php echo xlt('City');?> </td> |
|
<td class='font-weight-bold'><?php echo xlt('State');?> </td> |
|
<td class='font-weight-bold'><?php echo xlt('Zip');?> </td> |
|
<td class='font-weight-bold'><?php echo xlt('Phone');?></td> |
|
</tr> |
|
|
|
<?php |
|
while ($row = sqlFetchArray($res)) { |
|
$anchor = "<a href=\"\" onclick=\"return setins(" . |
|
attr_js($row['id']) . "," . attr_js($row['name']) . ")\">"; |
|
$phone = ' '; |
|
if ($row['number'] ?? null) { |
|
$phone = text($row['area_code']) . '-' . text($row['prefix']) . '-' . text($row['number']); |
|
} |
|
|
|
echo " <tr>\n"; |
|
echo " <td valign='top'>$anchor" . text($row['name']) . "</a> </td>\n"; |
|
echo " <td valign='top'>" . text($row['attn']) . " </td>\n"; |
|
echo " <td valign='top'>" . text($row['line1']) . " </td>\n"; |
|
echo " <td valign='top'>" . text($row['line2']) . " </td>\n"; |
|
echo " <td valign='top'>" . text($row['city']) . " </td>\n"; |
|
echo " <td valign='top'>" . text($row['state']) . " </td>\n"; |
|
echo " <td valign='top'>" . text($row['zip']) . " </td>\n"; |
|
echo " <td valign='top'>" . $phone . "</td>\n"; |
|
echo " </tr>\n"; |
|
} |
|
?> |
|
</table> |
|
|
|
</center> |
|
</form> |
|
</body> |
|
</html>
|
|
|