Florida Blue (Availity) Rejections for Invalid Sender ID - wants FL BLUE ID in place of ETIN. (Again)

Situation
Claims Rejected

OpenEMR Version
5.0.2-2

Browser:
I’m using: FF 75.0

Operating System
Ubuntu Server 18.04

Logs
Nothing about this issue.

Florida Blue refuses to conform to the x12 standard by insisting on having their Availity assigned sender ID in place of the provider (or facility) ETIN. This hard code gets broken with any revision of the gen_x12 file. It has been like this for a decade and it seems to me that it would be a simple thing to accommodate in the system considering we can make it work with just two lines of hard code! I’ve fought this battle with every version upgrade since 2013 and I have eventually won the battle every time up until now. But this time I’ve run out of time, we won’t be able to make our payroll without some workaround for this issue.

Everyone in Florida using Availity to file Florida Blue claims is familiar with this disaster. We had code that worked in 4.x.x that we put into the /openemr/library/gen_x12_837.inc.php file at loop 1000A (line 98 of the old 4.x.x versions) that looked at the claim and if it was a Florida Blue claim the substitution was made like this;
‘’’ if (trim($claim->x12gsreceiverid()) == ‘470819582’) { // if ECLAIMS EDI
$out .= “" . $claim->clearingHouseETIN();
} else {
if ($claim->payerID()==‘00590’) {
$out .= "
” . “yourAvailityBCBS#”;
}else{
$out .= “*” . $claim->billingFacilityETIN();
}}’’’

We found a post from 2015 for v5.0.1 that had nearly the same code except with empty string quotes ("") instead of escaped asterisks ("*") so we tried it both ways, but we still get rejected for the same reason.

This post by @hamd from 2015 says the code belongs at line numbers that identify loop 1000B (in 5.0.2) and it’s missing the asterisks. The post reads;
‘’’ Below is the latest working fix for 5.0.1-6 for this problem.

// Replace existing code with this code in your var/www/openemr/library/gen_x12_837.inc.php file. This is for 5.0.1-6.
// New code is between first and last lines which are shown below for location reference only.
// Use Notepad or Notepad++ for editing. The new code goes into Loop 1000A at line 118 and thus becomes 118-126 (Previously 140)
// Replace BCBS# with your Availity assigned number before pasting.
// Replaces the following code 2 lines

}
$out .= “*” . $claim->billingFacilityETIN();

" . “46”;
}
if (trim($claim->x12gsreceiverid()) == ‘470819582’) { // if ECLAIMS EDI
$out .= “” . $claim->clearingHouseETIN();
}else{
if ($claim->payerID()==‘00590’){
$out .= “” . “BCBS#”;
}else{
$out .= "” . $claim->billingFacilityETIN();
}}
$out .= “~\n”;’’’

Then there’s this one, also from 2015; by @fsgl that says “See d. and see c.” with no reference to either found in the post which says;

‘’‘The problem is that there is no place to enter the Florida Blue ETIN in the Facility dialog; cannot use tax id nor SS #. See d. There is no provision for it in the .php file. See c.
Then it goes on to say "Solution is to insert the following snippet; replacing HC279 with your ETIN & saving the change, assuming the Payor ID is 00590 for Florida Blue. Insert the 2 lines between Lines 101 & 102.
} else if ($claim->payerID()==‘00590’) {
$out .= “*” . “HC279”;’’’ Sorry, but this would be the crux of the problem, not the solution.

So the end game is that this code doesn’t work any more, and we need some help with this because something has changed somewhere that invalidates this workaround and we cannot find the solution among all the conflicting posts.

We keep beating our heads against this same problem over and over with each new version.
Would it be possible for us to get some clear direction on resolving this once and for all? Please advise.
David

promise to put it in on next patch :slight_smile:

it’s just that the file’s been moved

so use the old code in place of the new code

Try The following:

// Replace existing code with this code in your var/www/openemr/library/gen_x12_837.inc.php file.
// New code is between first and last lines which are shown here for location reference only.
// Use Notepad or Notepad++ for editing. The new code goes into Loop 1000A at line 140.(118) becomes 118-126
// Replace BCBS# with your Availity assigned number before pasting.
// Replaces the following code

}
$out .= “*” . $claim->billingFacilityETIN();

“" . “46”;
}
if (trim($claim->x12gsreceiverid()) == ‘470819582’) { // if ECLAIMS EDI
$out .= “" . $claim->clearingHouseETIN();
}else{
if ($claim->payerID()==‘00590’){
$out .= "
” . “BCBS#”;
}else{
$out .= “*” . $claim->billingFacilityETIN();
}}
$out .= “~\n”;

Henry

Henry, That code (as posted) generates an empty claim in 5.0.2-2

Stephen, the “old code” you included doesn’t solve the problem that we have here in Florida as I stated in the original post.

