stupidedi 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (500) hide show
  1. data/README.md +215 -0
  2. data/Rakefile +108 -0
  3. data/bin/edi-ed +71 -0
  4. data/bin/edi-pp +81 -0
  5. data/doc/Defining.md +0 -0
  6. data/doc/Generating.md +321 -0
  7. data/doc/LICENSE.md +0 -0
  8. data/doc/Navigating.md +645 -0
  9. data/doc/Parsing.md +0 -0
  10. data/doc/Serializing.md +7 -0
  11. data/doc/Tokenizing.md +0 -0
  12. data/doc/Validating.md +0 -0
  13. data/doc/design/Parser.md +0 -0
  14. data/doc/design/Reader.md +0 -0
  15. data/lib/ruby/array.rb +164 -0
  16. data/lib/ruby/blank.rb +67 -0
  17. data/lib/ruby/enumerable.rb +35 -0
  18. data/lib/ruby/exception.rb +33 -0
  19. data/lib/ruby/hash.rb +4 -0
  20. data/lib/ruby/instance_exec.rb +26 -0
  21. data/lib/ruby/module.rb +79 -0
  22. data/lib/ruby/object.rb +63 -0
  23. data/lib/ruby/string.rb +73 -0
  24. data/lib/ruby/symbol.rb +24 -0
  25. data/lib/ruby/to_d.rb +81 -0
  26. data/lib/ruby/to_date.rb +33 -0
  27. data/lib/ruby/to_time.rb +24 -0
  28. data/lib/ruby/try.rb +43 -0
  29. data/lib/stupidedi/blank_slate.rb +11 -0
  30. data/lib/stupidedi/builder/builder_dsl.rb +281 -0
  31. data/lib/stupidedi/builder/constraint_table.rb +418 -0
  32. data/lib/stupidedi/builder/generation.rb +112 -0
  33. data/lib/stupidedi/builder/instruction.rb +102 -0
  34. data/lib/stupidedi/builder/instruction_table.rb +204 -0
  35. data/lib/stupidedi/builder/navigation.rb +655 -0
  36. data/lib/stupidedi/builder/state_machine.rb +55 -0
  37. data/lib/stupidedi/builder/states/abstract_state.rb +332 -0
  38. data/lib/stupidedi/builder/states/failure_state.rb +69 -0
  39. data/lib/stupidedi/builder/states/functional_group_state.rb +97 -0
  40. data/lib/stupidedi/builder/states/initial_state.rb +63 -0
  41. data/lib/stupidedi/builder/states/interchange_state.rb +94 -0
  42. data/lib/stupidedi/builder/states/loop_state.rb +79 -0
  43. data/lib/stupidedi/builder/states/table_state.rb +96 -0
  44. data/lib/stupidedi/builder/states/transaction_set_state.rb +112 -0
  45. data/lib/stupidedi/builder/states/transmission_state.rb +59 -0
  46. data/lib/stupidedi/builder/tokenization.rb +196 -0
  47. data/lib/stupidedi/builder.rb +23 -0
  48. data/lib/stupidedi/color.rb +93 -0
  49. data/lib/stupidedi/config/code_list_config.rb +42 -0
  50. data/lib/stupidedi/config/editor_config.rb +51 -0
  51. data/lib/stupidedi/config/functional_group_config.rb +62 -0
  52. data/lib/stupidedi/config/interchange_config.rb +79 -0
  53. data/lib/stupidedi/config/transaction_set_config.rb +91 -0
  54. data/lib/stupidedi/config.rb +101 -0
  55. data/lib/stupidedi/editor/00501.rb +341 -0
  56. data/lib/stupidedi/editor/005010/N2.rb +0 -0
  57. data/lib/stupidedi/editor/005010/N3.rb +0 -0
  58. data/lib/stupidedi/editor/005010/N4.rb +63 -0
  59. data/lib/stupidedi/editor/005010/NM1.rb +0 -0
  60. data/lib/stupidedi/editor/005010.rb +469 -0
  61. data/lib/stupidedi/editor/X222-HC837.rb +195 -0
  62. data/lib/stupidedi/editor/abstract_ed.rb +36 -0
  63. data/lib/stupidedi/editor/claim_ack.rb +9 -0
  64. data/lib/stupidedi/editor/implementation_ack.rb +213 -0
  65. data/lib/stupidedi/editor/interchange_ack.rb +9 -0
  66. data/lib/stupidedi/editor/result.rb +100 -0
  67. data/lib/stupidedi/editor/result_set.rb +69 -0
  68. data/lib/stupidedi/editor/transaction_set_ed.rb +275 -0
  69. data/lib/stupidedi/editor/transmission_ed.rb +90 -0
  70. data/lib/stupidedi/editor.rb +37 -0
  71. data/lib/stupidedi/either.rb +287 -0
  72. data/lib/stupidedi/exceptions/invalid_element_error.rb +8 -0
  73. data/lib/stupidedi/exceptions/invalid_schema_error.rb +8 -0
  74. data/lib/stupidedi/exceptions/output_error.rb +8 -0
  75. data/lib/stupidedi/exceptions/parse_error.rb +8 -0
  76. data/lib/stupidedi/exceptions/stupidedi_error.rb +8 -0
  77. data/lib/stupidedi/exceptions/tokenize_error.rb +8 -0
  78. data/lib/stupidedi/exceptions/zipper_error.rb +8 -0
  79. data/lib/stupidedi/exceptions.rb +11 -0
  80. data/lib/stupidedi/guides/005010/X214-HN277.rb +409 -0
  81. data/lib/stupidedi/guides/005010/X221-HP835.rb +613 -0
  82. data/lib/stupidedi/guides/005010/X221A1-HP835.rb +613 -0
  83. data/lib/stupidedi/guides/005010/X222-HC837P.rb +2291 -0
  84. data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +2297 -0
  85. data/lib/stupidedi/guides/005010/X231-FA999.rb +123 -0
  86. data/lib/stupidedi/guides/005010/X231A1-FA999.rb +119 -0
  87. data/lib/stupidedi/guides/005010/element_reqs.rb +38 -0
  88. data/lib/stupidedi/guides/005010/guide_builder.rb +180 -0
  89. data/lib/stupidedi/guides/005010/segment_reqs.rb +32 -0
  90. data/lib/stupidedi/guides/005010.rb +64 -0
  91. data/lib/stupidedi/guides.rb +5 -0
  92. data/lib/stupidedi/inspect.rb +26 -0
  93. data/lib/stupidedi/reader/input/abstract_input.rb +133 -0
  94. data/lib/stupidedi/reader/input/delegated_input.rb +111 -0
  95. data/lib/stupidedi/reader/input/file_input.rb +155 -0
  96. data/lib/stupidedi/reader/input.rb +30 -0
  97. data/lib/stupidedi/reader/position.rb +69 -0
  98. data/lib/stupidedi/reader/result.rb +168 -0
  99. data/lib/stupidedi/reader/segment_dict.rb +175 -0
  100. data/lib/stupidedi/reader/separators.rb +85 -0
  101. data/lib/stupidedi/reader/stream_reader.rb +172 -0
  102. data/lib/stupidedi/reader/token_reader.rb +466 -0
  103. data/lib/stupidedi/reader/tokens/component_element_tok.rb +56 -0
  104. data/lib/stupidedi/reader/tokens/composite_element_tok.rb +64 -0
  105. data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +64 -0
  106. data/lib/stupidedi/reader/tokens/segment_tok.rb +51 -0
  107. data/lib/stupidedi/reader/tokens/simple_element_tok.rb +63 -0
  108. data/lib/stupidedi/reader.rb +121 -0
  109. data/lib/stupidedi/schema/abstract_def.rb +74 -0
  110. data/lib/stupidedi/schema/abstract_use.rb +73 -0
  111. data/lib/stupidedi/schema/code_list.rb +94 -0
  112. data/lib/stupidedi/schema/element_def.rb +173 -0
  113. data/lib/stupidedi/schema/element_req.rb +56 -0
  114. data/lib/stupidedi/schema/element_use.rb +251 -0
  115. data/lib/stupidedi/schema/functional_group_def.rb +114 -0
  116. data/lib/stupidedi/schema/interchange_def.rb +93 -0
  117. data/lib/stupidedi/schema/loop_def.rb +152 -0
  118. data/lib/stupidedi/schema/repeat_count.rb +85 -0
  119. data/lib/stupidedi/schema/segment_def.rb +108 -0
  120. data/lib/stupidedi/schema/segment_req.rb +43 -0
  121. data/lib/stupidedi/schema/segment_use.rb +98 -0
  122. data/lib/stupidedi/schema/syntax_note.rb +63 -0
  123. data/lib/stupidedi/schema/table_def.rb +139 -0
  124. data/lib/stupidedi/schema/transaction_set_def.rb +88 -0
  125. data/lib/stupidedi/schema.rb +28 -0
  126. data/lib/stupidedi/sets/absolute_set.rb +297 -0
  127. data/lib/stupidedi/sets/abstract_set.rb +174 -0
  128. data/lib/stupidedi/sets/null_set.rb +125 -0
  129. data/lib/stupidedi/sets/relative_complement.rb +137 -0
  130. data/lib/stupidedi/sets/relative_set.rb +269 -0
  131. data/lib/stupidedi/sets/universal_set.rb +104 -0
  132. data/lib/stupidedi/sets.rb +57 -0
  133. data/lib/stupidedi/tail_call.rb +109 -0
  134. data/lib/stupidedi/thread_local.rb +174 -0
  135. data/lib/stupidedi/values/abstract_element_val.rb +19 -0
  136. data/lib/stupidedi/values/abstract_val.rb +130 -0
  137. data/lib/stupidedi/values/composite_element_val.rb +95 -0
  138. data/lib/stupidedi/values/functional_group_val.rb +102 -0
  139. data/lib/stupidedi/values/interchange_val.rb +86 -0
  140. data/lib/stupidedi/values/invalid_envelope_val.rb +61 -0
  141. data/lib/stupidedi/values/invalid_segment_val.rb +78 -0
  142. data/lib/stupidedi/values/loop_val.rb +70 -0
  143. data/lib/stupidedi/values/repeated_element_val.rb +105 -0
  144. data/lib/stupidedi/values/segment_val.rb +104 -0
  145. data/lib/stupidedi/values/segment_val_group.rb +20 -0
  146. data/lib/stupidedi/values/simple_element_val.rb +80 -0
  147. data/lib/stupidedi/values/table_val.rb +66 -0
  148. data/lib/stupidedi/values/transaction_set_val.rb +66 -0
  149. data/lib/stupidedi/values/transmission_val.rb +52 -0
  150. data/lib/stupidedi/values.rb +21 -0
  151. data/lib/stupidedi/version.rb +3 -0
  152. data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +54 -0
  153. data/lib/stupidedi/versions/functional_groups/004010/element_reqs.rb +18 -0
  154. data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +527 -0
  155. data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +335 -0
  156. data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +299 -0
  157. data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +287 -0
  158. data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +338 -0
  159. data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +309 -0
  160. data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +124 -0
  161. data/lib/stupidedi/versions/functional_groups/004010/functional_group_def.rb +30 -0
  162. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GE.rb +20 -0
  163. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GS.rb +27 -0
  164. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SE.rb +20 -0
  165. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/ST.rb +20 -0
  166. data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +23 -0
  167. data/lib/stupidedi/versions/functional_groups/004010/segment_reqs.rb +18 -0
  168. data/lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb +174 -0
  169. data/lib/stupidedi/versions/functional_groups/004010.rb +38 -0
  170. data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +1405 -0
  171. data/lib/stupidedi/versions/functional_groups/005010/element_reqs.rb +18 -0
  172. data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +577 -0
  173. data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +322 -0
  174. data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +354 -0
  175. data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +368 -0
  176. data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +117 -0
  177. data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +398 -0
  178. data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +327 -0
  179. data/lib/stupidedi/versions/functional_groups/005010/element_types.rb +132 -0
  180. data/lib/stupidedi/versions/functional_groups/005010/functional_group_def.rb +30 -0
  181. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK1.rb +21 -0
  182. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK2.rb +21 -0
  183. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK9.rb +28 -0
  184. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AMT.rb +21 -0
  185. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BHT.rb +24 -0
  186. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BPR.rb +49 -0
  187. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CAS.rb +56 -0
  188. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CL1.rb +22 -0
  189. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLM.rb +41 -0
  190. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLP.rb +34 -0
  191. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CN1.rb +24 -0
  192. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR1.rb +32 -0
  193. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR2.rb +35 -0
  194. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR3.rb +25 -0
  195. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CRC.rb +26 -0
  196. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTP.rb +36 -0
  197. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTX.rb +24 -0
  198. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CUR.rb +57 -0
  199. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DMG.rb +34 -0
  200. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN1.rb +22 -0
  201. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN2.rb +24 -0
  202. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTM.rb +24 -0
  203. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTP.rb +21 -0
  204. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/FRM.rb +25 -0
  205. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GE.rb +20 -0
  206. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GS.rb +27 -0
  207. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HCP.rb +39 -0
  208. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HI.rb +31 -0
  209. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HL.rb +22 -0
  210. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK3.rb +22 -0
  211. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK4.rb +22 -0
  212. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK5.rb +24 -0
  213. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/K3.rb +21 -0
  214. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LIN.rb +69 -0
  215. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LQ.rb +22 -0
  216. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LX.rb +19 -0
  217. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MEA.rb +39 -0
  218. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MIA.rb +45 -0
  219. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MOA.rb +28 -0
  220. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N1.rb +24 -0
  221. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N2.rb +20 -0
  222. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N3.rb +20 -0
  223. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N4.rb +30 -0
  224. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NM1.rb +35 -0
  225. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NTE.rb +20 -0
  226. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/OI.rb +24 -0
  227. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PAT.rb +31 -0
  228. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PER.rb +32 -0
  229. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PLB.rb +40 -0
  230. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PRV.rb +26 -0
  231. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PS1.rb +21 -0
  232. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PWK.rb +30 -0
  233. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/QTY.rb +25 -0
  234. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/RDM.rb +23 -0
  235. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/REF.rb +23 -0
  236. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SBR.rb +28 -0
  237. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SE.rb +20 -0
  238. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ST.rb +21 -0
  239. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/STC.rb +30 -0
  240. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV1.rb +44 -0
  241. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV2.rb +29 -0
  242. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV3.rb +30 -0
  243. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV5.rb +29 -0
  244. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVC.rb +26 -0
  245. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVD.rb +24 -0
  246. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TOO.rb +21 -0
  247. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TRN.rb +22 -0
  248. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS2.rb +40 -0
  249. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS3.rb +45 -0
  250. data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +227 -0
  251. data/lib/stupidedi/versions/functional_groups/005010/segment_reqs.rb +18 -0
  252. data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +165 -0
  253. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb +38 -0
  254. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb +85 -0
  255. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +163 -0
  256. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +64 -0
  257. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb +74 -0
  258. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb +68 -0
  259. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb +57 -0
  260. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb +53 -0
  261. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +240 -0
  262. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +68 -0
  263. data/lib/stupidedi/versions/functional_groups/005010.rb +38 -0
  264. data/lib/stupidedi/versions/functional_groups.rb +8 -0
  265. data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +224 -0
  266. data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +45 -0
  267. data/lib/stupidedi/versions/interchanges/00401/segment_defs/IEA.rb +20 -0
  268. data/lib/stupidedi/versions/interchanges/00401/segment_defs/ISA.rb +34 -0
  269. data/lib/stupidedi/versions/interchanges/00401/segment_defs/TA1.rb +23 -0
  270. data/lib/stupidedi/versions/interchanges/00401/segment_defs.rb +28 -0
  271. data/lib/stupidedi/versions/interchanges/00401.rb +23 -0
  272. data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +269 -0
  273. data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +47 -0
  274. data/lib/stupidedi/versions/interchanges/00501/segment_defs/IEA.rb +20 -0
  275. data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISA.rb +34 -0
  276. data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISB.rb +18 -0
  277. data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISE.rb +18 -0
  278. data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA1.rb +23 -0
  279. data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA3.rb +18 -0
  280. data/lib/stupidedi/versions/interchanges/00501/segment_defs.rb +37 -0
  281. data/lib/stupidedi/versions/interchanges/00501.rb +23 -0
  282. data/lib/stupidedi/versions/interchanges.rb +8 -0
  283. data/lib/stupidedi/versions.rb +6 -0
  284. data/lib/stupidedi/writer/claredi.rb +142 -0
  285. data/lib/stupidedi/writer/default.rb +124 -0
  286. data/lib/stupidedi/writer.rb +6 -0
  287. data/lib/stupidedi/zipper/abstract_cursor.rb +351 -0
  288. data/lib/stupidedi/zipper/dangling_cursor.rb +103 -0
  289. data/lib/stupidedi/zipper/edited_cursor.rb +157 -0
  290. data/lib/stupidedi/zipper/memoized_cursor.rb +131 -0
  291. data/lib/stupidedi/zipper/path.rb +124 -0
  292. data/lib/stupidedi/zipper/root_cursor.rb +120 -0
  293. data/lib/stupidedi/zipper.rb +25 -0
  294. data/lib/stupidedi.rb +66 -0
  295. data/spec/examples/integration/generating.example +551 -0
  296. data/spec/examples/integration/navigating.example +214 -0
  297. data/spec/examples/integration/parsing.example +445 -0
  298. data/spec/examples/ruby/array.example +476 -0
  299. data/spec/examples/ruby/blank.example +62 -0
  300. data/spec/examples/ruby/count.example +68 -0
  301. data/spec/examples/ruby/object.example +99 -0
  302. data/spec/examples/ruby/string.example +111 -0
  303. data/spec/examples/ruby/symbol.example +117 -0
  304. data/spec/examples/ruby/to_d.example +90 -0
  305. data/spec/examples/ruby/try.example +50 -0
  306. data/spec/examples/stupidedi/either.example +375 -0
  307. data/spec/examples/stupidedi/reader/failure.example +68 -0
  308. data/spec/examples/stupidedi/reader/input/delegated_input.example +292 -0
  309. data/spec/examples/stupidedi/reader/separators.example +73 -0
  310. data/spec/examples/stupidedi/reader/stream_reader.example +48 -0
  311. data/spec/examples/stupidedi/reader/success.example +34 -0
  312. data/spec/examples/stupidedi/reader/token_reader.example +775 -0
  313. data/spec/examples/stupidedi/reader.example +168 -0
  314. data/spec/examples/stupidedi/sets/absolute_set.example +1577 -0
  315. data/spec/examples/stupidedi/sets/null_set.example +2 -0
  316. data/spec/examples/stupidedi/sets/relative_set.example +2 -0
  317. data/spec/examples/stupidedi/sets/universal_set.example +1 -0
  318. data/spec/examples/stupidedi/versions/005010/element_types/an.example +201 -0
  319. data/spec/examples/stupidedi/versions/005010/element_types/dt.example +258 -0
  320. data/spec/examples/stupidedi/versions/005010/element_types/id.example +192 -0
  321. data/spec/examples/stupidedi/versions/005010/element_types/nn.example +177 -0
  322. data/spec/examples/stupidedi/versions/005010/element_types/r.example +178 -0
  323. data/spec/examples/stupidedi/versions/005010/element_types/tm.example +2 -0
  324. data/spec/examples/stupidedi/zipper/abstract_cursor.example +417 -0
  325. data/spec/examples/stupidedi/zipper.example +9 -0
  326. data/spec/fixtures/X186-AG824/1-bad.txt +21 -0
  327. data/spec/fixtures/X186-AG824/1-good.txt +17 -0
  328. data/spec/fixtures/X186-AG824/2-bad.txt +26 -0
  329. data/spec/fixtures/X186-AG824/2-good.txt +21 -0
  330. data/spec/fixtures/X186-AG824/3-bad.txt +87 -0
  331. data/spec/fixtures/X186-AG824/3-good.txt +61 -0
  332. data/spec/fixtures/X212-HN277/1-bad.txt +54 -0
  333. data/spec/fixtures/X212-HN277/1-good.txt +46 -0
  334. data/spec/fixtures/X212-HN277/2-bad.txt +37 -0
  335. data/spec/fixtures/X212-HN277/2-good.txt +29 -0
  336. data/spec/fixtures/X212-HN277/3-bad.txt +22 -0
  337. data/spec/fixtures/X212-HN277/3-good.txt +17 -0
  338. data/spec/fixtures/X212-HN277/4-bad.txt +30 -0
  339. data/spec/fixtures/X212-HN277/4-good.txt +24 -0
  340. data/spec/fixtures/X212-HR276/1-bad.txt +53 -0
  341. data/spec/fixtures/X212-HR276/1-good.txt +46 -0
  342. data/spec/fixtures/X212-HR276/2-bad.txt +45 -0
  343. data/spec/fixtures/X212-HR276/2-good.txt +38 -0
  344. data/spec/fixtures/X212-HR276/3-bad.txt +32 -0
  345. data/spec/fixtures/X212-HR276/3-good.txt +26 -0
  346. data/spec/fixtures/X212-HR276/4-bad.txt +32 -0
  347. data/spec/fixtures/X212-HR276/4-good.txt +26 -0
  348. data/spec/fixtures/X214-HN277/1-bad.txt +58 -0
  349. data/spec/fixtures/X214-HN277/1-good.txt +47 -0
  350. data/spec/fixtures/X214-HN277/2-bad.txt +34 -0
  351. data/spec/fixtures/X214-HN277/2-good.txt +22 -0
  352. data/spec/fixtures/X214-HN277/3-bad.txt +64 -0
  353. data/spec/fixtures/X214-HN277/3-good.txt +54 -0
  354. data/spec/fixtures/X214-HN277/4-bad.txt +77 -0
  355. data/spec/fixtures/X214-HN277/4-good.txt +63 -0
  356. data/spec/fixtures/X216-HI278/1-bad.txt +42 -0
  357. data/spec/fixtures/X216-HI278/1-good.txt +27 -0
  358. data/spec/fixtures/X216-HI278/2-bad.txt +43 -0
  359. data/spec/fixtures/X216-HI278/2-good.txt +29 -0
  360. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1.txt +24 -0
  361. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1_Clean.txt +20 -0
  362. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2.txt +46 -0
  363. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2_Clean.txt +30 -0
  364. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3.txt +38 -0
  365. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3_Clean.txt +24 -0
  366. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a.txt +39 -0
  367. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a_Clean.txt +24 -0
  368. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b.txt +43 -0
  369. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b_Clean.txt +25 -0
  370. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5.txt +63 -0
  371. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5_Clean.txt +41 -0
  372. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6.txt +36 -0
  373. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6_Clean.txt +20 -0
  374. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r.txt +34 -0
  375. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r_Clean.txt +23 -0
  376. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r.txt +46 -0
  377. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r_Clean.txt +31 -0
  378. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r.txt +44 -0
  379. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r_Clean.txt +26 -0
  380. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4ar_Clean.txt +28 -0
  381. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4br_Clean.txt +35 -0
  382. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r.txt +60 -0
  383. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r_Clean.txt +42 -0
  384. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r.txt +40 -0
  385. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r_Clean.txt +24 -0
  386. data/spec/fixtures/X218-RA820/1-bad.txt +31 -0
  387. data/spec/fixtures/X218-RA820/1-good.txt +25 -0
  388. data/spec/fixtures/X218-RA820/2-bad.txt +37 -0
  389. data/spec/fixtures/X218-RA820/2-good.txt +29 -0
  390. data/spec/fixtures/X218-RA820/3-bad.txt +29 -0
  391. data/spec/fixtures/X218-RA820/3-good.txt +23 -0
  392. data/spec/fixtures/X218-RA820/4-bad.txt +36 -0
  393. data/spec/fixtures/X218-RA820/4-good.txt +27 -0
  394. data/spec/fixtures/X220-BE834/1-bad.txt +35 -0
  395. data/spec/fixtures/X220-BE834/1-good.txt +29 -0
  396. data/spec/fixtures/X220-BE834/10-bad.txt +26 -0
  397. data/spec/fixtures/X220-BE834/10-good.txt +19 -0
  398. data/spec/fixtures/X220-BE834/2-bad.txt +31 -0
  399. data/spec/fixtures/X220-BE834/2-good.txt +23 -0
  400. data/spec/fixtures/X220-BE834/3-bad.txt +36 -0
  401. data/spec/fixtures/X220-BE834/3-good.txt +26 -0
  402. data/spec/fixtures/X220-BE834/4-bad.txt +27 -0
  403. data/spec/fixtures/X220-BE834/4-good.txt +21 -0
  404. data/spec/fixtures/X220-BE834/5-bad.txt +26 -0
  405. data/spec/fixtures/X220-BE834/5-good.txt +17 -0
  406. data/spec/fixtures/X220-BE834/6-bad.txt +25 -0
  407. data/spec/fixtures/X220-BE834/6-good.txt +20 -0
  408. data/spec/fixtures/X220-BE834/7-bad.txt +25 -0
  409. data/spec/fixtures/X220-BE834/7-good.txt +20 -0
  410. data/spec/fixtures/X220-BE834/8-bad.txt +25 -0
  411. data/spec/fixtures/X220-BE834/8-good.txt +20 -0
  412. data/spec/fixtures/X220-BE834/9-bad.txt +27 -0
  413. data/spec/fixtures/X220-BE834/9-good.txt +21 -0
  414. data/spec/fixtures/X221-HP835/1-bad.txt +58 -0
  415. data/spec/fixtures/X221-HP835/1-good.txt +40 -0
  416. data/spec/fixtures/X221-HP835/2-bad.txt +51 -0
  417. data/spec/fixtures/X221-HP835/2-good.txt +40 -0
  418. data/spec/fixtures/X221-HP835/3a-bad.txt +78 -0
  419. data/spec/fixtures/X221-HP835/3a-good.txt +49 -0
  420. data/spec/fixtures/X221-HP835/3b-bad.txt +60 -0
  421. data/spec/fixtures/X221-HP835/3b-good.txt +32 -0
  422. data/spec/fixtures/X221-HP835/3c-bad.txt +55 -0
  423. data/spec/fixtures/X221-HP835/3c-good.txt +34 -0
  424. data/spec/fixtures/X222-HC837/1-bad.txt +60 -0
  425. data/spec/fixtures/X222-HC837/1-good.txt +53 -0
  426. data/spec/fixtures/X222-HC837/10a-bad.txt +52 -0
  427. data/spec/fixtures/X222-HC837/10a-good.txt +40 -0
  428. data/spec/fixtures/X222-HC837/10b-bad.txt +99 -0
  429. data/spec/fixtures/X222-HC837/10b-good.txt +80 -0
  430. data/spec/fixtures/X222-HC837/10c-bad.txt +105 -0
  431. data/spec/fixtures/X222-HC837/10c-good.txt +80 -0
  432. data/spec/fixtures/X222-HC837/11-bad.txt +69 -0
  433. data/spec/fixtures/X222-HC837/11-good.txt +45 -0
  434. data/spec/fixtures/X222-HC837/12-bad.txt +73 -0
  435. data/spec/fixtures/X222-HC837/12-good.txt +51 -0
  436. data/spec/fixtures/X222-HC837/13-bad.txt +64 -0
  437. data/spec/fixtures/X222-HC837/13-good.txt +46 -0
  438. data/spec/fixtures/X222-HC837/3a-bad.txt +83 -0
  439. data/spec/fixtures/X222-HC837/3a-good.txt +59 -0
  440. data/spec/fixtures/X222-HC837/3b-bad.txt +97 -0
  441. data/spec/fixtures/X222-HC837/3b-good.txt +70 -0
  442. data/spec/fixtures/X222-HC837/3c-bad.txt +95 -0
  443. data/spec/fixtures/X222-HC837/3c-good.txt +74 -0
  444. data/spec/fixtures/X222-HC837/4-bad.txt +67 -0
  445. data/spec/fixtures/X222-HC837/4-good.txt +48 -0
  446. data/spec/fixtures/X222-HC837/5-bad.txt +73 -0
  447. data/spec/fixtures/X222-HC837/5-good.txt +60 -0
  448. data/spec/fixtures/X222-HC837/6-bad.txt +50 -0
  449. data/spec/fixtures/X222-HC837/6-good.txt +39 -0
  450. data/spec/fixtures/X222-HC837/7-bad.txt +93 -0
  451. data/spec/fixtures/X222-HC837/7-good.txt +78 -0
  452. data/spec/fixtures/X222-HC837/8-bad.txt +64 -0
  453. data/spec/fixtures/X222-HC837/8-good.txt +52 -0
  454. data/spec/fixtures/X222-HC837/9-bad.txt +56 -0
  455. data/spec/fixtures/X222-HC837/9-good.txt +38 -0
  456. data/spec/fixtures/X223-HC837/1-bad.txt +66 -0
  457. data/spec/fixtures/X223-HC837/1-good.txt +53 -0
  458. data/spec/fixtures/X223-HC837/2-bad.txt +69 -0
  459. data/spec/fixtures/X223-HC837/2-good.txt +60 -0
  460. data/spec/fixtures/X223-HC837/3-bad.txt +89 -0
  461. data/spec/fixtures/X223-HC837/3-good.txt +61 -0
  462. data/spec/fixtures/X223-HC837/4-bad.txt +60 -0
  463. data/spec/fixtures/X223-HC837/4-good.txt +40 -0
  464. data/spec/fixtures/X223-HC837/5-bad.txt +75 -0
  465. data/spec/fixtures/X223-HC837/5-good.txt +58 -0
  466. data/spec/fixtures/X224-HC837/1-bad.txt +54 -0
  467. data/spec/fixtures/X224-HC837/1-good.txt +44 -0
  468. data/spec/fixtures/X224-HC837/2a-bad.txt +52 -0
  469. data/spec/fixtures/X224-HC837/2a-good.txt +42 -0
  470. data/spec/fixtures/X224-HC837/2b-bad.txt +67 -0
  471. data/spec/fixtures/X224-HC837/2b-good.txt +52 -0
  472. data/spec/fixtures/X224-HC837/3-bad.txt +67 -0
  473. data/spec/fixtures/X224-HC837/3-good.txt +51 -0
  474. data/spec/fixtures/X224-HC837/4-bad.txt +49 -0
  475. data/spec/fixtures/X224-HC837/4-good.txt +40 -0
  476. data/spec/fixtures/X230-FA997/1-bad.txt +19 -0
  477. data/spec/fixtures/X230-FA997/1-good.txt +16 -0
  478. data/spec/fixtures/X231-FA999/1-bad.txt +20 -0
  479. data/spec/fixtures/X231-FA999/1-good.txt +20 -0
  480. data/spec/fixtures/X279-HB271/1-bad.txt +36 -0
  481. data/spec/fixtures/X279-HB271/1-good.txt +30 -0
  482. data/spec/fixtures/X279-HB271/2-bad.txt +22 -0
  483. data/spec/fixtures/X279-HB271/2-good.txt +16 -0
  484. data/spec/fixtures/X279-HB271/3-bad.txt +44 -0
  485. data/spec/fixtures/X279-HB271/3-good.txt +36 -0
  486. data/spec/fixtures/X279-HS270/1-bad.txt +29 -0
  487. data/spec/fixtures/X279-HS270/1-good.txt +23 -0
  488. data/spec/fixtures/X279-HS270/2-bad.txt +32 -0
  489. data/spec/fixtures/X279-HS270/2-good.txt +25 -0
  490. data/spec/spec_helper.rb +34 -0
  491. data/spec/support/fixtures.rb +26 -0
  492. data/spec/support/matchers/either_matchers.rb +26 -0
  493. data/spec/support/matchers/navigation_matchers.rb +247 -0
  494. data/spec/support/node.rb +41 -0
  495. data/spec/support/quickcheck/characters.rb +28 -0
  496. data/spec/support/quickcheck/property.rb +105 -0
  497. data/spec/support/quickcheck/serialized_edi.rb +399 -0
  498. data/spec/support/quickcheck.rb +302 -0
  499. data/spec/support/rcov.rb +34 -0
  500. metadata +577 -0
