Different X12 results between 2.9 and 3.1

tmccormi wrote on Sunday, October 18, 2009:

Using gen_x12_837.php.inc on an upgraded database where I reran a claim to compare I get slightly different results.   The area in question seems to actually have changes in the 3.1 version, so I am wondering what the difference means.

        – new X12 (3.1)
    NM1*IL*1*LASTN*FIRSTN****MI*31919883~
    N3*1234 ADDRESS~
    N4*HOUSTON*TX*77064~
    DMG*D8*19361114*F~
    NM1*PR*2*BRAVO HEALTH TEXAS, INC*****PI*52192~
    N3*PO BOX 4432~
    N4*BALTIMORE*MD*21223~
    CLM*1909-7313*198.90***12::1*Y*A*Y*Y*C~
    DTP*431*D8*20091002~
    HI*BK:78906*BF:3899*BF:7295*BF:7820~
    NM1*82*1******34*~
    PRV*PE*ZZ*207Q00000X~
    LX*1~
    SV1*HC:99345*198.90*UN*1***1:2:3:4~
    DTP*472*D8*20091002~
    NM1*82*1*RENDERINGDR*NAME****XX*1111111111~
    PRV*PE*ZZ*207Q00000X~
    SE*35*0001~
   
    – Prev x12 (2.9)
    NM1*IL*1*LASTN*FIRSTN****MI*31919883~
    N3*1234 ADDRESS~
    N4*HOUSTON*TX*77064~
    DMG*D8*19361114*F~
    NM1*PR*2*BRAVO HEALTH TEXAS, INC*****PI*52192~
    N3*PO BOX 4432~
    N4*BALTIMORE*MD*21223~
    CLM*1909-7280*198.90***12::1*Y*A*Y*Y*C~
    DTP*431*D8*20091002~
    HI*BK:78906*BF:3899*BF:7295*BF:7820~
    NM1*82*1*RENDERINGDR*NAME****XX*1111111111~
    PRV*PE*ZZ*207Q00000X~
    LX*1~
    SV1*HC:99345*198.90*UN*1***1:2:3:4~
    DTP*472*D8*20091002~
    SE*33*0001~

The identities have been changed, but the claim is a real one.  The key issue are the changes in NM1*82* lines in the new version

drpwayne wrote on Sunday, October 18, 2009:

I believe the 2.9 x12 is correct. The NM1*82 and PRV*PE in 2.9 identify the renderinr provider in the 2310B loop (used when the rendering provider is not the same as the billing or pay-to provider).  In the 2.9 version the rendering provider’s NPI is given, which is correct.  In the 3.1 x12, an incorrect 2310B loop is generated (the "34" in the NM1*82*… means that the rendering provider’s SSN is to be given, which is missing, and has been superseded, in any event, by NPI). The second iteration of the NM1*82 is then the 2420A loop, which is only supposed to be generated when the rendering provider for one line in the bill is not the same as the rendering provider given in the 2310B, which is almost never the case.

tmccormi wrote on Sunday, October 18, 2009:

Drwayne thanks for the info!

Rod …
If that’s the case, can you fix this?  Soon? :slight_smile:
-Tony

sunsetsystems wrote on Sunday, October 18, 2009:

You didn’t provide the coding information, so I have to do some guessing here.

The difference is that 3.1 now supports the ability to specify rendering provider at the service line level, whereas earlier versions did not.

However it is an error to not put in a "main" provider, and I suspect that is what happened here.  If there are not multiple service providers for a claim, then you should not put any in at the line level.

If there is a bug, I think it’s that the Fee Sheet allowed you to put the data in that way.

Rod 
(http://www.sunsetsystems.com/)

tmccormi wrote on Sunday, October 18, 2009:

The Fee sheet was not used on this. 

The data was imported using the custom/import_medics.php script (that you wrote for me originally) directly into 3.1 just as it was into 2.9.   So input didn’t change between versions.  Same rendering provider all the way.  What do you figure I need to add / change in the script to make it work correctly with 3.1?  And just as importantly what happens if I need to regen a claim that was already in the system when we upgraded to 3.1?

tmccormi wrote on Sunday, October 18, 2009:

PS … thanks for the assistance in advance.

sunsetsystems wrote on Sunday, October 18, 2009:

Aha.  Well it used to be that the only place to store the rendering provider was  billing.provider_id.  So it was a line-specific provider even though there was no way to specify it at the line level, and the claim generation logic had to pick it out of one of the lines and ignore the others, which were theoretically all the same.  Ugly.

When I added *real* support for line-level providers, I put those into the same place, and added a new one, form\_encounter.provider\_id, for the main (default) provider.  So that is where your import\_medics script should put it.

Regarding claims created before upgrading, there is some fancy stuff in 3\_0\_1-to-3\_1\_0\_upgrade.sql that takes care of converting those.

Rod 
(http://www.sunsetsystems.com/)

tmccormi wrote on Sunday, October 18, 2009:

Excellent, Thanks!