ISA Subelement Separator Not Being Recognized When Parsing Composite Element

Post author
DevMonkey

I've been working on evaluating EdiFabric for a potential purchase of the professional or enterprise version and testing against a few sample 271 files obtained online; I'm testing with version 9.8.6. When parsing the following sample 271 file obtained from CMS using EdiFabric.Templates.Hipaa5010.TS271, the full contents of any non-null EB13 element (including the sub-element separator) end up in the first subelement (Loop_2110C_271.EB_SubscriberEligibilityorBenefitInformation.CompositeMedicalProcedureIdentifier_13.ProductorServiceIDQualifier_01).

So, even though the ISA below correctly specifies the vertical bar | as the subelement separator, the EB segment with HC|G0180 in EB13 is parsed to .ProductorServiceIDQualifier_01 = HC|G018 and .ProcedureCode_02 = null

I understand that delimiters specified in the ISA are supposed to be handled automatically according to other posts in the forums and based on a review of docs, so I suspect this may be a bug/regression. Given that I don't yet have much experience with the components I would welcome any guidance/suggestions as this is a pretty serious issue if it indeed proves to be a bug.  I'd normally root cause something like this myself, but I don't believe that source is available for the part of the system responsible for setting up subelement parsing.  Thanks in advance for any pointers/suggestions re: things to try.

Here is the sample 271:

