Skip to content

Commit cf5774b

Browse files
author
Cloud Cray
committed
Adds 5010 versions of 837 parsers for Professional and Institutional claims
1 parent dc9c154 commit cf5774b

File tree

8 files changed

+79458
-17
lines changed

8 files changed

+79458
-17
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
ISA*00* *00* *ZZ*1234567 *ZZ*11111 *170508*1141*^*00501*000000101*1*P*:~
2+
GS*HC*XXXXXXX*XXXXX*20170617*1741*101*X*005010X223A2~
3+
ST*837*987654*005010X223A2~
4+
BHT*0019*00*0123*19960918*0932*CH~
5+
NM1*41*2*JONES HOSPITAL*****46*12345~
6+
PER*IC*JANE DOE*TE*9005555555~
7+
NM1*40*2*MEDICARE*****46*00120~
8+
HL*1**20*1~
9+
PRV*BI*PXC*203BA0200N~
10+
NM1*85*2*JONES HOSPITAL*****XX*9876540809~
11+
N3*225 MAIN STREET BARKLEY BUILDING~
12+
N4*CENTERVILLE*PA*17111~
13+
REF*EI*567891234~
14+
PER*IC*CONNIE*TE*3055551234~
15+
HL*2*1*22*0~
16+
SBR*P*18*******MB~
17+
NM1*IL*1*DOE*JOHN*T***MI*030005074A~
18+
N3*125 CITY AVENUE~
19+
N4*CENTERVILLE*PA*17111~
20+
DMG*D8*19261111*M~
21+
NM1*PR*2*MEDICARE B*****PI*00435~
22+
REF*G2*330127~
23+
CLM*756048Q*89.93**14:A:1*A*Y*Y~
24+
DTP*434*RD8*19960911~
25+
CL1*3**01~
26+
HI*BK:3669~
27+
HI*BF:4019*BF:79431~
28+
HI*BH:A1:D8:19261111*BH:A2:D8:19911101*BH:B1:D8:19261111*BH:B2:D8:19870101~
29+
HI*BE:A2:::15.31~
30+
HI*BG:09~
31+
NM1*71*1*JONES*JOHN*J~
32+
REF*1G*B99937~
33+
SBR*S*01*351630*STATE TEACHERS*****CI~
34+
OI***Y***Y~
35+
NM1*IL*1*DOE*JANE*S***MI*222004433~
36+
N3*125 CITY AVENUE~
37+
N4*CENTERVILLE*PA*17111~
38+
NM1*PR*2*STATE TEACHERS*****PI*1135~
39+
LX*1~
40+
SV2*0305*HC:85025*13.39*UN*1~
41+
DTP*472*D8*19960911~
42+
LX*2~
43+
SV2*0730*HC:93005*76.54*UN*3~
44+
DTP*472*D8*19960911~
45+
SE*42*987654~
46+
GE*1*101~
47+
GS*HC*XXXXXXX*XXXXX*20170617*1741*101*X*005010X223A2~
48+
ST*837*987654*005010X223A2~
49+
BHT*0019*00*0123*19960918*0932*CH~
50+
NM1*41*2*JONES HOSPITAL*****46*12345~
51+
PER*IC*JANE DOE*TE*9005555555~
52+
NM1*40*2*MEDICARE*****46*00120~
53+
HL*1**20*1~
54+
PRV*BI*PXC*203BA0200N~
55+
NM1*85*2*JONES HOSPITAL*****XX*9876540809~
56+
N3*225 MAIN STREET BARKLEY BUILDING~
57+
N4*CENTERVILLE*PA*17111~
58+
REF*EI*567891234~
59+
PER*IC*CONNIE*TE*3055551234~
60+
HL*2*1*22*0~
61+
SBR*P*18*******MB~
62+
NM1*IL*1*DOE*JOHN*T***MI*030005074A~
63+
N3*125 CITY AVENUE~
64+
N4*CENTERVILLE*PA*17111~
65+
DMG*D8*19261111*M~
66+
NM1*PR*2*MEDICARE B*****PI*00435~
67+
REF*G2*330127~
68+
CLM*756048Q*89.93**14:A:1*A*Y*Y~
69+
DTP*434*RD8*19960911~
70+
CL1*3**01~
71+
HI*BK:3669~
72+
HI*BF:4019*BF:79431~
73+
HI*BH:A1:D8:19261111*BH:A2:D8:19911101*BH:B1:D8:19261111*BH:B2:D8:19870101~
74+
HI*BE:A2:::15.31~
75+
HI*BG:09~
76+
NM1*71*1*JONES*JOHN*J~
77+
REF*1G*B99937~
78+
SBR*S*01*351630*STATE TEACHERS*****CI~
79+
OI***Y***Y~
80+
NM1*IL*1*DOE*JANE*S***MI*222004433~
81+
N3*125 CITY AVENUE~
82+
N4*CENTERVILLE*PA*17111~
83+
NM1*PR*2*STATE TEACHERS*****PI*1135~
84+
LX*1~
85+
SV2*0305*HC:85025*13.39*UN*1~
86+
DTP*472*D8*19960911~
87+
LX*2~
88+
SV2*0730*HC:93005*76.54*UN*3~
89+
DTP*472*D8*19960911~
90+
SE*42*987654~
91+
GE*1*101~
92+
IEA*1*000000101~
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
ISA*00* *00* *ZZ*1234567 *ZZ*11111 *170508*1141*^*00501*000000101*1*P*:~
2+
GS*HC*XXXXXXX*XXXXX*20170617*1741*101*X*005010X222A1~
3+
ST*837*1239*005010X222A1~
4+
BHT*0019*00*010*20170617*1741*CH~
5+
NM1*41*2*SUBMITTER*****46*ABC123~
6+
PER*IC*BOB SMITH*TE*4805551212~
7+
NM1*40*2*RECEIVER*****46*44556~
8+
HL*1**20*1~
9+
NM1*85*2*BILLING PROVIDER*****XX*1122334455~
10+
N3*1234 SOME ROAD~
11+
N4*CHICAGO*IL*606739999~
12+
REF*EI*999999999~
13+
HL*2*1*22*0~
14+
SBR*P*18*******12~
15+
NM1*IL*1*BLOGGS*JOE****MI*1234567890~
16+
N3*1 SOME BLVD~
17+
N4*CHICAGO*IL*606129998~
18+
DMG*D8*19570111*M~
19+
NM1*PR*2*PAYER*****PI*12345~
20+
N3*1 PAYER WAY~
21+
N4*ST LOUIS*MO*212441850~
22+
REF*2U*W1014~
23+
CLM*1000A*140***19:B:1*Y*A*Y*Y~
24+
HI*ABK:I10~
25+
LX*1~
26+
SV1*HC:99213*140*UN*1***1~
27+
DTP*472*D8*20151124~
28+
HL*3*1*22*0~
29+
SBR*P*18*******12~
30+
NM1*IL*1*BLOGGS*FRED****MI*9876543201~
31+
N3*1 ANOTHER STR~
32+
N4*CHICAGO*IL*606129998~
33+
DMG*D8*19700601*M~
34+
NM1*PR*2*PAYER*****PI*12345~
35+
N3*1 PAYER WAY~
36+
N4*ST LOUIS*MO*212441850~
37+
REF*2U*W1014~
38+
CLM*1001A*140***19:B:1*Y*A*Y*Y~
39+
HI*ABK:I10~
40+
LX*1~
41+
SV1*HC:99213*140*UN*1***1~
42+
DTP*472*D8*20151124~
43+
SE*41*1239~
44+
GE*1*101~
45+
IEA*1*000000101~

