stupidedi 1.1.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +217 -90
- data/Rakefile +13 -7
- data/bin/edi-ed +8 -31
- data/bin/edi-pp +25 -50
- data/doc/Navigating.md +4 -0
- data/doc/{Defining.md → unwritten/Defining.md} +0 -0
- data/doc/{Parsing.md → unwritten/Parsing.md} +0 -0
- data/doc/{Tokenizing.md → unwritten/Tokenizing.md} +0 -0
- data/doc/{Validating.md → unwritten/Validating.md} +0 -0
- data/lib/ruby/array.rb +17 -0
- data/lib/ruby/blank.rb +4 -2
- data/lib/ruby/enumerable.rb +2 -2
- data/lib/ruby/module.rb +0 -28
- data/lib/ruby/to_d.rb +5 -5
- data/lib/ruby/try.rb +4 -2
- data/lib/stupidedi.rb +3 -0
- data/lib/stupidedi/builder.rb +1 -0
- data/lib/stupidedi/builder/builder_dsl.rb +2 -2
- data/lib/stupidedi/builder/constraint_table.rb +42 -14
- data/lib/stupidedi/builder/identifier_stack.rb +167 -0
- data/lib/stupidedi/builder/navigation.rb +95 -33
- data/lib/stupidedi/config.rb +53 -5
- data/lib/stupidedi/config/editor_config.rb +1 -2
- data/lib/stupidedi/config/functional_group_config.rb +2 -1
- data/lib/stupidedi/config/interchange_config.rb +3 -1
- data/lib/stupidedi/contrib.rb +9 -0
- data/lib/stupidedi/contrib/002001.rb +13 -0
- data/lib/stupidedi/contrib/002001/guides.rb +20 -0
- data/lib/stupidedi/contrib/002001/guides/FA997.rb +80 -0
- data/lib/stupidedi/contrib/002001/guides/PO830.rb +182 -0
- data/lib/stupidedi/contrib/002001/guides/SH856.rb +215 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs.rb +23 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs/FA997.rb +30 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs/PO830.rb +45 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs/SH856.rb +37 -0
- data/lib/stupidedi/contrib/003010.rb +13 -0
- data/lib/stupidedi/contrib/003010/guides.rb +21 -0
- data/lib/stupidedi/contrib/003010/guides/PC860.rb +170 -0
- data/lib/stupidedi/contrib/003010/guides/PO850.rb +168 -0
- data/lib/stupidedi/contrib/003010/guides/RA820.rb +169 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs.rb +21 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs/PC860.rb +47 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs/PO850.rb +48 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs/RA820.rb +38 -0
- data/lib/stupidedi/contrib/003040.rb +13 -0
- data/lib/stupidedi/contrib/003040/guides.rb +19 -0
- data/lib/stupidedi/contrib/003040/guides/WA142.rb +184 -0
- data/lib/stupidedi/contrib/003040/transaction_set_defs.rb +15 -0
- data/lib/stupidedi/contrib/003040/transaction_set_defs/WA142.rb +52 -0
- data/lib/stupidedi/contrib/003050.rb +13 -0
- data/lib/stupidedi/contrib/003050/guides.rb +15 -0
- data/lib/stupidedi/contrib/003050/guides/PO850.rb +95 -0
- data/lib/stupidedi/contrib/003050/transaction_set_defs.rb +14 -0
- data/lib/stupidedi/contrib/003050/transaction_set_defs/PO850.rb +42 -0
- data/lib/stupidedi/contrib/004010.rb +13 -0
- data/lib/stupidedi/contrib/004010/guides.rb +26 -0
- data/lib/stupidedi/contrib/004010/guides/AR943.rb +87 -0
- data/lib/stupidedi/contrib/004010/guides/FA997.rb +80 -0
- data/lib/stupidedi/contrib/004010/guides/GF990.rb +48 -0
- data/lib/stupidedi/contrib/004010/guides/OW940.rb +120 -0
- data/lib/stupidedi/contrib/004010/guides/PO850.rb +105 -0
- data/lib/stupidedi/contrib/004010/guides/PS830.rb +163 -0
- data/lib/stupidedi/contrib/004010/guides/QM214.rb +127 -0
- data/lib/stupidedi/contrib/004010/guides/RE944.rb +73 -0
- data/lib/stupidedi/contrib/004010/guides/SH856.rb +185 -0
- data/lib/stupidedi/contrib/004010/guides/SM204.rb +283 -0
- data/lib/stupidedi/contrib/004010/guides/SQ866.rb +119 -0
- data/lib/stupidedi/contrib/004010/guides/SS862.rb +177 -0
- data/lib/stupidedi/contrib/004010/guides/SW945.rb +119 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs.rb +51 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/AR943.rb +34 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/FA997.rb +30 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/GF990.rb +21 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/OW940.rb +43 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/PO850.rb +42 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/PS830.rb +44 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/QM214.rb +40 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/RE944.rb +34 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SH856.rb +35 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SM204.rb +66 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SQ866.rb +32 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SS862.rb +40 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SW945.rb +43 -0
- data/lib/stupidedi/editor.rb +4 -1
- data/lib/stupidedi/editor/00401.rb +341 -0
- data/lib/stupidedi/editor/004010.rb +452 -0
- data/{doc/LICENSE.md → lib/stupidedi/editor/004010/N2.rb} +0 -0
- data/lib/stupidedi/editor/004010/N3.rb +0 -0
- data/lib/stupidedi/editor/004010/N4.rb +63 -0
- data/lib/stupidedi/editor/004010/NM1.rb +0 -0
- data/lib/stupidedi/editor/X12.rb +157 -0
- data/lib/stupidedi/editor/transaction_set_ed.rb +1 -1
- data/lib/stupidedi/either.rb +2 -2
- data/lib/stupidedi/guides.rb +1 -0
- data/lib/stupidedi/guides/004010.rb +19 -0
- data/lib/stupidedi/guides/004010/X091A1-HP835.rb +530 -0
- data/lib/stupidedi/guides/004010/element_reqs.rb +38 -0
- data/lib/stupidedi/guides/004010/guide_builder.rb +180 -0
- data/lib/stupidedi/guides/004010/segment_reqs.rb +32 -0
- data/lib/stupidedi/guides/005010.rb +0 -1
- data/lib/stupidedi/guides/005010/X222-HC837P.rb +3 -3
- data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +3 -3
- data/lib/stupidedi/guides/005010/guide_builder.rb +21 -1
- data/lib/stupidedi/reader/input/abstract_input.rb +10 -6
- data/lib/stupidedi/reader/input/delegated_input.rb +11 -7
- data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +3 -2
- data/lib/stupidedi/schema.rb +12 -12
- data/lib/stupidedi/schema/code_list.rb +3 -2
- data/lib/stupidedi/schema/element_use.rb +4 -3
- data/lib/stupidedi/schema/loop_def.rb +4 -3
- data/lib/stupidedi/schema/repeat_count.rb +3 -2
- data/lib/stupidedi/schema/segment_use.rb +5 -4
- data/lib/stupidedi/schema/syntax_note.rb +2 -2
- data/lib/stupidedi/schema/table_def.rb +4 -0
- data/lib/stupidedi/sets.rb +12 -27
- data/lib/stupidedi/values/composite_element_val.rb +5 -3
- data/lib/stupidedi/values/functional_group_val.rb +3 -2
- data/lib/stupidedi/values/interchange_val.rb +15 -1
- data/lib/stupidedi/values/invalid_envelope_val.rb +3 -2
- data/lib/stupidedi/values/invalid_segment_val.rb +2 -1
- data/lib/stupidedi/values/loop_val.rb +3 -2
- data/lib/stupidedi/values/repeated_element_val.rb +10 -3
- data/lib/stupidedi/values/segment_val.rb +3 -1
- data/lib/stupidedi/values/simple_element_val.rb +4 -2
- data/lib/stupidedi/values/table_val.rb +3 -2
- data/lib/stupidedi/values/transaction_set_val.rb +3 -2
- data/lib/stupidedi/version.rb +1 -1
- data/lib/stupidedi/versions/functional_groups.rb +6 -2
- data/lib/stupidedi/versions/functional_groups/002001.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_defs.rb +10696 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/date_val.rb +579 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/fixnum_val.rb +324 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/float_val.rb +356 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/identifier_val.rb +373 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/string_val.rb +403 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/002001/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs.rb +249 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK5.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/ATH.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BFR.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/CUR.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/DTM.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/FST.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/J2X.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MAN.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/REF.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SDP.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD1.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD5.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/UNT.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/002001/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/002001/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/003010.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_defs.rb +9266 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/date_val.rb +579 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/fixnum_val.rb +324 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/float_val.rb +355 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/identifier_val.rb +372 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/string_val.rb +400 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/003010/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs.rb +252 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BCH.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BPS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/CUR.rb +58 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/DTM.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/FOB.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/ITD.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LE.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LS.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MSG.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/POC.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/REF.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/RMT.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD1.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD5.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003010/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/003010/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/003040.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_defs.rb +10777 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/date_val.rb +578 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/fixnum_val.rb +323 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/float_val.rb +356 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/identifier_val.rb +370 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/string_val.rb +401 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/003040/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs.rb +271 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AMT.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BGN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BPS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/CUR.rb +58 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/DTM.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/FOB.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/IT1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/ITD.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LE.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LS.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MSG.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PRR.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/QTY.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/REF.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/REP.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/RMT.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SSS.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD1.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD5.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TDS.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003040/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/003040/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/003050.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_defs.rb +10780 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/date_val.rb +579 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/fixnum_val.rb +324 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/float_val.rb +357 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/identifier_val.rb +371 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/string_val.rb +402 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/003050/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs.rb +271 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AMT.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BGN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BPS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/CUR.rb +58 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/DTM.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/FOB.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/IT1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/ITD.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LE.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LS.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MSG.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PRR.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/QTY.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/REF.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/REP.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/RMT.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SSS.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD1.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD3.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD5.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TDS.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003050/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/003050/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/004010.rb +2 -2
- data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +9461 -13
- data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +3 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +132 -79
- data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +73 -84
- data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +129 -72
- data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +128 -43
- data/lib/stupidedi/versions/functional_groups/004010/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +116 -52
- data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +48 -30
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +274 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK5.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AMT.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BFR.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BPR.rb +49 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BSN.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BSS.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CAS.rb +56 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CLP.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CUR.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/DTM.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/FST.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/JIT.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LIN.rb +53 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LQ.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MEA.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MIA.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MOA.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N4.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/NM1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PLB.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PO4.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/QTY.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/REF.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SDP.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SHP.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SN1.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/ST.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SVC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD1.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD3.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD5.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TRN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TS2.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TS3.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/UIT.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs.rb +13 -0
- data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs/HP835.rb +78 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +3 -3
- data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +4 -3
- data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +4 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +4 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +10 -6
- data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +10 -6
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +6 -6
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CUR.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N1.rb +4 -1
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N4.rb +0 -1
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/REF.rb +1 -0
- data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +4 -4
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +42 -39
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +201 -199
- data/lib/stupidedi/versions/interchanges.rb +3 -0
- data/lib/stupidedi/versions/interchanges/00200.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00200/element_defs.rb +275 -0
- data/lib/stupidedi/versions/interchanges/00200/interchange_def.rb +68 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00300.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00300/element_defs.rb +276 -0
- data/lib/stupidedi/versions/interchanges/00300/interchange_def.rb +68 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00400.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00400/element_defs.rb +268 -0
- data/lib/stupidedi/versions/interchanges/00400/interchange_def.rb +68 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +53 -8
- data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/ISA.rb +2 -2
- data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +3 -2
- data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +23 -0
- data/lib/stupidedi/writer/default.rb +4 -3
- data/spec/examples/integration/generating.example +89 -90
- data/spec/examples/integration/navigating.example +69 -69
- data/spec/examples/integration/parsing.example +250 -22
- data/spec/examples/ruby/array.example +76 -76
- data/spec/examples/ruby/object.example +3 -3
- data/spec/examples/ruby/symbol.example +6 -6
- data/spec/examples/ruby/to_d.example +1 -1
- data/spec/examples/ruby/try.example +6 -6
- data/spec/examples/stupidedi/reader.example +45 -45
- data/spec/examples/stupidedi/reader/failure.example +1 -1
- data/spec/examples/stupidedi/reader/input/delegated_input.example +3 -3
- data/spec/examples/stupidedi/reader/token_reader.example +35 -35
- data/spec/fixtures/FA997/1-good.txt +10 -0
- data/spec/fixtures/PC860/1-good.txt +21 -0
- data/spec/fixtures/PO830/1-good.txt +29 -0
- data/spec/fixtures/PO850/1-good-v3010.txt +31 -0
- data/spec/fixtures/PO850/1-good-v3050.txt +16 -0
- data/spec/fixtures/PS830/1-good.txt +29 -0
- data/spec/fixtures/RA820/1-good.txt +52 -0
- data/spec/fixtures/SH856/1-good.txt +70 -0
- data/spec/fixtures/SQ866/1-good.txt +29 -0
- data/spec/fixtures/SS862/1-good.txt +33 -0
- data/spec/fixtures/WA142/1-good.txt +307 -0
- data/spec/fixtures/X091A1-HP835/1-good.txt +1 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/fixtures.rb +1 -1
- data/spec/support/matchers/either_matchers.rb +29 -2
- data/spec/support/matchers/navigation_matchers.rb +1 -1
- data/spec/support/quickcheck/characters.rb +5 -0
- data/spec/support/quickcheck/property.rb +1 -1
- data/spec/support/rcov.rb +3 -1
- metadata +674 -71
- data/lib/stupidedi/sets/absolute_set.rb +0 -297
- data/lib/stupidedi/sets/abstract_set.rb +0 -174
- data/lib/stupidedi/sets/null_set.rb +0 -125
- data/lib/stupidedi/sets/relative_complement.rb +0 -137
- data/lib/stupidedi/sets/relative_set.rb +0 -269
- data/lib/stupidedi/sets/universal_set.rb +0 -104
- data/spec/examples/stupidedi/sets/absolute_set.example +0 -1577
- data/spec/examples/stupidedi/sets/null_set.example +0 -2
- data/spec/examples/stupidedi/sets/relative_set.example +0 -2
- data/spec/examples/stupidedi/sets/universal_set.example +0 -1
File without changes
|
File without changes
|
@@ -0,0 +1,63 @@
|
|
1
|
+
class Stupidedi
|
2
|
+
module Editor
|
3
|
+
|
4
|
+
class FortyTenEd
|
5
|
+
module N4
|
6
|
+
|
7
|
+
def critique_n4(n4, acc)
|
8
|
+
edit(:N4) do
|
9
|
+
usa_canada =
|
10
|
+
n4.element(2).select(&:present?).defined? ||
|
11
|
+
n4.element(4).select(&:blank?).defined? ||
|
12
|
+
n4.element(4).select{|e| e.node == "US" }.defined? ||
|
13
|
+
n4.element(7).select(&:blank?).defined?
|
14
|
+
|
15
|
+
# State or Province Code
|
16
|
+
n4.element(2).tap do |e|
|
17
|
+
if usa_canada
|
18
|
+
if e.node.blank? and e.node.situational?
|
19
|
+
# Required
|
20
|
+
end
|
21
|
+
else
|
22
|
+
if e.node.present? and e.node.situational?
|
23
|
+
# Forbidden
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Postal Code
|
29
|
+
n4.element(3).tap do |e|
|
30
|
+
if usa_canada and e.node =~ /^(\d{1,8}|\d{10,})$/
|
31
|
+
acc.warn(e, "must be 9-digits for usa")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Country Code
|
36
|
+
n4.element(4).tap do |e|
|
37
|
+
if usa_canada
|
38
|
+
if e.node.present? and e.node.situational?
|
39
|
+
# Forbidden
|
40
|
+
end
|
41
|
+
else
|
42
|
+
# Country codes 2-digit from ISO 3166
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Country Subdivision Code
|
47
|
+
# n4.element(7).tap do |e|
|
48
|
+
# if usa_canada
|
49
|
+
# if e.node.present? and e.node.situational?
|
50
|
+
# # Forbidden
|
51
|
+
# end
|
52
|
+
# else
|
53
|
+
# # Country subdivision codes from ISO 3166
|
54
|
+
# end
|
55
|
+
# end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
File without changes
|
@@ -0,0 +1,157 @@
|
|
1
|
+
module Stupidedi
|
2
|
+
module Editor
|
3
|
+
|
4
|
+
class X12 < AbstractEd
|
5
|
+
|
6
|
+
# @return [Config]
|
7
|
+
attr_reader :config
|
8
|
+
|
9
|
+
# @return [Time]
|
10
|
+
attr_reader :received
|
11
|
+
|
12
|
+
def initialize(config, received)
|
13
|
+
@config, @received =
|
14
|
+
config, received
|
15
|
+
end
|
16
|
+
|
17
|
+
def critique(st, acc)
|
18
|
+
acc.tap do
|
19
|
+
critique_st(st, acc)
|
20
|
+
|
21
|
+
# st.find(:SE).tap do |se|
|
22
|
+
# st.distance(se).tap do |n|
|
23
|
+
# n.times { st.next.tap{|z| z }}
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def critique_isa(isa, acc)
|
33
|
+
edit(:ISA07) do
|
34
|
+
isa.element(7).tap do |e|
|
35
|
+
if e.node.present? and e.node.valid?
|
36
|
+
unless %w(02 ZZ).include?(e.node)
|
37
|
+
acc.ta105(e, "R", "005", "must be '02', or 'ZZ'")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
edit(:ISA12) do
|
44
|
+
isa.element(12).tap do |e|
|
45
|
+
if e.node.present? and e.node.valid?
|
46
|
+
unless e.node == "00401"
|
47
|
+
acc.ta105(e, "R", "017", "must be '00401'")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def critique_gs(gs, acc)
|
55
|
+
end
|
56
|
+
|
57
|
+
def critique_st(st, acc)
|
58
|
+
st.parent.tap do |gs|
|
59
|
+
gs.parent.tap do |isa|
|
60
|
+
critique_isa(isa, acc)
|
61
|
+
end
|
62
|
+
|
63
|
+
critique_gs(gs, acc)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def critique_nm1(nm1, acc)
|
68
|
+
edit(:NM1) do
|
69
|
+
# Organization/last name
|
70
|
+
nm1.element(3).tap do |e|
|
71
|
+
if e.node.blank? and e.node.usage.optional?
|
72
|
+
acc.warn(e, "optional element is not present")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# Non-person entity
|
77
|
+
if nm1.element(2).select{|e| e.node == "2" }.defined?
|
78
|
+
# First name
|
79
|
+
nm1.element(4).tap do |e|
|
80
|
+
if e.node.present? and e.node.usage.optional?
|
81
|
+
acc.stc01(e, "T", "A8", "505", "must not be present when NM102 is 2")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Middle name
|
86
|
+
nm1.element(5).tap do |e|
|
87
|
+
if e.node.present? and e.node.usage.optional?
|
88
|
+
acc.stc01(e, "T", "A8", "514", "must not be present when NM102 is 2")
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# Prefix name
|
93
|
+
nm1.element(6).tap do |e|
|
94
|
+
if e.node.present? and e.node.usage.optional?
|
95
|
+
acc.stc01(e, "T", "A8", "125", "must not be present when NM102 is 2")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# Suffix name
|
100
|
+
nm1.element(7).tap do |e|
|
101
|
+
if e.node.present? and e.node.usage.optional?
|
102
|
+
acc.stc01(e, "T", "A8", "125", "must not be present when NM102 is 2")
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
# Person
|
108
|
+
if nm1.element(2).select{|e| e.node == "1" }.defined?
|
109
|
+
# First name
|
110
|
+
nm1.element(4).tap do |e|
|
111
|
+
if e.node.blank? and e.node.usage.optional?
|
112
|
+
acc.warn(e, "optional element is not present")
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
# Middle name
|
117
|
+
nm1.element(5).tap do |e|
|
118
|
+
if e.node.blank? and e.node.usage.optional?
|
119
|
+
acc.warn(e, "optional element is not present")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# Prefix name
|
124
|
+
nm1.element(6).tap do |e|
|
125
|
+
if e.node.blank? and e.node.usage.optional?
|
126
|
+
acc.warn(e, "optional element is not present")
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Suffix name
|
131
|
+
nm1.element(7).tap do |e|
|
132
|
+
if e.node.blank? and e.node.usage.optional?
|
133
|
+
acc.warn(e, "optional element is not present")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def critique_n3(n3, acc)
|
141
|
+
edit(:N3) do
|
142
|
+
n3.element(2).tap do |e|
|
143
|
+
if e.node.usage.optional?
|
144
|
+
unless n3.element(1).reject(&:blank?).defined?
|
145
|
+
# Second address line (N302) shouldn't be present if the
|
146
|
+
# first (N301) isn't also present
|
147
|
+
acc.warn(e, "second address line present without first line")
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
end
|
data/lib/stupidedi/either.rb
CHANGED
@@ -53,7 +53,7 @@ module Stupidedi
|
|
53
53
|
true
|
54
54
|
end
|
55
55
|
|
56
|
-
def fetch(default)
|
56
|
+
def fetch(default = nil)
|
57
57
|
@value
|
58
58
|
end
|
59
59
|
|
@@ -174,7 +174,7 @@ module Stupidedi
|
|
174
174
|
false
|
175
175
|
end
|
176
176
|
|
177
|
-
def fetch(default)
|
177
|
+
def fetch(default = nil)
|
178
178
|
default
|
179
179
|
end
|
180
180
|
|
data/lib/stupidedi/guides.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Stupidedi
|
2
|
+
module Guides
|
3
|
+
|
4
|
+
#
|
5
|
+
# @see Stupidedi::Versions::FunctionalGroups::FortyTen
|
6
|
+
#
|
7
|
+
module FortyTen
|
8
|
+
|
9
|
+
autoload :SegmentReqs, "stupidedi/guides/004010/segment_reqs"
|
10
|
+
autoload :ElementReqs, "stupidedi/guides/004010/element_reqs"
|
11
|
+
autoload :GuideBuilder, "stupidedi/guides/004010/guide_builder"
|
12
|
+
|
13
|
+
module X091A1
|
14
|
+
autoload :HP835, "stupidedi/guides/004010/X091A1-HP835"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,530 @@
|
|
1
|
+
module Stupidedi
|
2
|
+
module Guides
|
3
|
+
module FortyTen
|
4
|
+
module X091A1
|
5
|
+
|
6
|
+
b = GuideBuilder
|
7
|
+
d = Schema
|
8
|
+
r = SegmentReqs
|
9
|
+
e = ElementReqs
|
10
|
+
s = Versions::FunctionalGroups::FortyTen::SegmentDefs
|
11
|
+
t = Versions::FunctionalGroups::FortyTen::TransactionSetDefs
|
12
|
+
|
13
|
+
HP835 = b.build(t::HP835,
|
14
|
+
d::TableDef.header("Table 1 - Header",
|
15
|
+
b::Segment(100, s::ST, "Transaction Set Header",
|
16
|
+
r::Required, d::RepeatCount.bounded(1),
|
17
|
+
b::Element(e::Required, "Transaction Set Identifier Code", b::Values("835")),
|
18
|
+
b::Element(e::Required, "Transaction Set Control Number")),
|
19
|
+
b::Segment(200, s::BPR, "Financial Information",
|
20
|
+
r::Required, d::RepeatCount.bounded(1),
|
21
|
+
b::Element(e::Required, "Transaction Handling Code", b::Values("C", "D", "H", "I", "P", "U", "X")),
|
22
|
+
b::Element(e::Required, "Total Actual Provider Payment Amount", b::MaxLength(11)),
|
23
|
+
b::Element(e::Required, "Credit or Debit Flag Code", b::Values("C", "D")),
|
24
|
+
b::Element(e::Required, "Payment Method Code", b::Values("ACH", "BOP", "CHK", "FWT", "NON")),
|
25
|
+
b::Element(e::Situational, "Payment Format Code", b::Values("CCP", "CTX")),
|
26
|
+
b::Element(e::Situational, "Depository Financial Institution (DFI) Identification Number Qualifier", b::Values("01", "04")),
|
27
|
+
b::Element(e::Situational, "Sender DFI Number"),
|
28
|
+
b::Element(e::Situational, "Account Number Qualifier", b::Values("DA")),
|
29
|
+
b::Element(e::Situational, "Sender Bank Account Number"),
|
30
|
+
b::Element(e::Situational, "Payer Identifier"),
|
31
|
+
b::Element(e::Situational, "Originating Company Supplemental Code"),
|
32
|
+
b::Element(e::Situational, "Depository Financial Institution (DFI) Identification Number Qualifier", b::Values("01", "04")),
|
33
|
+
b::Element(e::Situational, "Receiver or Provider Bank ID Number"),
|
34
|
+
b::Element(e::Situational, "Account Number Qualifier", b::Values("DA", "SG")),
|
35
|
+
b::Element(e::Situational, "Receiver or Provider Account Number"),
|
36
|
+
b::Element(e::Required, "Check Issue or EFT Effective Date"),
|
37
|
+
b::Element(e::NotUsed, "Business Function Code"),
|
38
|
+
b::Element(e::NotUsed, "(DFI) ID Number Qualifier"),
|
39
|
+
b::Element(e::NotUsed, "(DFI) Identification Number"),
|
40
|
+
b::Element(e::NotUsed, "Account Number Qualifier"),
|
41
|
+
b::Element(e::NotUsed, "Account Number")),
|
42
|
+
b::Segment(400, s::TRN, "Reassociation Trace Number",
|
43
|
+
r::Required, d::RepeatCount.bounded(1),
|
44
|
+
b::Element(e::Required, "Trace Type Code", b::Values("1")),
|
45
|
+
b::Element(e::Required, "Check or EFT Trace Number"),
|
46
|
+
b::Element(e::Required, "Payer Identifier"),
|
47
|
+
b::Element(e::Situational, "Originating Company Supplemental Code")),
|
48
|
+
b::Segment(500, s::CUR, "Foreign Currency Information",
|
49
|
+
r::Situational, d::RepeatCount.bounded(1),
|
50
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PR")),
|
51
|
+
b::Element(e::Required, "Currency Code"),
|
52
|
+
b::Element(e::Situational, "Exchange Rate"),
|
53
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
54
|
+
b::Element(e::NotUsed, "Currency Code"),
|
55
|
+
b::Element(e::NotUsed, "Currency Market/Exchange Code"),
|
56
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
57
|
+
b::Element(e::NotUsed, "Date"),
|
58
|
+
b::Element(e::NotUsed, "Time"),
|
59
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
60
|
+
b::Element(e::NotUsed, "Date"),
|
61
|
+
b::Element(e::NotUsed, "Time"),
|
62
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
63
|
+
b::Element(e::NotUsed, "Date"),
|
64
|
+
b::Element(e::NotUsed, "Time"),
|
65
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
66
|
+
b::Element(e::NotUsed, "Date"),
|
67
|
+
b::Element(e::NotUsed, "Time"),
|
68
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
69
|
+
b::Element(e::NotUsed, "Date"),
|
70
|
+
b::Element(e::NotUsed, "Time")),
|
71
|
+
b::Segment(600, s::REF, "Receiver Identification",
|
72
|
+
r::Situational, d::RepeatCount.bounded(1),
|
73
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("EV")),
|
74
|
+
b::Element(e::Required, "Receiver Identifier"),
|
75
|
+
b::Element(e::NotUsed, "Description"),
|
76
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
77
|
+
b::Segment(600, s::REF, "Version Identification",
|
78
|
+
r::Situational, d::RepeatCount.bounded(1),
|
79
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("F2")),
|
80
|
+
b::Element(e::Required, "Version Identification Code"),
|
81
|
+
b::Element(e::NotUsed, "Description"),
|
82
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
83
|
+
b::Segment(700, s::DTM, "Production Date",
|
84
|
+
r::Situational, d::RepeatCount.bounded(1),
|
85
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("405")),
|
86
|
+
b::Element(e::Required, "Production Date"),
|
87
|
+
b::Element(e::NotUsed, "Time"),
|
88
|
+
b::Element(e::NotUsed, "Time Code"),
|
89
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
90
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
91
|
+
|
92
|
+
d::LoopDef.build("1000A PAYER IDENTIFICATION",
|
93
|
+
d::RepeatCount.bounded(1),
|
94
|
+
b::Segment( 800, s::N1, "Payer Identification",
|
95
|
+
r::Required, d::RepeatCount.bounded(1),
|
96
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PR")),
|
97
|
+
b::Element(e::Situational, "Payer Name"),
|
98
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("XV")),
|
99
|
+
b::Element(e::Situational, "Payer Identifier"),
|
100
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
101
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
102
|
+
b::Segment(1000, s::N3, "Payer Address",
|
103
|
+
r::Required, d::RepeatCount.bounded(1),
|
104
|
+
b::Element(e::Required, "Payer Address Line"),
|
105
|
+
b::Element(e::Situational, "Payer Address Line")),
|
106
|
+
b::Segment(1100, s::N4, "Payer City, State, ZIP Code",
|
107
|
+
r::Required, d::RepeatCount.bounded(1),
|
108
|
+
b::Element(e::Required, "Payer City Name"),
|
109
|
+
b::Element(e::Required, "Payer State or Province Code"),
|
110
|
+
b::Element(e::Required, "Payer Postal Zone or ZIP Code"),
|
111
|
+
b::Element(e::NotUsed, "Country Code"),
|
112
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
113
|
+
b::Element(e::NotUsed, "Location Identifier")),
|
114
|
+
b::Segment(1200, s::REF, "Additional Payer Identification",
|
115
|
+
r::Situational, d::RepeatCount.bounded(4),
|
116
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("2U", "EO", "HI", "NF")),
|
117
|
+
b::Element(e::Required, "Additional Payer Identifier"),
|
118
|
+
b::Element(e::NotUsed, "Description"),
|
119
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
120
|
+
b::Segment(1300, s::PER, "Payer Contact Information",
|
121
|
+
r::Situational, d::RepeatCount.bounded(1),
|
122
|
+
b::Element(e::Required, "Contact Function Code", b::Values("CX")),
|
123
|
+
b::Element(e::Situational, "Payer Contact Name"),
|
124
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "FX", "TE")),
|
125
|
+
b::Element(e::Situational, "Communication Number"),
|
126
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
127
|
+
b::Element(e::Situational, "Communication Number"),
|
128
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EX")),
|
129
|
+
b::Element(e::Situational, "Communication Number"),
|
130
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference"))),
|
131
|
+
|
132
|
+
d::LoopDef.build("1000B PAYEE IDENTIFICATION",
|
133
|
+
d::RepeatCount.bounded(1),
|
134
|
+
b::Segment( 800, s::N1, "Payee Identification",
|
135
|
+
r::Required, d::RepeatCount.bounded(1),
|
136
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PE")),
|
137
|
+
b::Element(e::Situational, "Payee Name"),
|
138
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("FI", "XX")),
|
139
|
+
b::Element(e::Required, "Payee Identification Code"),
|
140
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
141
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
142
|
+
b::Segment(1000, s::N3, "Payee Address",
|
143
|
+
r::Situational, d::RepeatCount.bounded(1),
|
144
|
+
b::Element(e::Required, "Payee Address Line"),
|
145
|
+
b::Element(e::Situational, "Payee Address Line")),
|
146
|
+
b::Segment(1100, s::N4, "Payee City, State, ZIP Code",
|
147
|
+
r::Situational, d::RepeatCount.bounded(1),
|
148
|
+
b::Element(e::Required, "Payee City Name"),
|
149
|
+
b::Element(e::Required, "Payee State or Province Code"),
|
150
|
+
b::Element(e::Required, "Payee Postal Zone or ZIP Code"),
|
151
|
+
b::Element(e::Situational, "Country Code"),
|
152
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
153
|
+
b::Element(e::NotUsed, "Location Identifier")),
|
154
|
+
b::Segment(1200, s::REF, "Payee Additional Identification",
|
155
|
+
r::Situational, d::RepeatCount.unbounded,
|
156
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("0B", "1A", "1B", "1C", "1E", "1F", "1G", "1H", "D3", "G2", "N5", "PQ", "TJ")),
|
157
|
+
b::Element(e::Required, "Additional Payee Identifier"),
|
158
|
+
b::Element(e::NotUsed, "Description"),
|
159
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")))),
|
160
|
+
|
161
|
+
d::TableDef.detail("Table 2 - Detail",
|
162
|
+
d::LoopDef.build("2000 HEADER NUMBER",
|
163
|
+
d::RepeatCount.bounded(1),
|
164
|
+
b::Segment(30, s::LX, "Header Number",
|
165
|
+
r::Situational, d::RepeatCount.bounded(1),
|
166
|
+
b::Element(e::Required, "Assigned Number")),
|
167
|
+
b::Segment(50, s::TS3, "Provider Summary Information",
|
168
|
+
r::Situational, d::RepeatCount.bounded(1),
|
169
|
+
b::Element(e::Required, "Provider Identifier"),
|
170
|
+
b::Element(e::Required, "Facility Type Code"),
|
171
|
+
b::Element(e::Required, "Fiscal Period Date"),
|
172
|
+
b::Element(e::Required, "Total Claim Count"),
|
173
|
+
b::Element(e::Required, "Total Claim Charge Amount"),
|
174
|
+
b::Element(e::Situational, "Total Covered Charge Amount"),
|
175
|
+
b::Element(e::Situational, "Total Noncovered Charge Amount"),
|
176
|
+
b::Element(e::Situational, "Total Denied Charge Amount"),
|
177
|
+
b::Element(e::Situational, "Total Provider Payment Amount"),
|
178
|
+
b::Element(e::Situational, "Total Interest Amount"),
|
179
|
+
b::Element(e::Situational, "Total Contractual Adjustment Amount"),
|
180
|
+
b::Element(e::Situational, "Total Gramm-Rudman Reduction Amount"),
|
181
|
+
b::Element(e::Situational, "Total MSP Payer Amount"),
|
182
|
+
b::Element(e::Situational, "Total Blood Deductible Amount"),
|
183
|
+
b::Element(e::Situational, "Total Non-Lab Charge Amount"),
|
184
|
+
b::Element(e::Situational, "Total Coinsurance Amount"),
|
185
|
+
b::Element(e::Situational, "Total HCPCS Reported Charge Amount"),
|
186
|
+
b::Element(e::Situational, "Total HCPCS Payable Amount"),
|
187
|
+
b::Element(e::Situational, "Total Deductible Amount"),
|
188
|
+
b::Element(e::Situational, "Total Professional Component Amount"),
|
189
|
+
b::Element(e::Situational, "Total MSP Patient Liability Met Amount"),
|
190
|
+
b::Element(e::Situational, "Total Patient Reimbursement Amount"),
|
191
|
+
b::Element(e::Situational, "Total PIP Claim Count"),
|
192
|
+
b::Element(e::Situational, "Total PIP Adjustment Amount")),
|
193
|
+
b::Segment(70, s::TS2, "Provider Supplemental Summary Information",
|
194
|
+
r::Situational, d::RepeatCount.bounded(1),
|
195
|
+
b::Element(e::Situational, "Total DRG Amount"),
|
196
|
+
b::Element(e::Situational, "Total Federal Specific Amount"),
|
197
|
+
b::Element(e::Situational, "Total Hospital Specific Amount"),
|
198
|
+
b::Element(e::Situational, "Total Disproportionate Share Amount"),
|
199
|
+
b::Element(e::Situational, "Total Capital Amount"),
|
200
|
+
b::Element(e::Situational, "Total Indirect Medical Education Amount"),
|
201
|
+
b::Element(e::Situational, "Total Outlier Day Count"),
|
202
|
+
b::Element(e::Situational, "Total Day Outlier Amount"),
|
203
|
+
b::Element(e::Situational, "Total Cost Outlier Amount"),
|
204
|
+
b::Element(e::Situational, "Average DRG Length of Stay"),
|
205
|
+
b::Element(e::Situational, "Total Discharge Count"),
|
206
|
+
b::Element(e::Situational, "Total Cost Report Day Count"),
|
207
|
+
b::Element(e::Situational, "Total Covered Day Count"),
|
208
|
+
b::Element(e::Situational, "Total Noncovered Day Count"),
|
209
|
+
b::Element(e::Situational, "Total MSP Pass-Through Amount"),
|
210
|
+
b::Element(e::Situational, "Average DRG Weight"),
|
211
|
+
b::Element(e::Situational, "Total PPS Capital FSP DRG Amount"),
|
212
|
+
b::Element(e::Situational, "Total PPS Capital HSP DRG Amount"),
|
213
|
+
b::Element(e::Situational, "Total PPS DSH DRG Amount")),
|
214
|
+
|
215
|
+
d::LoopDef.build("2100 CLAIM PAYMENT INFORMATION",
|
216
|
+
d::RepeatCount.unbounded,
|
217
|
+
b::Segment( 100, s::CLP, "Claim Payment Information",
|
218
|
+
r::Required, d::RepeatCount.bounded(1),
|
219
|
+
b::Element(e::Required, "Patient Control Number"),
|
220
|
+
b::Element(e::Required, "Claim Status Code", b::Values("1", "2", "3", "4", "5", "10", "13", "15", "16", "17", "19", "20", "21", "22", "23", "25", "27")),
|
221
|
+
b::Element(e::Required, "Total Claim Charge Amount"),
|
222
|
+
b::Element(e::Required, "Claim Payment Amount"),
|
223
|
+
b::Element(e::Situational, "Patient Responsibility Amount"),
|
224
|
+
b::Element(e::Required, "Claim Filing Indicator Code", b::Values("12", "13", "14", "15", "16", "AM", "CH", "DS", "HM", "LM", "MA", "MB", "MC", "OF", "TV", "VA", "WC")),
|
225
|
+
b::Element(e::Situational, "Payer Claim Control Number"),
|
226
|
+
b::Element(e::Situational, "Facility Type Code"),
|
227
|
+
b::Element(e::Situational, "Claim Frequency Code"),
|
228
|
+
b::Element(e::NotUsed, "Patient Status Code"),
|
229
|
+
b::Element(e::Situational, "Diagnosis Related Group (DRG) Code"),
|
230
|
+
b::Element(e::Situational, "Diagnosis Related Group (DRG) Weight"),
|
231
|
+
b::Element(e::Situational, "Discharge Fraction")),
|
232
|
+
b::Segment( 200, s::CAS, "Claim Adjustment",
|
233
|
+
r::Situational, d::RepeatCount.bounded(99),
|
234
|
+
b::Element(e::Required, "Claim Adjustment Group Code", b::Values("CO", "CR", "OA", "PI", "PR")),
|
235
|
+
b::Element(e::Required, "Adjustment Reason Code"),
|
236
|
+
b::Element(e::Required, "Adjustment Amount"),
|
237
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
238
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
239
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
240
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
241
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
242
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
243
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
244
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
245
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
246
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
247
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
248
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
249
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
250
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
251
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
252
|
+
b::Element(e::Situational, "Adjustment Quantity")),
|
253
|
+
b::Segment( 300, s::NM1, "Patient Name",
|
254
|
+
r::Required, d::RepeatCount.bounded(1),
|
255
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("QC")),
|
256
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
257
|
+
b::Element(e::Required, "Patient Last Name"),
|
258
|
+
b::Element(e::Required, "Patient First Name"),
|
259
|
+
b::Element(e::Situational, "Patient Middle Name or Initial"),
|
260
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
261
|
+
b::Element(e::Situational, "Patient Name Suffix"),
|
262
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "HN", "II", "MI", "MR")),
|
263
|
+
b::Element(e::Situational, "Patient Identifier"),
|
264
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
265
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
266
|
+
b::Segment( 300, s::NM1, "Insured Name",
|
267
|
+
r::Situational, d::RepeatCount.bounded(1),
|
268
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("IL")),
|
269
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
270
|
+
b::Element(e::Situational, "Subscriber Last Name"),
|
271
|
+
b::Element(e::Situational, "Subscriber First Name"),
|
272
|
+
b::Element(e::Situational, "Subscriber Middle Name or Initial"),
|
273
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
274
|
+
b::Element(e::Situational, "Subscriber Name Suffix"),
|
275
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("34", "HN", "MI")),
|
276
|
+
b::Element(e::Required, "Subscriber Identifier"),
|
277
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
278
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
279
|
+
b::Segment( 300, s::NM1, "Corrected Patient/Insured Name",
|
280
|
+
r::Situational, d::RepeatCount.bounded(1),
|
281
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("74")),
|
282
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
283
|
+
b::Element(e::Situational, "Corrected Patient or Insured Last Name"),
|
284
|
+
b::Element(e::Situational, "Corrected Patient or Insured First Name"),
|
285
|
+
b::Element(e::Situational, "Corrected Patient or Insured Middle Name or Initial"),
|
286
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
287
|
+
b::Element(e::Situational, "Corrected Patient or Insured Name Suffix"),
|
288
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("C")),
|
289
|
+
b::Element(e::Situational, "Corrected Insured Identification Indicator"),
|
290
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
291
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
292
|
+
b::Segment( 300, s::NM1, "Service Provider Name",
|
293
|
+
r::Situational, d::RepeatCount.bounded(1),
|
294
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("82")),
|
295
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
296
|
+
b::Element(e::Situational, "Rendering Provider Last or Organization Name"),
|
297
|
+
b::Element(e::Situational, "Rendering Provider First Name"),
|
298
|
+
b::Element(e::Situational, "Rendering Provider Middle Name or Initial"),
|
299
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
300
|
+
b::Element(e::Situational, "Rendering Provider Name Suffix"),
|
301
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("BD", "BS", "FI", "MC", "PC", "SL", "UP", "XX")),
|
302
|
+
b::Element(e::Required, "Rendering Provider Identifier"),
|
303
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
304
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
305
|
+
b::Segment( 300, s::NM1, "Crossover Carrier Name",
|
306
|
+
r::Situational, d::RepeatCount.bounded(1),
|
307
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("TT")),
|
308
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("2")),
|
309
|
+
b::Element(e::Required, "Coordination of Benefits Carrier Name"),
|
310
|
+
b::Element(e::NotUsed, "Name First"),
|
311
|
+
b::Element(e::NotUsed, "Name Middle"),
|
312
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
313
|
+
b::Element(e::NotUsed, "Name Suffix"),
|
314
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("AD", "FI", "NI", "PI", "PP", "XV")),
|
315
|
+
b::Element(e::Required, "Coordination of Benefits Carrient Identifier"),
|
316
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
317
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
318
|
+
b::Segment( 300, s::NM1, "Corrected Priority Payer Name",
|
319
|
+
r::Situational, d::RepeatCount.bounded(1),
|
320
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PR")),
|
321
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("2")),
|
322
|
+
b::Element(e::Required, "Corrected Priority Payer Name"),
|
323
|
+
b::Element(e::NotUsed, "Name First"),
|
324
|
+
b::Element(e::NotUsed, "Name Middle"),
|
325
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
326
|
+
b::Element(e::NotUsed, "Name Suffix"),
|
327
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("AD", "FI", "NI", "PI", "PP", "XV")),
|
328
|
+
b::Element(e::Required, "Corrected Priority Payer Identification Number"),
|
329
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
330
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
331
|
+
b::Segment( 330, s::MIA, "Inpatient Adjudication Information",
|
332
|
+
r::Situational, d::RepeatCount.bounded(1),
|
333
|
+
b::Element(e::Required, "Covered Days or Visits Count"),
|
334
|
+
b::Element(e::Situational, "PPS Operating Outlier Amount"),
|
335
|
+
b::Element(e::Situational, "Lifetime Psychiatric Days Count"),
|
336
|
+
b::Element(e::Situational, "Claim DRG Amount"),
|
337
|
+
b::Element(e::Situational, "Remark Code"),
|
338
|
+
b::Element(e::Situational, "Claim Disproportionate Share Amount"),
|
339
|
+
b::Element(e::Situational, "Claim MSP Pass-Through Amount"),
|
340
|
+
b::Element(e::Situational, "Claim PPS Capital Amount"),
|
341
|
+
b::Element(e::Situational, "PPS-Capital FSP DRG Amount"),
|
342
|
+
b::Element(e::Situational, "PPS-Capital HSP DRG Amount"),
|
343
|
+
b::Element(e::Situational, "PPS-Capital DSH DRG Amount"),
|
344
|
+
b::Element(e::Situational, "Old Capital Amount"),
|
345
|
+
b::Element(e::Situational, "PPS-Capital IME Amount"),
|
346
|
+
b::Element(e::Situational, "PPS-Operating Hospital Specific DRG Amount"),
|
347
|
+
b::Element(e::Situational, "Cost Report Day Count"),
|
348
|
+
b::Element(e::Situational, "PPS-Operating Federal Specific DRG Amount"),
|
349
|
+
b::Element(e::Situational, "Claim PPS Capital Outlier Amount"),
|
350
|
+
b::Element(e::Situational, "Claim Indirect Teaching Amount"),
|
351
|
+
b::Element(e::Situational, "Nonpayable Professional Component Amount"),
|
352
|
+
b::Element(e::Situational, "Remark Code"),
|
353
|
+
b::Element(e::Situational, "Remark Code"),
|
354
|
+
b::Element(e::Situational, "Remark Code"),
|
355
|
+
b::Element(e::Situational, "Remark Code"),
|
356
|
+
b::Element(e::Situational, "PPS-Capital Exception Amount")),
|
357
|
+
b::Segment( 350, s::MOA, "Outpatient Adjudication Information",
|
358
|
+
r::Situational, d::RepeatCount.bounded(1),
|
359
|
+
b::Element(e::Situational, "Reimbursement Rate"),
|
360
|
+
b::Element(e::Situational, "Claim HCPCS Payable Amount"),
|
361
|
+
b::Element(e::Situational, "Remark Code"),
|
362
|
+
b::Element(e::Situational, "Remark Code"),
|
363
|
+
b::Element(e::Situational, "Remark Code"),
|
364
|
+
b::Element(e::Situational, "Remark Code"),
|
365
|
+
b::Element(e::Situational, "Remark Code"),
|
366
|
+
b::Element(e::Situational, "Claim ESRD Payment Amount"),
|
367
|
+
b::Element(e::Situational, "Nonpayable Professional Component Amount")),
|
368
|
+
b::Segment( 400, s::REF, "Other Claim Related Identification",
|
369
|
+
r::Situational, d::RepeatCount.bounded(5),
|
370
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1L", "1W", "9A", "9C", "A6", "BB", "CE", "EA", "F8", "G1", "G3", "IG", "SY")),
|
371
|
+
b::Element(e::Required, "Other Claim Related Identifier"),
|
372
|
+
b::Element(e::NotUsed, "Description"),
|
373
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
374
|
+
b::Segment( 400, s::REF, "Rendering Provider Identification",
|
375
|
+
r::Situational, d::RepeatCount.bounded(10),
|
376
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1A", "1B", "1C", "1D", "1G", "1H", "D3", "G2")),
|
377
|
+
b::Element(e::Required, "Rendering Provider Secondary Identifier"),
|
378
|
+
b::Element(e::NotUsed, "Description"),
|
379
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
380
|
+
b::Segment( 500, s::DTM, "Claim Date",
|
381
|
+
r::Situational, d::RepeatCount.bounded(4),
|
382
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("036", "050", "232", "233")),
|
383
|
+
b::Element(e::Required, "Claim Date"),
|
384
|
+
b::Element(e::NotUsed, "Time"),
|
385
|
+
b::Element(e::NotUsed, "Time Code"),
|
386
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
387
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
388
|
+
b::Segment( 600, s::PER, "Claim Contact Information",
|
389
|
+
r::Situational, d::RepeatCount.bounded(2),
|
390
|
+
b::Element(e::Required, "Contact Function Code", b::Values("CX")),
|
391
|
+
b::Element(e::Situational, "Claim Contact Name"),
|
392
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "FX", "TE")),
|
393
|
+
b::Element(e::Situational, "Claim Contact Communication Number"),
|
394
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
395
|
+
b::Element(e::Situational, "Claim Contact Communication Number"),
|
396
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EX")),
|
397
|
+
b::Element(e::Situational, "Claim Contact Communication Number Extension"),
|
398
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")),
|
399
|
+
b::Segment( 620, s::AMT, "Claim Supplemental Information",
|
400
|
+
r::Situational, d::RepeatCount.bounded(13),
|
401
|
+
b::Element(e::Required, "Amount Qualifier Code", b::Values("AU", "D8", "DY", "F5", "I", "NL", "T", "T2", "ZK", "ZL", "ZM", "ZN", "ZO", "ZZ")),
|
402
|
+
b::Element(e::Required, "Claim Supplemental Information Amount"),
|
403
|
+
b::Element(e::NotUsed, "Credit/Debit Flag Code")),
|
404
|
+
b::Segment( 640, s::QTY, "Claim Supplemental Information Quantity",
|
405
|
+
r::Situational, d::RepeatCount.bounded(14),
|
406
|
+
b::Element(e::Required, "Quantity Qualifier", b::Values("CA", "CD", "LA", "LE", "NA", "NE", "NR", "OU", "PS", "VS", "ZK", "ZL", "ZM", "ZN", "ZO")),
|
407
|
+
b::Element(e::Required, "Claim Supplemental Information Quantity"),
|
408
|
+
b::Element(e::NotUsed, "COMPOSITE UNIT OF MEASURE"),
|
409
|
+
b::Element(e::NotUsed, "Free-Form Information")),
|
410
|
+
|
411
|
+
d::LoopDef.build("2110 SERVICE PAYMENT INFORMATION",
|
412
|
+
d::RepeatCount.bounded(999),
|
413
|
+
b::Segment( 700, s::SVC, "Service Payment Information",
|
414
|
+
r::Situational, d::RepeatCount.bounded(1),
|
415
|
+
b::Element(e::Required, "COMPOSITE MEDICAL PROCEDURE IDENTIFIER",
|
416
|
+
b::Element(e::Required, "Product or Service ID Qualifier", b::Values("AD", "ER", "HC", "ID", "IV", "N1", "N2", "N3", "N4", "ND", "NU", "RB", "ZZ")),
|
417
|
+
b::Element(e::Required, "Procedure Code"),
|
418
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
419
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
420
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
421
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
422
|
+
b::Element(e::Situational, "Procedure Code Description")),
|
423
|
+
b::Element(e::Required, "Line Item Charge Amount"),
|
424
|
+
b::Element(e::Required, "Line Item Provider Payment Amount"),
|
425
|
+
b::Element(e::Situational, "National Uniform Billing Committee Revenue Code"),
|
426
|
+
b::Element(e::Situational, "Units of Service Paid Count"),
|
427
|
+
b::Element(e::Situational, "COMPOSITE MEDICAL PROCEDURE IDENTIFIER",
|
428
|
+
b::Element(e::Required, "Product or Service ID Qualifier", b::Values("AD", "ER", "HC", "ID", "IV", "N1", "N2", "N3", "N4", "ND", "NU", "RB", "ZZ")),
|
429
|
+
b::Element(e::Required, "Procedure Code"),
|
430
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
431
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
432
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
433
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
434
|
+
b::Element(e::Situational, "Procedure Code Description")),
|
435
|
+
b::Element(e::Situational, "Original Units of Service Count")),
|
436
|
+
b::Segment( 800, s::DTM, "Service Date",
|
437
|
+
r::Situational, d::RepeatCount.bounded(2),
|
438
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("150", "151", "472")),
|
439
|
+
b::Element(e::Required, "Service Date"),
|
440
|
+
b::Element(e::NotUsed, "Time"),
|
441
|
+
b::Element(e::NotUsed, "Time Code"),
|
442
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
443
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
444
|
+
b::Segment( 900, s::CAS, "Service Adjustment",
|
445
|
+
r::Situational, d::RepeatCount.bounded(99),
|
446
|
+
b::Element(e::Required, "Claim Adjustment Group Code", b::Values("CO", "CR", "OA", "PI", "PR")),
|
447
|
+
b::Element(e::Required, "Adjustment Reason Code"),
|
448
|
+
b::Element(e::Required, "Adjustment Amount", b::MaxLength(10)),
|
449
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
450
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
451
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
452
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
453
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
454
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
455
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
456
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
457
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
458
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
459
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
460
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
461
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
462
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
463
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
464
|
+
b::Element(e::Situational, "Adjustment Quantity")),
|
465
|
+
b::Segment(1000, s::REF, "Service Identification",
|
466
|
+
r::Situational, d::RepeatCount.bounded(8),
|
467
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1S", "6R", "BB", "E9", "G1", "G3", "LU", "RB")),
|
468
|
+
b::Element(e::Required, "Provider Identifier"),
|
469
|
+
b::Element(e::NotUsed, "Description"),
|
470
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
471
|
+
b::Segment(1000, s::REF, "Rendering Provider Information",
|
472
|
+
r::Situational, d::RepeatCount.bounded(10),
|
473
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1A", "1B", "1C", "1D", "1G", "1H", "1J", "HPI", "SY", "TJ")),
|
474
|
+
b::Element(e::Required, "Rendering Provider Identifier"),
|
475
|
+
b::Element(e::NotUsed, "Description"),
|
476
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
477
|
+
b::Segment(1100, s::AMT, "Service Supplemental Amount",
|
478
|
+
r::Situational, d::RepeatCount.bounded(9),
|
479
|
+
b::Element(e::Required, "Amount Qualifier Code", b::Values("B6", "DY", "KH", "NE", "T", "T2", "ZK", "ZL", "ZM", "ZN", "ZO")),
|
480
|
+
b::Element(e::Required, "Service Supplemental Amount", b::MaxLength(10)),
|
481
|
+
b::Element(e::NotUsed, "Credit/Debit Flag Code")),
|
482
|
+
b::Segment(1200, s::QTY, "Service Supplemental Quantity",
|
483
|
+
r::Situational, d::RepeatCount.bounded(6),
|
484
|
+
b::Element(e::Required, "Quantity Qualifier", b::Values("NE", "ZK", "ZL", "ZM", "ZN", "ZO")),
|
485
|
+
b::Element(e::Required, "Service Supplemental Quantity Count"),
|
486
|
+
b::Element(e::NotUsed, "COMPOSITE UNIT OF MEASURE"),
|
487
|
+
b::Element(e::NotUsed, "Free-Form Information")),
|
488
|
+
b::Segment(1300, s::LQ, "Health Care Remark Codes",
|
489
|
+
r::Situational, d::RepeatCount.bounded(99),
|
490
|
+
b::Element(e::Required, "Code List Qualifier Code", b::Values("HE", "RX")),
|
491
|
+
b::Element(e::Required, "Remark Code")))))),
|
492
|
+
|
493
|
+
d::TableDef.summary("Table 3 - Summary",
|
494
|
+
b::Segment(100, s::PLB, "Provider Adjustment",
|
495
|
+
r::Situational, d::RepeatCount.unbounded,
|
496
|
+
b::Element(e::Required, "Provider Identifier"),
|
497
|
+
b::Element(e::Required, "Fiscal Period Date"),
|
498
|
+
b::Element(e::Required, "ADJUSTMENT IDENTIFIER",
|
499
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU", "ZZ")),
|
500
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
501
|
+
b::Element(e::Required, "Provider Adjustment Amount", b::MaxLength(10)),
|
502
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
503
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU", "ZZ")),
|
504
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
505
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
506
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
507
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU", "ZZ")),
|
508
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
509
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
510
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
511
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU", "ZZ")),
|
512
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
513
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
514
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
515
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU", "ZZ")),
|
516
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
517
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
518
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
519
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU", "ZZ")),
|
520
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
521
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10))),
|
522
|
+
b::Segment(200, s::SE, "Transaction Set Trailer",
|
523
|
+
r::Required, d::RepeatCount.bounded(1),
|
524
|
+
b::Element(e::Required, "Transaction Segment Count"),
|
525
|
+
b::Element(e::Required, "Transaction Set Control Number"))))
|
526
|
+
|
527
|
+
end
|
528
|
+
end
|
529
|
+
end
|
530
|
+
end
|