ISA*00* *00* *ZZ*CMS *ZZ*SUBMITTERID *160127*0758*^*00501*111111111*0*P*|~ GS*HB*CMS*SUBMITTERID*20160127*07580000*1*X*005010X279A1~ST*271*0001*005010X279A1~BHT*0022*11*TRANSA*20160127*07582355~HL*1**20*1~ NM1*PR*2*CMS*****PI*CMS~HL*2*1*21*1~ NM1*1P*2*IRNAME*****XX*1234567893~HL*3*2*22*0~ TRN*2*TRACKNUM*ABCDEFGHIJ~NM1*IL*1*LNAME*FNAME*M***MI*123456789A~N3*ADDRESSLINE1*ADDRESSLINE2~N4*CITY*ST*ZIPCODE~ DMG*D8*19400401*F~DTP*307*RD8*20160101-20160327~ EB*6**30~ DTP*307*RD8*20160101-20160108~ EB*I**41^54~ EB*1**88~ EB*1**30^10^42^45^48^49^69^76^83^A5^A7^AG^BT^BU^BV*MA~DTP*291*D8*20050401~EB*C**30*MA**26*1288~ DTP*291*RD8*20160101-20161231~EB*C**30*MA**29*1288~ DTP*291*RD8*20160101-20161231~EB*C**30*MA**29*0~ DTP*291*RD8*20160116-20160120~EB*C**42^45*MA**26*0~ DTP*292*RD8*20160101-20161231~EB*B**30*MA**7*0~ HSD***DA**30*0~ HSD***DA**31*60~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**30*MA**7*322~HSD***DA**30*60~ HSD***DA**31*90~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**30*MA**7*0~ HSD***DA**29*60~HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**30*MA**7*322~HSD***DA**29*30~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**30*MA**7*0~ HSD***DA**29*56~ HSD*****26*1~ DTP*435*RD8*20160116-20160120~EB*B**30*MA**7*322~HSD***DA**29*30~ HSD*****26*1~ DTP*435*RD8*20160116-20160120~EB*B**AG*MA**7*0~ HSD***DA**30*0~ HSD***DA**31*20~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**AG*MA**7*161~ HSD***DA**30*20~ HSD***DA**31*100~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**AG*MA**7*0~ HSD***DA**29*20~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**AG*MA**7*161~ HSD***DA**29*80~ HSD*****26*1~ DTP*435*RD8*20160101-20161231~EB*B**AG*MA**7*0~ HSD***DA**29*16~ HSD*****26*1~ DTP*435*RD8*20160116-20160120~EB*B**AG*MA**7*161~ HSD***DA**29*80~ HSD*****26*1~ DTP*435*RD8*20160116-20160120~EB*K**30*MA**32***DY*60~EB*K**30*MA**33***DY*58~EB*K**30*MA**7*608~DTP*435*RD8*20160101-20161231~EB*K**A7*MA**32***DY*190~EB*K**A7*MA**33***DY*180~EB*1**30^2^3^5^10^14^23^24^25^26^27^28^33^36^37^38^39^40^42^50^51^52^53^67^69^73^76^83^86^98^A4^A6^A8^AD^AE^AF^AI^AJ^AK^AL^BF^BG^BT^BU^BV^DM^UC*MB~ DTP*291*D8*20050401~EB*C**30*MB**23*166~ DTP*291*RD8*20160101-20161231~EB*C**30*MB**29*0~ DTP*291*RD8*20160101-20161231~EB*A**30*MB**27**.2~ DTP*291*RD8*20160101-20161231~EB*C**42^67^AJ*MB**23*0~DTP*292*RD8*20160101-20161231~EB*A**42^67^AJ*MB**27**0~DTP*292*RD8*20160101-20161231~EB*C***MB**23*0******HC|80061~DTP*292*RD8*20160101-20161231~EB*C***MB**23*166******HC|G0117~ DTP*292*RD8*20160101-20161231~EB*C***MB**29*0******HC|G0117~DTP*292*RD8*20160101-20161231~EB*A***MB**27**0*****HC|80061~DTP*292*RD8*20160101-20161231~EB*A***MB**27**.2*****HC|G0117~DTP*292*RD8*20160101-20161231~EB*D***MB*********HC|80061~DTP*348*D8*20130105~EB*D***MB*********HC|G0117~DTP*348*D8*20120107~EB*F**67*MB**22***VS*8~HSD*VS*6***29~ EB*D**AD*MB***200~ DTP*292*RD8*20160101-20161231~MSG*USED AMOUNT~EB*D**AE*MB***0~ DTP*292*RD8*20160101-20161231~MSG*USED AMOUNT~EB*F**BF*MB**29***CA*72~ MSG*Professional~EB*F**BF*MB**29***CA*72~ MSG*Technical~EB*F**BG*MB*****99*0~MSG*Professional~EB*F**BG*MB*****99*0~MSG*Technical~EB*F**BG*MB*****99*15~MSG*Intensive Cardiac Rehabilitation – Professional~EB*F**BG*MB*****99*15~MSG*Intensive Cardiac Rehabilitation – Technical~EB*X**42***26~ DTP*472*RD8*20151222-20160116~ LS*2120~NM1*PR*2*ORGNAME*****PI*CONTR~NM1*1P*2******XX*1234567890~LE*2120~EB*X************HC|G0180~DTP*193*D8*20140101~EB*X************HC|G0179~ DTP*193*D8*20140501~DTP*193*D8*20140301~EB*X**45*MA**26~ DTP*292*RD8*20160201-20160301~MSG*Revocation Code – 1~LS*2120~NM1*1P*2******XX*1234567890~LE*2120~EB*D**45*MA**26***99*1~EB*D**14*MB~ DTP*356*D8*20110601~DTP*096*D8*20130105~EB*E**10***23***DB*3~ HSD*FL*2***29~ DTP*292*RD8*20160101-20161231~EB*R**88*OT~ REF*18*S0000 999~DTP*292*D8*20130101~LS*2120~NM1*PRP*2*ORGNAME~N3*ADDRESSLINE1*ADDRESSLINE2~N4*CITY*ST*ZIPCODE~ PER*IC**TE*AAABBBCCCC*UR*www.website.com~LE*2120~EB*R**30*IN~ REF*18*H0000 999~DTP*290*D8*20090101~MSG*MCO Bill Option Code- C~LS*2120~NM1*PRP*2*ORGNAME~N3*ADDRESSLINE1*ADDRESSLINE2~N4*CITY*ST*ZIPCODE~ PER*IC**TE*AAABBBCCCC*UR*www.website.com~LE*2120~EB*R**30*13~ REF*IG*GROUPCOVERAGEPLANPOLICYNUMBER~DTP*290*RD8*20110601-20160601~LS*2120~NM1*PRP*2*ORGNAME~N3*ADDRESSLINE1*ADDRESSLINE2~N4*CITY*ST*ZIPCODE~ LE*2120~SE*186*0001~GE*1*1~ IEA*1*111111111~

Comments

2 comments

  • Comment author
    Admin

    Hi,

    The issue is with your file, which is invalid. The reader resorts to the default set od separators with ~ as the composite separator because your ISA is incorrect (must be 106 characters).

    This might be considered an issue - the reader must either reject the file immediately or at least flag the consumer. We'll make sure this is reflected in the ErrorContext.

    If you correct your file and try with a valid one it would be read according to the template.

     

     

    0
  • Comment author
    DevMonkey

    Thank you- I trusted in the (non-existent) integrity of the file a bit too much, this in light of the source (the CMS 270/271 Companion Document PDF Appendix A- which is indeed missing padding in ISA02, ISA04, ISA06, and ISA08); flagging this issue in the ErrorContext sounds like an excellent idea. With a corrected header (below) all works as expected when parsing EB13.

    ISA*00*          *00*          *ZZ*CMS            *ZZ*SUBMITTERID    *160127*0758*^*00501*111111111*0*P*|~

    Notably, when I tried to copy/paste the corrected ISA into this forum's web editor, most spaces in the padded elements were stripped in the process as well, so I had to manually add them back in above.  My guess is something similar happened when they created the CMS documentation- something I'll be keeping in mind moving forward when copying samples from companion documents or when sharing samples.

    Thanks again.

    0

Please sign in to leave a comment.