stupidedi 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +215 -0
- data/Rakefile +108 -0
- data/bin/edi-ed +71 -0
- data/bin/edi-pp +81 -0
- data/doc/Defining.md +0 -0
- data/doc/Generating.md +321 -0
- data/doc/LICENSE.md +0 -0
- data/doc/Navigating.md +645 -0
- data/doc/Parsing.md +0 -0
- data/doc/Serializing.md +7 -0
- data/doc/Tokenizing.md +0 -0
- data/doc/Validating.md +0 -0
- data/doc/design/Parser.md +0 -0
- data/doc/design/Reader.md +0 -0
- data/lib/ruby/array.rb +164 -0
- data/lib/ruby/blank.rb +67 -0
- data/lib/ruby/enumerable.rb +35 -0
- data/lib/ruby/exception.rb +33 -0
- data/lib/ruby/hash.rb +4 -0
- data/lib/ruby/instance_exec.rb +26 -0
- data/lib/ruby/module.rb +79 -0
- data/lib/ruby/object.rb +63 -0
- data/lib/ruby/string.rb +73 -0
- data/lib/ruby/symbol.rb +24 -0
- data/lib/ruby/to_d.rb +81 -0
- data/lib/ruby/to_date.rb +33 -0
- data/lib/ruby/to_time.rb +24 -0
- data/lib/ruby/try.rb +43 -0
- data/lib/stupidedi/blank_slate.rb +11 -0
- data/lib/stupidedi/builder/builder_dsl.rb +281 -0
- data/lib/stupidedi/builder/constraint_table.rb +418 -0
- data/lib/stupidedi/builder/generation.rb +112 -0
- data/lib/stupidedi/builder/instruction.rb +102 -0
- data/lib/stupidedi/builder/instruction_table.rb +204 -0
- data/lib/stupidedi/builder/navigation.rb +655 -0
- data/lib/stupidedi/builder/state_machine.rb +55 -0
- data/lib/stupidedi/builder/states/abstract_state.rb +332 -0
- data/lib/stupidedi/builder/states/failure_state.rb +69 -0
- data/lib/stupidedi/builder/states/functional_group_state.rb +97 -0
- data/lib/stupidedi/builder/states/initial_state.rb +63 -0
- data/lib/stupidedi/builder/states/interchange_state.rb +94 -0
- data/lib/stupidedi/builder/states/loop_state.rb +79 -0
- data/lib/stupidedi/builder/states/table_state.rb +96 -0
- data/lib/stupidedi/builder/states/transaction_set_state.rb +112 -0
- data/lib/stupidedi/builder/states/transmission_state.rb +59 -0
- data/lib/stupidedi/builder/tokenization.rb +196 -0
- data/lib/stupidedi/builder.rb +23 -0
- data/lib/stupidedi/color.rb +93 -0
- data/lib/stupidedi/config/code_list_config.rb +42 -0
- data/lib/stupidedi/config/editor_config.rb +51 -0
- data/lib/stupidedi/config/functional_group_config.rb +62 -0
- data/lib/stupidedi/config/interchange_config.rb +79 -0
- data/lib/stupidedi/config/transaction_set_config.rb +91 -0
- data/lib/stupidedi/config.rb +101 -0
- data/lib/stupidedi/editor/00501.rb +341 -0
- data/lib/stupidedi/editor/005010/N2.rb +0 -0
- data/lib/stupidedi/editor/005010/N3.rb +0 -0
- data/lib/stupidedi/editor/005010/N4.rb +63 -0
- data/lib/stupidedi/editor/005010/NM1.rb +0 -0
- data/lib/stupidedi/editor/005010.rb +469 -0
- data/lib/stupidedi/editor/X222-HC837.rb +195 -0
- data/lib/stupidedi/editor/abstract_ed.rb +36 -0
- data/lib/stupidedi/editor/claim_ack.rb +9 -0
- data/lib/stupidedi/editor/implementation_ack.rb +213 -0
- data/lib/stupidedi/editor/interchange_ack.rb +9 -0
- data/lib/stupidedi/editor/result.rb +100 -0
- data/lib/stupidedi/editor/result_set.rb +69 -0
- data/lib/stupidedi/editor/transaction_set_ed.rb +275 -0
- data/lib/stupidedi/editor/transmission_ed.rb +90 -0
- data/lib/stupidedi/editor.rb +37 -0
- data/lib/stupidedi/either.rb +287 -0
- data/lib/stupidedi/exceptions/invalid_element_error.rb +8 -0
- data/lib/stupidedi/exceptions/invalid_schema_error.rb +8 -0
- data/lib/stupidedi/exceptions/output_error.rb +8 -0
- data/lib/stupidedi/exceptions/parse_error.rb +8 -0
- data/lib/stupidedi/exceptions/stupidedi_error.rb +8 -0
- data/lib/stupidedi/exceptions/tokenize_error.rb +8 -0
- data/lib/stupidedi/exceptions/zipper_error.rb +8 -0
- data/lib/stupidedi/exceptions.rb +11 -0
- data/lib/stupidedi/guides/005010/X214-HN277.rb +409 -0
- data/lib/stupidedi/guides/005010/X221-HP835.rb +613 -0
- data/lib/stupidedi/guides/005010/X221A1-HP835.rb +613 -0
- data/lib/stupidedi/guides/005010/X222-HC837P.rb +2291 -0
- data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +2297 -0
- data/lib/stupidedi/guides/005010/X231-FA999.rb +123 -0
- data/lib/stupidedi/guides/005010/X231A1-FA999.rb +119 -0
- data/lib/stupidedi/guides/005010/element_reqs.rb +38 -0
- data/lib/stupidedi/guides/005010/guide_builder.rb +180 -0
- data/lib/stupidedi/guides/005010/segment_reqs.rb +32 -0
- data/lib/stupidedi/guides/005010.rb +64 -0
- data/lib/stupidedi/guides.rb +5 -0
- data/lib/stupidedi/inspect.rb +26 -0
- data/lib/stupidedi/reader/input/abstract_input.rb +133 -0
- data/lib/stupidedi/reader/input/delegated_input.rb +111 -0
- data/lib/stupidedi/reader/input/file_input.rb +155 -0
- data/lib/stupidedi/reader/input.rb +30 -0
- data/lib/stupidedi/reader/position.rb +69 -0
- data/lib/stupidedi/reader/result.rb +168 -0
- data/lib/stupidedi/reader/segment_dict.rb +175 -0
- data/lib/stupidedi/reader/separators.rb +85 -0
- data/lib/stupidedi/reader/stream_reader.rb +172 -0
- data/lib/stupidedi/reader/token_reader.rb +466 -0
- data/lib/stupidedi/reader/tokens/component_element_tok.rb +56 -0
- data/lib/stupidedi/reader/tokens/composite_element_tok.rb +64 -0
- data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +64 -0
- data/lib/stupidedi/reader/tokens/segment_tok.rb +51 -0
- data/lib/stupidedi/reader/tokens/simple_element_tok.rb +63 -0
- data/lib/stupidedi/reader.rb +121 -0
- data/lib/stupidedi/schema/abstract_def.rb +74 -0
- data/lib/stupidedi/schema/abstract_use.rb +73 -0
- data/lib/stupidedi/schema/code_list.rb +94 -0
- data/lib/stupidedi/schema/element_def.rb +173 -0
- data/lib/stupidedi/schema/element_req.rb +56 -0
- data/lib/stupidedi/schema/element_use.rb +251 -0
- data/lib/stupidedi/schema/functional_group_def.rb +114 -0
- data/lib/stupidedi/schema/interchange_def.rb +93 -0
- data/lib/stupidedi/schema/loop_def.rb +152 -0
- data/lib/stupidedi/schema/repeat_count.rb +85 -0
- data/lib/stupidedi/schema/segment_def.rb +108 -0
- data/lib/stupidedi/schema/segment_req.rb +43 -0
- data/lib/stupidedi/schema/segment_use.rb +98 -0
- data/lib/stupidedi/schema/syntax_note.rb +63 -0
- data/lib/stupidedi/schema/table_def.rb +139 -0
- data/lib/stupidedi/schema/transaction_set_def.rb +88 -0
- data/lib/stupidedi/schema.rb +28 -0
- data/lib/stupidedi/sets/absolute_set.rb +297 -0
- data/lib/stupidedi/sets/abstract_set.rb +174 -0
- data/lib/stupidedi/sets/null_set.rb +125 -0
- data/lib/stupidedi/sets/relative_complement.rb +137 -0
- data/lib/stupidedi/sets/relative_set.rb +269 -0
- data/lib/stupidedi/sets/universal_set.rb +104 -0
- data/lib/stupidedi/sets.rb +57 -0
- data/lib/stupidedi/tail_call.rb +109 -0
- data/lib/stupidedi/thread_local.rb +174 -0
- data/lib/stupidedi/values/abstract_element_val.rb +19 -0
- data/lib/stupidedi/values/abstract_val.rb +130 -0
- data/lib/stupidedi/values/composite_element_val.rb +95 -0
- data/lib/stupidedi/values/functional_group_val.rb +102 -0
- data/lib/stupidedi/values/interchange_val.rb +86 -0
- data/lib/stupidedi/values/invalid_envelope_val.rb +61 -0
- data/lib/stupidedi/values/invalid_segment_val.rb +78 -0
- data/lib/stupidedi/values/loop_val.rb +70 -0
- data/lib/stupidedi/values/repeated_element_val.rb +105 -0
- data/lib/stupidedi/values/segment_val.rb +104 -0
- data/lib/stupidedi/values/segment_val_group.rb +20 -0
- data/lib/stupidedi/values/simple_element_val.rb +80 -0
- data/lib/stupidedi/values/table_val.rb +66 -0
- data/lib/stupidedi/values/transaction_set_val.rb +66 -0
- data/lib/stupidedi/values/transmission_val.rb +52 -0
- data/lib/stupidedi/values.rb +21 -0
- data/lib/stupidedi/version.rb +3 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +54 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +527 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +335 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +299 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +287 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +338 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +309 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +124 -0
- data/lib/stupidedi/versions/functional_groups/004010/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GS.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/004010.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +1405 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +577 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +322 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +354 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +368 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +398 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types.rb +132 -0
- data/lib/stupidedi/versions/functional_groups/005010/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK1.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AMT.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BHT.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BPR.rb +49 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CAS.rb +56 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CL1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLM.rb +41 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLP.rb +34 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CN1.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR2.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CRC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTP.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTX.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CUR.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DMG.rb +34 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN2.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTM.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTP.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/FRM.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GS.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HCP.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HI.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK5.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/K3.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LIN.rb +69 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LQ.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MEA.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MIA.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MOA.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N1.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N4.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NM1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/OI.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PAT.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PER.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PLB.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PRV.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PS1.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PWK.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/QTY.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/RDM.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/REF.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SBR.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ST.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/STC.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV1.rb +44 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV2.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV3.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV5.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TOO.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TRN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS2.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS3.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +227 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +165 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb +85 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +163 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +64 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb +74 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb +68 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb +53 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +240 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +68 -0
- data/lib/stupidedi/versions/functional_groups/005010.rb +38 -0
- data/lib/stupidedi/versions/functional_groups.rb +8 -0
- data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +224 -0
- data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +45 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00401.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +269 -0
- data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +47 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISB.rb +18 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISE.rb +18 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA3.rb +18 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs.rb +37 -0
- data/lib/stupidedi/versions/interchanges/00501.rb +23 -0
- data/lib/stupidedi/versions/interchanges.rb +8 -0
- data/lib/stupidedi/versions.rb +6 -0
- data/lib/stupidedi/writer/claredi.rb +142 -0
- data/lib/stupidedi/writer/default.rb +124 -0
- data/lib/stupidedi/writer.rb +6 -0
- data/lib/stupidedi/zipper/abstract_cursor.rb +351 -0
- data/lib/stupidedi/zipper/dangling_cursor.rb +103 -0
- data/lib/stupidedi/zipper/edited_cursor.rb +157 -0
- data/lib/stupidedi/zipper/memoized_cursor.rb +131 -0
- data/lib/stupidedi/zipper/path.rb +124 -0
- data/lib/stupidedi/zipper/root_cursor.rb +120 -0
- data/lib/stupidedi/zipper.rb +25 -0
- data/lib/stupidedi.rb +66 -0
- data/spec/examples/integration/generating.example +551 -0
- data/spec/examples/integration/navigating.example +214 -0
- data/spec/examples/integration/parsing.example +445 -0
- data/spec/examples/ruby/array.example +476 -0
- data/spec/examples/ruby/blank.example +62 -0
- data/spec/examples/ruby/count.example +68 -0
- data/spec/examples/ruby/object.example +99 -0
- data/spec/examples/ruby/string.example +111 -0
- data/spec/examples/ruby/symbol.example +117 -0
- data/spec/examples/ruby/to_d.example +90 -0
- data/spec/examples/ruby/try.example +50 -0
- data/spec/examples/stupidedi/either.example +375 -0
- data/spec/examples/stupidedi/reader/failure.example +68 -0
- data/spec/examples/stupidedi/reader/input/delegated_input.example +292 -0
- data/spec/examples/stupidedi/reader/separators.example +73 -0
- data/spec/examples/stupidedi/reader/stream_reader.example +48 -0
- data/spec/examples/stupidedi/reader/success.example +34 -0
- data/spec/examples/stupidedi/reader/token_reader.example +775 -0
- data/spec/examples/stupidedi/reader.example +168 -0
- data/spec/examples/stupidedi/sets/absolute_set.example +1577 -0
- data/spec/examples/stupidedi/sets/null_set.example +2 -0
- data/spec/examples/stupidedi/sets/relative_set.example +2 -0
- data/spec/examples/stupidedi/sets/universal_set.example +1 -0
- data/spec/examples/stupidedi/versions/005010/element_types/an.example +201 -0
- data/spec/examples/stupidedi/versions/005010/element_types/dt.example +258 -0
- data/spec/examples/stupidedi/versions/005010/element_types/id.example +192 -0
- data/spec/examples/stupidedi/versions/005010/element_types/nn.example +177 -0
- data/spec/examples/stupidedi/versions/005010/element_types/r.example +178 -0
- data/spec/examples/stupidedi/versions/005010/element_types/tm.example +2 -0
- data/spec/examples/stupidedi/zipper/abstract_cursor.example +417 -0
- data/spec/examples/stupidedi/zipper.example +9 -0
- data/spec/fixtures/X186-AG824/1-bad.txt +21 -0
- data/spec/fixtures/X186-AG824/1-good.txt +17 -0
- data/spec/fixtures/X186-AG824/2-bad.txt +26 -0
- data/spec/fixtures/X186-AG824/2-good.txt +21 -0
- data/spec/fixtures/X186-AG824/3-bad.txt +87 -0
- data/spec/fixtures/X186-AG824/3-good.txt +61 -0
- data/spec/fixtures/X212-HN277/1-bad.txt +54 -0
- data/spec/fixtures/X212-HN277/1-good.txt +46 -0
- data/spec/fixtures/X212-HN277/2-bad.txt +37 -0
- data/spec/fixtures/X212-HN277/2-good.txt +29 -0
- data/spec/fixtures/X212-HN277/3-bad.txt +22 -0
- data/spec/fixtures/X212-HN277/3-good.txt +17 -0
- data/spec/fixtures/X212-HN277/4-bad.txt +30 -0
- data/spec/fixtures/X212-HN277/4-good.txt +24 -0
- data/spec/fixtures/X212-HR276/1-bad.txt +53 -0
- data/spec/fixtures/X212-HR276/1-good.txt +46 -0
- data/spec/fixtures/X212-HR276/2-bad.txt +45 -0
- data/spec/fixtures/X212-HR276/2-good.txt +38 -0
- data/spec/fixtures/X212-HR276/3-bad.txt +32 -0
- data/spec/fixtures/X212-HR276/3-good.txt +26 -0
- data/spec/fixtures/X212-HR276/4-bad.txt +32 -0
- data/spec/fixtures/X212-HR276/4-good.txt +26 -0
- data/spec/fixtures/X214-HN277/1-bad.txt +58 -0
- data/spec/fixtures/X214-HN277/1-good.txt +47 -0
- data/spec/fixtures/X214-HN277/2-bad.txt +34 -0
- data/spec/fixtures/X214-HN277/2-good.txt +22 -0
- data/spec/fixtures/X214-HN277/3-bad.txt +64 -0
- data/spec/fixtures/X214-HN277/3-good.txt +54 -0
- data/spec/fixtures/X214-HN277/4-bad.txt +77 -0
- data/spec/fixtures/X214-HN277/4-good.txt +63 -0
- data/spec/fixtures/X216-HI278/1-bad.txt +42 -0
- data/spec/fixtures/X216-HI278/1-good.txt +27 -0
- data/spec/fixtures/X216-HI278/2-bad.txt +43 -0
- data/spec/fixtures/X216-HI278/2-good.txt +29 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1.txt +24 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1_Clean.txt +20 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2.txt +46 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2_Clean.txt +30 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3.txt +38 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3_Clean.txt +24 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a.txt +39 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a_Clean.txt +24 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b.txt +43 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b_Clean.txt +25 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5.txt +63 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5_Clean.txt +41 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6.txt +36 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6_Clean.txt +20 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r.txt +34 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r_Clean.txt +23 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r.txt +46 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r_Clean.txt +31 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r.txt +44 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r_Clean.txt +26 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4ar_Clean.txt +28 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4br_Clean.txt +35 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r.txt +60 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r_Clean.txt +42 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r.txt +40 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r_Clean.txt +24 -0
- data/spec/fixtures/X218-RA820/1-bad.txt +31 -0
- data/spec/fixtures/X218-RA820/1-good.txt +25 -0
- data/spec/fixtures/X218-RA820/2-bad.txt +37 -0
- data/spec/fixtures/X218-RA820/2-good.txt +29 -0
- data/spec/fixtures/X218-RA820/3-bad.txt +29 -0
- data/spec/fixtures/X218-RA820/3-good.txt +23 -0
- data/spec/fixtures/X218-RA820/4-bad.txt +36 -0
- data/spec/fixtures/X218-RA820/4-good.txt +27 -0
- data/spec/fixtures/X220-BE834/1-bad.txt +35 -0
- data/spec/fixtures/X220-BE834/1-good.txt +29 -0
- data/spec/fixtures/X220-BE834/10-bad.txt +26 -0
- data/spec/fixtures/X220-BE834/10-good.txt +19 -0
- data/spec/fixtures/X220-BE834/2-bad.txt +31 -0
- data/spec/fixtures/X220-BE834/2-good.txt +23 -0
- data/spec/fixtures/X220-BE834/3-bad.txt +36 -0
- data/spec/fixtures/X220-BE834/3-good.txt +26 -0
- data/spec/fixtures/X220-BE834/4-bad.txt +27 -0
- data/spec/fixtures/X220-BE834/4-good.txt +21 -0
- data/spec/fixtures/X220-BE834/5-bad.txt +26 -0
- data/spec/fixtures/X220-BE834/5-good.txt +17 -0
- data/spec/fixtures/X220-BE834/6-bad.txt +25 -0
- data/spec/fixtures/X220-BE834/6-good.txt +20 -0
- data/spec/fixtures/X220-BE834/7-bad.txt +25 -0
- data/spec/fixtures/X220-BE834/7-good.txt +20 -0
- data/spec/fixtures/X220-BE834/8-bad.txt +25 -0
- data/spec/fixtures/X220-BE834/8-good.txt +20 -0
- data/spec/fixtures/X220-BE834/9-bad.txt +27 -0
- data/spec/fixtures/X220-BE834/9-good.txt +21 -0
- data/spec/fixtures/X221-HP835/1-bad.txt +58 -0
- data/spec/fixtures/X221-HP835/1-good.txt +40 -0
- data/spec/fixtures/X221-HP835/2-bad.txt +51 -0
- data/spec/fixtures/X221-HP835/2-good.txt +40 -0
- data/spec/fixtures/X221-HP835/3a-bad.txt +78 -0
- data/spec/fixtures/X221-HP835/3a-good.txt +49 -0
- data/spec/fixtures/X221-HP835/3b-bad.txt +60 -0
- data/spec/fixtures/X221-HP835/3b-good.txt +32 -0
- data/spec/fixtures/X221-HP835/3c-bad.txt +55 -0
- data/spec/fixtures/X221-HP835/3c-good.txt +34 -0
- data/spec/fixtures/X222-HC837/1-bad.txt +60 -0
- data/spec/fixtures/X222-HC837/1-good.txt +53 -0
- data/spec/fixtures/X222-HC837/10a-bad.txt +52 -0
- data/spec/fixtures/X222-HC837/10a-good.txt +40 -0
- data/spec/fixtures/X222-HC837/10b-bad.txt +99 -0
- data/spec/fixtures/X222-HC837/10b-good.txt +80 -0
- data/spec/fixtures/X222-HC837/10c-bad.txt +105 -0
- data/spec/fixtures/X222-HC837/10c-good.txt +80 -0
- data/spec/fixtures/X222-HC837/11-bad.txt +69 -0
- data/spec/fixtures/X222-HC837/11-good.txt +45 -0
- data/spec/fixtures/X222-HC837/12-bad.txt +73 -0
- data/spec/fixtures/X222-HC837/12-good.txt +51 -0
- data/spec/fixtures/X222-HC837/13-bad.txt +64 -0
- data/spec/fixtures/X222-HC837/13-good.txt +46 -0
- data/spec/fixtures/X222-HC837/3a-bad.txt +83 -0
- data/spec/fixtures/X222-HC837/3a-good.txt +59 -0
- data/spec/fixtures/X222-HC837/3b-bad.txt +97 -0
- data/spec/fixtures/X222-HC837/3b-good.txt +70 -0
- data/spec/fixtures/X222-HC837/3c-bad.txt +95 -0
- data/spec/fixtures/X222-HC837/3c-good.txt +74 -0
- data/spec/fixtures/X222-HC837/4-bad.txt +67 -0
- data/spec/fixtures/X222-HC837/4-good.txt +48 -0
- data/spec/fixtures/X222-HC837/5-bad.txt +73 -0
- data/spec/fixtures/X222-HC837/5-good.txt +60 -0
- data/spec/fixtures/X222-HC837/6-bad.txt +50 -0
- data/spec/fixtures/X222-HC837/6-good.txt +39 -0
- data/spec/fixtures/X222-HC837/7-bad.txt +93 -0
- data/spec/fixtures/X222-HC837/7-good.txt +78 -0
- data/spec/fixtures/X222-HC837/8-bad.txt +64 -0
- data/spec/fixtures/X222-HC837/8-good.txt +52 -0
- data/spec/fixtures/X222-HC837/9-bad.txt +56 -0
- data/spec/fixtures/X222-HC837/9-good.txt +38 -0
- data/spec/fixtures/X223-HC837/1-bad.txt +66 -0
- data/spec/fixtures/X223-HC837/1-good.txt +53 -0
- data/spec/fixtures/X223-HC837/2-bad.txt +69 -0
- data/spec/fixtures/X223-HC837/2-good.txt +60 -0
- data/spec/fixtures/X223-HC837/3-bad.txt +89 -0
- data/spec/fixtures/X223-HC837/3-good.txt +61 -0
- data/spec/fixtures/X223-HC837/4-bad.txt +60 -0
- data/spec/fixtures/X223-HC837/4-good.txt +40 -0
- data/spec/fixtures/X223-HC837/5-bad.txt +75 -0
- data/spec/fixtures/X223-HC837/5-good.txt +58 -0
- data/spec/fixtures/X224-HC837/1-bad.txt +54 -0
- data/spec/fixtures/X224-HC837/1-good.txt +44 -0
- data/spec/fixtures/X224-HC837/2a-bad.txt +52 -0
- data/spec/fixtures/X224-HC837/2a-good.txt +42 -0
- data/spec/fixtures/X224-HC837/2b-bad.txt +67 -0
- data/spec/fixtures/X224-HC837/2b-good.txt +52 -0
- data/spec/fixtures/X224-HC837/3-bad.txt +67 -0
- data/spec/fixtures/X224-HC837/3-good.txt +51 -0
- data/spec/fixtures/X224-HC837/4-bad.txt +49 -0
- data/spec/fixtures/X224-HC837/4-good.txt +40 -0
- data/spec/fixtures/X230-FA997/1-bad.txt +19 -0
- data/spec/fixtures/X230-FA997/1-good.txt +16 -0
- data/spec/fixtures/X231-FA999/1-bad.txt +20 -0
- data/spec/fixtures/X231-FA999/1-good.txt +20 -0
- data/spec/fixtures/X279-HB271/1-bad.txt +36 -0
- data/spec/fixtures/X279-HB271/1-good.txt +30 -0
- data/spec/fixtures/X279-HB271/2-bad.txt +22 -0
- data/spec/fixtures/X279-HB271/2-good.txt +16 -0
- data/spec/fixtures/X279-HB271/3-bad.txt +44 -0
- data/spec/fixtures/X279-HB271/3-good.txt +36 -0
- data/spec/fixtures/X279-HS270/1-bad.txt +29 -0
- data/spec/fixtures/X279-HS270/1-good.txt +23 -0
- data/spec/fixtures/X279-HS270/2-bad.txt +32 -0
- data/spec/fixtures/X279-HS270/2-good.txt +25 -0
- data/spec/spec_helper.rb +34 -0
- data/spec/support/fixtures.rb +26 -0
- data/spec/support/matchers/either_matchers.rb +26 -0
- data/spec/support/matchers/navigation_matchers.rb +247 -0
- data/spec/support/node.rb +41 -0
- data/spec/support/quickcheck/characters.rb +28 -0
- data/spec/support/quickcheck/property.rb +105 -0
- data/spec/support/quickcheck/serialized_edi.rb +399 -0
- data/spec/support/quickcheck.rb +302 -0
- data/spec/support/rcov.rb +34 -0
- metadata +577 -0
|
@@ -0,0 +1,613 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Guides
|
|
3
|
+
module FiftyTen
|
|
4
|
+
module X221A1
|
|
5
|
+
|
|
6
|
+
b = GuideBuilder
|
|
7
|
+
d = Schema
|
|
8
|
+
r = SegmentReqs
|
|
9
|
+
e = ElementReqs
|
|
10
|
+
s = Versions::FunctionalGroups::FiftyTen::SegmentDefs
|
|
11
|
+
t = Versions::FunctionalGroups::FiftyTen::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::Element(e::NotUsed, "Implementation Guide Version Name")),
|
|
20
|
+
b::Segment(200, s::BPR, "Financial Information",
|
|
21
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
22
|
+
b::Element(e::Required, "Transaction Handling Code", b::Values("C", "D", "H", "I", "P", "U", "X")),
|
|
23
|
+
b::Element(e::Required, "Total Actual Provider Payment Amount", b::MaxLength(10)),
|
|
24
|
+
b::Element(e::Required, "Credit or Debit Flag Code", b::Values("C", "D")),
|
|
25
|
+
b::Element(e::Required, "Payment Method Code", b::Values("ACH", "BOP", "CHK", "FWT", "NON")),
|
|
26
|
+
b::Element(e::Situational, "Payment Format Code", b::Values("CCP", "CTX")),
|
|
27
|
+
b::Element(e::Situational, "Depository Financial Institution (DFI) Identification Number Qualifier", b::Values("01", "04")),
|
|
28
|
+
b::Element(e::Situational, "Sender DFI Number"),
|
|
29
|
+
b::Element(e::Situational, "Account Number Qualifier", b::Values("DA")),
|
|
30
|
+
b::Element(e::Situational, "Sender Bank Account Number"),
|
|
31
|
+
b::Element(e::Situational, "Payer Identifier"),
|
|
32
|
+
b::Element(e::Situational, "Originating Company Supplemental Code"),
|
|
33
|
+
b::Element(e::Situational, "Depository Financial Institution (DFI) Identification Number Qualifier", b::Values("01", "04")),
|
|
34
|
+
b::Element(e::Situational, "Receiver or Provider Bank ID Number"),
|
|
35
|
+
b::Element(e::Situational, "Account Number Qualifier", b::Values("DA", "SG")),
|
|
36
|
+
b::Element(e::Situational, "Receiver or Provider Account Number"),
|
|
37
|
+
b::Element(e::Required, "Check Issue or EFT Effective Date"),
|
|
38
|
+
b::Element(e::NotUsed, "Business Function Code"),
|
|
39
|
+
b::Element(e::NotUsed, "(DFI) ID Number Qualifier"),
|
|
40
|
+
b::Element(e::NotUsed, "(DFI) Identification Number"),
|
|
41
|
+
b::Element(e::NotUsed, "Account Number Qualifier"),
|
|
42
|
+
b::Element(e::NotUsed, "Account Number")),
|
|
43
|
+
b::Segment(400, s::TRN, "Reassociation Trace Number",
|
|
44
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
45
|
+
b::Element(e::Required, "Trace Type Code", b::Values("1")),
|
|
46
|
+
b::Element(e::Required, "Check or EFT Trace Number"),
|
|
47
|
+
b::Element(e::Required, "Payer Identifier"),
|
|
48
|
+
b::Element(e::Situational, "Originating Company Supplemental Code")),
|
|
49
|
+
b::Segment(500, s::CUR, "Foreign Currency Information",
|
|
50
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
51
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PR")),
|
|
52
|
+
b::Element(e::Required, "Currency Code"),
|
|
53
|
+
b::Element(e::NotUsed, "Exchange Rate"),
|
|
54
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
55
|
+
b::Element(e::NotUsed, "Currency Code"),
|
|
56
|
+
b::Element(e::NotUsed, "Currency Market/Exchange Code"),
|
|
57
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
|
58
|
+
b::Element(e::NotUsed, "Date"),
|
|
59
|
+
b::Element(e::NotUsed, "Time"),
|
|
60
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
|
61
|
+
b::Element(e::NotUsed, "Date"),
|
|
62
|
+
b::Element(e::NotUsed, "Time"),
|
|
63
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
|
64
|
+
b::Element(e::NotUsed, "Date"),
|
|
65
|
+
b::Element(e::NotUsed, "Time"),
|
|
66
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
|
67
|
+
b::Element(e::NotUsed, "Date"),
|
|
68
|
+
b::Element(e::NotUsed, "Time"),
|
|
69
|
+
b::Element(e::NotUsed, "Date/Time Qualifier"),
|
|
70
|
+
b::Element(e::NotUsed, "Date"),
|
|
71
|
+
b::Element(e::NotUsed, "Time")),
|
|
72
|
+
b::Segment(600, s::REF, "Receiver Identification",
|
|
73
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
74
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("EV")),
|
|
75
|
+
b::Element(e::Required, "Receiver Identifier"),
|
|
76
|
+
b::Element(e::NotUsed, "Description"),
|
|
77
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
78
|
+
b::Segment(600, s::REF, "Version Identification",
|
|
79
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
80
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("F2")),
|
|
81
|
+
b::Element(e::Required, "Version Identification Code"),
|
|
82
|
+
b::Element(e::NotUsed, "Description"),
|
|
83
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
84
|
+
b::Segment(700, s::DTM, "Production Date",
|
|
85
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
86
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("405")),
|
|
87
|
+
b::Element(e::Required, "Production Date"),
|
|
88
|
+
b::Element(e::NotUsed, "Time"),
|
|
89
|
+
b::Element(e::NotUsed, "Time Code"),
|
|
90
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
|
91
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
|
92
|
+
|
|
93
|
+
d::LoopDef.build("1000A PAYER IDENTIFICATION",
|
|
94
|
+
d::RepeatCount.bounded(1),
|
|
95
|
+
b::Segment( 800, s::N1, "Payer Identification",
|
|
96
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
97
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PR")),
|
|
98
|
+
b::Element(e::Required, "Payer Name"),
|
|
99
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("XV")),
|
|
100
|
+
b::Element(e::Situational, "Payer Identifier"),
|
|
101
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
102
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
|
103
|
+
b::Segment(1000, s::N3, "Payer Address",
|
|
104
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
105
|
+
b::Element(e::Required, "Payer Address Line"),
|
|
106
|
+
b::Element(e::Situational, "Payer Address Line")),
|
|
107
|
+
b::Segment(1100, s::N4, "Payer City, State, ZIP Code",
|
|
108
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
109
|
+
b::Element(e::Required, "Payer City Name"),
|
|
110
|
+
b::Element(e::Situational, "Payer State or Province Code"),
|
|
111
|
+
b::Element(e::Situational, "Payer Postal Zone or ZIP Code"),
|
|
112
|
+
b::Element(e::Situational, "Country Code"),
|
|
113
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
|
114
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
|
115
|
+
b::Element(e::Situational, "Country Subdivision Code")),
|
|
116
|
+
b::Segment(1200, s::REF, "Additional Payer Identification",
|
|
117
|
+
r::Situational, d::RepeatCount.bounded(4),
|
|
118
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("2U", "EO", "HI", "NF")),
|
|
119
|
+
b::Element(e::Required, "Additional Payer Identifier"),
|
|
120
|
+
b::Element(e::NotUsed, "Description"),
|
|
121
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
122
|
+
b::Segment(1300, s::PER, "Payer Business Contact Information",
|
|
123
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
124
|
+
b::Element(e::Required, "Contact Function Code", b::Values("CX")),
|
|
125
|
+
b::Element(e::Situational, "Payer Contact Name"),
|
|
126
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "FX", "TE")),
|
|
127
|
+
b::Element(e::Situational, "Communication Number"),
|
|
128
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
|
129
|
+
b::Element(e::Situational, "Communication Number"),
|
|
130
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EX")),
|
|
131
|
+
b::Element(e::Situational, "Communication Number"),
|
|
132
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")),
|
|
133
|
+
b::Segment(1300, s::PER, "Payer Technical Contact Information",
|
|
134
|
+
r::Required, d::RepeatCount.unbounded,
|
|
135
|
+
b::Element(e::Required, "Contact Function Code", b::Values("BL")),
|
|
136
|
+
b::Element(e::Situational, "Payer Contact Name"),
|
|
137
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "TE", "UR")),
|
|
138
|
+
b::Element(e::Situational, "Communication Number"),
|
|
139
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE", "UR")),
|
|
140
|
+
b::Element(e::Situational, "Communication Number"),
|
|
141
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "UR")),
|
|
142
|
+
b::Element(e::Situational, "Communication Number"),
|
|
143
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")),
|
|
144
|
+
b::Segment(1300, s::PER, "Payer Web Site",
|
|
145
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
146
|
+
b::Element(e::Required, "Contact Function Code", b::Values("IC")),
|
|
147
|
+
b::Element(e::NotUsed, "Payer Contact Name"),
|
|
148
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("UR")),
|
|
149
|
+
b::Element(e::Required, "Communication Number"),
|
|
150
|
+
b::Element(e::NotUsed, "Communication Number Qualifier"),
|
|
151
|
+
b::Element(e::NotUsed, "Communication Number"),
|
|
152
|
+
b::Element(e::NotUsed, "Communication Number Qualifier"),
|
|
153
|
+
b::Element(e::NotUsed, "Communication Number"),
|
|
154
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference"))),
|
|
155
|
+
|
|
156
|
+
d::LoopDef.build("1000B PAYEE IDENTIFICATION",
|
|
157
|
+
d::RepeatCount.bounded(1),
|
|
158
|
+
b::Segment( 800, s::N1, "Payee Identification",
|
|
159
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
160
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PE")),
|
|
161
|
+
b::Element(e::Required, "Payee Name"),
|
|
162
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("FI", "XV", "XX")),
|
|
163
|
+
b::Element(e::Required, "Payee Identification Code"),
|
|
164
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
165
|
+
b::Element(e::NotUsed, "Entity Identifier Code")),
|
|
166
|
+
b::Segment(1000, s::N3, "Payee Address",
|
|
167
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
168
|
+
b::Element(e::Required, "Payee Address Line"),
|
|
169
|
+
b::Element(e::Situational, "Payee Address Line")),
|
|
170
|
+
b::Segment(1100, s::N4, "Payee City, State, ZIP Code",
|
|
171
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
172
|
+
b::Element(e::Required, "Payee City Name"),
|
|
173
|
+
b::Element(e::Situational, "Payee State or Province Code"),
|
|
174
|
+
b::Element(e::Situational, "Payee Postal Zone or ZIP Code"),
|
|
175
|
+
b::Element(e::Situational, "Country Code"),
|
|
176
|
+
b::Element(e::NotUsed, "Location Qualifier"),
|
|
177
|
+
b::Element(e::NotUsed, "Location Identifier"),
|
|
178
|
+
b::Element(e::Situational, "Country Subdivision Code")),
|
|
179
|
+
b::Segment(1200, s::REF, "Payee Additional Identification",
|
|
180
|
+
r::Situational, d::RepeatCount.unbounded,
|
|
181
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("0B", "D3", "PQ", "TJ")),
|
|
182
|
+
b::Element(e::Required, "Additional Payee Identifier"),
|
|
183
|
+
b::Element(e::NotUsed, "Description"),
|
|
184
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
185
|
+
b::Segment(1400, s::RDM, "Remittance Delivery Method",
|
|
186
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
187
|
+
b::Element(e::Required, "Report Transmission Code", b::Values("BM", "EM", "FT", "OL")),
|
|
188
|
+
b::Element(e::Situational, "Name"),
|
|
189
|
+
b::Element(e::Situational, "Communication Number"),
|
|
190
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER"),
|
|
191
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")))),
|
|
192
|
+
|
|
193
|
+
d::TableDef.detail("Table 2 - Detail",
|
|
194
|
+
d::LoopDef.build("2000 HEADER NUMBER",
|
|
195
|
+
d::RepeatCount.bounded(1),
|
|
196
|
+
b::Segment(30, s::LX, "Header Number",
|
|
197
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
198
|
+
b::Element(e::Required, "Assigned Number")),
|
|
199
|
+
b::Segment(50, s::TS3, "Provider Summary Information",
|
|
200
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
201
|
+
b::Element(e::Required, "Provider Identifier"),
|
|
202
|
+
b::Element(e::Required, "Facility Type Code"),
|
|
203
|
+
b::Element(e::Required, "Fiscal Period Date"),
|
|
204
|
+
b::Element(e::Required, "Total Claim Count"),
|
|
205
|
+
b::Element(e::Required, "Total Claim Charge Amount"),
|
|
206
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
207
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
208
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
209
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
210
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
211
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
212
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
213
|
+
b::Element(e::Situational, "Total MSP Payer Amount"),
|
|
214
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
215
|
+
b::Element(e::Situational, "Total Non-Lab Charge Amount"),
|
|
216
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
217
|
+
b::Element(e::Situational, "Total HCPCS Reported Charge Amount"),
|
|
218
|
+
b::Element(e::Situational, "Total HCPCS Payable Amount"),
|
|
219
|
+
b::Element(e::NotUsed, "Monetary Amount"),
|
|
220
|
+
b::Element(e::Situational, "Total Professional Component Amount"),
|
|
221
|
+
b::Element(e::Situational, "Total MSP Patient Liability Met Amount"),
|
|
222
|
+
b::Element(e::Situational, "Total Patient Reimbursement Amount"),
|
|
223
|
+
b::Element(e::Situational, "Total PIP Claim Count"),
|
|
224
|
+
b::Element(e::Situational, "Total PIP Adjustment Amount")),
|
|
225
|
+
b::Segment(70, s::TS2, "Provider Supplemental Summary Information",
|
|
226
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
227
|
+
b::Element(e::Situational, "Total DRG Amount"),
|
|
228
|
+
b::Element(e::Situational, "Total Federal Specific Amount"),
|
|
229
|
+
b::Element(e::Situational, "Total Hospital Specific Amount"),
|
|
230
|
+
b::Element(e::Situational, "Total Disproportionate Share Amount"),
|
|
231
|
+
b::Element(e::Situational, "Total Capital Amount"),
|
|
232
|
+
b::Element(e::Situational, "Total Indirect Medical Education Amount"),
|
|
233
|
+
b::Element(e::Situational, "Total Outlier Day Count"),
|
|
234
|
+
b::Element(e::Situational, "Total Day Outlier Count"),
|
|
235
|
+
b::Element(e::Situational, "Total Cost Outlier Amount"),
|
|
236
|
+
b::Element(e::Situational, "Average DRG Length of Stay"),
|
|
237
|
+
b::Element(e::Situational, "Total Discharge Amount"),
|
|
238
|
+
b::Element(e::Situational, "Total Cost Report Day Count"),
|
|
239
|
+
b::Element(e::Situational, "Total Covered Day Count"),
|
|
240
|
+
b::Element(e::Situational, "Total Noncovered Day Count"),
|
|
241
|
+
b::Element(e::Situational, "Total MSP Pass-Through Count"),
|
|
242
|
+
b::Element(e::Situational, "Average DRG Weight"),
|
|
243
|
+
b::Element(e::Situational, "Total PPS Capital FSP DRG Amount"),
|
|
244
|
+
b::Element(e::Situational, "Total PPS Capital HSP DRG Amount"),
|
|
245
|
+
b::Element(e::Situational, "Total PPS DSH DRG Amount")),
|
|
246
|
+
|
|
247
|
+
d::LoopDef.build("2100 CLAIM PAYMENT INFORMATION",
|
|
248
|
+
d::RepeatCount.unbounded,
|
|
249
|
+
b::Segment( 100, s::CLP, "Claim Payment Information",
|
|
250
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
251
|
+
b::Element(e::Required, "Patient Control Number"),
|
|
252
|
+
b::Element(e::Required, "Claim Status Code", b::Values("1", "2", "3", "4", "19", "20", "21", "22", "23", "25")),
|
|
253
|
+
b::Element(e::Required, "Total Claim Charge Amount"),
|
|
254
|
+
b::Element(e::Required, "Claim Payment Amount"),
|
|
255
|
+
b::Element(e::Situational, "Patient Responsibility Amount"),
|
|
256
|
+
b::Element(e::Required, "Claim Filing Indicator Code", b::Values("12", "13", "14", "15", "16", "17", "AM", "CH", "DS", "HM", "LM", "MA", "MB", "MC", "OF", "TV", "VA", "WC", "ZZ")),
|
|
257
|
+
b::Element(e::Required, "Payer Claim Control Number"),
|
|
258
|
+
b::Element(e::Situational, "Facility Type Code"),
|
|
259
|
+
b::Element(e::Situational, "Claim Frequency Type Code"),
|
|
260
|
+
b::Element(e::NotUsed, "Patient Status Code"),
|
|
261
|
+
b::Element(e::Situational, "Diagnosis Related Group (DRG) Code"),
|
|
262
|
+
b::Element(e::Situational, "Diagnosis Related Group (DRG) Weight"),
|
|
263
|
+
b::Element(e::Situational, "Discharge Fraction"),
|
|
264
|
+
b::Element(e::NotUsed, "Yes/No Condition or Response Code")),
|
|
265
|
+
b::Segment( 200, s::CAS, "Claim Adjustment",
|
|
266
|
+
r::Situational, d::RepeatCount.bounded(99),
|
|
267
|
+
b::Element(e::Required, "Claim Adjustment Group Code", b::Values("CO", "CR", "OA", "PI", "PR")),
|
|
268
|
+
b::Element(e::Required, "Adjustment Reason Code"),
|
|
269
|
+
b::Element(e::Required, "Adjustment Amount"),
|
|
270
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
271
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
272
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
|
273
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
274
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
275
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
|
276
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
277
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
278
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
|
279
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
280
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
281
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
|
282
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
283
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
284
|
+
b::Element(e::Situational, "Adjustment Amount"),
|
|
285
|
+
b::Element(e::Situational, "Adjustment Quantity")),
|
|
286
|
+
b::Segment( 300, s::NM1, "Patient Name",
|
|
287
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
288
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("QC")),
|
|
289
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
|
290
|
+
b::Element(e::Situational, "Patient Last Name"),
|
|
291
|
+
b::Element(e::Situational, "Patient First Name"),
|
|
292
|
+
b::Element(e::Situational, "Patient Middle Name or Initial"),
|
|
293
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
294
|
+
b::Element(e::Situational, "Patient Name Suffix"),
|
|
295
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("34", "HN", "II", "MI", "MR")),
|
|
296
|
+
b::Element(e::Situational, "Patient Identifier"),
|
|
297
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
298
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
299
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
300
|
+
b::Segment( 300, s::NM1, "Insured Name",
|
|
301
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
302
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("IL")),
|
|
303
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
|
304
|
+
b::Element(e::Situational, "Subscriber Last Name"),
|
|
305
|
+
b::Element(e::Situational, "Subscriber First Name"),
|
|
306
|
+
b::Element(e::Situational, "Subscriber Middle Name or Initial"),
|
|
307
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
308
|
+
b::Element(e::Situational, "Subscriber Name Suffix"),
|
|
309
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("FI", "II", "MI")),
|
|
310
|
+
b::Element(e::Required, "Subscriber Identifier"),
|
|
311
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
312
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
313
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
314
|
+
b::Segment( 300, s::NM1, "Corrected Patient/Insured Name",
|
|
315
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
316
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("74")),
|
|
317
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1")),
|
|
318
|
+
b::Element(e::Situational, "Corrected Patient or Insured Last Name"),
|
|
319
|
+
b::Element(e::Situational, "Corrected Patient or Insured First Name"),
|
|
320
|
+
b::Element(e::Situational, "Corrected Patient or Insured Middle Name or Initial"),
|
|
321
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
322
|
+
b::Element(e::Situational, "Corrected Patient or Insured Name Suffix"),
|
|
323
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("C")),
|
|
324
|
+
b::Element(e::Situational, "Corrected Insured Identification Indicator"),
|
|
325
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
326
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
327
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
328
|
+
b::Segment( 300, s::NM1, "Service Provider Name",
|
|
329
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
330
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("82")),
|
|
331
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
|
332
|
+
b::Element(e::Situational, "Rendering Provider Last or Organization Name"),
|
|
333
|
+
b::Element(e::Situational, "Rendering Provider First Name"),
|
|
334
|
+
b::Element(e::Situational, "Rendering Provider Middle Name or Initial"),
|
|
335
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
336
|
+
b::Element(e::Situational, "Rendering Provider Name Suffix"),
|
|
337
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("BD", "BS", "FI", "MC", "PC", "SL", "UP", "XX")),
|
|
338
|
+
b::Element(e::Required, "Rendering Provider Identifier"),
|
|
339
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
340
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
341
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
342
|
+
b::Segment( 300, s::NM1, "Crossover Carrier Name",
|
|
343
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
344
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("TT")),
|
|
345
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("2")),
|
|
346
|
+
b::Element(e::Required, "Coordination of Benefits Carrier Name"),
|
|
347
|
+
b::Element(e::NotUsed, "Name First"),
|
|
348
|
+
b::Element(e::NotUsed, "Name Middle"),
|
|
349
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
350
|
+
b::Element(e::Situational, "Rendering Provider Name Suffix"),
|
|
351
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("AD", "FI", "NI", "PI", "PP", "XV")),
|
|
352
|
+
b::Element(e::Required, "Coordination of Benefits Carrient Identifier"),
|
|
353
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
354
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
355
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
356
|
+
b::Segment( 300, s::NM1, "Corrected Priority Payer Name",
|
|
357
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
358
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("PR")),
|
|
359
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("2")),
|
|
360
|
+
b::Element(e::Required, "Corrected Priority Payer Name"),
|
|
361
|
+
b::Element(e::NotUsed, "Name First"),
|
|
362
|
+
b::Element(e::NotUsed, "Name Middle"),
|
|
363
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
364
|
+
b::Element(e::Situational, "Rendering Provider Name Suffix"),
|
|
365
|
+
b::Element(e::Required, "Identification Code Qualifier", b::Values("AD", "FI", "NI", "PI", "PP", "XV")),
|
|
366
|
+
b::Element(e::Required, "Corrected Priority Payer Identification Number"),
|
|
367
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
368
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
369
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
370
|
+
b::Segment( 300, s::NM1, "Other Subscriber Name",
|
|
371
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
372
|
+
b::Element(e::Required, "Entity Identifier Code", b::Values("GB")),
|
|
373
|
+
b::Element(e::Required, "Entity Type Qualifier", b::Values("1", "2")),
|
|
374
|
+
b::Element(e::Situational, "Other Subscriber Last Name"),
|
|
375
|
+
b::Element(e::Situational, "Other Subscriber First Name"),
|
|
376
|
+
b::Element(e::Situational, "Other Subscriber Middle Name or Initial"),
|
|
377
|
+
b::Element(e::NotUsed, "Name Prefix"),
|
|
378
|
+
b::Element(e::Situational, "Other Subscriber Name Suffix"),
|
|
379
|
+
b::Element(e::Situational, "Identification Code Qualifier", b::Values("FI", "II", "MI")),
|
|
380
|
+
b::Element(e::Situational, "Other Subscriber Identifier"),
|
|
381
|
+
b::Element(e::NotUsed, "Entity Relationship Code"),
|
|
382
|
+
b::Element(e::NotUsed, "Entity Identifier Code"),
|
|
383
|
+
b::Element(e::NotUsed, "Name Last or Organization Name")),
|
|
384
|
+
b::Segment( 330, s::MIA, "Inpatient Adjudication Information",
|
|
385
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
386
|
+
b::Element(e::Required, "Covered Days or Visits Count"),
|
|
387
|
+
b::Element(e::Situational, "PPS Operating Outlier Amount"),
|
|
388
|
+
b::Element(e::Situational, "Lifetime Psychiatric Days Count"),
|
|
389
|
+
b::Element(e::Situational, "Claim DRG Amount"),
|
|
390
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
391
|
+
b::Element(e::Situational, "Claim Disproportionate Share Amount"),
|
|
392
|
+
b::Element(e::Situational, "Claim MSP Pass-Through Amount"),
|
|
393
|
+
b::Element(e::Situational, "Claim PPS Capital Amount"),
|
|
394
|
+
b::Element(e::Situational, "PPS-Capital FSP DRG Amount"),
|
|
395
|
+
b::Element(e::Situational, "PPS-Capital HSP DRG Amount"),
|
|
396
|
+
b::Element(e::Situational, "PPS-Capital DSH DRG Amount"),
|
|
397
|
+
b::Element(e::Situational, "Old Capital Amount"),
|
|
398
|
+
b::Element(e::Situational, "PPS-Capital IME Amount"),
|
|
399
|
+
b::Element(e::Situational, "PPS-Operating Hospital Specific DRG Amount"),
|
|
400
|
+
b::Element(e::Situational, "Cost Report Day Count"),
|
|
401
|
+
b::Element(e::Situational, "PPS-Operating Federal Specific DRG Amount"),
|
|
402
|
+
b::Element(e::Situational, "Claim PPS Capital Outlier Amount"),
|
|
403
|
+
b::Element(e::Situational, "Claim Indirect Teaching Amount"),
|
|
404
|
+
b::Element(e::Situational, "Nonpayable Professional Component Amount"),
|
|
405
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
406
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
407
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
408
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
409
|
+
b::Element(e::Situational, "PPS-Capital Exception Amount")),
|
|
410
|
+
b::Segment( 350, s::MOA, "Outpatient Adjudication Information",
|
|
411
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
412
|
+
b::Element(e::Situational, "Reimbursement Rate"),
|
|
413
|
+
b::Element(e::Situational, "Claim HCPCS Payable Amount", b::MaxLength(10)),
|
|
414
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
415
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
416
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
417
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
418
|
+
b::Element(e::Situational, "Claim Payment Remark Code"),
|
|
419
|
+
b::Element(e::Situational, "Claim ESRD Payment Amount", b::MaxLength(10)),
|
|
420
|
+
b::Element(e::Situational, "Nonpayable Professional Component Amount", b::MaxLength(10))),
|
|
421
|
+
b::Segment( 400, s::REF, "Other Claim Related Identification",
|
|
422
|
+
r::Situational, d::RepeatCount.bounded(5),
|
|
423
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1L", "1W", "28", "6P", "9A", "9C", "BB", "CE", "EA", "F8", "G1", "G3", "IG", "SY")),
|
|
424
|
+
b::Element(e::Required, "Other Claim Related Identifier"),
|
|
425
|
+
b::Element(e::NotUsed, "Description"),
|
|
426
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
427
|
+
b::Segment( 400, s::REF, "Rendering Provider Identification",
|
|
428
|
+
r::Situational, d::RepeatCount.bounded(10),
|
|
429
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("0B", "1A", "1B", "1C", "1D", "1G", "1H", "1J", "D3", "G2", "LU")),
|
|
430
|
+
b::Element(e::Required, "Rendering Provider Secondary Identifier"),
|
|
431
|
+
b::Element(e::NotUsed, "Description"),
|
|
432
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
433
|
+
b::Segment( 500, s::DTM, "Statement From or To Date",
|
|
434
|
+
r::Situational, d::RepeatCount.bounded(2),
|
|
435
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("232", "233")),
|
|
436
|
+
b::Element(e::Required, "Claim Date"),
|
|
437
|
+
b::Element(e::NotUsed, "Time"),
|
|
438
|
+
b::Element(e::NotUsed, "Time Code"),
|
|
439
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
|
440
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
|
441
|
+
b::Segment( 500, s::DTM, "Coverage Expiration Date",
|
|
442
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
443
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("036")),
|
|
444
|
+
b::Element(e::Required, "Date"),
|
|
445
|
+
b::Element(e::NotUsed, "Time"),
|
|
446
|
+
b::Element(e::NotUsed, "Time Code"),
|
|
447
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
|
448
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
|
449
|
+
b::Segment( 500, s::DTM, "Claim Received Date",
|
|
450
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
451
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("050")),
|
|
452
|
+
b::Element(e::Required, "Date"),
|
|
453
|
+
b::Element(e::NotUsed, "Time"),
|
|
454
|
+
b::Element(e::NotUsed, "Time Code"),
|
|
455
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
|
456
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
|
457
|
+
b::Segment( 600, s::PER, "Claim Contact Information",
|
|
458
|
+
r::Situational, d::RepeatCount.bounded(2),
|
|
459
|
+
b::Element(e::Required, "Contact Function Code", b::Values("CX")),
|
|
460
|
+
b::Element(e::Situational, "Claim Contact Name"),
|
|
461
|
+
b::Element(e::Required, "Communication Number Qualifier", b::Values("EM", "FX", "TE")),
|
|
462
|
+
b::Element(e::Required, "Claim Contact Communication Number"),
|
|
463
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EM", "EX", "FX", "TE")),
|
|
464
|
+
b::Element(e::Situational, "Claim Contact Communication Number"),
|
|
465
|
+
b::Element(e::Situational, "Communication Number Qualifier", b::Values("EX")),
|
|
466
|
+
b::Element(e::Situational, "Claim Contact Communication Number Extension"),
|
|
467
|
+
b::Element(e::NotUsed, "Contact Inquiry Reference")),
|
|
468
|
+
b::Segment( 620, s::AMT, "Claim Supplemental Information",
|
|
469
|
+
r::Situational, d::RepeatCount.bounded(13),
|
|
470
|
+
b::Element(e::Required, "Amount Qualifier Code", b::Values("AU", "D8", "DY", "F5", "I", "NL", "T", "T2", "ZK", "ZL", "ZM", "ZN", "ZO")),
|
|
471
|
+
b::Element(e::Required, "Claim Supplemental Information Amount"),
|
|
472
|
+
b::Element(e::NotUsed, "Credit/Debit Flag Code")),
|
|
473
|
+
b::Segment( 640, s::QTY, "Claim Supplemental Information Quantity",
|
|
474
|
+
r::Situational, d::RepeatCount.bounded(14),
|
|
475
|
+
b::Element(e::Required, "Quantity Qualifier", b::Values("CA", "CD", "LA", "LE", "NE", "NR", "OU", "PS", "VS", "ZK", "ZL", "ZM", "ZN", "ZO")),
|
|
476
|
+
b::Element(e::Required, "Claim Supplemental Information Quantity"),
|
|
477
|
+
b::Element(e::NotUsed, "COMPOSITE UNIT OF MEASURE"),
|
|
478
|
+
b::Element(e::NotUsed, "Free-Form Information")),
|
|
479
|
+
|
|
480
|
+
d::LoopDef.build("2110 SERVICE PAYMENT INFORMATION",
|
|
481
|
+
d::RepeatCount.bounded(999),
|
|
482
|
+
b::Segment( 700, s::SVC, "Service Payment Information",
|
|
483
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
484
|
+
b::Element(e::Required, "COMPOSITE MEDICAL PROCEDURE IDENTIFIER",
|
|
485
|
+
b::Element(e::Required, "Product or Service ID Qualifier", b::Values("AD", "ER", "HC", "HP", "IV", "N4", "N6", "NU", "UI", "WK")),
|
|
486
|
+
b::Element(e::Required, "Adjudicated Procedure Code"),
|
|
487
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
488
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
489
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
490
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
491
|
+
b::Element(e::NotUsed, "Description"),
|
|
492
|
+
b::Element(e::NotUsed, "Product/Service ID")),
|
|
493
|
+
b::Element(e::Required, "Line Item Charge Amount", b::MaxLength(10)),
|
|
494
|
+
b::Element(e::Required, "Line Item Provider Payment Amount", b::MaxLength(10)),
|
|
495
|
+
b::Element(e::Situational, "National Uniform Billing Committee Revenue Code"),
|
|
496
|
+
b::Element(e::Situational, "Units of Service Paid Count"),
|
|
497
|
+
b::Element(e::Situational, "COMPOSITE MEDICAL PROCEDURE IDENTIFIER",
|
|
498
|
+
b::Element(e::Required, "Product or Service ID Qualifier", b::Values("AD", "ER", "HC", "HP", "IV", "N4", "N6", "NU", "UI", "WK")),
|
|
499
|
+
b::Element(e::Required, "Procedure Code"),
|
|
500
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
501
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
502
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
503
|
+
b::Element(e::Situational, "Procedure Modifier"),
|
|
504
|
+
b::Element(e::NotUsed, "Description"),
|
|
505
|
+
b::Element(e::NotUsed, "Product/Service ID")),
|
|
506
|
+
b::Element(e::Situational, "Original Units of Service Count")),
|
|
507
|
+
b::Segment( 800, s::DTM, "Service Date",
|
|
508
|
+
r::Situational, d::RepeatCount.bounded(2),
|
|
509
|
+
b::Element(e::Required, "Date/Time Qualifier", b::Values("150", "151", "472")),
|
|
510
|
+
b::Element(e::Required, "Service Date"),
|
|
511
|
+
b::Element(e::NotUsed, "Time"),
|
|
512
|
+
b::Element(e::NotUsed, "Time Code"),
|
|
513
|
+
b::Element(e::NotUsed, "Date Time Period Format Qualifier"),
|
|
514
|
+
b::Element(e::NotUsed, "Date Time Period")),
|
|
515
|
+
b::Segment( 900, s::CAS, "Service Adjustment",
|
|
516
|
+
r::Situational, d::RepeatCount.bounded(99),
|
|
517
|
+
b::Element(e::Required, "Claim Adjustment Group Code", b::Values("CO", "CR", "OA", "PI", "PR")),
|
|
518
|
+
b::Element(e::Required, "Adjustment Reason Code"),
|
|
519
|
+
b::Element(e::Required, "Adjustment Amount", b::MaxLength(10)),
|
|
520
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
521
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
522
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
|
523
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
524
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
525
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
|
526
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
527
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
528
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
|
529
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
530
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
531
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
|
532
|
+
b::Element(e::Situational, "Adjustment Quantity"),
|
|
533
|
+
b::Element(e::Situational, "Adjustment Reason Code"),
|
|
534
|
+
b::Element(e::Situational, "Adjustment Amount", b::MaxLength(10)),
|
|
535
|
+
b::Element(e::Situational, "Adjustment Quantity")),
|
|
536
|
+
b::Segment(1000, s::REF, "Service Identification",
|
|
537
|
+
r::Situational, d::RepeatCount.bounded(8),
|
|
538
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("1S", "APC", "BB", "E9", "G1", "G3", "LU", "RB")),
|
|
539
|
+
b::Element(e::Required, "Provider Identifier"),
|
|
540
|
+
b::Element(e::NotUsed, "Description"),
|
|
541
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
542
|
+
b::Segment(1000, s::REF, "Line Item Control Number",
|
|
543
|
+
r::Situational, d::RepeatCount.bounded(1),
|
|
544
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("6R")),
|
|
545
|
+
b::Element(e::Required, "Line Item Control Number"),
|
|
546
|
+
b::Element(e::NotUsed, "Description"),
|
|
547
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
548
|
+
b::Segment(1000, s::REF, "Rendering Provider Information",
|
|
549
|
+
r::Situational, d::RepeatCount.bounded(10),
|
|
550
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("0B", "1A", "1B", "1C", "1D", "1G", "1H", "1J", "D3", "G2", "HPI", "SY", "TJ")),
|
|
551
|
+
b::Element(e::Required, "Rendering Provider Identifier"),
|
|
552
|
+
b::Element(e::NotUsed, "Description"),
|
|
553
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
554
|
+
b::Segment(1000, s::REF, "HealthCare Policy Identification",
|
|
555
|
+
r::Situational, d::RepeatCount.bounded(5),
|
|
556
|
+
b::Element(e::Required, "Reference Identification Qualifier", b::Values("0K")),
|
|
557
|
+
b::Element(e::Required, "Healthcare Policy Identification"),
|
|
558
|
+
b::Element(e::NotUsed, "Description"),
|
|
559
|
+
b::Element(e::NotUsed, "REFERENCE IDENTIFIER")),
|
|
560
|
+
b::Segment(1100, s::AMT, "Service Supplemental Amount",
|
|
561
|
+
r::Situational, d::RepeatCount.bounded(9),
|
|
562
|
+
b::Element(e::Required, "Amount Qualifier Code", b::Values("B6", "KH", "T", "T2", "ZK", "ZL", "ZM", "ZN", "ZO")),
|
|
563
|
+
b::Element(e::Required, "Service Supplemental Amount", b::MaxLength(10)),
|
|
564
|
+
b::Element(e::NotUsed, "Credit/Debit Flag Code")),
|
|
565
|
+
b::Segment(1200, s::QTY, "Service Supplemental Quantity",
|
|
566
|
+
r::Situational, d::RepeatCount.bounded(6),
|
|
567
|
+
b::Element(e::Required, "Quantity Qualifier", b::Values("ZK", "ZL", "ZM", "ZN", "ZO")),
|
|
568
|
+
b::Element(e::Required, "Service Supplemental Quantity Count"),
|
|
569
|
+
b::Element(e::NotUsed, "COMPOSITE UNIT OF MEASURE"),
|
|
570
|
+
b::Element(e::NotUsed, "Free-Form Information")),
|
|
571
|
+
b::Segment(1300, s::LQ, "Health Care Remark Codes",
|
|
572
|
+
r::Situational, d::RepeatCount.bounded(99),
|
|
573
|
+
b::Element(e::Required, "Code List Qualifier Code", b::Values("HE", "RX")),
|
|
574
|
+
b::Element(e::Required, "Remark Code")))))),
|
|
575
|
+
|
|
576
|
+
d::TableDef.summary("Table 3 - Summary",
|
|
577
|
+
b::Segment(100, s::PLB, "Provider Adjustment",
|
|
578
|
+
r::Situational, d::RepeatCount.unbounded,
|
|
579
|
+
b::Element(e::Required, "Provider Identifier"),
|
|
580
|
+
b::Element(e::Required, "Fiscal Period Date"),
|
|
581
|
+
b::Element(e::Required, "ADJUSTMENT IDENTIFIER",
|
|
582
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AH", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "HM", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU")),
|
|
583
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
|
584
|
+
b::Element(e::Required, "Provider Adjustment Amount", b::MaxLength(10)),
|
|
585
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
|
586
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AH", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "HM", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU")),
|
|
587
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
|
588
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
|
589
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
|
590
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AH", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "HM", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU")),
|
|
591
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
|
592
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
|
593
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
|
594
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AH", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "HM", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU")),
|
|
595
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
|
596
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
|
597
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
|
598
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AH", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "HM", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU")),
|
|
599
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
|
600
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10)),
|
|
601
|
+
b::Element(e::Situational, "ADJUSTMENT IDENTIFIER",
|
|
602
|
+
b::Element(e::Required, "Adjustment Reason Code", b::Values("50", "51", "72", "90", "AH", "AM", "AP", "B2", "B3", "BD", "BN", "C5", "CR", "CS", "CT", "CV", "CW", "DM", "E3", "FB", "FC", "GO", "HM", "IP", "IR", "IS", "J1", "L3", "L6", "LE", "LS", "OA", "OB", "PI", "PL", "RA", "RE", "SL", "TL", "WO", "WU")),
|
|
603
|
+
b::Element(e::Situational, "Provider Adjustment Identifier")),
|
|
604
|
+
b::Element(e::Situational, "Provider Adjustment Amount", b::MaxLength(10))),
|
|
605
|
+
b::Segment(200, s::SE, "Transaction Set Trailer",
|
|
606
|
+
r::Required, d::RepeatCount.bounded(1),
|
|
607
|
+
b::Element(e::Required, "Transaction Segment Count"),
|
|
608
|
+
b::Element(e::Required, "Transaction Set Control Number"))))
|
|
609
|
+
|
|
610
|
+
end
|
|
611
|
+
end
|
|
612
|
+
end
|
|
613
|
+
end
|