Read about OpenEMR's Response to the COVID-19 Pandemic at https://www.open-emr.org/covid19/

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.