stupidedi 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,64 @@
1
+ Example 8 - Wheelchair
2
+
3
+ The patient is the subscriber. Claim is submitted by the provider directly to a Medicare DMERC carrier.
4
+
5
+ Errors Found in File 5010X222-8
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HC'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * H20617:The value '7778889999' does not match the format for a "HIPAA National Provider ID (NPI)"
10
+ * H25377:The 'Billing Provider Postal Zone or ZIP Code' must be the nine digit Zip code.
11
+ * H20204:Code Value 'G2' at element 'REF01' is valid in the X12 standard, but not in this HIPAA implementation
12
+ * H20205:Incomplete loop (2010BB). Missing HIPAA-required N4 (Payer City, State, ZIP Code).
13
+ * B40146:'Durable Medical Equipment Service' (SV5) is generally required for the procedure described in SV1-01.
14
+ * W71117:The Condition Indicator/Durable Medical Equipment is required when DMERC CMN, DMERC DIF or Oxygen Therapy Certification is included on this service line and the information is necessary for adjudication.
15
+ * H24402:The value '1111155555' fails the check digit algorithm for the "HIPAA National Provider ID (NPI)"
16
+ * H46000:The 'Ordering Provider Secondary Identification' is not allowed because the National Provider Identifier has been mandated as the only valid provider identifier for HIPAA transactions
17
+
18
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
19
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X222~
20
+ ST*837*112233*005010X222~
21
+ BHT*0019*00*16*20050326*1036*CH~
22
+ NM1*41*2*XYZ WHEELCHAIRS INC*****46*ABC55~
23
+ PER*IC*JANE*TE*2225551111~
24
+ NM1*40*2*DMERC CARRIER*****46*99999~
25
+ HL*1**20*1~
26
+ NM1*85*2*XYZ WHEELCHAIR INC*****XX*7778889999~
27
+ N3*1440 NORTH STREET~
28
+ N4*LAFAYETTE*IN*47904~
29
+ REF*EI*123567989~
30
+ REF*G2*0426960001~
31
+ HL*2*1*22*0~
32
+ SBR*P*18*******MB~
33
+ PAT*******01*155~
34
+ NM1*IL*1*SMITH*JAMES****MI*987654321A~
35
+ N3*12 MAIN ST~
36
+ N4*FRANKFORT*IN*46209~
37
+ DMG*D8*19201023*M~
38
+ NM1*PR*2*DMERC CARRIER*****PI*99999~
39
+ CLM*SMI123*75***12:B:1*Y*A*Y*Y~
40
+ HI*BK:436*BF:3449~
41
+ LX*1~
42
+ SV1*HC:K0001:RR:KH:BR*75*UN*1***1:2~
43
+ PWK*CT*AD~
44
+ CR3*I*MO*99~
45
+ DTP*472*RD8*20050321-20050321~
46
+ DTP*463*D8*20040321~
47
+ DTP*461*D8*20050321~
48
+ MEA*TR*HT*70~
49
+ NM1*DK*1*WILSON*RANDALL****XX*1111155555~
50
+ N3*1226 WEST RAILROAD STREET~
51
+ N4*LAFAYETTE*IN*47905~
52
+ REF*1G*M12345~
53
+ PER*IC*LEE*TE*7659259999~
54
+ LQ*UT*02.03B~
55
+ FRM*1*Y~
56
+ FRM*2*N~
57
+ FRM*3*N~
58
+ FRM*4*N~
59
+ FRM*5**8~
60
+ FRM*8*N~
61
+ FRM*9*Y~
62
+ SE*43*112233~
63
+ GE*1*1~
64
+ IEA*1*000000905~
@@ -0,0 +1,52 @@
1
+ Example 8 - Wheelchair
2
+
3
+ The patient is the subscriber. Claim is submitted by the provider directly to a Medicare DMERC carrier.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HC*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X222~
7
+ ST*837*112233*005010X222~
8
+ BHT*0019*00*16*20050326*1036*CH~
9
+ NM1*41*2*XYZ WHEELCHAIRS INC*****46*ABC55~
10
+ PER*IC*JANE*TE*2225551111~
11
+ NM1*40*2*DMERC CARRIER*****46*99999~
12
+ HL*1**20*1~
13
+ NM1*85*2*XYZ WHEELCHAIR INC*****XX*1232343560~
14
+ N3*1440 NORTH STREET~
15
+ N4*LAFAYETTE*IN*479041440~
16
+ REF*EI*123567989~
17
+ HL*2*1*22*0~
18
+ SBR*P*18*******MB~
19
+ PAT*******01*155~
20
+ NM1*IL*1*SMITH*JAMES****MI*987654321A~
21
+ N3*12 MAIN ST~
22
+ N4*FRANKFORT*IN*46209~
23
+ DMG*D8*19201023*M~
24
+ NM1*PR*2*DMERC CARRIER*****PI*99999~
25
+ N4*INDIANAPOLIS*IN*46209~
26
+ CLM*SMI123*75***12:B:1*Y*A*Y*Y~
27
+ HI*BK:436*BF:3449~
28
+ LX*1~
29
+ SV1*HC:K0001:RR:KH:BR*75*UN*1***1:2~
30
+ SV5*HC:K0001*DA*4*200*500*4~
31
+ PWK*CT*AD~
32
+ CR3*I*MO*99~
33
+ CRC*09*Y*38~
34
+ DTP*472*RD8*20050321-20050321~
35
+ DTP*463*D8*20040321~
36
+ DTP*461*D8*20050321~
37
+ MEA*TR*HT*70~
38
+ NM1*DK*1*WILSON*RANDALL****XX*1111155556~
39
+ N3*1226 WEST RAILROAD STREET~
40
+ N4*LAFAYETTE*IN*47905~
41
+ PER*IC*LEE*TE*7659259999~
42
+ LQ*UT*02.03B~
43
+ FRM*1*Y~
44
+ FRM*2*N~
45
+ FRM*3*N~
46
+ FRM*4*N~
47
+ FRM*5**8~
48
+ FRM*8*N~
49
+ FRM*9*Y~
50
+ SE*44*112233~
51
+ GE*1*1~
52
+ IEA*1*000000905~
@@ -0,0 +1,56 @@
1
+ Example 9 - Anesthesia
2
+
3
+ The patient is the subscriber. The payer is Medicare. The claim is billed directly to Medicare.
4
+
5
+ Errors Found in File 5010X222-9
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HC'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * H24402:The value '2366554859' fails the check digit algorithm for the "HIPAA National Provider ID (NPI)"
10
+ * H25377:The 'Billing Provider Postal Zone or ZIP Code' must be the nine digit Zip code.
11
+ * H20205:Incomplete loop (2010BB). Missing HIPAA-required N4 (Payer City, State, ZIP Code).
12
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in CLM05
13
+ * W22004:Your data contains character(s) from the extended character set which may only be used by agreement between communicating parties.
14
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in HI01
15
+ * H20617:The value '5678912345' does not match the format for a "HIPAA National Provider ID (NPI)"
16
+ * H20204:Code Value 'ZZ' at element 'PRV02' is valid in the X12 standard, but not in this HIPAA implementation
17
+ * H46000:The 'Rendering Provider Secondary Identification' is not allowed because the National Provider Identifier has been mandated as the only valid provider identifier for HIPAA transactions
18
+ * B20617:Currently the "HIPAA National Provider ID (NPI)" is only being issued with the first digit equal to 1 or 2, with 3 and 4 reserved for future assignment
19
+ * H20617:The value '432198765' does not match the format for a "HIPAA National Provider ID (NPI)"
20
+ * H25377:The 'Laboratory or Facility Postal Zone or ZIP Code' must be the nine digit Zip code.
21
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in SV101
22
+ * B45272:Use of MJ in SV103 indicates Anesthesia Administration, which requires the presence of the Anesthesia Related Surgical Procedure (2300 HI01 = BP).
23
+
24
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
25
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X222~
26
+ ST*837*0001*005010X222~
27
+ BHT*0019*00*0123*20050117*1023*CH~
28
+ NM1*41*2*PROVIDER MEDICAL GROUP*****46*N305~
29
+ PER*IC*NINA*TE*6155551212*EX*911~
30
+ NM1*40*2*ABC PAYER*****46*05440~
31
+ HL*1**20*1~
32
+ NM1*85*2*PROVIDER MEDICAL GROUP*****XX*2366554859~
33
+ N3*1234 WEST END AVE~
34
+ N4*NASHVILLE*TN*37232~
35
+ REF*EI*756473826~
36
+ HL*2*1*22*0~
37
+ SBR*P*18*******MB~
38
+ NM1*IL*1*JONES*MARGARET****MI*123456789A~
39
+ N3*123 RAINBOW ROAD~
40
+ N4*NASHVILLE*TN*37232~
41
+ DMG*D8*19740303*F~
42
+ NM1*PR*2*ABC PAYER*****PI*05440~
43
+ CLM*153829140*827***22>B>1*Y*A*Y*Y~
44
+ HI*BK>36616~
45
+ NM1*82*1*TOWNSEND*JACOB*E***XX*5678912345~
46
+ PRV*PE*ZZ*207L00000X~
47
+ REF*1G*A41234~
48
+ NM1*77*2*PROVIDER OP HOSP*****XX*432198765~
49
+ N3*345 MAIN DRIVE~
50
+ N4*NASHVILLE*TN*37232~
51
+ LX*1~
52
+ SV1*HC>00142>QK>QS>P1*827*MJ*61***1~
53
+ DTP*472*D8*20050112~
54
+ SE*29*0001~
55
+ GE*1*1~
56
+ IEA*1*000000905~
@@ -0,0 +1,38 @@
1
+ Example 9 - Anesthesia
2
+
3
+ The patient is the subscriber. The payer is Medicare. The claim is billed directly to Medicare.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HC*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X222~
7
+ ST*837*0001*005010X222~
8
+ BHT*0019*00*0123*20050117*1023*CH~
9
+ NM1*41*2*PROVIDER MEDICAL GROUP*****46*N305~
10
+ PER*IC*NINA*TE*6155551212*EX*911~
11
+ NM1*40*2*ABC PAYER*****46*05440~
12
+ HL*1**20*1~
13
+ NM1*85*2*PROVIDER MEDICAL GROUP*****XX*2366554857~
14
+ N3*1234 WEST END AVE~
15
+ N4*NASHVILLE*TN*372321234~
16
+ REF*EI*756473826~
17
+ HL*2*1*22*0~
18
+ SBR*P*18*******MB~
19
+ NM1*IL*1*JONES*MARGARET****MI*123456789A~
20
+ N3*123 RAINBOW ROAD~
21
+ N4*NASHVILLE*TN*37232~
22
+ DMG*D8*19740303*F~
23
+ NM1*PR*2*ABC PAYER*****PI*05440~
24
+ N4*NASHVILLE*TN*37232~
25
+ CLM*153829140*827***22:B:1*Y*A*Y*Y~
26
+ HI*BK:36616~
27
+ HI*BP:94542~
28
+ NM1*82*1*TOWNSEND*JACOB*E***XX*1232343560~
29
+ PRV*PE*PXC*207L00000X~
30
+ NM1*77*2*PROVIDER OP HOSP*****XX*1432198764~
31
+ N3*345 MAIN DRIVE~
32
+ N4*NASHVILLE*TN*372323450~
33
+ LX*1~
34
+ SV1*HC:00142:QK:QS:P1*827*MJ*61***1~
35
+ DTP*472*D8*20050112~
36
+ SE*30*0001~
37
+ GE*1*1~
38
+ IEA*1*000000905~
@@ -0,0 +1,66 @@
1
+ Business Scenario 1- 837 Institutional Claim
2
+
3
+ The patient is the subscriber. The primary payer is Medicare and the secondary payer is State Teachers. The claim has a Type of Bill of 0141.
4
+
5
+ Errors Found in File 5010X223A1-1
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HC'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * H52000:Provider Specialty Code '203BA0200N' not found in Taxonomy Code Table.
10
+ * H20617:The value '9876540809' does not match the format for a "HIPAA National Provider ID (NPI)"
11
+ * H25377:The 'Billing Provider Postal Zone or ZIP Code' must be the nine digit Zip code.
12
+ * H20203:Element CLM06 is present, though marked 'Not Used'
13
+ * H20204:Code Value 'D8' at element 'DTP02' is valid in the X12 standard, but not in this HIPAA implementation
14
+ * H51105:'A2' is not a valid NUBC Value Code.
15
+ * H46000:The 'Attending Provider Secondary Identification' is not allowed because the National Provider Identifier has been mandated as the only valid provider identifier for HIPAA transactions
16
+ * H46216:The Other Insurance Group Name must not be used if the Group Number is submitted.
17
+ * H10023:Unexpected segment (DMG)
18
+ * W24413:Submitters are encouraged to routinely send a Line Item Control Number on all service lines.
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*005010X223A1~
22
+ ST*837*987654*005010X223A1~
23
+ BHT*0019*00*0123*19960918*0932*CH~
24
+ NM1*41*2*JONES HOSPITAL*****46*12345~
25
+ PER*IC*JANE DOE*TE*9005555555~
26
+ NM1*40*2*MEDICARE*****46*00120~
27
+ HL*1**20*1~
28
+ PRV*BI*PXC*203BA0200N~
29
+ NM1*85*2*JONES HOSPITAL*****XX*9876540809~
30
+ N3*225 MAIN STREET BARKLEY BUILDING~
31
+ N4*CENTERVILLE*PA*17111~
32
+ REF*EI*567891234~
33
+ HL*2*1*22*0~
34
+ SBR*P*18*******MB~
35
+ NM1*IL*1*DOE*JOHN*T***MI*030005074A~
36
+ N3*125 CITY AVENUE~
37
+ N4*CENTERVILLE*PA*17111~
38
+ DMG*D8*19261111*M~
39
+ NM1*PR*2*MEDICARE B*****PI*00435~
40
+ REF*G2*330127~
41
+ CLM*756048Q*89.93***14:A:1*Y*A*Y*Y~
42
+ DTP*434*D8*19960911~
43
+ CL1*3**01~
44
+ HI*BK:3669~
45
+ HI*BF:4019*BF:79431~
46
+ HI*BH:A1:D8:19261111*BH:A2:D8:19911101*BH:B1:D8:19261111*BH:B2:D8:19870101~
47
+ HI*BE:A2:::15.31~
48
+ HI*BG:09~
49
+ NM1*71*1*JONES*JOHN*J~
50
+ REF*1G*B99937~
51
+ SBR*S*01*351630*STATE TEACHERS*****CI~
52
+ DMG*D8*19271211*F~
53
+ OI***Y***Y~
54
+ NM1*IL*1*DOE*JANE*S***MI*222004433~
55
+ N3*125 CITY AVENUE~
56
+ N4*CENTERVILLE*PA*17111~
57
+ NM1*PR*2*STATE TEACHERS*****PI*1135~
58
+ LX*1~
59
+ SV2*0305*HC:85025*13.39*UN*1~
60
+ DTP*472*D8*19960911~
61
+ LX*2~
62
+ SV2*0730*HC:93005*76.54*UN*3~
63
+ DTP*472*D8*19960911~
64
+ SE*43*987654~
65
+ GE*1*1~
66
+ IEA*1*000000905~
@@ -0,0 +1,53 @@
1
+ Business Scenario 1- 837 Institutional Claim
2
+
3
+ The patient is the subscriber. The primary payer is Medicare and the secondary payer is State Teachers. The claim has a Type of Bill of 0141.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HC*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X223A1~
7
+ ST*837*987654*005010X223A1~
8
+ BHT*0019*00*0123*19960918*0932*CH~
9
+ NM1*41*2*JONES HOSPITAL*****46*12345~
10
+ PER*IC*JANE DOE*TE*9005555555~
11
+ NM1*40*2*MEDICARE*****46*00120~
12
+ HL*1**20*1~
13
+ PRV*BI*PXC*261QM1300X~
14
+ NM1*85*2*JONES HOSPITAL*****XX*1232343560~
15
+ N3*225 MAIN STREET BARKLEY BUILDING~
16
+ N4*CENTERVILLE*PA*171112251~
17
+ REF*EI*567891234~
18
+ HL*2*1*22*0~
19
+ SBR*P*18*******MB~
20
+ NM1*IL*1*DOE*JOHN*T***MI*030005074A~
21
+ N3*125 CITY AVENUE~
22
+ N4*CENTERVILLE*PA*17111~
23
+ DMG*D8*19261111*M~
24
+ NM1*PR*2*MEDICARE B*****PI*00435~
25
+ N4*CENTERVILL*PA*17111~
26
+ REF*G2*330127~
27
+ CLM*756048Q*89.93***14:A:1**A*Y*Y~
28
+ DTP*434*RD8*19960911-19960911~
29
+ CL1*3**01~
30
+ HI*BK:3669~
31
+ HI*BF:4019*BF:79431~
32
+ HI*BH:A1:D8:19261111*BH:A2:D8:19911101*BH:B1:D8:19261111*BH:B2:D8:19870101~
33
+ HI*BE:38:::15.31~
34
+ HI*BG:09~
35
+ NM1*71*1*JONES*JOHN*J***XX*1232343560~
36
+ SBR*S*01*351630******CI~
37
+ OI***Y***Y~
38
+ NM1*IL*1*DOE*JANE*S***MI*222004433~
39
+ N3*125 CITY AVENUE~
40
+ N4*CENTERVILLE*PA*17111~
41
+ NM1*PR*2*STATE TEACHERS*****PI*1135~
42
+ N4*CENTERFIELD*PA*17111~
43
+ LX*1~
44
+ SV2*0305*HC:85025*13.39*UN*1~
45
+ DTP*472*D8*19960911~
46
+ REF*6R*123~
47
+ LX*2~
48
+ SV2*0730*HC:93005*76.54*UN*3~
49
+ DTP*472*D8*19960911~
50
+ REF*6R*124~
51
+ SE*45*987654~
52
+ GE*1*1~
53
+ IEA*1*000000905~
@@ -0,0 +1,69 @@
1
+ Business Scenario 2- Two Claims for the Same Provider
2
+
3
+ For both claims, the patient is the subscriber and the transaction is being directly submitted from the provider to the payer.This example contains two claims for the same provider.
4
+
5
+ Errors Found in File 5010X223A1-2
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HC'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * H24402:The value '1234567890' fails the check digit algorithm for the "HIPAA National Provider ID (NPI)"
10
+ * H25377:The 'Billing Provider Postal Zone or ZIP Code' must be the nine digit Zip code.
11
+ * H20203:Element CLM06 is present, though marked 'Not Used'
12
+ * H25405:The Admission Source Is required for all inpatient and outpatient services.
13
+ * H46000:The 'Attending Provider Secondary Identification' is not allowed because the National Provider Identifier has been mandated as the only valid provider identifier for HIPAA transactions
14
+ * W24413:Submitters are encouraged to routinely send a Line Item Control Number on all service lines.
15
+ * H20617:The value '9999999999' does not match the format for a "HIPAA National Provider ID (NPI)"
16
+ * H52003:Attending Provider Specialty Code '363LP0200N' not found in Taxonomy Code Table
17
+
18
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
19
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X223A1~
20
+ ST*837*987654*005010X223A1~
21
+ BHT*0019*00*0123*20050630*0932*CH~
22
+ NM1*41*2*JONES HOSPITAL*****46*12345~
23
+ PER*IC*JANE DOE*TE*1112223333~
24
+ NM1*40*2*TRICARE*****46*99999~
25
+ HL*1**20*1~
26
+ PRV*BI*PXC*282N00000X~
27
+ NM1*85*2*JONES HOSPITAL*****XX*1234567890~
28
+ N3*225 MAIN STREET~
29
+ N4*ANYWHERE*PA*17111~
30
+ REF*EI*123456789~
31
+ HL*2*1*22*0~
32
+ SBR*P*18*******CH~
33
+ NM1*IL*1*DOE*JOHN*T***MI*030005074~
34
+ N3*125 CITY AVENUE~
35
+ N4*ANYWHERE*PA*17111~
36
+ DMG*D8*19681111*M~
37
+ NM1*PR*2*TRICARE*****PI*99999~
38
+ CLM*756048Q*89.95***13:A:1*Y*C*Y*Y~
39
+ DTP*434*RD8*20050315-20050315~
40
+ CL1***01~
41
+ HI*BK:3669~
42
+ HI*BF:4019*BF:79431~
43
+ NM1*71*1*JONES*JOHN*J***XX*1122334455~
44
+ REF*1G*U12345~
45
+ LX*1~
46
+ SV2*0305*HC:85025*13.39*UN*1~
47
+ DTP*472*D8*20050315~
48
+ LX*2~
49
+ SV2*0730*HC:93010*76.56*UN*3~
50
+ DTP*472*D8*20050315~
51
+ HL*3*1*22*0~
52
+ SBR*P*18*******CH~
53
+ NM1*IL*1*SMITH*JOE****MI*123405074~
54
+ N3*5 MAIN STREET~
55
+ N4*ANYWHERE*PA*17111~
56
+ DMG*D8*19621210*M~
57
+ NM1*PR*2*TRICARE*****PI*99999~
58
+ CLM*756049Q*50***13:A:1*Y*C*Y*Y~
59
+ DTP*434*RD8*20050401-20050401~
60
+ CL1***01~
61
+ HI*BK:30000~
62
+ NM1*71*1*JONES*JUDY*J***XX*9999999999~
63
+ PRV*AT*PXC*363LP0200N~
64
+ LX*1~
65
+ SV2*0300*HC:85087*50*UN*1~
66
+ DTP*472*D8*20050401~
67
+ SE*48*987654~
68
+ GE*1*1~
69
+ IEA*1*000000905~
@@ -0,0 +1,60 @@
1
+ Business Scenario 2- Two Claims for the Same Provider
2
+
3
+ For both claims, the patient is the subscriber and the transaction is being directly submitted from the provider to the payer.This example contains two claims for the same provider.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HC*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X223A1~
7
+ ST*837*987654*005010X223A1~
8
+ BHT*0019*00*0123*20050630*0932*CH~
9
+ NM1*41*2*JONES HOSPITAL*****46*12345~
10
+ PER*IC*JANE DOE*TE*1112223333~
11
+ NM1*40*2*TRICARE*****46*99999~
12
+ HL*1**20*1~
13
+ PRV*BI*PXC*282N00000X~
14
+ NM1*85*2*JONES HOSPITAL*****XX*1232343560~
15
+ N3*225 MAIN STREET~
16
+ N4*ANYWHERE*PA*171112251~
17
+ REF*EI*123456789~
18
+ HL*2*1*22*0~
19
+ SBR*P*18*******CH~
20
+ NM1*IL*1*DOE*JOHN*T***MI*030005074~
21
+ N3*125 CITY AVENUE~
22
+ N4*ANYWHERE*PA*17111~
23
+ DMG*D8*19681111*M~
24
+ NM1*PR*2*TRICARE*****PI*99999~
25
+ N4*ANYWHERE*PA*17111~
26
+ CLM*756048Q*89.95***13:A:1**C*Y*Y~
27
+ DTP*434*RD8*20050315-20050315~
28
+ CL1**7*01~
29
+ HI*BK:3669~
30
+ HI*BF:4019*BF:79431~
31
+ NM1*71*1*JONES*JOHN*J***XX*1122334455~
32
+ LX*1~
33
+ SV2*0305*HC:85025*13.39*UN*1~
34
+ DTP*472*D8*20050315~
35
+ REF*6R*123~
36
+ LX*2~
37
+ SV2*0730*HC:93010*76.56*UN*3~
38
+ DTP*472*D8*20050315~
39
+ REF*6R*124~
40
+ HL*3*1*22*0~
41
+ SBR*P*18*******CH~
42
+ NM1*IL*1*SMITH*JOE****MI*123405074~
43
+ N3*5 MAIN STREET~
44
+ N4*ANYWHERE*PA*17111~
45
+ DMG*D8*19621210*M~
46
+ NM1*PR*2*TRICARE*****PI*99999~
47
+ N4*ANYWHERE*PA*17111~
48
+ CLM*756049Q*50***13:A:1**C*Y*Y~
49
+ DTP*434*RD8*20050401-20050401~
50
+ CL1**7*01~
51
+ HI*BK:30000~
52
+ NM1*71*1*JONES*JUDY*J***XX*1232343560~
53
+ PRV*AT*PXC*204C00000X~
54
+ LX*1~
55
+ SV2*0300*HC:85087*50*UN*1~
56
+ DTP*472*D8*20050401~
57
+ REF*6R*224~
58
+ SE*52*987654~
59
+ GE*1*1~
60
+ IEA*1*000000905~
@@ -0,0 +1,89 @@
1
+ Business Scenario 3- PPO Repriced Claim
2
+
3
+ The patient is not the subscriber. Repriced claim is being transmitted from a Regional Preferred Provider Organization to a commercial health insurance company. In this situation, the hospital has sent the claim to a clearinghouse, which then forwarded the claim to the repricer; the claim has been repriced and is now being forwarded to the appropriate payer for payment.
4
+
5
+ Errors Found in File 837I 5010X223A1-3
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HC'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * H25423:The Implementation Convention Reference value must be '005010X223A1'.
10
+ * H24402:The value '1257234346' fails the check digit algorithm for the "HIPAA National Provider ID (NPI)"
11
+ * H20205:Incomplete loop (2010BB). Missing HIPAA-required N4 (Payer City, State, ZIP Code).
12
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in CLM05
13
+ * W22004:Your data contains character(s) from the extended character set which may only be used by agreement between communicating parties.
14
+ * H20203:Element CLM06 is present, though marked 'Not Used'
15
+ * H24391:Missing HIPAA Required 'CLM07'.
16
+ * H46465:Admission Date (DTP-01=435) was not expected because this claim is not for Inpatient Services.
17
+ * W24411:The Claim Pricing/Repricing Information is to be completed by repricers only.
18
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in HI01
19
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in HI01
20
+ * H20204:Code Value 'BF' at element 'HI0101' is valid in the X12 standard, but not in this HIPAA implementation
21
+ * H61012:Treatment Code Information was not expected because the Claim Facility Type (CLM-05-1) is not between 30 and 39
22
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in HI01
23
+ * H20203:Element HI0103 is present, though marked 'Not Used'
24
+ * H20203:Element HI0104 is present, though marked 'Not Used'
25
+ * H20204:Code Value 'BH' at element 'HI0101' is valid in the X12 standard, but not in this HIPAA implementation
26
+ * H51113:'11' is not a valid Treatment Code.
27
+ * W24411:The Claim Pricing/Repricing Information is to be completed by repricers only.
28
+ * H20617:The value '5544332211' does not match the format for a "HIPAA National Provider ID (NPI)"
29
+ * H10023:Unexpected segment (DMG)
30
+ * H20205:Incomplete loop (2330A). Missing HIPAA-required N4 (Other Subscriber City, State, ZIP Code).
31
+ * H20205:Incomplete loop (2330B). Missing HIPAA-required N4 (Other Payer City, State, ZIP Code).
32
+ * W24413:Submitters are encouraged to routinely send a Line Item Control Number on all service lines.
33
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in SV202
34
+ * W24413:Submitters are encouraged to routinely send a Line Item Control Number on all service lines.
35
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in SV202
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*005010X223A1~
39
+ ST*837*1002*005010X223~
40
+ BHT*0019*00*1002*20050721*09460000*CH~
41
+ NM1*41*2*REGIONAL PPO NETWORK*****46*123456789~
42
+ PER*IC*SUBMITTER CONTACT INFO*TE*8001231234~
43
+ NM1*40*2*LOCAL INSURANCE COMPANY*****46*54334452~
44
+ HL*1**20*1~
45
+ NM1*85*2*GOOD HEALTH HOSPITAL*****XX*1257234346~
46
+ N3*592 NORTH ELM STREET~
47
+ N4*EDGEWOOD*AZ*860015590~
48
+ REF*EI*344232321~
49
+ HL*2*1*22*1~
50
+ SBR*P**46522567AW******CI~
51
+ NM1*IL*1*JONES*JENNY****MI*345U8423H~
52
+ N3*4512 WEST AVENUE~
53
+ N4*EVANSVILLE*AZ*863030000~
54
+ DMG*D8*19690731*F~
55
+ NM1*PR*2*LOCAL INSURANCE COMPANY*****PI*7452723~
56
+ HL*3*2*23*0~
57
+ PAT*19~
58
+ NM1*QC*1*JONES*JOY~
59
+ N3*4512 WEST AVENUE~
60
+ N4*EVANSVILLE*AZ*863030000~
61
+ DMG*D8*19980820*F~
62
+ CLM*456DFH43*237.5***13>A>1*Y**Y*Y~
63
+ DTP*434*RD8*20050706-20050706~
64
+ DTP*435*DT*200507060800~
65
+ CL1**2*01~
66
+ AMT*F3*237.5~
67
+ REF*9A*09459034092~
68
+ REF*D9*04566877634343456~
69
+ HI*BK>38181~
70
+ HI*BF>38900~
71
+ HI*BH>11>D8>20050706~
72
+ HCP*03*182.88*54.62*123456789~
73
+ NM1*71*1*JOHNSON*SIMON****XX*5544332211~
74
+ SBR*S*19**T&T PLUMBING COMPANY*****CI~
75
+ DMG*D8*19700122*M~
76
+ OI***Y***Y~
77
+ NM1*IL*1*JONES*GEORGE****MI*56454566~
78
+ NM1*PR*2*OTHER COVERAGE COMPANY*****PI*534524~
79
+ LX*1~
80
+ SV2*0471*HC>92557*178*UN*1~
81
+ DTP*472*D8*20050706~
82
+ HCP*03*137.06*40.94~
83
+ LX*2~
84
+ SV2*0471*HC>92567*59.5*UN*1~
85
+ DTP*472*D8*20050706~
86
+ HCP*03*45.82*13.68~
87
+ SE*49*1002~
88
+ GE*1*1~
89
+ IEA*1*000000905~
@@ -0,0 +1,61 @@
1
+ Business Scenario 3- PPO Repriced Claim
2
+
3
+ The patient is not the subscriber. Repriced claim is being transmitted from a Regional Preferred Provider Organization to a commercial health insurance company. In this situation, the hospital has sent the claim to a clearinghouse, which then forwarded the claim to the repricer; the claim has been repriced and is now being forwarded to the appropriate payer for payment.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HC*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X223A1~
7
+ ST*837*1002*005010X223A1~
8
+ BHT*0019*00*1002*20050721*09460000*CH~
9
+ NM1*41*2*REGIONAL PPO NETWORK*****46*123456789~
10
+ PER*IC*SUBMITTER CONTACT INFO*TE*8001231234~
11
+ NM1*40*2*LOCAL INSURANCE COMPANY*****46*54334452~
12
+ HL*1**20*1~
13
+ NM1*85*2*GOOD HEALTH HOSPITAL*****XX*1232343560~
14
+ N3*592 NORTH ELM STREET~
15
+ N4*EDGEWOOD*AZ*860015590~
16
+ REF*EI*344232321~
17
+ HL*2*1*22*1~
18
+ SBR*P**46522567AW******CI~
19
+ NM1*IL*1*JONES*JENNY****MI*345U8423H~
20
+ N3*4512 WEST AVENUE~
21
+ N4*EVANSVILLE*AZ*863030000~
22
+ DMG*D8*19690731*F~
23
+ NM1*PR*2*LOCAL INSURANCE COMPANY*****PI*7452723~
24
+ N4*EVANSVILL*AZ*86303~
25
+ HL*3*2*23*0~
26
+ PAT*19~
27
+ NM1*QC*1*JONES*JOY~
28
+ N3*4512 WEST AVENUE~
29
+ N4*EVANSVILLE*AZ*863030000~
30
+ DMG*D8*19980820*F~
31
+ CLM*456DFH43*237.5***13:A:1**A*Y*Y~
32
+ DTP*434*RD8*20050706-20050706~
33
+ CL1**2*01~
34
+ AMT*F3*237.5~
35
+ REF*9A*09459034092~
36
+ REF*D9*04566877634343456~
37
+ HI*BK:38181~
38
+ HI*BF:38900~
39
+ HI*BH:11:D8:20050706~
40
+ HCP*03*182.88*54.62*123456789~
41
+ NM1*71*1*JOHNSON*SIMON****XX*1544332210~
42
+ SBR*S*19**T&T PLUMBING COMPANY*****CI~
43
+ OI***Y***Y~
44
+ NM1*IL*1*JONES*GEORGE****MI*56454566~
45
+ N3*845 OAK STREET~
46
+ N4*EVANSVILLE*AZ*863030000~
47
+ NM1*PR*2*OTHER COVERAGE COMPANY*****PI*534524~
48
+ N4*EVANSVILLE*AZ*863030000~
49
+ LX*1~
50
+ SV2*0471*HC:92557*178*UN*1~
51
+ DTP*472*D8*20050706~
52
+ REF*6R*001~
53
+ HCP*03*137.06*40.94~
54
+ LX*2~
55
+ SV2*0471*HC:92567*59.5*UN*1~
56
+ DTP*472*D8*20050706~
57
+ REF*6R*002~
58
+ HCP*03*45.82*13.68~
59
+ SE*53*1002~
60
+ GE*1*1~
61
+ IEA*1*000000905~
@@ -0,0 +1,60 @@
1
+ Business Scenario 4 - Out of Network Repriced Claim
2
+
3
+ The patient is the subscriber. The hospital has sent the claim to a clearinghouse, which then forwarded the claim to the repricer; the claim has been determined to be out of network and is now being forwarded to the appropriate payer for payment.
4
+
5
+ Errors Found in File 837I 5010X223A1-4
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H10203:Functional Group ID 'XX' mismatch - Transaction Set is type 'HC'
8
+ * H11204:Code Value 'XX' not used for element 'GS01'
9
+ * H25423:The Implementation Convention Reference value must be '005010X223A1'.
10
+ * H20205:Incomplete loop (2010BB). Missing HIPAA-required N4 (Payer City, State, ZIP Code).
11
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in CLM05
12
+ * W22004:Your data contains character(s) from the extended character set which may only be used by agreement between communicating parties.
13
+ * H20203:Element CLM06 is present, though marked 'Not Used'
14
+ * H24391:Missing HIPAA Required 'CLM07'.
15
+ * H46465:Admission Date (DTP-01=435) was not expected because this claim is not for Inpatient Services.
16
+ * W24411:The Claim Pricing/Repricing Information is to be completed by repricers only.
17
+ * H61012:Treatment Code Information was not expected because the Claim Facility Type (CLM-05-1) is not between 30 and 39
18
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in HI01
19
+ * H20204:Code Value 'BK' at element 'HI0101' is valid in the X12 standard, but not in this HIPAA implementation
20
+ * H51113:'53081' is not a valid Treatment Code.
21
+ * W24411:The Claim Pricing/Repricing Information is to be completed by repricers only.
22
+ * H24402:The value '2244224455' fails the check digit algorithm for the "HIPAA National Provider ID (NPI)"
23
+ * W24413:Submitters are encouraged to routinely send a Line Item Control Number on all service lines.
24
+ * H10602:Assuming Sub-Element Delimiter is > rather than : in SV202
25
+
26
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
27
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X223A1~
28
+ ST*837*1024*005010X223~
29
+ BHT*0019*00*1024*20050711*1335*CH~
30
+ NM1*41*2*REGIONAL PPO NETWORK*****46*123456789~
31
+ PER*IC*SUBMITTER CONTACT INFO*TE*8001231234~
32
+ NM1*40*2*CONSERVATIVE INSURANCE*****46*000110002~
33
+ HL*1**20*1~
34
+ NM1*85*2*LOCAL HOSPITAL*****XX*1122334455~
35
+ N3*3423 SMALL STREET~
36
+ N4*COLUMBUS*OH*432150000~
37
+ REF*EI*111002222~
38
+ HL*2*1*22*0~
39
+ SBR*P*18*34561W******CI~
40
+ NM1*IL*1*SMITH*JAMES*A***MI*34902390F~
41
+ N3*934 NORTH STREET~
42
+ N4*COLUMBUS*OH*432150000~
43
+ DMG*D8*19621015*M~
44
+ NM1*PR*2*CONSERVATIVE INSURANCE*****PI*00123~
45
+ CLM*W392-49141*14.84***13>A>1*Y**Y*Y~
46
+ DTP*434*RD8*20050617-20050617~
47
+ DTP*435*DT*200506170800~
48
+ CL1**1*01~
49
+ AMT*F3*14.84~
50
+ REF*9A*459804390823~
51
+ REF*D9*32423466233~
52
+ HI*BK>53081~
53
+ HCP*00*0**333001234*********T1~
54
+ NM1*71*1*RIVERS*DAWN****XX*2244224455~
55
+ LX*1~
56
+ SV2*0301*HC>82270*14.84*UN*1~
57
+ DTP*472*D8*20050617~
58
+ SE*31*1024~
59
+ GE*1*1~
60
+ IEA*1*000000905~