Skip to content

Commit 4dca35b

Browse files
committed
Fixes #42. Create fake loop to wrap LS/LE explicit pair.
1 parent 201e437 commit 4dca35b

File tree

6 files changed

+34
-23
lines changed

6 files changed

+34
-23
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ pkg-plist
1313
TestResults/
1414
obj/
1515
testenv/
16-
Backup/pyx12.sln
16+
Backup/
1717
*.htm
1818
*.pyperf

pyx12.pyproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
<Content Include="pyx12\map\277.5010.X214.xml" />
3030
<Content Include="pyx12\map\999.5010X231.A1.xml" />
3131
<Content Include="pyx12\map\loop_only.xsl" />
32+
<Content Include="pyx12\tests\834_ls_le_ls.txt" />
3233
<Content Include="pyx12\test\files\834_eol_in_element.txt" />
3334
<Content Include="pyx12\test\files\834_lui_id.txt" />
3435
<Content Include="pyx12\test\files\834_lui_id_5010.txt" />

pyx12/map/834.5010.X220.A1.v2.xml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2050,17 +2050,21 @@
20502050
<!--End of 2320 loop-->
20512051
</loop>
20522052
<!--End of 2300 loop-->
2053-
<loop xid="2700" pos="6800" usage="R" repeat="&gt;1" name="Additional Reporting Categories">
2053+
<loop xid="2700_LS" pos="6800" usage="S" repeat="1" name="Additional Reporting Categories">
20542054
<segment xid="LS" usage="R" pos="6880" max_use="1" name="Additional Reporting Categories">
2055-
<element xid="LS01" data_ele="447" usage="R" seq="01" name="Loop Identifier Code" />
2055+
<element xid="LS01" data_ele="447" usage="R" seq="01" name="Loop Identifier Code" >
2056+
<valid_codes>
2057+
<code>2700</code>
2058+
</valid_codes>
2059+
</element>
20562060
</segment>
20572061
<!--End of segment LS-->
2058-
<loop xid="2710" pos="6801" usage="R" repeat="&gt;1" name="Member Reporting Categories">
2062+
<loop xid="2700" pos="6881" usage="R" repeat="&gt;1" name="Member Reporting Categories">
20592063
<segment xid="LX" usage="R" pos="6881" max_use="1" name="Member Reporting Categories">
20602064
<element xid="LX01" data_ele="554" usage="R" seq="01" name="Assigned Number" />
20612065
</segment>
20622066
<!--End of segment LX-->
2063-
<loop xid="2750" pos="6802" usage="R" repeat="1" name="Reporting Category">
2067+
<loop xid="2750" pos="6882" usage="R" repeat="1" name="Reporting Category">
20642068
<segment xid="N1" usage="R" pos="6882" max_use="1" name="Reporting Category">
20652069
<syntax>R0203</syntax>
20662070
<syntax>P0304</syntax>
@@ -2125,9 +2129,9 @@
21252129
</segment>
21262130
<!--End of segment LE-->
21272131
</loop>
2128-
<!--End of 2710 loop-->
2132+
<!--End of 2700 loop-->
21292133
</loop>
2130-
<!--End of 2700 loop-->
2134+
<!--End of 2700_LS loop-->
21312135
</loop>
21322136
<!--End of 2000 loop-->
21332137
</loop>