tests/test_5010_837I.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import datetime
2+
from decimal import Decimal
3+
import unittest
4+
5+
from tigershark.parsers.M837_5010_X223_A1 import parsed_837
6+
7+
8+
class TestParserX223A1(unittest.TestCase):
9+
def test_financial_information(self):
10+
with open('tests/5010-837-institutional-example.txt') as f:
11+
parsed = parsed_837.unmarshall(f.read().strip())
12+
13+
segments = parsed.segs()
14+
15+
self.assertEqual(len(segments), 92)
16+
self.assertEqual(
17+
[str(x) for x in segments[1].elements],
18+
[
19+
"GS",
20+
"HC",
21+
"XXXXXXX",
22+
"XXXXX",
23+
"20170617",
24+
"1741",
25+
"101",
26+
"X",
27+
"005010X223A2"
28+
]
29+
)
30+
segment_first_nm1 = parsed.descendant("segment", "NM1")[0]
31+
self.assertEqual(
32+
[str(x) for x in segment_first_nm1.elements],
33+
[
34+
"NM1",
35+
"41",
36+
"2",
37+
"JONES HOSPITAL",
38+
"",
39+
"",
40+
"",
41+
"",
42+
"46",
43+
"12345"
44+
]
45+
)

tests/test_5010_837P.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import datetime
2+
from decimal import Decimal
3+
import unittest
4+
5+
from tigershark.parsers.M837_5010_X222_A1 import parsed_837
6+
7+
8+
class TestParserX222A1(unittest.TestCase):
9+
def test_financial_information(self):
10+
with open('tests/5010-837-professional-example.txt') as f:
11+
parsed = parsed_837.unmarshall(f.read().strip())
12+
13+
segments = parsed.segs()
14+
15+
self.assertEqual(len(segments), 45)
16+
self.assertEqual(
17+
[str(x) for x in segments[1].elements],
18+
[
19+
"GS",
20+
"HC",
21+
"XXXXXXX",
22+
"XXXXX",
23+
"20170617",
24+
"1741",
25+
"101",
26+
"X",
27+
"005010X222A1"
28+
]
29+
)
30+
segment_first_nm1 = parsed.descendant("segment", "NM1")[0]
31+
self.assertEqual(
32+
[str(x) for x in segment_first_nm1.elements],
33+
[
34+
"NM1",
35+
"41",
36+
"2",
37+
"SUBMITTER",
38+
"",
39+
"",
40+
"",
41+
"",
42+
"46",
43+
"ABC123"
44+
]
45+
)

tigershark/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,5 @@ def version_string(self):
9797
X12_4010_XXXC = X12VersionTuple.for_4010('XXXC')
9898
X12_5010_X221A1 = X12VersionTuple.for_5010('X221A1')
9999
X12_5010_X279A1 = X12VersionTuple.for_5010('X279A1')
100+
X12_5010_X222A1 = X12VersionTuple.for_5010('X222A1')
101+
X12_5010_X223A1 = X12VersionTuple.for_5010('X223A1')

0 commit comments

Comments
 (0)