2 // +-----------------------------------------------------------------------------+
3 // Copyright (C) 2010 Z&H Consultancy Services Private Limited <sam@zhservices.com>
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
18 // A copy of the GNU General Public License is included along with this program:
19 // openemr/interface/login/GnuGPL.html
20 // For more information write to the Free Software
21 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 // Author: Eldho Chacko <eldho@zhservices.com>
24 // Paul Simon K <paul@zhservices.com>
26 // +------------------------------------------------------------------------------+
27 //===============================================================================
28 //Electronic posting is handled here.
29 //===============================================================================
30 require_once("../globals.php");
31 require_once("$srcdir/patient.inc");
32 require_once("$srcdir/invoice_summary.inc.php");
33 require_once($GLOBALS['OE_SITE_DIR'] . "/statement.inc.php");
34 require_once("$srcdir/parse_era.inc.php");
35 require_once("$srcdir/sl_eob.inc.php");
36 //===============================================================================
37 // This is called back by parse_era() if we are processing X12 835's.
43 function era_callback(&$out) {
44 global $where, $eracount, $eraname;
46 $eraname = $out['gs_date'] . '_' . ltrim($out['isa_control_number'], '0') .
47 '_' . ltrim($out['payer_id'], '0');
48 list($pid, $encounter, $invnumber) = slInvoiceNumber($out);
49 if ($pid && $encounter) {
50 if ($where) $where .= ' OR ';
51 $where .= "( f.pid = '$pid' AND f.encounter = '$encounter' )";
54 //===============================================================================
55 // Handle X12 835 file upload.
56 if ($_FILES['form_erafile']['size']) {
57 $tmp_name = $_FILES['form_erafile']['tmp_name'];
58 // Handle .zip extension if present. Probably won't work on Windows.
59 if (strtolower(substr($_FILES['form_erafile']['name'], -4)) == '.zip') {
60 rename($tmp_name, "$tmp_name.zip");
61 exec("unzip -p $tmp_name.zip > $tmp_name");
62 unlink("$tmp_name.zip");
64 $alertmsg .= parse_era($tmp_name, 'era_callback');
65 $erafullname = $GLOBALS['OE_SITE_DIR'] . "/era/$eraname.edi";
66 if (is_file($erafullname)) {
67 $alertmsg .= xl("Warning").': '. xl("Set").' '.$eraname.' '. xl("was already uploaded").' ';
68 if (is_file($GLOBALS['OE_SITE_DIR'] . "/era/$eraname.html"))
71 $alertmsg .= xl("and processed.").' ';
74 $alertmsg .= xl("but not yet processed.").' ';;
76 rename($tmp_name, $erafullname);
78 //===============================================================================
79 $DateFormat=DateFormatRead();
80 //===============================================================================
84 <?php
if (function_exists('html_header_show')) html_header_show(); ?
>
86 <link rel
="stylesheet" href
="<?php echo $css_header;?>" type
="text/css">
87 <script type
="text/javascript" src
="<?php echo $GLOBALS['webroot'] ?>/library/dialog.js?v=<?php echo $v_js_includes; ?>"></script
>
89 <link rel
="stylesheet" href
="<?php echo $css_header;?>" type
="text/css">
90 <link rel
="stylesheet" type
="text/css" href
="../../library/js/fancybox/jquery.fancybox-1.2.6.css" media
="screen" />
91 <style type
="text/css">@import
url(../../library
/dynarch_calendar
.css
);</style
>
92 <script type
="text/javascript" src
="../../library/textformat.js"></script
>
93 <script type
="text/javascript" src
="../../library/dynarch_calendar.js"></script
>
94 <?php
include_once("{$GLOBALS['srcdir']}/dynarch_calendar_en.inc.php"); ?
>
95 <script type
="text/javascript" src
="../../library/dynarch_calendar_setup.js"></script
>
96 <script type
="text/javascript" src
="../../library/dialog.js?v=<?php echo $v_js_includes; ?>"></script
>
97 <script type
="text/javascript" src
="<?php echo $GLOBALS['assets_static_relative']; ?>/jquery-min-1-3-2/index.js"></script
>
98 <?php
include_once("{$GLOBALS['srcdir']}/ajax/payment_ajax_jav.inc.php"); ?
>
99 <script type
="text/javascript" src
="../../library/js/common.js"></script
>
100 <script type
="text/javascript" src
="../../library/js/fancybox/jquery.fancybox-1.2.6.js"></script
>
101 <script language
='JavaScript'>
104 <script type
="text/javascript" language
="javascript" >
107 if(document
.getElementById('uploadedfile').value
=='')
109 alert("<?php echo htmlspecialchars( xl('Please Choose a file'), ENT_QUOTES) ?>");
112 if(document
.getElementById('hidden_type_code').value
=='')
114 alert("<?php echo htmlspecialchars( xl('Select Insurance, by typing'), ENT_QUOTES) ?>");
115 document
.getElementById('type_code').focus();
118 if(document
.getElementById('hidden_type_code').value
!=document
.getElementById('div_insurance_or_patient').innerHTML
)
120 alert("<?php echo htmlspecialchars( xl('Take Insurance, from Drop Down'), ENT_QUOTES) ?>");
121 document
.getElementById('type_code').focus();
124 top
.restoreSession();
125 document
.forms
[0].submit();
127 function OnloadAction()
128 {//Displays message after upload action,and popups the details.
129 after_value
=document
.getElementById('after_value').value
;
135 if ($_FILES['form_erafile']['size']) {
137 var f
= document
.forms
[0];
138 var debug
= <?php
echo htmlspecialchars($_REQUEST['form_without']*1);?
> ;
139 var paydate
= f
.check_date
.value
;
140 var post_to_date
= f
.post_to_date
.value
;
141 var deposit_date
= f
.deposit_date
.value
;
142 window
.open('sl_eob_process.php?eraname=<?php echo htmlspecialchars($eraname); ?>&debug=' + debug +
'&paydate=' + paydate +
'&post_to_date=' + post_to_date +
'&deposit_date=' + deposit_date +
'&original=original' +
'&InsId=<?php echo htmlspecialchars(formData('hidden_type_code
')); ?>' , '_blank');
149 <script language
="javascript" type
="text/javascript">
150 document
.onclick
=HideTheAjaxDivs
;
153 #ajax_div_insurance {
156 background
-color
: #FBFDD0;
157 border
: 1px solid
#ccc;
160 .bottom
{border
-bottom
:1px solid black
;}
161 .top
{border
-top
:1px solid black
;}
162 .left
{border
-left
:1px solid black
;}
163 .right
{border
-right
:1px solid black
;}
166 <body
class="body_top" onLoad
="OnloadAction()">
167 <form enctype
="multipart/form-data" method
='post' action
='era_payments.php' style
="display:inline" >
168 <table width
="455" border
="0" cellspacing
="0" cellpadding
="0">
170 <td colspan
="3" align
="left"><b
><?php
echo htmlspecialchars( xl('Payments'), ENT_QUOTES
) ?
></b
></td
>
173 <td colspan
="3" align
="left" ></td
>
176 <td colspan
="3" align
="left">
178 <li
><a href
='new_payment.php'><?php
echo htmlspecialchars( xl('New Payment'), ENT_QUOTES
) ?
></a
></li
>
179 <li
><a href
='search_payments.php'><?php
echo htmlspecialchars( xl('Search Payment'), ENT_QUOTES
) ?
></a
></li
>
180 <li
class='current'><a href
='era_payments.php'><?php
echo htmlspecialchars( xl('ERA Posting'), ENT_QUOTES
) ?
></a
></li
>
184 <td colspan
="3" align
="left" >
185 <table width
="455" border
="0" cellspacing
="0" cellpadding
="10" bgcolor
="#DEDEDE"><tr
><td
>
186 <table width
="435" border
="0" style
="border:1px solid black" cellspacing
="0" cellpadding
="0">
188 <td width
="5" align
="left" ></td
>
189 <td width
="85" align
="left" ></td
>
190 <td width
="105" align
="left" ></td
>
191 <td width
="240" align
="left" ></td
>
194 <td align
="left"></td
>
195 <td colspan
="3" align
="left"><font
class='title'><?php
echo htmlspecialchars( xl('ERA'), ENT_QUOTES
) ?
></font
></td
>
198 <td align
="left" ></td
>
199 <td colspan
="3" align
="left" ></td
>
202 <td align
="left" class="text"></td
>
203 <td align
="left" class="text"><?php
echo htmlspecialchars( xl('Date'), ENT_QUOTES
).':' ?
></td
>
204 <td align
="left" class="text"><input type
='text' size
='6' name
='check_date' id
='check_date' value
="<?php echo formData('check_date') ?>" class="class1 text " onKeyDown
="PreventIt(event)" />
205 <img src
='../../interface/main/calendar/modules/PostCalendar/pntemplates/default/images/new.jpg' align
='texttop'
206 id
='img_checkdate' border
='0' alt
='[?]' style
='cursor:pointer'
207 title
='<?php echo htmlspecialchars( xl('Click here to choose a date
'), ENT_QUOTES); ?>' />
209 Calendar
.setup({inputField
:"check_date", ifFormat
:"<?php echo $DateFormat; ?>", button
:"img_checkdate"});
211 <td align
="left" class="text"><input type
="hidden" name
="MAX_FILE_SIZE" value
="5000000" />
212 <input name
="form_erafile" id
="uploadedfile" type
="file" class="text" size
="10" style
="display:inline" /></td
>
215 <td align
="left" class="text"></td
>
216 <td align
="left" class="text"><?php
echo htmlspecialchars( xl('Post To Date'), ENT_QUOTES
).':' ?
></td
>
217 <td align
="left" class="text"><input type
='text' size
='6' name
='post_to_date' id
='post_to_date' value
="<?php echo formData('post_to_date') ?>" class="class1 text " onKeyDown
="PreventIt(event)" />
218 <img src
='../../interface/main/calendar/modules/PostCalendar/pntemplates/default/images/new.jpg' align
='texttop'
219 id
='img_post_to_date' border
='0' alt
='[?]' style
='cursor:pointer'
220 title
='<?php echo htmlspecialchars( xl('Click here to choose a date
'), ENT_QUOTES); ?>' />
222 Calendar
.setup({inputField
:"post_to_date", ifFormat
:"<?php echo $DateFormat; ?>", button
:"img_post_to_date"});
224 <td align
="left" class="text"><input type
='checkbox' name
='form_without' value
='1' <?php
echo $_REQUEST['form_without']*1==1 ||
($_REQUEST['form_without']*1==0 && !isset($_FILES['form_erafile'])) ?
"checked" : '' ?
>/> <?php
echo htmlspecialchars( xl('Without Update'), ENT_QUOTES
); ?
></td
>
227 <td align
="left" class="text"></td
>
228 <td align
="left" class="text"><?php
echo htmlspecialchars( xl('Deposit Date'), ENT_QUOTES
).':' ?
></td
>
229 <td align
="left" class="text"><input type
='text' size
='6' name
='deposit_date' id
='deposit_date' onKeyDown
="PreventIt(event)" class="text " value
="<?php echo formData('deposit_date') ?>" />
230 <img src
='../../interface/main/calendar/modules/PostCalendar/pntemplates/default/images/new.jpg' align
='texttop'
231 id
='img_depositdate' border
='0' alt
='[?]' style
='cursor:pointer'
232 title
='<?php echo htmlspecialchars( xl('Click here to choose a date
'), ENT_QUOTES); ?>' />
234 Calendar
.setup({inputField
:"deposit_date", ifFormat
:"<?php echo $DateFormat; ?>", button
:"img_depositdate"});
236 <td align
="left" class="text"></td
>
239 <td align
="left" class="text"></td
>
240 <td align
="left" class="text"><?php
echo htmlspecialchars( xl('Insurance'), ENT_QUOTES
).':' ?
></td
>
241 <td colspan
="2" align
="left" class="text">
244 <table width
="335" border
="0" cellspacing
="0" cellpadding
="0">
247 <input type
="hidden" id
="hidden_ajax_close_value" value
="<?php echo formData('type_code') ?>" /><input name
='type_code' id
='type_code' class="text "
248 style
=" width:280px;" onKeyDown
="PreventIt(event)" value
="<?php echo formData('type_code') ?>" autocomplete
="off" /><br
>
249 <!--onKeyUp
="ajaxFunction(event,'non','search_payments.php');"-->
250 <div id
='ajax_div_insurance_section'>
251 <div id
='ajax_div_insurance_error'>
253 <div id
="ajax_div_insurance" style
="display:none;"></div
>
258 <td width
="50" style
="padding-left:5px;"><div name
="div_insurance_or_patient" id
="div_insurance_or_patient" class="text" style
="border:1px solid black; padding-left:5px; width:50px; height:17px;"><?php
echo formData('hidden_type_code') ?
></div
><input type
="hidden" name
="description" id
="description" /></td
>
269 <td colspan
="4" align
="center" ><table border
="0" cellspacing
="0" cellpadding
="0">
271 <td
><a href
="#" onClick
="javascript:return Validate();" class="css_button"><span
><?php
echo htmlspecialchars( xl('Process ERA File'), ENT_QUOTES
);?
></span
></a
></td
>
276 <td align
="left" ></td
>
277 <td colspan
="3" align
="left" ></td
>
285 <input type
="hidden" name
="after_value" id
="after_value" value
="<?php echo htmlspecialchars($alertmsg, ENT_QUOTES);?>"/>
286 <input type
="hidden" name
="hidden_type_code" id
="hidden_type_code" value
="<?php echo formData('hidden_type_code') ?>"/>
287 <input type
='hidden' name
='ajax_mode' id
='ajax_mode' value
='' />