pyx12/map/834.5010.X220.A1.xml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4787,11 +4787,11 @@
47874787
<!--End of 2320 loop-->
47884788
</loop>
47894789
<!--End of 2300 loop-->
4790-
<loop xid="2700">
4790+
<loop xid="2700_LS">
47914791
<name>Additional Reporting Categories</name>
47924792
<usage>S</usage>
47934793
<pos>6800</pos>
4794-
<repeat>&gt;1</repeat>
4794+
<repeat>1</repeat>
47954795
<segment xid="LS">
47964796
<name>Additional Reporting Categories</name>
47974797
<usage>R</usage>
@@ -4802,13 +4802,16 @@
48024802
<name>Loop Identifier Code</name>
48034803
<usage>R</usage>
48044804
<seq>01</seq>
4805+
<valid_codes>
4806+
<code>2700</code>
4807+
</valid_codes>
48054808
</element>
48064809
</segment>
48074810
<!--End of LS segment-->
4808-
<loop xid="2710">
4811+
<loop xid="2700">
48094812
<name>Member Reporting Categories</name>
48104813
<usage>S</usage>
4811-
<pos>6801</pos>
4814+
<pos>6881</pos>
48124815
<repeat>&gt;1</repeat>
48134816
<segment xid="LX">
48144817
<name>Member Reporting Categories</name>
@@ -4826,7 +4829,7 @@
48264829
<loop xid="2750">
48274830
<name>Reporting Category</name>
48284831
<usage>S</usage>
4829-
<pos>6802</pos>
4832+
<pos>6882</pos>
48304833
<repeat>1</repeat>
48314834
<segment xid="N1">
48324835
<name>Reporting Category</name>
@@ -4970,13 +4973,16 @@
49704973
<name>Loop Identifier Code</name>
49714974
<usage>R</usage>
49724975
<seq>01</seq>
4973-
</element>
4976+
<valid_codes>
4977+
<code>2700</code>
4978+
</valid_codes>
4979+
</element>
49744980
</segment>
49754981
<!--End of LE segment-->
49764982
</loop>
4977-
<!--End of 2710 loop-->
4983+
<!--End of 2700 loop-->
49784984
</loop>
4979-
<!--End of 2700 loop-->
4985+
<!--End of 2700_LS loop-->
49804986
</loop>
49814987
<!--End of 2000 loop-->
49824988
</loop>

pyx12/scripts/x12valid.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
def check_map_path_arg(map_path):
4343
if not isdir(map_path):
44-
raise argparse.ArgumentError(None, "The MAP_PATH '{}' is not a valid directory".format(map_path))
44+
raise argparse.ArgumentError(None, "The MAP_PATH '{}' is not a valid directory. Current directory is {}".format(map_path, os.getcwd()))
4545
index_file = 'maps.xml'
4646
if not isfile(os.path.join(map_path, index_file)):
4747
raise argparse.ArgumentError(None,

pyx12/tests/834_ls_le_ls.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
ISA*00* *00* *ZZ*ORDHS *ZZ*MB888880 *130312*0206*!*00501*000000238*0*P*:~
1+
ISA*00* *00* *ZZ*ORDHS *ZZ*MB888880 *130312*0206*!*00501*000000238*0*P*:~
22
GS*BE*ORDHS*MB888880*20130312*020630*146*X*005010X220A1~
3-
ST*834*146001*005010X220A1~
3+
ST*834*146001*005010X220A1~
44
BGN*00*0158420020130310001*20130312*0206*PT***2~
5-
REF*38*500647166 ~
5+
REF*38*500647166~
66
N1*P5*OR-MMIS*FI*930592162~
77
N1*IN**FI*455492679~
88
INS*Y*18*001*AI*A*C**AC**N~
@@ -25,7 +25,7 @@ DMG*D8*19930620*F~
2525
NM1*31*1~
2626
N3*RECIPIENT MAIL ADDRESS LINE 1*RECIPIENT MAIL ADDRESS LINE 2~
2727
N4*SALEM*OR*97301~
28-
NM1*QD**1*RESPONSIBLE PARTY*SMITH*JOHN~
28+
NM1*QD*1*RESPONSIBLE PARTY*SMITH*JOHN~
2929
NM1*GD*1*COMPANY NAME 40 CHARACTER OF DATA~
3030
HD*001**HMO*12345678902012062020130415N*IND~
3131
DTP*348*D8*20120901~
@@ -49,7 +49,7 @@ LX*5~
4949
N1*75*BRANCH - WORKER~
5050
REF*3L*1234567~
5151
LX*6~
52-
N1*75*FIPS CODE ~
52+
N1*75*FIPS CODE~
5353
REF*3L*88~
5454
LX*7~
5555
N1*75*NATIVE AMERICAN HERITAGE CODE~
@@ -73,6 +73,6 @@ LX*13~
7373
N1*75*END REASON~
7474
REF*17*11~
7575
LE*2700~
76-
SE*73*146001~
76+
SE*74*146001~
7777
GE*1*146~
78-
IEA*1*000000238~
78+
IEA*1*000000238~

0 commit comments

Comments
 (0)