Everyone; Now that I know the Gen_x12 code was moved to openemr/src/billing/ X12_5010_837P.php**, I began to extrapolate our old code into that file however, no matter what variable I put into the code for the payerID (as in) ($claim->payerID()==‘00590’) it gets ignored and the billingFacilityETIN is inserted.
Examining the Florida Blue settings page under Administration>Practice>Insurance Companies, I find this;

Apparently my old coding does not support the use of "payerID as a recognized variable.
I tried PayerID, Payer ID, (I guess spaces don’t fly in Php because that one gave me a blank claim)
I tried “cms_id” and everything else that made sense from the list of variables at the beginning of the file like;
$claim->x12gsisa02() , and $claim->x12gssenderid() neither of which were picked up by the “if” statement.
So, does anyone else have a suggestion? @sjpadgett you wrote the old gen_x12-837.php, got an idea?
David @hitechelp

hi @hitechelp, please try this file X12_5010_837P.php (53.0 KB)

code change is

diff --git a/src/Billing/X12_5010_837P.php b/src/Billing/X12_5010_837P.php
index b9475954b..d235b6940 100644
--- a/src/Billing/X12_5010_837P.php
+++ b/src/Billing/X12_5010_837P.php
@@ -111,7 +111,11 @@ class X12_5010_837P
             "*" .
             "*" . "46";
         }
-        $out .= "*" . $claim->billingFacilityETIN();
+        if ($claim->payerID() == "00590") {
+            $out .= "*" . "Availity assigned sender ID";
+        } else {
+            $out .= "*" . $claim->billingFacilityETIN();
+        }
         $out .= "~\n";
 
         ++$edicount;

Thank you Stephen, you nailed it!
Removing the first “if else” in the old code section was the key.
Claims look good now.

Stephen,

I need your help again with Florida Blue rejections for not having their sender ID instead of their ETIN.
The code below no longer works when inserted into the Patch 1 - X125010837P.php file starting at line 145.

The file is not generated and throws this PHP error;
[Wed Apr 27 15:53:55.056553 2022] [php7:error] PHP Parse error: syntax error, unexpected ‘public’ (T_PUBLIC) in /var/www/html/openemr/src/Billing/X125010837P.php on line 1550, referer: /openemr/interface/billing/billing_report.php

This error points to the section where one would be sending claims directly to an insurance company and we use Availity. Is there a new setting somewhere that we need to change? Otherwise, I’ve been unable to make it work despite multiple attempts at tweaking this section. What am I overlooking this time?

I think it’s line 146.

Ok, could you be a bit more specific about what on line 146 you think is the problem?

Are you suggesting I move that bracket to line 152, or just delete it?

You and I have worked this issue together in the past when I couldn’t muddle through it alone however, the code for generating the 1000A Loop has undergone a major revamp and the complexity is making this a lot tougher than it used to be for me. The error isn’t thrown until line 1550 which is way too deep in the code for me to fathom out.

I’m certain we’re not the only ones in Florida will who need to getting this working again.

replace line 146 with

if ($claim->payerID() == "00590") {
    $out .= "*" . "G07IL";
} else {
    $out .= "*" . $claim->billingFacilityETIN();
} 

Stephen,
sorry, but that’s a No go. Here’s what I just tried.

            // else use provider's group name
            } else {
                $billingFacilityName = substr($claim->billingFacilityName(), 0, 60);
                if ($billingFacilityName == '') {
                    $log .= "*** billing facility name in 1000A loop is empty\n";
                }
                $out .= $billingFacilityName .
                "*" .
                "*" .
                "*" .
                "*" .
                "*" . "46";
 		if ($claim->payerID() == "00590") {
    $out .= "*" . "G07IL";
} else {
    $out .= "*" . $claim->billingFacilityETIN();
} 
	// close the NM1 segment
        $out .= "~\n";

        ++$edicount;

Here is the Error Log;

[Fri Apr 29 09:05:05.722966 2022] [php7:error] [pid 7272] [client] PHP Parse error:  syntax error, unexpected 'public' (T_PUBLIC) in /var/www/html/openemr/src/Billing/X125010837P.php on line 1549, referer: /openemr/interface/billing/billing_report.php

you need a another } after the else closing bracket }

Actually I needed 2. I added a close bracket at the end and the error line changed to (15150)
So, I added another one and now it generates the report.

Here’s what it looks like now;
// else use provider’s group name
} else {
$billingFacilityName = substr($claim->billingFacilityName(), 0, 60);
if ($billingFacilityName == ‘’) {
$log .= “*** billing facility name in 1000A loop is empty\n”;
}
$out .= $billingFacilityName .
" .
"
” .
" .
"
” .
" . “46”;
if ($claim->payerID() == “00590”) {
$out .= "
” . “G07IL”;
} else {
$out .= “*” . $claim->billingFacilityETIN();
}
}
}
// close the NM1 segment
$out .= “~\n”;

1 Like