HIPAA errors
I have been struggling to get some 278 (service approval) HIPAA messages in through my BizTalk box (using the accelerator). I was stumped. I received some sample messages from colleagues, and I still couldn't get the messages processed.
Then Keith (on the BizTalk team at MS) gave me an idea. I started up Notepad2 to look at the messages, and turned on the encoding/hidden characters. Voila! The line endings were CRLF. Changed them all to LF, and everything started going through! Yeah! In hindsight, it always seems to be the smallest thing that is the hardest to solve. I remember that when I was first using C, I would spend hours to fix an issue, and it turned out to be a missing semi-colon.
For future reference, here is a small sample (of course wrapping is all messed up):
ISA*00* *00* *ZZ*7654321 *ZZ*1234567 *050101*1200*U*00401*000000054*0*T*:GS*HI*7654321*1234567*20050101*0717*141797357*X*004010X094A1ST*278*0002BHT*0078*11*20030721071727*20030721*071727HL*1**20*1NM1*X3*2*NYSDOH*****PI*141797357PER*IC*eMedNY PROVIDER SERVICES*TE*8003439000HL*2*1*21*1NM1*1P*1******46*11111111REF*ZH*00358690HL*3*2*22*1TRN*1*GS192050236782100@03202071727*1141797357NM1*IL*1*MEMBER*IMA****MI*XX22222XREF*HJ*02HL*4*3*19*1NM1*1T*1******46*11111111REF*ZH*01234567HL*5*4*SS*0UM*HS*I*2HCR*A1*93387654321DTP*472*D8*20030721HI*BO:A4554:::300SE*21*0002GE*1*141797357IEA*1*000000054
The error messages are so much more useful in this new version. Very verbose messages, but useful. Here is a sample:
Event Type: Error
Event Source: HIPAA EDI Subsystem
Event Category: BizTalk Server 2006
Event ID: 24
Date: 4/25/2006
Time: 10:06:03 PM
User: N/A
Computer: POC
Description:Error encountered: ERROR (62), interchangenr 10052 :The length of the element is not correct. Contact the sender.
source format: [5 00401 ,X12-4010]
source document: [278 004010DEFAULT X X094A1,Health Care Services Review -- Resp]
source segment: [data#0,def#7,tag=IEA ,name=Interchange Control Trailer]
source element: [def#2,elm#2,comp#0,tag=9012,name=Interchange control number], value: [00000354], fixed length: [9] (msgnr:1 segnr:0)(line:27 pos:0 filepos:934)
Function:ProcessSegment
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
If you wade through all of the detail, this message says the length of the element is incorrect. Which element? Read further. It identifies the element (including which segment it is in). It even tells you the type of element. In this case, I munged the ICN (interchange control number) so that the ICN at the begining of the message didn't match the one at the end. If other fields didn't match, it would show the two different values. This makes it much nicer to deduce content errors in your message. One error like this might create several errors in the event log, so always try to start with the first error message.
-bhp
Then Keith (on the BizTalk team at MS) gave me an idea. I started up Notepad2 to look at the messages, and turned on the encoding/hidden characters. Voila! The line endings were CRLF. Changed them all to LF, and everything started going through! Yeah! In hindsight, it always seems to be the smallest thing that is the hardest to solve. I remember that when I was first using C, I would spend hours to fix an issue, and it turned out to be a missing semi-colon.
For future reference, here is a small sample (of course wrapping is all messed up):
ISA*00* *00* *ZZ*7654321 *ZZ*1234567 *050101*1200*U*00401*000000054*0*T*:GS*HI*7654321*1234567*20050101*0717*141797357*X*004010X094A1ST*278*0002BHT*0078*11*20030721071727*20030721*071727HL*1**20*1NM1*X3*2*NYSDOH*****PI*141797357PER*IC*eMedNY PROVIDER SERVICES*TE*8003439000HL*2*1*21*1NM1*1P*1******46*11111111REF*ZH*00358690HL*3*2*22*1TRN*1*GS192050236782100@03202071727*1141797357NM1*IL*1*MEMBER*IMA****MI*XX22222XREF*HJ*02HL*4*3*19*1NM1*1T*1******46*11111111REF*ZH*01234567HL*5*4*SS*0UM*HS*I*2HCR*A1*93387654321DTP*472*D8*20030721HI*BO:A4554:::300SE*21*0002GE*1*141797357IEA*1*000000054
The error messages are so much more useful in this new version. Very verbose messages, but useful. Here is a sample:
Event Type: Error
Event Source: HIPAA EDI Subsystem
Event Category: BizTalk Server 2006
Event ID: 24
Date: 4/25/2006
Time: 10:06:03 PM
User: N/A
Computer: POC
Description:Error encountered: ERROR (62), interchangenr 10052 :The length of the element is not correct. Contact the sender.
source format: [5 00401 ,X12-4010]
source document: [278 004010DEFAULT X X094A1,Health Care Services Review -- Resp]
source segment: [data#0,def#7,tag=IEA ,name=Interchange Control Trailer]
source element: [def#2,elm#2,comp#0,tag=9012,name=Interchange control number], value: [00000354], fixed length: [9] (msgnr:1 segnr:0)(line:27 pos:0 filepos:934)
Function:ProcessSegment
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
If you wade through all of the detail, this message says the length of the element is incorrect. Which element? Read further. It identifies the element (including which segment it is in). It even tells you the type of element. In this case, I munged the ICN (interchange control number) so that the ICN at the begining of the message didn't match the one at the end. If other fields didn't match, it would show the two different values. This makes it much nicer to deduce content errors in your message. One error like this might create several errors in the event log, so always try to start with the first error message.
-bhp
Comments