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,39 @@
1
+ Business Scenario 4 - Home Health Care - Request for Review
2
+
3
+ This example is a request for a home health care provider to provide home health care services at the Patient Event Level
4
+
5
+ Errors Found in File 278 Request 5010X217-4a
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
9
+ * H11402:HL segment marked as having children but in fact has none','HL segment n marked as having children but in fact has none
10
+ * H10005:Value '987654321' is too short for 'TRN03'
11
+ * H20627:The value '987654321' does not match the format for a "Trace Assigning Entity Identifier"
12
+ * H51085:ICD9 Code '1831' not found in ICD9 database.
13
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
14
+ * B20571:The Entity Type Qualifier of '2-Non Person' is not appropriate for this entity.
15
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
16
+
17
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
18
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
19
+ ST*278*0001*005010X217~
20
+ BHT*0007*13*YZZ345*20050502*1101~
21
+ HL*1**20*1~
22
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
23
+ HL*2*1*21*1~
24
+ NM1*FA*2*GENERAL HOSPITAL*****46*8189991234~
25
+ HL*3*2*22*1~
26
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
27
+ HL*4*3*EV*1~
28
+ TRN*1*YZZ099*987654321~
29
+ UM*HS*I**12:B*****Y~
30
+ DTP*435*D8*20050505~
31
+ HI*BF:1831*BF:2630~
32
+ HSD*VS*3*WK**34*2~
33
+ CR6*1*20050502*RD8*20050502-20050801***W*I~
34
+ NM1*FA*2*GENERAL HOSPITAL*****46*987654321~
35
+ PER*IC**TE*4029993456~
36
+ NM1*SJ*2*CARING HANDS HOME HEALTH AGENCY*****24*345678912~
37
+ SE*19*0001~
38
+ GE*1*1~
39
+ 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*13*YZZ345*20050502*1101~
5
+ HL*1**20*1~
6
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
7
+ HL*2*1*21*1~
8
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1232343560~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
11
+ HL*4*3*EV*1~
12
+ TRN*1*YZZ099*1987654321~
13
+ UM*HS*I**12:B*****Y~
14
+ DTP*435*D8*20050505~
15
+ HI*BF:1830*BF:2630~
16
+ HSD*VS*3*WK**34*2~
17
+ CR6*1*20050502*RD8*20050502-20050801***W*I~
18
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1987654328~
19
+ PER*IC**TE*4029993456~
20
+ HL*5*4*SS*0~
21
+ NM1*FA*2*CARING HANDS HOME HEALTH AGENCY*****XX*1345678910~
22
+ SE*20*0001~
23
+ GE*1*1~
24
+ IEA*1*000000905~
@@ -0,0 +1,43 @@
1
+ Business Scenario 4 - Home Health Care - Request for Review
2
+
3
+ This is an example of a home health care provider�s request to provide home health care services at the Service Level.
4
+
5
+ Errors Found in File 278 Request 5010X217-4b
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
9
+ * H10005:Value '987654321' is too short for 'TRN03'
10
+ * H20627:The value '987654321' does not match the format for a "Trace Assigning Entity Identifier"
11
+ * H51085:ICD9 Code '1831' not found in ICD9 database.
12
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
13
+ * B20571:The Entity Type Qualifier of '2-Non Person' is not appropriate for this entity.
14
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
15
+ * H51000:The Procedure Code 'B4184' is not a valid CPT or HCPCS Code for this Date of Service.
16
+
17
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
18
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
19
+ ST*278*0001*005010X217~
20
+ BHT*0007*13*YZZ345*20050502*1101~
21
+ HL*1**20*1~
22
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
23
+ HL*2*1*21*1~
24
+ NM1*FA*2*GENERAL HOSPITAL*****46*8189991234~
25
+ HL*3*2*22*1~
26
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
27
+ HL*4*3*EV*1~
28
+ TRN*1*YZZ099*987654321~
29
+ UM*HS*I**12:B*****Y~
30
+ DTP*435*D8*20050505~
31
+ HI*BF:1831*BF:2630~
32
+ HSD*VS*3*WK**34*2~
33
+ CR6*1*20050502*RD8*20050502-20050801***W*I~
34
+ NM1*FA*2*GENERAL HOSPITAL*****46*987654321~
35
+ PER*IC**TE*4029993456~
36
+ NM1*SJ*2*CARING HANDS HOME HEALTH AGENCY*****24*345678912~
37
+ HL*5*4*SS*0~
38
+ SV1*HC:G0154~
39
+ HL*6*4*SS*0~
40
+ SV1*HC:B4184~
41
+ SE*23*0001~
42
+ GE*1*1~
43
+ IEA*1*000000905~
@@ -0,0 +1,25 @@
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*13*YZZ345*20050502*1101~
5
+ HL*1**20*1~
6
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
7
+ HL*2*1*21*1~
8
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1232343560~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
11
+ HL*4*3*EV*1~
12
+ TRN*1*YZZ099*1987654321~
13
+ UM*HS*I**12:B*****Y~
14
+ DTP*435*D8*20050505~
15
+ HI*BF:1830*BF:2630~
16
+ HSD*VS*3*WK**34*2~
17
+ CR6*1*20050502*RD8*20050502-20050801***W*I~
18
+ NM1*SJ*2*CARING HANDS HOME HEALTH AGENCY*****XX*1345678910~
19
+ HL*5*4*SS*0~
20
+ SV1*HC:G0154~
21
+ HL*6*4*SS*0~
22
+ SV1*HC:B4193~
23
+ SE*21*0001~
24
+ GE*1*1~
25
+ IEA*1*000000905~
@@ -0,0 +1,63 @@
1
+ Business Scenario 5 - Request for Nonemergency Transportation Service (Multi-destination Trip)
2
+
3
+ This example represents a request for non-emergency transportation service from Dr. Gardner to ABC Payer. The example demonstrated how a provider requests multiple destination transportation service.
4
+
5
+ Errors Found in File 278 Request 5010X217-5
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
+ * H24093:'Requester First Name' was not found, but was expected because the Requester Name Entity Type Qualifier (NM1-02) is 1 - Person and Request Last Name is present.
10
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
11
+ * H20600:The value '7759621873' does not match the format for a "Federal Tax Identification Number"
12
+ * H11404:HL loop not subordinate to parent HL loop '22'. Parent HL id not found.
13
+ * H20405:The Subscriber Hierarchical Parent ID (2000C HL-02) must equal the Requester Hierarchical ID (2000B HL-01).
14
+ * H20204:Code Value '1' at element 'HL03' is valid in the X12 standard, but not in this HIPAA implementation
15
+ * H11403:HL loop is marked as not having children, but in fact has some.
16
+ * H24391:Missing HIPAA Required 'HL04'.
17
+ * W22004:Your data contains character(s) from the extended character set which may only be used by agreement between communicating parties.
18
+ * H46398:Patient Event Provider Loop (2010EA/NM1) or Service Provider (2010F NM1) must be present.
19
+ * H11403:HL loop is marked as not having children, but in fact has some.
20
+ * H46398:Patient Event Provider Loop (2010EA/NM1) or Service Provider (2010F NM1) must be present.
21
+ * H20409:The Service Parent ID (2000F HL-02) must equal the Service Provider Hierarchical ID (2000E HL-01).
22
+ * H11403:HL loop is marked as not having children, but in fact has some.
23
+ * H46398:Patient Event Provider Loop (2010EA/NM1) or Service Provider (2010F NM1) must be present.
24
+ * H20409:The Service Parent ID (2000F HL-02) must equal the Service Provider Hierarchical ID (2000E HL-01).
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*005010X217~
28
+ ST*278*0001*005010X217~
29
+ BHT*0007*13*165932*20050502*1525~
30
+ HL*1**20*1~
31
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
32
+ HL*2*1*21*1~
33
+ NM1*1P*1*XYZ AMBULANCE SVC*****24*7759621873~
34
+ HL*3*22*1~
35
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
36
+ REF*EJ*6532214A76~
37
+ DMG*D8*19580322*M~
38
+ HL*4*3*EV*1~
39
+ UM*HS*I*56*41:B~
40
+ DTP*AAH*D8*20050510~
41
+ CRC*07*Y*09~
42
+ CR1***X*D*DH*27***TRIP FROM HOME TO OFFICE VISIT TO DIALYSIS TREATMENT AND BACK HOME~
43
+ NM1*PW*2*HOME~
44
+ N3*8652 Starwood Lane~
45
+ N4*SACRAMENTO*CA*95826~
46
+ NM1*ND*2*DR. GARDNER OFFICE~
47
+ N3*1921 FULTON AVENUE~
48
+ N4*SACRAMENTO*CA*95624~
49
+ NM1*R3*2*XYZ DIALYSIS CENTER~
50
+ N3*7622 MORSETOWN ROAD~
51
+ N4*SACRAMENTO*CA*95826~
52
+ NM1*FS*2*HOME~
53
+ N3*8652 STARWOOD LANE~
54
+ N4*SACRAMENTO*CA*95826~
55
+ HL*5*4*SS*0~
56
+ SV1*HC:A0428:RX**UN*5~
57
+ HL*6*5*SS*0~
58
+ SV1*HC:A0428:PD**UN*8~
59
+ HL*7*6*SS*0~
60
+ SV1*HC:A0428:DR**UN*14~
61
+ SE*34*0001~
62
+ GE*1*1~
63
+ IEA*1*000000905~
@@ -0,0 +1,41 @@
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*13*165932*20050502*1525~
5
+ HL*1**20*1~
6
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
7
+ HL*2*1*21*1~
8
+ NM1*FA*2*XYZ AMBULANCE SVC*****XX*1232343560~
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
+ UM*HS*I*56*41:B~
15
+ DTP*AAH*D8*20050510~
16
+ CRC*07*Y*09~
17
+ CR1***X*D*DH*27***TRIP FROM HOME TO OFFICE VISIT TO DIALYSIS TREATMENT AND BACK HOME~
18
+ NM1*PW*2*HOME~
19
+ N3*8652 STARWOOD LANE~
20
+ N4*SACRAMENTO*CA*95826~
21
+ NM1*ND*2*DR. GARDNER OFFICE~
22
+ N3*1921 FULTON AVENUE~
23
+ N4*SACRAMENTO*CA*95624~
24
+ NM1*R3*2*XYZ DIALYSIS CENTER~
25
+ N3*7622 MORSETOWN ROAD~
26
+ N4*SACRAMENTO*CA*95826~
27
+ NM1*FS*2*HOME~
28
+ N3*8652 STARWOOD LANE~
29
+ N4*SACRAMENTO*CA*95826~
30
+ HL*5*4*SS*0~
31
+ SV1*HC:A0428:RX**UN*5~
32
+ NM1*FA*2*ABC AMBULANCE~
33
+ HL*6*4*SS*0~
34
+ SV1*HC:A0428:PD**UN*8~
35
+ NM1*FA*2*ABC AMBULANCE~
36
+ HL*7*4*SS*0~
37
+ SV1*HC:A0428:DR**UN*14~
38
+ NM1*FA*2*ABC AMBULANCE~
39
+ SE*37*0001~
40
+ GE*1*1~
41
+ IEA*1*000000905~
@@ -0,0 +1,36 @@
1
+ Business Scenario 6 - Medical Services Reservation
2
+
3
+ This example represents a request for a Medical Services Reservation from Dr. Gardner to ABC Payer.
4
+
5
+ Errors Found in File 278 Request 5010X217-6
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
+ * H46398:Patient Event Provider Loop (2010EA/NM1) or Service Provider (2010F NM1) must be present.
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*005010X217~
20
+ ST*278*0001*005010X217~
21
+ BHT*0007*36*5269367*20050502*2243*RU~
22
+ HL*1**20*1~
23
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
24
+ HL*2*1*21*1~
25
+ NM1*1P*1*GARDNER*JAMES****24*0010102364~
26
+ HL*3*22*1~
27
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
28
+ DMG*D8*19580322*M~
29
+ HL*4*3*EV*1~
30
+ UM*IN*I*1*11:B~
31
+ HL*5*4*SS*0~
32
+ DTP*472*D8*20050510~
33
+ SV1*HC:99212**UN*1~
34
+ SE*15*0001~
35
+ GE*1*1~
36
+ IEA*1*000000905~
@@ -0,0 +1,20 @@
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*36*5269367*20050502*2243*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****XX*1232343560~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
11
+ DMG*D8*19580322*M~
12
+ HL*4*3*EV*1~
13
+ UM*IN*I*1*11:B~
14
+ HL*5*4*SS*0~
15
+ DTP*472*D8*20050510~
16
+ SV1*HC:99212**UN*1~
17
+ NM1*SJ*1*SMITH*ED~
18
+ SE*16*0001~
19
+ GE*1*1~
20
+ IEA*1*000000905~
@@ -0,0 +1,34 @@
1
+ Business Scenario 1 - Referral - Response to the Request for Review
2
+
3
+ This example represents a response for a standard referral to a specialist from Dr. Gardener, who is a primary care physician, to Maryland Capital Insurance.
4
+
5
+ Errors Found in File 278 Response 5010X217-1r
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
9
+ * W25235:It is recommended that the Patient Account Number (REF01=EJ) be returned.
10
+ * W25219:The value of 34 is only to be used if the provider is not a covered health care provider under the NPI mandate.
11
+ * H54213:'987654321' is not a valid Social Security Number.
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*005010X217~
15
+ ST*278*0001*005010X217~
16
+ BHT*0007*11*A12345*20050502*1102*18~
17
+ HL*1**20*1~
18
+ NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~
19
+ HL*2*1*21*1~
20
+ NM1*1P*1*GARDENER*JAMES****46*8189991234~
21
+ HL*3*2*22*1~
22
+ NM1*IL*1*SMITH*JOE****MI*12345678901~
23
+ HL*4*3*EV*0~
24
+ TRN*2*111099*9012345678~
25
+ UM*SC*I*3*11:B~
26
+ HCR*A1*AUTH0001~
27
+ DTP*AAH*RD8*20050502-20050602~
28
+ HI*BF:41090:D8:20050430~
29
+ HSD*VS*1~
30
+ NM1*SJ*1*WATSON*SUSAN****34*987654321~
31
+ PER*IC**TE*4029993456~
32
+ SE*18*0001~
33
+ GE*1*1~
34
+ IEA*1*000000905~
@@ -0,0 +1,23 @@
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*A12345*20050502*1102*18~
5
+ HL*1**20*1~
6
+ NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~
7
+ HL*2*1*21*1~
8
+ NM1*1P*1*GARDENER*JAMES****XX*1232343560~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*JOE****MI*12345678901~
11
+ REF*EJ*12345~
12
+ HL*4*3*EV*0~
13
+ TRN*2*111099*9012345678~
14
+ UM*SC*I*3*11:B~
15
+ HCR*A1*AUTH0001~
16
+ DTP*AAH*RD8*20050502-20050602~
17
+ HI*BF:41010:D8:20050430~
18
+ HSD*VS*1~
19
+ NM1*SJ*1*WATSON*SUSAN****XX*1555122344~
20
+ PER*IC**TE*4029993456~
21
+ SE*19*0001~
22
+ GE*1*1~
23
+ IEA*1*000000905~
@@ -0,0 +1,46 @@
1
+ Business Scenario 2 - Admission for Surgery - Response to the Request for Review
2
+
3
+ This example represents the response for review from Maryland Capital Insurance to Dr. Watson, who is a specialist provider. The insurance company is approving the request for surgery, but partially approving the request for inpatient confinement.
4
+
5
+ Errors Found in File 278 Response 5010X217-2r
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * W25219:The value of 34 is only to be used if the provider is not a covered health care provider under the NPI mandate.
9
+ * H54212:'98765432' is too short for a Social Security Number.
10
+ * H20627:The value '9012345678' does not match the format for a "Trace Assigning Entity Identifier"
11
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
12
+ * H25515:The Service Type Code at the Service Level (2000F/UM) was found but was not expected because it must be different than that at the Patient Event Level (2000E/UM) or the SV1, SV2 or SV3 segments are not sent.
13
+ * W25219:The value of 34 is only to be used if the provider is not a covered health care provider under the NPI mandate.
14
+ * H54213:'987654321' is not a valid Social Security Number.
15
+ * H52001:Referring Provider Specialty Code '203BS0133X' not found in Taxonomy Code Table
16
+
17
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
18
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
19
+ ST*278*0001*005010X217~
20
+ BHT*0007*11*B56789*20050502*1431*18~
21
+ HL*1**20*1~
22
+ NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~
23
+ HL*2*1*21*1~
24
+ NM1*1P*1*WATSON*SUSAN****34*987654321~
25
+ HL*3*2*22*1~
26
+ NM1*IL*1*SMITH*JOE****MI*12345678901~
27
+ HL*4*3*EV*1~
28
+ TRN*2*97021001*9012345678~
29
+ UM*AR*I*2*21:B~
30
+ HCR*A6*AUTH0002~
31
+ DTP*435*D8*20050516~
32
+ HI*BF:41090:D8:20050125~
33
+ HSD*DY*5~
34
+ NM1*FA*2*MONTGOMERY HOSPITAL*****24*000012121~
35
+ N3*475 MAIN STREET~
36
+ N4*ANYTOWN*PA*19087~
37
+ HL*5*4*SS*0~
38
+ UM*HS*I*2~
39
+ HCR*A1*AUTH0002~
40
+ DTP*472*D8*20050516~
41
+ SV2**HC:33510~
42
+ NM1*SJ*1*WATSON*SUSAN****34*987654321~
43
+ PRV*PE*PXC*203BS0133X~
44
+ SE*26*0001~
45
+ GE*1*1~
46
+ IEA*1*000000905~
@@ -0,0 +1,31 @@
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*B56789*20050502*1431*18~
5
+ HL*1**20*1~
6
+ NM1*X3*2*MARYLAND CAPITAL INSURANCE COMPANY*****46*789312~
7
+ HL*2*1*21*1~
8
+ NM1*1P*1*WATSON*SUSAN****XX*1555551237~
9
+ HL*3*2*22*1~
10
+ NM1*IL*1*SMITH*JOE****MI*12345678901~
11
+ REF*EJ*1234~
12
+ HL*4*3*EV*1~
13
+ TRN*2*97021001*9012345678~
14
+ UM*AR*I*2*21:B~
15
+ HCR*A6*AUTH0002~
16
+ DTP*435*D8*20050516~
17
+ HI*BF:41090:D8:20050125~
18
+ HSD*DY*5~
19
+ NM1*FA*2*MONTGOMERY HOSPITAL*****XX*1000012124~
20
+ N3*475 MAIN STREET~
21
+ N4*ANYTOWN*PA*19087~
22
+ HL*5*4*SS*0~
23
+ UM*HS*I*2~
24
+ HCR*A1*AUTH0002~
25
+ DTP*472*D8*20050516~
26
+ SV2**HC:33510~
27
+ NM1*SJ*1*WATSON*SUSAN****XX*1552441234~
28
+ PRV*PE*PXC*103TA0400X~
29
+ SE*27*0001~
30
+ GE*1*1~
31
+ IEA*1*000000905~
@@ -0,0 +1,44 @@
1
+ Business Scenario 3 - Behavioral Health Emergency Admission - Response to the Request for Review
2
+
3
+ This example represents the response to a request for review from Capital Insurance to General Hospital. In this case, Capital Insurance has pended the admission request. An admission summary to must be delivered by telephone before the response will be delivered.
4
+
5
+ Errors Found in File 278 Response 5010X217-3r
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H20009:Requester Name Suffix was not expected because the Entity is not a person
9
+ * H10006:Value '8189991234' is too long.
10
+ * H11204:Code Value '8189991234' not used for element 'NM108'
11
+ * W25219:The value of 8189991234 is only to be used if the provider is not a covered health care provider under the NPI mandate.
12
+ * H10046:Syntax error: NM108 was found but NM109 was missing. X12 syntax rule: 'P0809' - if one element is present, all must be present.
13
+ * H24391:Missing HIPAA Required 'NM109'.
14
+ * W25235:It is recommended that the Patient Account Number (REF01=EJ) be returned.
15
+ * W23023:Admission Date (DTP-01 = 435) is recommended if requesting an admission review (UM01=AR)
16
+ * H10005:Value '987654321' is too short for 'TRN03'
17
+ * W25219:The value of 46 is only to be used if the provider is not a covered health care provider under the NPI mandate.
18
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
19
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
20
+
21
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
22
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
23
+ ST*278*0001*005010X217~
24
+ BHT*0007*11*YZZ345*20050502*1102*19~
25
+ HL*1**20*1~
26
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
27
+ PER*IC**TE*3936533000~
28
+ HL*2*1*21*1~
29
+ NM1*FA*2*GENERAL HOSPITAL****46*8189991234~
30
+ HL*3*2*22*1~
31
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
32
+ HL*4*3*EV*0~
33
+ TRN*2*YZZ099*987654321~
34
+ UM*AR*I*A4*21:B**03~
35
+ HCR*A4**0U~
36
+ REF*NT*P20030216001~
37
+ HI*BF:29603:D8:20050429~
38
+ PWK*AS*VO~
39
+ NM1*FA*2*GENERAL HOSPITAL*****46*987654321~
40
+ NM1*71*1*JONES*MARCUS****24*453667654~
41
+ NM1*SJ*1*BROWN*JACOB****24*123454545~
42
+ SE*20*0001~
43
+ GE*1*1~
44
+ IEA*1*000000905~
@@ -0,0 +1,26 @@
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*YZZ345*20050502*1102*19~
5
+ HL*1**20*1~
6
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
7
+ PER*IC**TE*3936533000~
8
+ HL*2*1*21*1~
9
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1818999124~
10
+ HL*3*2*22*1~
11
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
12
+ REF*EJ*12345~
13
+ HL*4*3*EV*0~
14
+ TRN*2*YZZ099*1876543210~
15
+ UM*AR*I*A4*21:B**03~
16
+ HCR*A4**0U~
17
+ REF*NT*P20030216001~
18
+ DTP*435*D8*19991201~
19
+ HI*BF:29603:D8:20050429~
20
+ PWK*AS*VO~
21
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1987654328~
22
+ NM1*71*1*JONES*MARCUS****XX*1453667655~
23
+ NM1*SJ*1*BROWN*JACOB****XX*1234545451~
24
+ SE*22*0001~
25
+ GE*1*1~
26
+ IEA*1*000000905~
@@ -0,0 +1,28 @@
1
+ Business Scenario 4 - Home Health Care - Response to the Request for Review
2
+
3
+ This example represents the response to a request for home care services.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HI*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
7
+ ST*278*0001*005010X217~
8
+ BHT*0007*11*YZZ345*20050502*1102*19~
9
+ HL*1**20*1~
10
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
11
+ PER*IC**TE*3936533000~
12
+ HL*2*1*21*1~
13
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1232343560~
14
+ HL*3*2*22*1~
15
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
16
+ REF*EJ*12345~
17
+ HL*4*3*EV*0~
18
+ TRN*2*YZZ099*1987654321~
19
+ UM*HS*I**12:B~
20
+ HCR*A1*12345~
21
+ DTP*435*D8*19991228~
22
+ HI*BK:1830~
23
+ HSD*VS*22~
24
+ CR6*1*20050503*****W*I~
25
+ NM1*FA*2*CARING HANDS HOME HEALTH AGENCY*****XX*1987654328~
26
+ SE*20*0001~
27
+ GE*1*1~
28
+ IEA*1*000000905~
@@ -0,0 +1,35 @@
1
+ Business Scenario 4 - Home Health Care - Response for Review
2
+
3
+ This is an example of a response for a home health care provider�s request to provide home health care services at the Service Level.
4
+
5
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
6
+ GS*HI*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
7
+ ST*278*0001*005010X217~
8
+ BHT*0007*11*YZZ345*20050502*1102*19~
9
+ HL*1**20*1~
10
+ NM1*X3*2*CAPITAL INSURANCE COMPANY*****46*789312~
11
+ PER*IC**TE*3936533000~
12
+ HL*2*1*21*1~
13
+ NM1*FA*2*GENERAL HOSPITAL*****XX*1232343560~
14
+ HL*3*2*22*1~
15
+ NM1*IL*1*SMITH*MARY****MI*12345678901~
16
+ REF*EJ*12345~
17
+ HL*4*3*EV*1~
18
+ TRN*2*YZZ099*1987654321~
19
+ UM*HS*I*44*12:B~
20
+ HCR*A4**0U~
21
+ REF*NT*P20030216001~
22
+ DTP*435*D8*20050505~
23
+ HI*BK:1830~
24
+ HSD*VS*22~
25
+ CR6*1*20050501*RD8*20050501-20050801***W*I~
26
+ NM1*FA*2*CARING HANDS HOMEHEALTH AGENCY*****XX*1345678910~
27
+ HL*5*4*SS*0~
28
+ HCR*A1*1234~
29
+ SV1*HC:G0145~
30
+ HL*6*4*SS*0~
31
+ HCR*A1*1235~
32
+ SV1*HC:B4193~
33
+ SE*27*0001~
34
+ GE*1*1~
35
+ IEA*1*000000905~
@@ -0,0 +1,60 @@
1
+ Business Scenario 5 - Response to Nonemergency Transportation Service (Multi-destination Trip)
2
+
3
+ This example is the response from ABC Payer to Dr. Gardner for non-emergency transportation services.
4
+
5
+ Errors Found in File 278 Response 5010X217-5r
6
+ * W10009:Padding, spaces or control characters detected after segment terminator.
7
+ * H11204:Code Value 'XX' not used for element 'GS01'
8
+ * H10032:MM in date field must be 01-12.
9
+ * H20064:Invalid MM field in Date/Time. (CCYYMMDD).
10
+ * H11402:HL segment marked as having children but in fact has none','HL segment n marked as having children but in fact has none
11
+ * H24093:'Requester First Name' was not found, but was expected because the Requester Name Entity Type Qualifier (NM1-02) is 1 - Person and Request Last Name is present.
12
+ * H40304:First Name (NM104) is required when Entity Type is person (NM102=1) and Last Name (NM103) exists.
13
+ * W25219:The value of 24 is only to be used if the provider is not a covered health care provider under the NPI mandate.
14
+ * H20600:The value '7759621873' does not match the format for a "Federal Tax Identification Number"
15
+ * H11404:HL loop not subordinate to parent HL loop '22'. Parent HL id not found.
16
+ * H20405:The Subscriber Hierarchical Parent ID (2000C HL-02) must equal the Requester Hierarchical ID (2000B HL-01).
17
+ * H20204:Code Value '1' at element 'HL03' is valid in the X12 standard, but not in this HIPAA implementation
18
+ * H11403:HL loop is marked as not having children, but in fact has some.
19
+ * H24391:Missing HIPAA Required 'HL04'.
20
+ * 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.
21
+ * H23054:Either the AAA segment or the HCR segment must be returned
22
+
23
+ ISA*00*..........*01*SECRET....*ZZ*SUBMITTERS.ID..*ZZ*RECEIVERS.ID...*030101*1253*^*00501*000000905*1*T*:~
24
+ GS*XX*SENDER CODE*RECEIVER CODE*19991231*0802*1*X*005010X217~
25
+ ST*278*0001*005010X217~
26
+ BHT*0007*11*165932*20055002*0815*18~
27
+ HL*1**20*1~
28
+ NM1*X3*2*ABC PAYER*****PI*1234560010~
29
+ HL*2*1*21*1~
30
+ NM1*1P*1*XYZ AMBULANCE SVC*****24*7759621873~
31
+ HL*3*22*1~
32
+ NM1*IL*1*SMITH*JOE****MI*12345689001~
33
+ REF*EJ*6532214A76~
34
+ DMG*D8*19580322*M~
35
+ HL*4*3*EV*1~
36
+ UM*HS*I*56*41:B~
37
+ HCR*A1*2005010796321~
38
+ DTP*AAH*D8*20050510~
39
+ CR1***X**DH*27~
40
+ NM1*PW*2*HOME~
41
+ N3*8652 STARWOOD LANE~
42
+ N4*SACRAMENTO*CA*95826~
43
+ NM1*ND*2*DR. GARDNER OFFICE~
44
+ N3*1921 FULTON AVENUE~
45
+ N4*SACRAMENTO*CA*95624~
46
+ NM1*R3*2*XYZ DIALYSIS CENTER~
47
+ N3*7622 MORSETOWN ROAD~
48
+ N4*SACRAMENTO*CA*95826~
49
+ NM1*FS*2*HOME~
50
+ N3*8652 STARWOOD LANE~
51
+ N4*SACRAMENTO*CA*95826~
52
+ HL*5*4*SS*0~
53
+ SV1*HC:A0428:RX**UN*5~
54
+ HL*6*4*SS*0~
55
+ SV1*HC:A0428:PD**UN*8~
56
+ HL*7*4*SS*0~
57
+ SV1*HC:A0428:DR**UN*14~
58
+ SE*34*0001~
59
+ GE*1*1~
60
+ IEA*1*000000905~