@@ -0,0 +1,17 @@
1
+
2
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
3
+ GS*BE*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
4
+ ST*834*0001*005010X220~
5
+ BGN*00*12456*19980520*1200****2~
6
+ N1*P5*GENERIC INC*24*999995613~
7
+ N1*IN*ABC INSURANCE*FI*654456654~
8
+ INS*Y*18*001*25*A***FT~
9
+ REF*0F*123456789~
10
+ REF*1L*123456001~
11
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
12
+ DMG*D8*19500415*M~
13
+ NM1*70*1*DOE*JAMES*E~
14
+ DMG*D8*19500416*M~
15
+ SE*12*0001~
16
+ GE*1*1~
17
+ IEA*1*000000905~
@@ -0,0 +1,25 @@
1
+ Business Case Scenario 6 - Cancel a Dependent
2
+
3
+ The subscriber is canceling coverage for an over-age dependent.
4
+
5
+ Errors Found in File 834 5010X220-6
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H25518:Code '24' is requried for a HIPAA compliant transaction.
9
+
10
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
11
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
12
+ ST*834*0001*005010X220~
13
+ BGN*00*12456*19980520*1200****2~
14
+ REF*38*ABCD012354~
15
+ N1*P5**FI*999888777~
16
+ N1*IN**FI*654456654~
17
+ INS*N*19*024*07*A~
18
+ REF*0F*123456789~
19
+ REF*1L*123456001~
20
+ DTP*357*D8*19960801~
21
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
22
+ DMG*D8*19770816*M~
23
+ SE*12*0001~
24
+ GE*1*1~
25
+ IEA*1*000000905~
@@ -0,0 +1,20 @@
1
+ Business Case Scenario 6 - Cancel a Dependent
2
+
3
+ The subscriber is canceling coverage for an over-age dependent.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*BE*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
7
+ ST*834*0001*005010X220~
8
+ BGN*00*12456*19980520*1200****2~
9
+ REF*38*ABCD012354~
10
+ N1*P5**24*999888777~
11
+ N1*IN**FI*654456654~
12
+ INS*N*19*024*07*A~
13
+ REF*0F*123456789~
14
+ REF*1L*123456001~
15
+ DTP*357*D8*19960801~
16
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
17
+ DMG*D8*19770816*M~
18
+ SE*12*0001~
19
+ GE*1*1~
20
+ IEA*1*000000905~
@@ -0,0 +1,25 @@
1
+ Business Case Scenario 7 - Terminate Eligibility for a Subscriber
2
+
3
+ The subscriber's eligibility is canceled because the subscriber terminated employment.
4
+
5
+ Errors Found in File 834 5010X220-7
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H25518:Code '24' is requried for a HIPAA compliant transaction.
9
+ * B20220:When Maintenance Reason Code is 'Termination of Employment' (INS04=08), 'Employment End Date' (DTP01=337) should be used.
10
+ * H46407:'Member Demographics' was not found, but was expected because the Maintenance Type Code is 'Termination' (INS03=024).
11
+
12
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
13
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
14
+ ST*834*0001*005010X220~
15
+ BGN*00*12456*19980520*1200****2~
16
+ N1*P5**FI*999888777~
17
+ N1*IN**FI*654456654~
18
+ INS*Y*18*024*08*A***TE~
19
+ REF*0F*123456789~
20
+ REF*1L*123456001~
21
+ DTP*357*D8*19961001~
22
+ NM1*IL*1*DOE*JOHN*E***34*103229876~
23
+ SE*10*0001~
24
+ GE*1*1~
25
+ IEA*1*000000905~
@@ -0,0 +1,20 @@
1
+ Business Case Scenario 7 - Terminate Eligibility for a Subscriber
2
+
3
+ The subscriber's eligibility is canceled because the subscriber terminated employment.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*BE*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
7
+ ST*834*0001*005010X220~
8
+ BGN*00*12456*19980520*1200****2~
9
+ N1*P5**24*999888777~
10
+ N1*IN**FI*654456654~
11
+ INS*Y*18*024*08*A***TE~
12
+ REF*0F*123456789~
13
+ REF*1L*123456001~
14
+ DTP*357*D8*19961001~
15
+ DTP*337*D8*19960930~
16
+ NM1*IL*1*DOE*JOHN*E***34*103229876~
17
+ DMG*D8*19610405*M~
18
+ SE*12*0001~
19
+ GE*1*1~
20
+ IEA*1*000000905~
@@ -0,0 +1,25 @@
1
+ Business Case Scenario 8 - Reinstate an Employee
2
+
3
+ An employee was incorrectly canceled and is being reinstated.
4
+
5
+ Errors Found in File 834 5010X220-8
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H25518:Code '24' is requried for a HIPAA compliant transaction.
9
+ * H46408:'Member Demographics' was not found, but was expected because the Maintenance Type Code is 'Change in Identifiying Elements' (INS03=025).
10
+
11
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
12
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
13
+ ST*834*0001*005010X220~
14
+ BGN*00*12456*19980520*1200****2~
15
+ REF*38*ABCD012354~
16
+ N1*P5**FI*999888777~
17
+ N1*IN**FI*654456654~
18
+ INS*Y*18*025*20*A***FT~
19
+ REF*0F*123456789~
20
+ REF*1L*123456001~
21
+ DTP*303*D8*19961001~
22
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
23
+ SE*11*0001~
24
+ GE*1*1~
25
+ IEA*1*000000905~
@@ -0,0 +1,20 @@
1
+ Business Case Scenario 8 - Reinstate an Employee
2
+
3
+ An employee was incorrectly canceled and is being reinstated.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*BE*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
7
+ ST*834*0001*005010X220~
8
+ BGN*00*12456*19980520*1200****2~
9
+ REF*38*ABCD012354~
10
+ N1*P5**24*999888777~
11
+ N1*IN**FI*654456654~
12
+ INS*Y*18*025*20*A***FT~
13
+ REF*0F*123456789~
14
+ REF*1L*123456001~
15
+ DTP*303*D8*19961001~
16
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
17
+ DMG*D8*19621130*M~
18
+ SE*12*0001~
19
+ GE*1*1~
20
+ IEA*1*000000905~
@@ -0,0 +1,27 @@
1
+ Business Case Scenario 9 - Reinstate the Employee at the Coverage (HD) Level
2
+
3
+ The subscriber is reinstating dental coverage.
4
+
5
+ Errors Found in File 834 5010X220-9
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H25518:Code '24' is requried for a HIPAA compliant transaction.
9
+ * H46408:'Member Demographics' was not found, but was expected because the Maintenance Type Code is 'Change in Identifiying Elements' (INS03=025).
10
+ * H46206:The Individual Patient Identifier has not been mandated for use.
11
+
12
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
13
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
14
+ ST*834*0001*005010X220~
15
+ BGN*00*12456*20020601*1200****2~
16
+ REF*38*ABCD012354~
17
+ N1*P5**FI*999888777~
18
+ N1*IN**FI*654456654~
19
+ INS*Y*18*025**A***FT~
20
+ REF*0F*202443307~
21
+ REF*1L*123456001~
22
+ NM1*IL*1*SMITH*WILLIAM****ZZ*202443307~
23
+ HD*025**DEN~
24
+ DTP*348*D8*20020701~
25
+ SE*12*0001~
26
+ GE*1*1~
27
+ IEA*1*000000905~
@@ -0,0 +1,21 @@
1
+ Business Case Scenario 9 - Reinstate the Employee at the Coverage (HD) Level
2
+
3
+ The subscriber is reinstating dental coverage.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*BE*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
7
+ ST*834*0001*005010X220~
8
+ BGN*00*12456*20020601*1200****2~
9
+ REF*38*ABCD012354~
10
+ N1*P5**24*999888777~
11
+ N1*IN**FI*654456654~
12
+ INS*Y*18*025**A***FT~
13
+ REF*0F*202443307~
14
+ REF*1L*123456001~
15
+ NM1*IL*1*SMITH*WILLIAM****34*202443307~
16
+ DMG*D8*19850706*M~
17
+ HD*025**DEN~
18
+ DTP*348*D8*20020701~
19
+ SE*13*0001~
20
+ GE*1*1~
21
+ IEA*1*000000905~
@@ -0,0 +1,58 @@
1
+ Business Scenario 1 - Dollars and data are being sent together through the banking system to pay Medicare Part A institutional claims.
2
+
3
+ This scenario depicts the use of the 835 in a governmental institutional environment. The electronic transmission of funds request and the remittance detail are contained within this single 835. In this scenario, one or more Depository Financial Institutions is involved in transferring information from the sender to the receiver.
4
+
5
+ Errors Found in File 835 5010X221-1
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HP'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * B45263:It does not make business sense for the Production Date to be later than the Check or EFT Effective Date (BPR16).
10
+ * B51124:This Zip Code is not valid for this State.
11
+ * H40175:When 'Payee NPI' is used, a REF-01=TJ must exist in Loop 1000B
12
+ * H20617:The value '6543210903' does not match the format for a "HIPAA National Provider ID (NPI)"
13
+ * H20203:Element TS309 is present, though marked 'Not Used'
14
+ * H20203:Element TS311 is present, though marked 'Not Used'
15
+ * H30330:The DRG Total in the Summary Information (TS2-01) must equal the actual DRG total of the Claims in this Loop 2000 in this Remittance Advice (Sum of 2100 MIA-04 elements).
16
+ * H30333:The Disproportionate Share Total in the Summary Information (TS2-04) must equal the actual Disproportionate Share total of the Claims in this Loop 2000 in this Remittance Advice (Sum of 2100 MIA-06 elements).
17
+ * H30335:The Indirect Medical Education Total in the Summary Information (TS2-06) must equal the actual Indirect Medical Education total of the Claims in this Loop 2000 in this Remittance Advice (Sum of 2100 MIA-13 elements).
18
+ * H30340:The Total Covered Day Count in the Summary Information (TS2-13) must equal the actual Total Covered Day count of the Claims in this Loop 2000 in this Remittance Advice (Sum of 2100 QTY-02 elements where QTY-01 is 'CA').
19
+ * H46336:Coverage Amount AMT sgement (AMT01= "AU") was expected since the claim paid amount (CLP04) was not zero.
20
+ * W45222:Generally, the 2110 Service loop is required. The exception is institutional claims that are paid using aclaim level payment methodology like Diagnostic Related Group.
21
+ * H46331:Claim DRG Amount was not expected since the DRG was not provided in CLP11.
22
+ * H20203:Element TS309 is present, though marked 'Not Used'
23
+ * H20203:Element TS311 is present, though marked 'Not Used'
24
+ * H46336:Coverage Amount AMT sgement (AMT01= "AU") was expected since the claim paid amount (CLP04) was not zero.
25
+ * W45222:Generally, the 2110 Service loop is required. The exception is institutional claims that are paid using aclaim level payment methodology like Diagnostic Related Group.
26
+
27
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
28
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
29
+ ST*835*1234~
30
+ BPR*C*150000*C*ACH*CTX*01*999999992*DA*123456*1512345678**01*999988880*DA*98765*20020913~
31
+ TRN*1*12345*1512345678~
32
+ DTM*405*20020916~
33
+ N1*PR*INSURANCE COMPANY OF TIMBUCKTU~
34
+ N3*1 MAIN STREET~
35
+ N4*TIMBUCKTU*AK*89111~
36
+ REF*2U*999~
37
+ N1*PE*REGIONAL HOPE HOSPITAL*XX*6543210903~
38
+ LX*110212~
39
+ TS3*6543210903*11*20021231*1*211366.97****138018.4**73348.57~
40
+ TS2*2178.45*1919.71**56.82*197.69*4.23~
41
+ CLP*666123*1*211366.97*138018.4**MA*1999999444444*11*1~
42
+ CAS*CO*45*73348.57~
43
+ NM1*QC*1*JONES*SAM*O***HN*666666666A~
44
+ MIA*0***138018.4~
45
+ DTM*232*20020816~
46
+ DTM*233*20020824~
47
+ QTY*CA*8~
48
+ LX*130212~
49
+ TS3*6543210909*13*19961231*1*15000****11980.33**3019.67~
50
+ CLP*777777*1*15000*11980.33**MB*1999999444445*13*1~
51
+ CAS*CO*45*3019.67~
52
+ NM1*QC*1*BORDER*LIZ*E***HN*996669999B~
53
+ MOA***MA02~
54
+ DTM*232*20020512~
55
+ PLB*6543210903*20021231*CV:CP*-1.27~
56
+ SE*28*1234~
57
+ GE*1*1~
58
+ IEA*1*000000905~
@@ -0,0 +1,40 @@
1
+ Business Scenario 1 - Dollars and data are being sent together through the banking system to pay Medicare Part A institutional claims.
2
+
3
+ This scenario depicts the use of the 835 in a governmental institutional environment. The electronic transmission of funds request and the remittance detail are contained within this single 835. In this scenario, one or more Depository Financial Institutions is involved in transferring information from the sender to the receiver.
4
+
5
+ ISA+00+..........+01+SECRET....+ZZ+SUBMITTERS.ID..+ZZ+RECEIVERS.ID...+030101+1253+~+00501+000000905+1+T+>
6
+ GS+HP+SENDER CODE+RECEIVER CODE+19991231+0802+1+X+005010X221
7
+ ST+835+1234
8
+ BPR+C+150000+C+ACH+CTX+01+999999992+DA+123456+1512345678++01+999988880+DA+98765+20020913
9
+ TRN+1+12345+1512345678
10
+ DTM+405+20020913
11
+ N1+PR+INSURANCE COMPANY OF TIMBUCKTU
12
+ N3+1 MAIN STREET
13
+ N4+TIMBUCKTU+AK+99501
14
+ REF+2U+999
15
+ REF+NF+12345
16
+ N1+PE+REGIONAL HOPE HOSPITAL+XX+1232343560
17
+ REF+TJ+555555556
18
+ LX+110212
19
+ TS3+6543210903+11+20021231+1+211366.97
20
+ TS2+138018.4+1919.71+++197.69++++++++8
21
+ CLP+666123+1+211366.97+138018.4++MA+1999999444444+11+1++959
22
+ CAS+CO+45+73348.57
23
+ NM1+QC+1+JONES+SAM+O+++HN+666666666A
24
+ MIA+0+++138018.4
25
+ DTM+232+20020816
26
+ DTM+233+20020824
27
+ AMT+AU+150000
28
+ QTY+CA+8
29
+ LX+130212
30
+ TS3+6543210909+13+19961231+1+15000
31
+ CLP+777777+1+15000+11980.33++MB+1999999444445+13+1++959
32
+ CAS+CO+45+3019.67
33
+ NM1+QC+1+BORDER+LIZ+E+++HN+996669999B
34
+ MOA+++MA02
35
+ DTM+232+20020512
36
+ AMT+AU+17000
37
+ PLB+6543210903+20021231+CV>CP+-1.27
38
+ SE+32+1234
39
+ GE+1+1
40
+ IEA+1+000000905
@@ -0,0 +1,51 @@
1
+ Business Scenario 2
2
+
3
+ Dollars and data are sent separately. This scenario depicts the use of the 835 in a managed care environment. The funds are sent by EFT to the provider�s account, and the remittance data is transmitted directly to the provider.
4
+
5
+ Errors Found in File 835 5010X221-2
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HP'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * B51124:This Zip Code is not valid for this State.
10
+ * H20617:The value '5544667733' does not match the format for a "HIPAA National Provider ID (NPI)"
11
+ * H24402:The value '5544667733' fails the check digit algorithm for the "HIPAA National Provider ID (NPI)"
12
+ * H46336:Coverage Amount AMT sgement (AMT01= "AU") was expected since the claim paid amount (CLP04) was not zero.
13
+ * W45225:Class of Contract Code is recommended in PPO situations or whenever the provider's payment is impacted bya health plan contract.
14
+ * H51116:'A2' is not a valid Adjustment Reason Code
15
+ * H46339:An AMT segment reporting the Allowed Amount (AMT01=B6) was expected since the service paid amount is greater than zero (SVC03>0).
16
+ * H46336:Coverage Amount AMT sgement (AMT01= "AU") was expected since the claim paid amount (CLP04) was not zero.
17
+ * W45225:Class of Contract Code is recommended in PPO situations or whenever the provider's payment is impacted bya health plan contract.
18
+ * H51116:'A2' is not a valid Adjustment Reason Code
19
+ * H46339:An AMT segment reporting the Allowed Amount (AMT01=B6) was expected since the service paid amount is greater than zero (SVC03>0).
20
+ * H10904:Number of Included Segments '25' does not match actual segment count '26'.
21
+
22
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
23
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
24
+ ST*835*112233~
25
+ BPR*I*945*C*ACH*CCP*01*888999777*DA*24681012*1935665544**01*111333555*DA*144444*20020316~
26
+ TRN*1*71700666555*1935665544~
27
+ DTM*405*20020314~
28
+ N1*PR*RUSHMORE LIFE~
29
+ N3*10 SOUTH AVENUE~
30
+ N4*RAPID CITY*SD*55111~
31
+ N1*PE*ACME MEDICAL CENTER*XX*5544667733~
32
+ REF*TJ*777667755~
33
+ LX*1~
34
+ CLP*5554555444*1*800*450*300*12*94060555410000~
35
+ CAS*CO*A2*50~
36
+ NM1*QC*1*BUDD*WILLIAM****MI*33344555510~
37
+ SVC*HC:99211*800*500~
38
+ DTM*150*20020301~
39
+ DTM*151*20020304~
40
+ CAS*PR*1*300~
41
+ CLP*8765432112*1*1200*495*600*12*9407779923000~
42
+ CAS*CO*A2*55~
43
+ NM1*QC*1*SETTLE*SUSAN****MI*44455666610~
44
+ SVC*HC:93555*1200*550~
45
+ DTM*150*20020310~
46
+ DTM*151*20020312~
47
+ CAS*PR*1*600~
48
+ CAS*CO*45*50~
49
+ SE*25*112233~
50
+ GE*1*1~
51
+ IEA*1*000000905~
@@ -0,0 +1,40 @@
1
+ Business Scenario 2
2
+
3
+ Dollars and data are sent separately. This scenario depicts the use of the 835 in a managed care environment. The funds are sent by EFT to the provider�s account, and the remittance data is transmitted directly to the provider.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HP*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
7
+ ST*835*112233~
8
+ BPR*I*945*C*ACH*CCP*01*888999777*DA*24681012*1935665544**01*111333555*DA*144444*20020316~
9
+ TRN*1*71700666555*1935665544~
10
+ DTM*405*20020314~
11
+ N1*PR*RUSHMORE LIFE~
12
+ N3*10 SOUTH AVENUE~
13
+ N4*RAPID CITY*SD*57701~
14
+ N1*PE*ACME MEDICAL CENTER*XX*1232343560~
15
+ REF*TJ*777667755~
16
+ LX*1~
17
+ CLP*5554555444*1*800*450*300*12*94060555410000~
18
+ CAS*CO*45*50~
19
+ NM1*QC*1*BUDD*WILLIAM****MI*33344555510~
20
+ REF*CE*12345~
21
+ AMT*AU*700~
22
+ SVC*HC:99211*800*500~
23
+ DTM*150*20020301~
24
+ DTM*151*20020304~
25
+ CAS*PR*1*300~
26
+ AMT*B6*750~
27
+ CLP*8765432112*1*1200*495*600*12*9407779923000~
28
+ CAS*CO*45*55~
29
+ NM1*QC*1*SETTLE*SUSAN****MI*44455666610~
30
+ REF*CE*12447~
31
+ AMT*AU*900~
32
+ SVC*HC:93555*1200*550~
33
+ DTM*150*20020310~
34
+ DTM*151*20020312~
35
+ CAS*PR*1*600~
36
+ CAS*CO*210*50~
37
+ AMT*B6*1100~
38
+ SE*32*112233~
39
+ GE*1*1~
40
+ IEA*1*000000905~
@@ -0,0 +1,78 @@
1
+ Business Scenario 3a
2
+
3
+ The payer receives a secondary claim wiht submitted charges of $10323.64. The primary payer, which is a Medicare carrier, allowed $8441.31. A deductible of $912.00 and a contractual adjustment of $1882.33 were applied. The primary payer paid $7529.31. The secondary payer is only required to pay the deductible based on the coverage of this contract. After the $912.00 payment is made, the patient does not have a balance due from the provider.
4
+
5
+ Errors Found in File 835 5010X221-3a
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HP'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * B51124:This Zip Code is not valid for this State.
10
+ * H50010:Invalid ZIP Code ('11114'), not in USPS tables.
11
+ * W25219:The value of FI is only to be used if the provider is not a covered health care provider under the NPI mandate.
12
+ * B51124:This Zip Code is not valid for this State.
13
+ * W45222:Generally, the 2110 Service loop is required. The exception is institutional claims that are paid using aclaim level payment methodology like Diagnostic Related Group.
14
+ * W45225:Class of Contract Code is recommended in PPO situations or whenever the provider's payment is impacted bya health plan contract.
15
+ * H46324:The Service Provider Name was found but was not expected because it must be different than the payee.
16
+ * W25219:The value of BD is only to be used if the provider is not a covered health care provider under the NPI mandate.
17
+ * W25222:When the provider doesn't have an NPI, the Tax ID is the preferred ID for the Rendering Provider.
18
+ * H46336:Coverage Amount AMT sgement (AMT01= "AU") was expected since the claim paid amount (CLP04) was not zero.
19
+ * W45225:Class of Contract Code is recommended in PPO situations or whenever the provider's payment is impacted bya health plan contract.
20
+ * W10046:Syntax Error for CLP03, trailing zeros following the decimal point should be suppressed.
21
+ * W25219:The value of BS is only to be used if the provider is not a covered health care provider under the NPI mandate.
22
+ * W25222:When the provider doesn't have an NPI, the Tax ID is the preferred ID for the Rendering Provider.
23
+ * H46339:An AMT segment reporting the Allowed Amount (AMT01=B6) was expected since the service paid amount is greater than zero (SVC03>0).
24
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in SVC01
25
+ * W22004:Your data contains character(s) from the extended character set which may only be used by agreement between communicating parties.
26
+ * H51000:The Procedure Code '12345' is not a valid CPT or HCPCS Code for this Date of Service.
27
+ * W10046:Syntax Error for CAS03, trailing zeros following the decimal point should be suppressed.
28
+ * W25229:Generally, this should be code value HPI since most providers are mandated to have a National Provider Identifier.
29
+ * H20204:Code Value 'AU' at element 'AMT01' is valid in the X12 standard, but not in this HIPAA implementation
30
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in SVC01
31
+ * H51000:The Procedure Code '66543' is not a valid CPT or HCPCS Code for this Date of Service.
32
+ * H20628:The value '220' does not match the format for a "NUBC Revenue Code". Revenue codes must be 4 digits, usually including a leading zero."
33
+ * H51116:'42' is not a valid Adjustment Reason Code
34
+ * W25229:Generally, this should be code value HPI since most providers are mandated to have a National Provider Identifier.
35
+ * H20204:Code Value 'AU' at element 'AMT01' is valid in the X12 standard, but not in this HIPAA implementation
36
+
37
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
38
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
39
+ ST*835*0001~
40
+ BPR*I*1222*C*CHK************20050412~
41
+ TRN*1*0012524965*1559123456~
42
+ REF*EV*030240928~
43
+ DTM*405*20050412~
44
+ N1*PR*YOUR TAX DOLLARS AT WORK~
45
+ N3*481A00 DEER RUN ROAD~
46
+ N4*WEST PALM BCH*FL*11114~
47
+ N1*PE*ACME MEDICAL CENTER*FI*599944521~
48
+ N3*PO BOX 863382~
49
+ N4*ORLANDO*FL*55115~
50
+ REF*PQ*10488~
51
+ LX*1~
52
+ CLP*L0004828311*2*10323.64*912**12*05090256390*11*1~
53
+ CAS*OA*23*9411.64~
54
+ NM1*QC*1*TOWNSEND*WILLIAM*P***MI*XXX123456789~
55
+ NM1*82*2*ACME MEDICAL CENTER*****BD*987~
56
+ DTM*232*20050303~
57
+ DTM*233*20050304~
58
+ AMT*AU*912~
59
+ LX*2~
60
+ CLP*0001000053*2*751.50*310*220*12*50630626430~
61
+ NM1*QC*1*BAKI*ANGI****MI*456789123~
62
+ NM1*82*2*SMITH JONES PA*****BS*34426~
63
+ DTM*232*20050106~
64
+ DTM*233*20050106~
65
+ SVC*HC>12345>26*166.5*30**1~
66
+ DTM*472*20050106~
67
+ CAS*OA*23*136.50~
68
+ REF*1B*43285~
69
+ AMT*AU*150~
70
+ SVC*HC>66543>26*585*280*220*1~
71
+ DTM*472*20050106~
72
+ CAS*PR*1*150**2*70~
73
+ CAS*CO*42*85~
74
+ REF*1B*43285~
75
+ AMT*AU*500~
76
+ SE*38*0001~
77
+ GE*1*1~
78
+ IEA*1*000000905~
@@ -0,0 +1,49 @@
1
+ Business Scenario 3a
2
+
3
+ The payer receives a secondary claim wiht submitted charges of $10323.64. The primary payer, which is a Medicare carrier, allowed $8441.31. A deductible of $912.00 and a contractual adjustment of $1882.33 were applied. The primary payer paid $7529.31. The secondary payer is only required to pay the deductible based on the coverage of this contract. After the $912.00 payment is made, the patient does not have a balance due from the provider.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HP*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
7
+ ST*835*0001~
8
+ BPR*I*1222*C*CHK************20050412~
9
+ TRN*1*0012524965*1559123456~
10
+ REF*EV*030240928~
11
+ DTM*405*20050412~
12
+ N1*PR*YOUR TAX DOLLARS AT WORK~
13
+ N3*481A00 DEER RUN ROAD~
14
+ N4*WEST PALM BCH*FL*33480~
15
+ N1*PE*ACME MEDICAL CENTER*FI*599944521~
16
+ N3*PO BOX 863382~
17
+ N4*ORLANDO*FL*32801~
18
+ REF*PQ*10488~
19
+ LX*1~
20
+ CLP*L0004828311*2*10323.64*912**12*05090256390*11*1**490~
21
+ CAS*OA*23*9411.64~
22
+ NM1*QC*1*TOWNSEND*WILLIAM*P***MI*XXX123456789~
23
+ REF*CE*12345~
24
+ DTM*232*20050303~
25
+ DTM*233*20050304~
26
+ AMT*AU*912~
27
+ LX*2~
28
+ CLP*0001000053*2*751.5*310*220*12*50630626430~
29
+ NM1*QC*1*BAKI*ANGI****MI*456789123~
30
+ NM1*82*2*SMITH JONES PA*****XX*1232343560~
31
+ REF*CE*12356~
32
+ DTM*232*20050106~
33
+ DTM*233*20050106~
34
+ AMT*AU*700~
35
+ SVC*HC:12001*166.5*30**1~
36
+ DTM*472*20050106~
37
+ CAS*OA*23*136.5~
38
+ REF*HPI*1235799115~
39
+ AMT*B6*100~
40
+ SVC*HC:64400*585*280*0220*1~
41
+ DTM*472*20050106~
42
+ CAS*PR*1*150**2*70~
43
+ CAS*CO*45*85~
44
+ AMT*B6*450~
45
+ PLB*9876543210*20021231*CV:CP*-1.27~
46
+ PLB*0123456789*20021231*CV:CP*-1.27~
47
+ SE*39*0001~
48
+ GE*1*1~
49
+ IEA*1*000000905~
@@ -0,0 +1,60 @@
1
+ Business Scenario 3b
2
+
3
+ The patient has three insurance companies. The total charge for the claim is $1766.50. The primary payer allowed $1600.00 and applied a contractual adjustment of $166.50 as part of the provider�s fee schedule. The allowed amount was paid at 80% after a $500.00 deductible. The primary payer paid $880.00.
4
+
5
+
6
+ Errors Found in File 835 5010X221-3b
7
+ * W10009:Padding, spaces or control characters detected after segment terminator.
8
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HP'
9
+ * H11204:Code Value 'XX' not used for element 'GS01'
10
+ * W10046:Syntax Error for BPR02, trailing zeros following the decimal point should be suppressed.
11
+ * B51124:This Zip Code is not valid for this State.
12
+ * H50010:Invalid ZIP Code ('11114'), not in USPS tables.
13
+ * W25219:The value of FI is only to be used if the provider is not a covered health care provider under the NPI mandate.
14
+ * B51124:This Zip Code is not valid for this State.
15
+ * H46336:Coverage Amount AMT sgement (AMT01= "AU") was expected since the claim paid amount (CLP04) was not zero.
16
+ * W45225:Class of Contract Code is recommended in PPO situations or whenever the provider's payment is impacted bya health plan contract.
17
+ * W10046:Syntax Error for CLP04, trailing zeros following the decimal point should be suppressed.
18
+ * H10046:Syntax error: NM109 was found but NM108 was missing. X12 syntax rule: 'P0809' - if one element is present, all must be present.
19
+ * H10006:Value '789123456' is too long.
20
+ * H20203:Element NM110 is present, though marked 'Not Used'
21
+ * W25219:The value of BS is only to be used if the provider is not a covered health care provider under the NPI mandate.
22
+ * W25222:When the provider doesn't have an NPI, the Tax ID is the preferred ID for the Rendering Provider.
23
+ * H46339:An AMT segment reporting the Allowed Amount (AMT01=B6) was expected since the service paid amount is greater than zero (SVC03>0).
24
+ * H10614:Missing Mandatory 'SVC0102'
25
+ * H20628:The value '187.50' does not match the format for a "NUBC Revenue Code". Revenue codes must be 4 digits, usually including a leading zero."
26
+ * H51102:'187.50' is not a valid NUBC Revenue Code.
27
+ * H10614:Missing Mandatory 'SVC0602'
28
+ * H10005:Value '1' is too short for 'SVC0601'
29
+ * H11204:Code Value '1' not used for element 'SVC0601'
30
+ * W25229:Generally, this should be code value HPI since most providers are mandated to have a National Provider Identifier.
31
+ * H20204:Code Value 'AU' at element 'AMT01' is valid in the X12 standard, but not in this HIPAA implementation
32
+ * H10904:Number of Included Segments '38' does not match actual segment count '23'.
33
+
34
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
35
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
36
+ ST*835*0001~
37
+ BPR*I*187.50*C*CHK************20050412~
38
+ TRN*1*0012524879*1559123456~
39
+ REF*EV*030240928~
40
+ DTM*405*20050412~
41
+ N1*PR*YOUR TAX DOLLARS AT WORK~
42
+ N3*481A00 DEER RUN ROAD~
43
+ N4*WEST PALM BCH*FL*11114~
44
+ N1*PE*ACME MEDICAL CENTER*FI*599944521~
45
+ N3*PO BOX 863382~
46
+ N4*ORLANDO*FL*55115~
47
+ REF*PQ*10488~
48
+ LX*1~
49
+ CLP*0001000054*3*1766.5*187.50**12*50580155533~
50
+ NM1*QC*1*ISLAND*ELLIS*E****MI*789123456~
51
+ NM1*82*2*JONES JONES ASSOCIATES*****BS*AB34U~
52
+ DTM*232*20050120~
53
+ SVC*HC*24599*1766.5*187.50**1~
54
+ DTM*472*20050120~
55
+ CAS*OA*23*1579~
56
+ REF*1B*44280~
57
+ AMT*AU*1700~
58
+ SE*38*0001~
59
+ GE*1*1~
60
+ IEA*1*000000905~
@@ -0,0 +1,32 @@
1
+ Business Scenario 3b
2
+
3
+ The patient has three insurance companies. The total charge for the claim is $1766.50. The primary payer allowed $1600.00 and applied a contractual adjustment of $166.50 as part of the provider�s fee schedule. The allowed amount was paid at 80% after a $500.00 deductible. The primary payer paid $880.00.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HP*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X221~
7
+ ST*835*0001~
8
+ BPR*I*187.5*C*CHK************20050412~
9
+ TRN*1*0012524879*1559123456~
10
+ REF*EV*030240928~
11
+ DTM*405*20050412~
12
+ N1*PR*YOUR TAX DOLLARS AT WORK~
13
+ N3*481A00 DEER RUN ROAD~
14
+ N4*WEST PALM BCH*FL*32801~
15
+ N1*PE*ACME MEDICAL CENTER*FI*599944521~
16
+ N3*PO BOX 863382~
17
+ N4*ORLANDO*FL*32803~
18
+ REF*PQ*10488~
19
+ LX*1~
20
+ CLP*0001000054*3*1766.5*187.5**12*50580155533~
21
+ NM1*QC*1*ISLAND*ELLIS*E***MI*789123456~
22
+ NM1*82*2*JONES JONES ASSOCIATES*****XX*1232343560~
23
+ REF*CE*12345~
24
+ DTM*232*20050120~
25
+ AMT*AU*1500~
26
+ SVC*HC:11040*24599*1766.5**1~
27
+ DTM*472*20050120~
28
+ CAS*OA*23*1579~
29
+ AMT*B6*1700~
30
+ SE*24*0001~
31
+ GE*1*1~
32
+ IEA*1*000000905~