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,42 @@
1
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
2
+ GS*HI*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
3
+ ST*278*0001*005010X217~
4
+ BHT*0007*11*165932*19991231*0815*18~
5
+ HL*1**20*1~
6
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
7
+ HL*2*1*21*1~
8
+ NM1*1P*2*XYZ AMBULANCE SVC*****24*662122345~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
11
+ REF*EJ*6532214A76~
12
+ DMG*D8*19580322*M~
13
+ HL*4*3*EV*1~
14
+ TRN*1*12345*1234567891~
15
+ UM*HS*I*56*41:B~
16
+ HCR*A1*123~
17
+ DTP*AAH*D8*20050510~
18
+ CR1***X**DH*27~
19
+ NM1*PW*2*HOME~
20
+ N3*8652 STARWOOD LANE~
21
+ N4*SACRAMENTO*CA*95826~
22
+ NM1*ND*2*DR. GARDNER OFFICE~
23
+ N3*1921 FULTON AVENUE~
24
+ N4*SACRAMENTO*CA*95624~
25
+ NM1*R3*2*XYZ DIALYSIS CENTER~
26
+ N3*7622 MORSETOWN ROAD~
27
+ N4*SACRAMENTO*CA*95826~
28
+ NM1*FS*2*HOME~
29
+ N3*8652 STARWOOD LANE~
30
+ N4*SACRAMENTO*CA*95826~
31
+ HL*5*4*SS*0~
32
+ AAA*N**52*N~
33
+ SV1*HC:A0428:RX**UN*5~
34
+ HL*6*4*SS*0~
35
+ AAA*N**52*N~
36
+ SV1*HC:A0428:PD**UN*8~
37
+ HL*7*4*SS*0~
38
+ AAA*N**52*N~
39
+ SV1*HC:A0428:DR**UN*14~
40
+ SE*38*0001~
41
+ GE*1*1~
42
+ IEA*1*000000905~
@@ -0,0 +1,40 @@
1
+ Business Scenario 6 - Medical Services Reservation
2
+
3
+ This example represents a response for a Medical Services Reservation from ABC Payer to Dr. Gardner.
4
+
5
+ Errors Found in File 278 Response 5010X217-6r
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H11402:HL segment marked as having children but in fact has none','HL segment n marked as having children but in fact has none
9
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
10
+ * H20600:The value '0010102364' does not match the format for a "Federal Tax Identification Number"
11
+ * H11404:HL loop not subordinate to parent HL loop '22'. Parent HL id not found.
12
+ * H20405:The Subscriber Hierarchical Parent ID (2000C HL-02) must equal the Requester Hierarchical ID (2000B HL-01).
13
+ * H20204:Code Value '1' at element 'HL03' is valid in the X12 standard, but not in this HIPAA implementation
14
+ * H11403:HL loop is marked as not having children, but in fact has some.
15
+ * H24391:Missing HIPAA Required 'HL04'.
16
+ * W25235:It is recommended that the Patient Account Number (REF01=EJ) be returned.
17
+ * W25236:TRN is required if valued in the request. Responder must return the requesters TRN valued in the request. Responder may use a TRN if requester has not supplied one and requester is being required to return additional information to the Responder. Responder will use the TRN for matching up the information in their systems.
18
+ * H23054:Either the AAA segment or the HCR segment must be returned
19
+
20
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
21
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
22
+ ST*278*0001*005010X217~
23
+ BHT*0007*11*5269367*20050502*0859*RU~
24
+ HL*1**20*1~
25
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
26
+ HL*2*1*21*1~
27
+ NM1*1P*1*GARDNER*JAMES****24*0010102364~
28
+ HL*3*22*1~
29
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
30
+ DMG*D8*19580322*M~
31
+ HL*4*3*EV*1~
32
+ UM*IN*I*1*11:B~
33
+ HCR*A1*6735172961~
34
+ HL*5*4*SS*0~
35
+ DTP*472*D8*20050110~
36
+ SV1*HC:99212**UN*1~
37
+ HSD*****29*2~
38
+ SE*17*0001~
39
+ GE*1*1~
40
+ IEA*1*000000905~
@@ -0,0 +1,24 @@
1
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
2
+ GS*HI*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
3
+ ST*278*0001*005010X217~
4
+ BHT*0007*11*5269367*20050502*0859*RU~
5
+ HL*1**20*1~
6
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
7
+ HL*2*1*21*1~
8
+ NM1*1P*1*GARDNER*JAMES****24*123445768~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
11
+ REF*EJ*12345~
12
+ DMG*D8*19580322*M~
13
+ HL*4*3*EV*1~
14
+ TRN*1*12556*1356723689~
15
+ UM*IN*I*1*11:B~
16
+ HCR*A1*6735172961~
17
+ HL*5*4*SS*0~
18
+ HCR*A1*88552~
19
+ DTP*472*D8*20050110~
20
+ SV1*HC:99212**UN*1~
21
+ HSD*****29*2~
22
+ SE*20*0001~
23
+ GE*1*1~
24
+ IEA*1*000000905~
@@ -0,0 +1,31 @@
1
+ Scenario One Description
2
+
3
+ This example shows a premium payer submitting an 820 transaction set to pay a summary bill for group major medical and disability bill (Invoiced).
4
+
5
+ Errors Found in File 820 5010X218-1
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H25446:Code '24' expected but not received for a HIPAA Compliant Implementation.
9
+ * H25450:SAC Segment was expected but not found because IT1 segment is present.
10
+ * H46314:Value must be unique for every occurance of the segment within a transaction.
11
+ * H46314:Value must be unique for every occurance of the segment within a transaction.
12
+
13
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
14
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
15
+ ST*820*0001*005010X218~
16
+ BPR*C*19000*C*ACH*CTX*01*999999992*DA*12345678*1030449999**01*199999999*DA*98765*20070516~
17
+ TRN*1*12345*1030449999~
18
+ REF*14*12345~
19
+ N1*PE*DEF HEALTH CARE INC.*FI*012222222~
20
+ N1*PR*ABC PLASTICS*FI*123456789~
21
+ ENT*1*2L*FI*123456789~
22
+ RMR*IK*970501001*PI*16500~
23
+ IT1*1~
24
+ SLN*1**O*5*IE~
25
+ SLN*2**O*75*10~
26
+ RMR*IK*970501002*PI*2500~
27
+ IT1*1~
28
+ SLN*1**O*25*IE~
29
+ SE*15*0001~
30
+ GE*1*1~
31
+ IEA*1*000000905~
@@ -0,0 +1,25 @@
1
+ Scenario One Description
2
+
3
+ This example shows a premium payer submitting an 820 transaction set to pay a summary bill for group major medical and disability bill (Invoiced).
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*RA*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
7
+ ST*820*0001*005010X218~
8
+ BPR*C*19000*C*ACH*CTX*01*999999992*DA*12345678*1030449999**01*199999999*DA*98765*20070516~
9
+ TRN*1*12345*1030449999~
10
+ REF*14*12345~
11
+ N1*PE*DEF HEALTH CARE INC.*FI*012222222~
12
+ N1*PR*ABC PLASTICS*FI*123456789~
13
+ ENT*1*2L*24*123456789~
14
+ RMR*IK*970501001*PI*16500~
15
+ IT1*1~
16
+ SAC*C*D940***120~
17
+ SLN*1**O*5*IE~
18
+ SLN*2**O*75*10~
19
+ RMR*IK*970501002*PI*2500~
20
+ IT1*2~
21
+ SAC*C*D940***150~
22
+ SLN*3**O*25*IE~
23
+ SE*17*0001~
24
+ GE*1*1~
25
+ IEA*1*000000905~
@@ -0,0 +1,37 @@
1
+ Scenario Two Description
2
+
3
+ This example demonstrates a List Bill payment. This example shows a premium payer submitting an 820 transaction set to pay a group employee life insurance premium bill (Invoice).
4
+
5
+ Errors Found in File 820 5010X218-2
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
9
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
10
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
11
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
12
+
13
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
14
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
15
+ ST*820*0001*005010X218~
16
+ BPR*C*255*C*ACH*CTX*01*999999992*DA*12345678*1345678901**01*199999999*DA*98765*20071103~
17
+ TRN*1*78905*1345678901~
18
+ REF*14*0011001~
19
+ N1*PE*BATA INSURANCE CO.*FI*012222222~
20
+ N1*PR*ALFA MEDAL CO*FI*123456789~
21
+ ENT*1*2J*34*030440099~
22
+ NM1*EY*1*DOE*JOHN****EI*777222~
23
+ RMR*IG*555666**30~
24
+ RMR*IG*555667**35~
25
+ ENT*2*2J*34*029500563~
26
+ NM1*EY*1*FIRSTONE*EMILY****EI*777333~
27
+ RMR*IG*555777**45~
28
+ ENT*3*2J*34*029480664~
29
+ NM1*EY*1*MIDDLEONE*JULIE****EI*777444~
30
+ RMR*IG*544477**50~
31
+ ENT*4*2J*34*030498099~
32
+ NM1*EY*1*NEWONE*KELLY****EI*777111~
33
+ RMR*IG*551166**45~
34
+ RMR*IG*558766**50~
35
+ SE*21*0001~
36
+ GE*1*1~
37
+ IEA*1*000000905~
@@ -0,0 +1,29 @@
1
+ Scenario Two Description
2
+
3
+ This example demonstrates a List Bill payment. This example shows a premium payer submitting an 820 transaction set to pay a group employee life insurance premium bill (Invoice).
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*RA*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
7
+ ST*820*0001*005010X218~
8
+ BPR*C*255*C*ACH*CTX*01*999999992*DA*12345678*1345678901**01*199999999*DA*98765*20071103~
9
+ TRN*1*78905*1345678901~
10
+ REF*14*0011001~
11
+ N1*PE*BATA INSURANCE CO.*FI*012222222~
12
+ N1*PR*ALFA MEDAL CO*FI*123456789~
13
+ ENT*1*2J*34*030440099~
14
+ NM1*EY*1*DOE*JOHN****EI*777222~
15
+ RMR*IK*555666**30~
16
+ RMR*IG*555667**35~
17
+ ENT*2*2J*34*029500563~
18
+ NM1*EY*1*FIRSTONE*EMILY****EI*777333~
19
+ RMR*IK*555777**45~
20
+ ENT*3*2J*34*029480664~
21
+ NM1*EY*1*MIDDLEONE*JULIE****EI*777444~
22
+ RMR*IK*544477**50~
23
+ ENT*4*2J*34*030498099~
24
+ NM1*EY*1*NEWONE*KELLY****EI*777111~
25
+ RMR*IK*551166**45~
26
+ RMR*IG*558766**50~
27
+ SE*21*0001~
28
+ GE*1*1~
29
+ IEA*1*000000905~
@@ -0,0 +1,29 @@
1
+ Scenario Three Description
2
+
3
+ This example illustrates a premium payer using a third party payroll processor. The 820 transaction is set to have the remittance information and the dollars travel on separately.
4
+
5
+ Errors Found in File 820 5010X218-3
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H20600:The value '1231555555' does not match the format for a "Federal Tax Identification Number"
9
+ * H25446:Code '24' expected but not received for a HIPAA Compliant Implementation.
10
+ * H25450:SAC Segment was expected but not found because IT1 segment is present.
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*005010X218~
14
+ ST*820*0002*005010X218~
15
+ BPR*U*20000*C*ACH*CCP*01*934257813*DA*1234587*1231555555**01*025677833*DA*99887766*20070620~
16
+ TRN*3*12345*1231555555~
17
+ REF*14*673001~
18
+ REF*2F*0004369123~
19
+ N1*PE*DEF HEALTHCARE CO*FI*998216353~
20
+ N1*PR*ABC PLASTICS*FI*1231555555~
21
+ ENT*1*2L*FI*000057811~
22
+ RMR*IK*0004369123*PI*20000~
23
+ IT1*1~
24
+ SLN*1**O*100*IE~
25
+ SLN*2**O*75*PR~
26
+ SLN*3**O*125*10~
27
+ SE*14*0002~
28
+ GE*1*1~
29
+ IEA*1*000000905~
@@ -0,0 +1,23 @@
1
+ Scenario Three Description
2
+
3
+ This example illustrates a premium payer using a third party payroll processor. The 820 transaction is set to have the remittance information and the dollars travel on separately.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*RA*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
7
+ ST*820*0002*005010X218~
8
+ BPR*U*20000*C*ACH*CCP*01*934257813*DA*1234587*1231555555**01*025677833*DA*99887766*20070620~
9
+ TRN*3*12345*1231555555~
10
+ REF*14*673001~
11
+ REF*2F*0004369123~
12
+ N1*PE*DEF HEALTHCARE CO*FI*998216353~
13
+ N1*PR*ABC PLASTICS*24*123155555~
14
+ ENT*1*2L*24*000057811~
15
+ RMR*IK*0004369123*PI*20000~
16
+ IT1*1~
17
+ SAC*C*D940***200~
18
+ SLN*1**O*100*IE~
19
+ SLN*2**O*75*PR~
20
+ SLN*3**O*125*10~
21
+ SE*15*0002~
22
+ GE*1*1~
23
+ IEA*1*000000905~
@@ -0,0 +1,36 @@
1
+ Scenario Four Description
2
+
3
+ This example illustrates a premium payer, using a third party payroll processor, sending an 820 transaction set where the remittance information and the dollars travel on separate paths. The payment detail will list each individual employee, the policy numbers, payment amounts and adjustment amounts.
4
+
5
+ Errors Found in File 820 5010X218-4
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
9
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
10
+ * H23025:For HIPAA Health Premium Payments the code 'IK' is REQUIRED when an invoice has been received from a health plan.
11
+ * H23028:At least one Individual Premium Remittance Detail (2300B RMR) must contain either Invoice Received 'IK' or Invoice Not Received 'AZ' in the Reference Identification Qualifier (RMR01).
12
+ * H23025:For HIPAA Health Premium Payments the code 'IK' is REQUIRED when an invoice has been received from a health plan.
13
+
14
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
15
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
16
+ ST*820*0002*005010X218~
17
+ BPR*U*20000*C*ACH*CCP*01*934257813*DA*1234587*1231555555**01*025677833*DA*99887766*20070620~
18
+ TRN*3*12345*1231555555~
19
+ REF*14*673001~
20
+ REF*2F*0004369123~
21
+ N1*PE*DEF HEALTHCARE CO*FI*998216353~
22
+ N1*PR*ABC PLASTICS*FI*000057811~
23
+ ENT*1*2J*34*190206123~
24
+ NM1*EY*1*SMITH*JOHN****EI*123456~
25
+ RMR*CT*190206123**7000~
26
+ ENT*2*2J*34*163910163~
27
+ NM1*EY*1*JONES*MARY****EI*793016~
28
+ RMR*CT*163910163**10000*11000~
29
+ ADX*-1000*52~
30
+ ENT*3*2J*34*179203456~
31
+ NM1*EY*1*JOHNSON*JOE****EI*934213~
32
+ RMR*CT*179203456**3000*3100~
33
+ ADX*-100*52~
34
+ SE*19*0002~
35
+ GE*1*1~
36
+ IEA*1*000000905~
@@ -0,0 +1,27 @@
1
+ Scenario Four Description
2
+
3
+ This example illustrates a premium payer, using a third party payroll processor, sending an 820 transaction set where the remittance information and the dollars travel on separate paths. The payment detail will list each individual employee, the policy numbers, payment amounts and adjustment amounts.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*RA*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X218~
7
+ ST*820*0002*005010X218~
8
+ BPR*U*20000*C*ACH*CCP*01*934257813*DA*1234587*1231555555**01*025677833*DA*99887766*20070620~
9
+ TRN*3*12345*1231555555~
10
+ REF*14*673001~
11
+ REF*2F*0004369123~
12
+ N1*PE*DEF HEALTHCARE CO*FI*998216353~
13
+ N1*PR*ABC PLASTICS*FI*000057811~
14
+ ENT*1*2J*34*190206123~
15
+ NM1*EY*1*SMITH*JOHN****EI*123456~
16
+ RMR*IK*190206123**7000~
17
+ ENT*2*2J*34*163910163~
18
+ NM1*EY*1*JONES*MARY****EI*793016~
19
+ RMR*IK*163910163**10000*11000~
20
+ ADX*-1000*52~
21
+ ENT*3*2J*34*179203456~
22
+ NM1*EY*1*JOHNSON*JOE****EI*934213~
23
+ RMR*IK*179203456**3000*3100~
24
+ ADX*-100*52~
25
+ SE*19*0002~
26
+ GE*1*1~
27
+ IEA*1*000000905~
@@ -0,0 +1,35 @@
1
+ Business Case Scenario 1 - Enroll an Employee in Multiple Health Care Insurance Products
2
+
3
+ The subscriber is enrolling in three health care products -- health, dental, and vision. The subscriber also has Coordination of Benefits (COB) with another insurance company.
4
+
5
+ Errors Found in File 834 5010X220-1
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
+ * H10913:Transaction Set Control Number '12345' does not match ST02's '0001'.
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
+ N1*P5**FI*999888777~
16
+ N1*IN**FI*654456654~
17
+ INS*Y*18*021*20*A***FT~
18
+ REF*0F*123456789~
19
+ REF*1L*123456001~
20
+ DTP*356*D8*19960523~
21
+ NM1*IL*1*DOE*JOHN*P***34*123456789~
22
+ PER*IP**HP*7172343334*WP*7172341240~
23
+ N3*100 MARKET ST*APT 3G~
24
+ N4*CAMP HILL*PA*17011**CY*CUMBERLAND~
25
+ DMG*D8*19400816*M~
26
+ HD*021**HLT~
27
+ DTP*348*D8*19960601~
28
+ COB*P*890111*5~
29
+ HD*021**DEN~
30
+ DTP*348*D8*19960601~
31
+ HD*021**VIS~
32
+ DTP*348*D8*19960601~
33
+ SE*21*12345~
34
+ GE*1*1~
35
+ IEA*1*000000905~
@@ -0,0 +1,29 @@
1
+ Business Case Scenario 1 - Enroll an Employee in Multiple Health Care Insurance Products
2
+
3
+ The subscriber is enrolling in three health care products -- health, dental, and vision. The subscriber also has Coordination of Benefits (COB) with another insurance company.
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*021*20*A***FT~
12
+ REF*0F*123456789~
13
+ REF*1L*123456001~
14
+ DTP*356*D8*19960523~
15
+ NM1*IL*1*DOE*JOHN*P***34*123456789~
16
+ PER*IP**HP*7172343334*WP*7172341240~
17
+ N3*100 MARKET ST*APT 3G~
18
+ N4*CAMP HILL*PA*17011**CY*CUMBERLAND~
19
+ DMG*D8*19400816*M~
20
+ HD*021**HLT~
21
+ DTP*348*D8*19960601~
22
+ COB*P*890111*5~
23
+ HD*021**DEN~
24
+ DTP*348*D8*19960601~
25
+ HD*021**VIS~
26
+ DTP*348*D8*19960601~
27
+ SE*21*0001~
28
+ GE*1*1~
29
+ IEA*1*000000905~
@@ -0,0 +1,26 @@
1
+ Business Case Scenario 10 - Reinstate Member Eligibility (INS)
2
+
3
+ A member is reinstated as eligible without reinstatement of coverage in a particular benefit.
4
+
5
+ Errors Found in File 834 5010X220-10
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
+ * H10913:Transaction Set Control Number '12345' does not match ST02's '0001'.
12
+
13
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
14
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
15
+ ST*834*0001*005010X220~
16
+ BGN*00*12456*20020601*1200****2~
17
+ REF*38*ABCD012354~
18
+ N1*P5**FI*999888777~
19
+ N1*IN**FI*654456654~
20
+ INS*Y*18*025**A***FT~
21
+ REF*0F*202443307~
22
+ REF*1L*123456001~
23
+ NM1*IL*1*SMITH*WILLIAM****ZZ*2024433307~
24
+ SE*10*12345~
25
+ GE*1*1~
26
+ IEA*1*000000905~
@@ -0,0 +1,19 @@
1
+ Business Case Scenario 10 - Reinstate Member Eligibility (INS)
2
+
3
+ A member is reinstated as eligible without reinstatement of coverage in a particular benefit.
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*12345*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*202443330~
16
+ DMG*D8*19590428*M~
17
+ SE*11*12345~
18
+ GE*1*1~
19
+ IEA*1*000000905~
@@ -0,0 +1,31 @@
1
+ Business Case Scenario 2 - Add a Dependent (Full-time Student) to an Existing Enrollment
2
+
3
+ The subscriber is enrolling a dependent who is a full-time student.
4
+
5
+ Errors Found in File 834 5010X220-2
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
+ * W25233:'Student Status Code' (INS09) may need to be evaluated when Member is a non-spouse and is over 18 years of age. See plan for age details and sutdent status requriements..
10
+ * H20203:Element HD02 is present, though marked 'Not Used'
11
+ * H24391:Missing HIPAA Required 'HD03'.
12
+
13
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
14
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
15
+ ST*834*0001*005010X220~
16
+ BGN*00*12456*19980520*1200****2~
17
+ REF*38*ABCD012354~
18
+ N1*P5**FI*999888777~
19
+ N1*IN**FI*654456654~
20
+ INS*N*19*021*28*A****F~
21
+ REF*0F*123456789~
22
+ REF*1L*123456001~
23
+ DTP*351*D8*19980515~
24
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
25
+ DMG*D8*19770816*M~
26
+ NM1*M8*2*PENN STATE UNIVERSITY~
27
+ HD*021*HLT~
28
+ DTP*348*D8*19960601~
29
+ SE*15*0001~
30
+ GE*1*1~
31
+ IEA*1*000000905~
@@ -0,0 +1,23 @@
1
+ Business Case Scenario 2 - Add a Dependent (Full-time Student) to an Existing Enrollment
2
+
3
+ The subscriber is enrolling a dependent who is a full-time student.
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*021*28*A****F~
13
+ REF*0F*123456789~
14
+ REF*1L*123456001~
15
+ DTP*351*D8*19980515~
16
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
17
+ DMG*D8*19770816*M~
18
+ NM1*M8*2*PENN STATE UNIVERSITY~
19
+ HD*021**HLT~
20
+ DTP*348*D8*19960601~
21
+ SE*15*0001~
22
+ GE*1*1~
23
+ IEA*1*000000905~
@@ -0,0 +1,36 @@
1
+ Business Case Scenario 3 - Enroll an Employee in a Managed Care Product
2
+
3
+ The subscriber is enrolling in an HMO product.
4
+
5
+ Errors Found in File 834 5010X220-3
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
+ * H10014:Leading zeros detected in LX01. The X12 syntax requires the suppression of leading zeros for numeric elements
10
+ * H20059:'Provider Last or Organization Name' was not expected because the Provider Primary ID (NM109) is present.
11
+ * H20059:'Provider First Name' was not expected because the Provider Primary ID (NM109) is present.
12
+ * H20059:'Provider Name Prefix' was not expected because the Provider Primary ID (NM109) is present.
13
+ * H21084:Invalid qualifier 'SV' found in '2310 NM108'. Only 'XX' is valid because the National Provider Identifier (NPI) is now mandated for use.
14
+
15
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
16
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X220~
17
+ ST*834*0001*005010X220~
18
+ BGN*00*12456*19980520*1200****2~
19
+ N1*P5**FI*999888777~
20
+ N1*IN**FI*654456654~
21
+ INS*Y*18*021*20*A***FT~
22
+ REF*0F*202443307~
23
+ REF*1L*123456001~
24
+ DTP*356*D8*19960112~
25
+ NM1*IL*1*SMITH*WILLIAM****34*202443307~
26
+ PER*IP**HP*7172343334*WP*7172341240~
27
+ N3*1715 SOUTHWIND AVENUE~
28
+ N4*ANYTOWN*PA*171110000~
29
+ DMG*D8*19700614*M~
30
+ HD*021**HMO~
31
+ DTP*348*D8*19960601~
32
+ LX*01~
33
+ NM1*P3*1*BROWN*BERNARD**DR**SV*143766*25~
34
+ SE*18*0001~
35
+ GE*1*1~
36
+ IEA*1*000000905~
@@ -0,0 +1,26 @@
1
+ Business Case Scenario 3 - Enroll an Employee in a Managed Care Product
2
+
3
+ The subscriber is enrolling in an HMO product.
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*021*20*A***FT~
12
+ REF*0F*202443307~
13
+ REF*1L*123456001~
14
+ DTP*356*D8*19960112~
15
+ NM1*IL*1*SMITH*WILLIAM****34*202443307~
16
+ PER*IP**HP*7172343334*WP*7172341240~
17
+ N3*1715 SOUTHWIND AVENUE~
18
+ N4*ANYTOWN*PA*171110000~
19
+ DMG*D8*19700614*M~
20
+ HD*021**HMO~
21
+ DTP*348*D8*19960601~
22
+ LX*1~
23
+ NM1*P3*1*BROWN*BERNARD**DR****25~
24
+ SE*18*0001~
25
+ GE*1*1~
26
+ IEA*1*000000905~
@@ -0,0 +1,27 @@
1
+ Business Case Scenario 4 - Add Subscriber Coverage
2
+
3
+ The subscriber is adding dental coverage.
4
+
5
+ Errors Found in File 834 5010X220-4
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
+ * H46406:'Member Demographics' was not found, but was expected because the Maintenance Type Code is 'Change' (INS03=001).
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*001*22*A***FT~
20
+ REF*0F*202443307~
21
+ REF*1L*123456001~
22
+ NM1*IL*1*SMITH*WILLIAM****ZZ*2024433307~
23
+ HD*021**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 4 - Add Subscriber Coverage
2
+
3
+ The subscriber is adding 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*001*22*A***FT~
13
+ REF*0F*202443307~
14
+ REF*1L*123456001~
15
+ NM1*IL*1*SMITH*WILLIAM****34*123663245~
16
+ DMG*D8*19561103*M~
17
+ HD*021**DEN~
18
+ DTP*348*D8*20020701~
19
+ SE*13*0001~
20
+ GE*1*1~
21
+ IEA*1*000000905~
@@ -0,0 +1,26 @@
1
+ Business Case Scenario 5 - Change Subscriber Information
2
+
3
+ The subscriber, who is already enrolled in a plan, corrects the date of birth.
4
+
5
+ Errors Found in File 834 5010X220-5
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H24391:Missing HIPAA Required 'N103'.
9
+ * H24391:Missing HIPAA Required 'N104'.
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
+ N1*P5*GENERIC INC~
16
+ N1*IN*ABC INSURANCE*FI*654456654~
17
+ INS*Y*18*001*25*A***FT~
18
+ REF*0F*123456789~
19
+ REF*1L*123456001~
20
+ NM1*IL*1*DOE*JAMES*E***34*103229876~
21
+ DMG*D8*19500415*M~
22
+ NM1*70*1*DOE*JAMES*E~
23
+ DMG*D8*19500416*M~
24
+ SE*12*0001~
25
+ GE*1*1~
26
+ IEA*1*000000905~