hippo_eyeDoc 0.0.1

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 (284) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +124 -0
  3. data/Gemfile +10 -0
  4. data/Guardfile +14 -0
  5. data/LICENSE +24 -0
  6. data/README.md +385 -0
  7. data/Rakefile +12 -0
  8. data/hippo_eyeDoc.gemspec +25 -0
  9. data/lib/hippo_eyeDoc.rb +15 -0
  10. data/lib/hippo_eyeDoc/code_lists.rb +10 -0
  11. data/lib/hippo_eyeDoc/code_lists/claim_adjustment_reason_codes.rb +2252 -0
  12. data/lib/hippo_eyeDoc/code_lists/claim_status_category_codes.rb +376 -0
  13. data/lib/hippo_eyeDoc/code_lists/claim_status_codes.rb +5456 -0
  14. data/lib/hippo_eyeDoc/code_lists/remittance_advice_remark_codes.rb +6280 -0
  15. data/lib/hippo_eyeDoc/code_lists/service_type_codes.rb +1299 -0
  16. data/lib/hippo_eyeDoc/code_lists/taxonomy_codes.rb +9224 -0
  17. data/lib/hippo_eyeDoc/exceptions.rb +10 -0
  18. data/lib/hippo_eyeDoc/field.rb +149 -0
  19. data/lib/hippo_eyeDoc/outputters.rb +4 -0
  20. data/lib/hippo_eyeDoc/outputters/html.rb +39 -0
  21. data/lib/hippo_eyeDoc/outputters/paper_claim.rb +7 -0
  22. data/lib/hippo_eyeDoc/outputters/pdf.rb +18 -0
  23. data/lib/hippo_eyeDoc/outputters/pretty_string.rb +45 -0
  24. data/lib/hippo_eyeDoc/parser.rb +70 -0
  25. data/lib/hippo_eyeDoc/parser/segment.rb +35 -0
  26. data/lib/hippo_eyeDoc/parser/transaction_set.rb +45 -0
  27. data/lib/hippo_eyeDoc/segments.rb +111 -0
  28. data/lib/hippo_eyeDoc/segments/AAA.rb +39 -0
  29. data/lib/hippo_eyeDoc/segments/AK1.rb +31 -0
  30. data/lib/hippo_eyeDoc/segments/AK2.rb +31 -0
  31. data/lib/hippo_eyeDoc/segments/AK3.rb +39 -0
  32. data/lib/hippo_eyeDoc/segments/AK4.rb +59 -0
  33. data/lib/hippo_eyeDoc/segments/AK5.rb +55 -0
  34. data/lib/hippo_eyeDoc/segments/AK9.rb +79 -0
  35. data/lib/hippo_eyeDoc/segments/AMT.rb +31 -0
  36. data/lib/hippo_eyeDoc/segments/BHT.rb +55 -0
  37. data/lib/hippo_eyeDoc/segments/BPR.rb +175 -0
  38. data/lib/hippo_eyeDoc/segments/CAS.rb +159 -0
  39. data/lib/hippo_eyeDoc/segments/CL1.rb +39 -0
  40. data/lib/hippo_eyeDoc/segments/CLM.rb +223 -0
  41. data/lib/hippo_eyeDoc/segments/CLP.rb +119 -0
  42. data/lib/hippo_eyeDoc/segments/CN1.rb +55 -0
  43. data/lib/hippo_eyeDoc/segments/CR1.rb +87 -0
  44. data/lib/hippo_eyeDoc/segments/CR2.rb +103 -0
  45. data/lib/hippo_eyeDoc/segments/CR3.rb +47 -0
  46. data/lib/hippo_eyeDoc/segments/CR4.rb +239 -0
  47. data/lib/hippo_eyeDoc/segments/CR5.rb +151 -0
  48. data/lib/hippo_eyeDoc/segments/CR6.rb +175 -0
  49. data/lib/hippo_eyeDoc/segments/CR7.rb +31 -0
  50. data/lib/hippo_eyeDoc/segments/CR8.rb +79 -0
  51. data/lib/hippo_eyeDoc/segments/CRC.rb +63 -0
  52. data/lib/hippo_eyeDoc/segments/CTP.rb +211 -0
  53. data/lib/hippo_eyeDoc/segments/CTX.rb +99 -0
  54. data/lib/hippo_eyeDoc/segments/CUR.rb +175 -0
  55. data/lib/hippo_eyeDoc/segments/DMG.rb +115 -0
  56. data/lib/hippo_eyeDoc/segments/DN1.rb +39 -0
  57. data/lib/hippo_eyeDoc/segments/DN2.rb +55 -0
  58. data/lib/hippo_eyeDoc/segments/DSB.rb +71 -0
  59. data/lib/hippo_eyeDoc/segments/DTM.rb +55 -0
  60. data/lib/hippo_eyeDoc/segments/DTP.rb +31 -0
  61. data/lib/hippo_eyeDoc/segments/EB.rb +207 -0
  62. data/lib/hippo_eyeDoc/segments/EM.rb +63 -0
  63. data/lib/hippo_eyeDoc/segments/EQ.rb +135 -0
  64. data/lib/hippo_eyeDoc/segments/FRM.rb +47 -0
  65. data/lib/hippo_eyeDoc/segments/GE.rb +23 -0
  66. data/lib/hippo_eyeDoc/segments/GS.rb +71 -0
  67. data/lib/hippo_eyeDoc/segments/HCP.rb +127 -0
  68. data/lib/hippo_eyeDoc/segments/HI.rb +919 -0
  69. data/lib/hippo_eyeDoc/segments/HL.rb +44 -0
  70. data/lib/hippo_eyeDoc/segments/HSD.rb +71 -0
  71. data/lib/hippo_eyeDoc/segments/IEA.rb +23 -0
  72. data/lib/hippo_eyeDoc/segments/III.rb +195 -0
  73. data/lib/hippo_eyeDoc/segments/IK3.rb +39 -0
  74. data/lib/hippo_eyeDoc/segments/IK4.rb +59 -0
  75. data/lib/hippo_eyeDoc/segments/IK5.rb +55 -0
  76. data/lib/hippo_eyeDoc/segments/IMM.rb +55 -0
  77. data/lib/hippo_eyeDoc/segments/INS.rb +171 -0
  78. data/lib/hippo_eyeDoc/segments/ISA.rb +136 -0
  79. data/lib/hippo_eyeDoc/segments/K3.rb +147 -0
  80. data/lib/hippo_eyeDoc/segments/LE.rb +15 -0
  81. data/lib/hippo_eyeDoc/segments/LIN.rb +255 -0
  82. data/lib/hippo_eyeDoc/segments/LQ.rb +23 -0
  83. data/lib/hippo_eyeDoc/segments/LS.rb +15 -0
  84. data/lib/hippo_eyeDoc/segments/LX.rb +20 -0
  85. data/lib/hippo_eyeDoc/segments/MEA.rb +219 -0
  86. data/lib/hippo_eyeDoc/segments/MIA.rb +199 -0
  87. data/lib/hippo_eyeDoc/segments/MOA.rb +79 -0
  88. data/lib/hippo_eyeDoc/segments/MPI.rb +63 -0
  89. data/lib/hippo_eyeDoc/segments/MSG.rb +31 -0
  90. data/lib/hippo_eyeDoc/segments/N1.rb +55 -0
  91. data/lib/hippo_eyeDoc/segments/N2.rb +23 -0
  92. data/lib/hippo_eyeDoc/segments/N3.rb +23 -0
  93. data/lib/hippo_eyeDoc/segments/N4.rb +63 -0
  94. data/lib/hippo_eyeDoc/segments/NM1.rb +103 -0
  95. data/lib/hippo_eyeDoc/segments/NTE.rb +23 -0
  96. data/lib/hippo_eyeDoc/segments/OI.rb +55 -0
  97. data/lib/hippo_eyeDoc/segments/PAT.rb +79 -0
  98. data/lib/hippo_eyeDoc/segments/PCT.rb +23 -0
  99. data/lib/hippo_eyeDoc/segments/PDP.rb +31 -0
  100. data/lib/hippo_eyeDoc/segments/PDR.rb +39 -0
  101. data/lib/hippo_eyeDoc/segments/PER.rb +79 -0
  102. data/lib/hippo_eyeDoc/segments/PID.rb +79 -0
  103. data/lib/hippo_eyeDoc/segments/PKD.rb +47 -0
  104. data/lib/hippo_eyeDoc/segments/PLB.rb +191 -0
  105. data/lib/hippo_eyeDoc/segments/PRV.rb +75 -0
  106. data/lib/hippo_eyeDoc/segments/PS1.rb +31 -0
  107. data/lib/hippo_eyeDoc/segments/PWK.rb +115 -0
  108. data/lib/hippo_eyeDoc/segments/QTY.rb +155 -0
  109. data/lib/hippo_eyeDoc/segments/RDM.rb +135 -0
  110. data/lib/hippo_eyeDoc/segments/REF.rb +83 -0
  111. data/lib/hippo_eyeDoc/segments/SBR.rb +79 -0
  112. data/lib/hippo_eyeDoc/segments/SD1.rb +71 -0
  113. data/lib/hippo_eyeDoc/segments/SE.rb +23 -0
  114. data/lib/hippo_eyeDoc/segments/ST.rb +31 -0
  115. data/lib/hippo_eyeDoc/segments/STC.rb +187 -0
  116. data/lib/hippo_eyeDoc/segments/SV1.rb +263 -0
  117. data/lib/hippo_eyeDoc/segments/SV2.rb +147 -0
  118. data/lib/hippo_eyeDoc/segments/SV3.rb +219 -0
  119. data/lib/hippo_eyeDoc/segments/SV4.rb +211 -0
  120. data/lib/hippo_eyeDoc/segments/SV5.rb +123 -0
  121. data/lib/hippo_eyeDoc/segments/SV6.rb +151 -0
  122. data/lib/hippo_eyeDoc/segments/SV7.rb +55 -0
  123. data/lib/hippo_eyeDoc/segments/SVC.rb +183 -0
  124. data/lib/hippo_eyeDoc/segments/SVD.rb +115 -0
  125. data/lib/hippo_eyeDoc/segments/TA1.rb +46 -0
  126. data/lib/hippo_eyeDoc/segments/TOO.rb +67 -0
  127. data/lib/hippo_eyeDoc/segments/TRN.rb +39 -0
  128. data/lib/hippo_eyeDoc/segments/TS2.rb +159 -0
  129. data/lib/hippo_eyeDoc/segments/TS3.rb +199 -0
  130. data/lib/hippo_eyeDoc/segments/UR.rb +23 -0
  131. data/lib/hippo_eyeDoc/segments/VEH.rb +159 -0
  132. data/lib/hippo_eyeDoc/segments/base.rb +190 -0
  133. data/lib/hippo_eyeDoc/separator.rb +79 -0
  134. data/lib/hippo_eyeDoc/transaction_sets.rb +16 -0
  135. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270.rb +15 -0
  136. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2000A.rb +43 -0
  137. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2000B.rb +42 -0
  138. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2000C.rb +52 -0
  139. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2000D.rb +41 -0
  140. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2100A.rb +21 -0
  141. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2100B.rb +55 -0
  142. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2100C.rb +97 -0
  143. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2100D.rb +0 -0
  144. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2110C.rb +67 -0
  145. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/L2110D.rb +47 -0
  146. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_270/base.rb +47 -0
  147. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271.rb +19 -0
  148. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2000A.rb +55 -0
  149. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2000B.rb +43 -0
  150. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2000C.rb +52 -0
  151. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2000D.rb +41 -0
  152. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2100A.rb +43 -0
  153. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2100B.rb +67 -0
  154. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2100C.rb +124 -0
  155. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2100D.rb +124 -0
  156. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2110C.rb +98 -0
  157. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2110D.rb +98 -0
  158. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2115C.rb +16 -0
  159. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2115D.rb +16 -0
  160. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2120C.rb +54 -0
  161. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/L2120D.rb +54 -0
  162. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_271/base.rb +47 -0
  163. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276.rb +19 -0
  164. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2000A.rb +32 -0
  165. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2000B.rb +32 -0
  166. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2000C.rb +32 -0
  167. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2000D.rb +52 -0
  168. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2000E.rb +50 -0
  169. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2100A.rb +21 -0
  170. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2100B.rb +21 -0
  171. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2100C.rb +21 -0
  172. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2100D.rb +21 -0
  173. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2100E.rb +20 -0
  174. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2200D.rb +117 -0
  175. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2200E.rb +117 -0
  176. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2210D.rb +37 -0
  177. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/L2210E.rb +37 -0
  178. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_276/base.rb +90 -0
  179. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277.rb +22 -0
  180. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2000A.rb +42 -0
  181. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2000B.rb +42 -0
  182. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2000C.rb +52 -0
  183. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2000D.rb +41 -0
  184. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2000E.rb +40 -0
  185. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2100A.rb +21 -0
  186. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2100B.rb +21 -0
  187. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2100C.rb +21 -0
  188. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2100D.rb +21 -0
  189. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2100E.rb +20 -0
  190. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2200A.rb +41 -0
  191. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2200B.rb +69 -0
  192. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2200C.rb +79 -0
  193. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2200D.rb +77 -0
  194. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2200E.rb +104 -0
  195. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2220D.rb +57 -0
  196. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/L2220E.rb +44 -0
  197. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_277/base.rb +70 -0
  198. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835.rb +10 -0
  199. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835/L1000A.rb +74 -0
  200. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835/L1000B.rb +54 -0
  201. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835/L2000.rb +41 -0
  202. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835/L2100.rb +213 -0
  203. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835/L2110.rb +106 -0
  204. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_835/base.rb +122 -0
  205. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837.rb +43 -0
  206. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L1000A.rb +32 -0
  207. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L1000B.rb +21 -0
  208. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2000A.rb +88 -0
  209. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2000B.rb +87 -0
  210. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2000C.rb +54 -0
  211. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2010AA.rb +65 -0
  212. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2010AB.rb +34 -0
  213. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2010AC.rb +55 -0
  214. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2010BA.rb +76 -0
  215. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2010BB.rb +55 -0
  216. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2010CA.rb +76 -0
  217. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2300.rb +570 -0
  218. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2310A.rb +30 -0
  219. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2310B.rb +41 -0
  220. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2310C.rb +55 -0
  221. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2310D.rb +30 -0
  222. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2310E.rb +34 -0
  223. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2310F.rb +34 -0
  224. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2320.rb +157 -0
  225. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330A.rb +45 -0
  226. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330B.rb +96 -0
  227. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330C.rb +30 -0
  228. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330D.rb +30 -0
  229. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330E.rb +30 -0
  230. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330F.rb +30 -0
  231. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2330G.rb +30 -0
  232. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2400.rb +537 -0
  233. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2410.rb +36 -0
  234. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420A.rb +41 -0
  235. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420B.rb +30 -0
  236. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420C.rb +44 -0
  237. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420D.rb +30 -0
  238. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420E.rb +55 -0
  239. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420F.rb +30 -0
  240. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420G.rb +34 -0
  241. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2420H.rb +34 -0
  242. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2430.rb +47 -0
  243. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/L2440.rb +26 -0
  244. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_837/base.rb +71 -0
  245. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_997.rb +7 -0
  246. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_997/L2000.rb +36 -0
  247. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_997/L2100.rb +29 -0
  248. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_997/base.rb +49 -0
  249. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999.rb +8 -0
  250. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/L2000 - AK2.rb +30 -0
  251. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/L2000AK2.rb +36 -0
  252. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/L2100 - AK2.rb +37 -0
  253. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/L2100AK2.rb +43 -0
  254. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/L2110 - AK2.rb +23 -0
  255. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/L2110AK2.rb +26 -0
  256. data/lib/hippo_eyeDoc/transaction_sets/HIPAA_999/base.rb +49 -0
  257. data/lib/hippo_eyeDoc/transaction_sets/base.rb +236 -0
  258. data/lib/hippo_eyeDoc/transaction_sets/component.rb +96 -0
  259. data/lib/hippo_eyeDoc/transaction_sets/repeating_component.rb +48 -0
  260. data/lib/hippo_eyeDoc/utilities.rb +37 -0
  261. data/lib/hippo_eyeDoc/version.rb +3 -0
  262. data/samples/005010X221A1_business_scenario_1.edi +1 -0
  263. data/samples/005010X221A1_tmhp_example.edi +1 -0
  264. data/samples/005010X222A1_anesthesia.edi +1 -0
  265. data/samples/005010X222A1_commercial_health_insurance.edi +1 -0
  266. data/samples/005010X231A1_01.edi +11 -0
  267. data/samples/005010X231A1_02.edi +11 -0
  268. data/samples/200823.EDI +22 -0
  269. data/samples/837_L2000A_01.edi +1 -0
  270. data/samples/837_L2000A_02.edi +1 -0
  271. data/samples/parse_277.rb +127 -0
  272. data/samples/parse_999.rb +122 -0
  273. data/samples/sample835.html +1 -0
  274. data/samples/sample835.pretty_string +28 -0
  275. data/samples/sample837.html +1 -0
  276. data/test/test_helper.rb +155 -0
  277. data/test/test_hipaa_835.rb +229 -0
  278. data/test/test_hipaa_837.rb +596 -0
  279. data/test/test_html_outputter.rb +22 -0
  280. data/test/test_parser.rb +138 -0
  281. data/test/test_pretty_string_outputter.rb +33 -0
  282. data/test/test_segments_base.rb +201 -0
  283. data/test/test_transaction_sets_base.rb +122 -0
  284. metadata +356 -0
@@ -0,0 +1,47 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
3
+
4
+ class L2110D < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2110D' #Dependent Eligibility or Benefit Inquiry
6
+
7
+ #Dependent Eligibility or Benefit Inquiry
8
+ segment Hippo_eyeDoc::Segments::EQ,
9
+ :name => 'Dependent Eligibility or Benefit Inquiry',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 1300
13
+
14
+ #Dependent Eligibility or Benefit Additional Inquiry Information
15
+ segment Hippo_eyeDoc::Segments::III,
16
+ :name => 'Dependent Eligibility or Benefit Additional Inquiry Information',
17
+ :minimum => 0,
18
+ :maximum => 1,
19
+ :position => 1390,
20
+ :identified_by => {
21
+ 'III01' => 'ZZ'
22
+ }
23
+
24
+ #Dependent Additional Information
25
+ segment Hippo_eyeDoc::Segments::REF,
26
+ :name => 'Dependent Additional Information',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 1400,
30
+ :identified_by => {
31
+ 'REF01' => ["9F", "G1"]
32
+ }
33
+
34
+ #Dependent Eligibility/Benefit Date
35
+ segment Hippo_eyeDoc::Segments::DTP,
36
+ :name => 'Dependent Eligibility/Benefit Date',
37
+ :minimum => 0,
38
+ :maximum => 1,
39
+ :position => 1500,
40
+ :identified_by => {
41
+ 'DTP01' => '291',
42
+ 'DTP02' => ["D8", "RD8"]
43
+ }
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
3
+
4
+ class Base < Hippo_eyeDoc::TransactionSets::Base
5
+
6
+ #Transaction Set Header
7
+ segment Hippo_eyeDoc::Segments::ST,
8
+ :name => 'Transaction Set Header',
9
+ :minimum => 1,
10
+ :maximum => 1,
11
+ :position => 100,
12
+ :identified_by => {
13
+ 'ST01' => '270'
14
+ }
15
+
16
+ #Beginning of Hierarchical Transaction
17
+ segment Hippo_eyeDoc::Segments::BHT,
18
+ :name => 'Beginning of Hierarchical Transaction',
19
+ :minimum => 1,
20
+ :maximum => 1,
21
+ :position => 200,
22
+ :identified_by => {
23
+ 'BHT01' => '0022',
24
+ 'BHT02' => ["01", "13"]
25
+ }
26
+
27
+ #Information Source Level
28
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::L2000A,
29
+ :name => 'Information Source Level',
30
+ :minimum => 1,
31
+ :maximum => 99999,
32
+ :position => 100,
33
+ :identified_by => {
34
+ 'HL.HL03' => '20',
35
+ 'HL.HL04' => '1'
36
+ }
37
+
38
+ #Transaction Set Trailer
39
+ segment Hippo_eyeDoc::Segments::SE,
40
+ :name => 'Transaction Set Trailer',
41
+ :minimum => 1,
42
+ :maximum => 1,
43
+ :position => 1600
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,19 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+ autoload_relative :Base, 'HIPAA_271/base'
4
+ autoload_relative :L2000A, 'HIPAA_271/L2000A'
5
+ autoload_relative :L2000B, 'HIPAA_271/L2000B'
6
+ autoload_relative :L2000C, 'HIPAA_271/L2000C'
7
+ autoload_relative :L2000D, 'HIPAA_271/L2000D'
8
+ autoload_relative :L2100A, 'HIPAA_271/L2100A'
9
+ autoload_relative :L2100B, 'HIPAA_271/L2100B'
10
+ autoload_relative :L2100C, 'HIPAA_271/L2100C'
11
+ autoload_relative :L2100D, 'HIPAA_271/L2100D'
12
+ autoload_relative :L2110C, 'HIPAA_271/L2110C'
13
+ autoload_relative :L2110D, 'HIPAA_271/L2110D'
14
+ autoload_relative :L2115C, 'HIPAA_271/L2115C'
15
+ autoload_relative :L2115D, 'HIPAA_271/L2115D'
16
+ autoload_relative :L2120C, 'HIPAA_271/L2120C'
17
+ autoload_relative :L2120D, 'HIPAA_271/L2120D'
18
+ end
19
+ end
@@ -0,0 +1,55 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2000A < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2000A' #Information Source Level
6
+
7
+ #Information Source Level
8
+ segment Hippo_eyeDoc::Segments::HL,
9
+ :name => 'Information Source Level',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'HL03' => '20',
15
+ 'HL04' => ["0", "1"]
16
+ }
17
+
18
+ #Request Validation
19
+ segment Hippo_eyeDoc::Segments::AAA,
20
+ :name => 'Request Validation',
21
+ :minimum => 0,
22
+ :maximum => 9,
23
+ :position => 250,
24
+ :identified_by => {
25
+ 'AAA01' => ["N", "Y"],
26
+ 'AAA03' => ["04", "41", "42", "79"],
27
+ 'AAA04' => ["C", "N", "P", "R", "S", "Y"]
28
+ }
29
+
30
+ #Information Source Name
31
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2100A,
32
+ :name => 'Information Source Name',
33
+ :minimum => 1,
34
+ :maximum => 1,
35
+ :position => 300,
36
+ :identified_by => {
37
+ 'NM1.NM101' => ["2B", "36", "GP", "P5", "PR"],
38
+ 'NM1.NM102' => ["1", "2"],
39
+ 'NM1.NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
40
+ }
41
+
42
+ #Information Receiver Level
43
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2000B,
44
+ :name => 'Information Receiver Level',
45
+ :minimum => 0,
46
+ :maximum => 99999,
47
+ :position => 100,
48
+ :identified_by => {
49
+ 'HL.HL03' => '21',
50
+ 'HL.HL04' => ["0", "1"]
51
+ }
52
+
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,43 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2000B < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2000B' #Information Receiver Level
6
+
7
+ #Information Receiver Level
8
+ segment Hippo_eyeDoc::Segments::HL,
9
+ :name => 'Information Receiver Level',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'HL03' => '21',
15
+ 'HL04' => ["0", "1"]
16
+ }
17
+
18
+ #Information Receiver Name
19
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2100B,
20
+ :name => 'Information Receiver Name',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 300,
24
+ :identified_by => {
25
+ 'NM1.NM101' => ["1P", "2B", "36", "80", "FA", "GP", "P5", "PR"],
26
+ 'NM1.NM102' => ["1", "2"],
27
+ 'NM1.NM108' => ["24", "34", "FI", "PI", "PP", "SV", "XV", "XX"]
28
+ }
29
+
30
+ #Subscriber Level
31
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2000C,
32
+ :name => 'Subscriber Level',
33
+ :minimum => 0,
34
+ :maximum => 99999,
35
+ :position => 100,
36
+ :identified_by => {
37
+ 'HL.HL03' => '22',
38
+ 'HL.HL04' => ["0", "1"]
39
+ }
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,52 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2000C < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2000C' #Subscriber Level
6
+
7
+ #Subscriber Level
8
+ segment Hippo_eyeDoc::Segments::HL,
9
+ :name => 'Subscriber Level',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'HL03' => '22',
15
+ 'HL04' => ["0", "1"]
16
+ }
17
+
18
+ #Subscriber Trace Number
19
+ segment Hippo_eyeDoc::Segments::TRN,
20
+ :name => 'Subscriber Trace Number',
21
+ :minimum => 0,
22
+ :maximum => 3,
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'TRN01' => ["1", "2"]
26
+ }
27
+
28
+ #Subscriber Name
29
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2100C,
30
+ :name => 'Subscriber Name',
31
+ :minimum => 1,
32
+ :maximum => 1,
33
+ :position => 300,
34
+ :identified_by => {
35
+ 'NM1.NM101' => 'IL',
36
+ 'NM1.NM102' => ["1", "2"]
37
+ }
38
+
39
+ #Dependent Level
40
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2000D,
41
+ :name => 'Dependent Level',
42
+ :minimum => 0,
43
+ :maximum => 99999,
44
+ :position => 100,
45
+ :identified_by => {
46
+ 'HL.HL03' => '23',
47
+ 'HL.HL04' => '0'
48
+ }
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,41 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2000D < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2000D' #Dependent Level
6
+
7
+ #Dependent Level
8
+ segment Hippo_eyeDoc::Segments::HL,
9
+ :name => 'Dependent Level',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'HL03' => '23',
15
+ 'HL04' => '0'
16
+ }
17
+
18
+ #Dependent Trace Number
19
+ segment Hippo_eyeDoc::Segments::TRN,
20
+ :name => 'Dependent Trace Number',
21
+ :minimum => 0,
22
+ :maximum => 3,
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'TRN01' => ["1", "2"]
26
+ }
27
+
28
+ #Dependent Name
29
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2100D,
30
+ :name => 'Dependent Name',
31
+ :minimum => 1,
32
+ :maximum => 1,
33
+ :position => 300,
34
+ :identified_by => {
35
+ 'NM1.NM101' => '03',
36
+ 'NM1.NM102' => '1'
37
+ }
38
+
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,43 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2100A < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2100A' #Information Source Name
6
+
7
+ #Information Source Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Information Source Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 300,
13
+ :identified_by => {
14
+ 'NM101' => ["2B", "36", "GP", "P5", "PR"],
15
+ 'NM102' => ["1", "2"],
16
+ 'NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
17
+ }
18
+
19
+ #Information Source Contact Information
20
+ segment Hippo_eyeDoc::Segments::PER,
21
+ :name => 'Information Source Contact Information',
22
+ :minimum => 0,
23
+ :maximum => 3,
24
+ :position => 800,
25
+ :identified_by => {
26
+ 'PER01' => 'IC'
27
+ }
28
+
29
+ #Request Validation
30
+ segment Hippo_eyeDoc::Segments::AAA,
31
+ :name => 'Request Validation',
32
+ :minimum => 0,
33
+ :maximum => 9,
34
+ :position => 850,
35
+ :identified_by => {
36
+ 'AAA01' => ["N", "Y"],
37
+ 'AAA03' => ["04", "41", "42", "79", "80", "T4"],
38
+ 'AAA04' => ["C", "N", "P", "R", "S", "W", "X", "Y"]
39
+ }
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,67 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2100B < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2100B' #Information Receiver Name
6
+
7
+ #Information Receiver Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Information Receiver Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 300,
13
+ :identified_by => {
14
+ 'NM101' => ["1P", "2B", "36", "80", "FA", "GP", "P5", "PR"],
15
+ 'NM102' => ["1", "2"],
16
+ 'NM108' => ["24", "34", "FI", "PI", "PP", "SV", "XV", "XX"]
17
+ }
18
+
19
+ #Information Receiver Additional Identification
20
+ segment Hippo_eyeDoc::Segments::REF,
21
+ :name => 'Information Receiver Additional Identification',
22
+ :minimum => 0,
23
+ :maximum => 9,
24
+ :position => 400,
25
+ :identified_by => {
26
+ 'REF01' => ["0B", "1C", "1D", "1J", "4A", "CT", "EL", "EO", "HPI", "JD", "N5", "N7", "Q4", "SY", "TJ"]
27
+ }
28
+
29
+ #Information Receiver Address
30
+ segment Hippo_eyeDoc::Segments::N3,
31
+ :name => 'Information Receiver Address',
32
+ :minimum => 0,
33
+ :maximum => 1,
34
+ :position => 600
35
+
36
+ #Information Receiver City, State, ZIP Code
37
+ segment Hippo_eyeDoc::Segments::N4,
38
+ :name => 'Information Receiver City, State, ZIP Code',
39
+ :minimum => 0,
40
+ :maximum => 1,
41
+ :position => 700
42
+
43
+ #Information Receiver Request Validation
44
+ segment Hippo_eyeDoc::Segments::AAA,
45
+ :name => 'Information Receiver Request Validation',
46
+ :minimum => 0,
47
+ :maximum => 9,
48
+ :position => 850,
49
+ :identified_by => {
50
+ 'AAA01' => ["N", "Y"],
51
+ 'AAA03' => ["15", "41", "43", "44", "45", "46", "47", "48", "50", "51", "79", "97", "T4"],
52
+ 'AAA04' => ["C", "N", "R", "S", "W", "X", "Y"]
53
+ }
54
+
55
+ #Information Receiver Provider Information
56
+ segment Hippo_eyeDoc::Segments::PRV,
57
+ :name => 'Information Receiver Provider Information',
58
+ :minimum => 0,
59
+ :maximum => 1,
60
+ :position => 900,
61
+ :identified_by => {
62
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
63
+ }
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,124 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2100C < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2100C' #Subscriber Name
6
+
7
+ #Subscriber Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Subscriber Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 300,
13
+ :identified_by => {
14
+ 'NM101' => 'IL',
15
+ 'NM102' => ["1", "2"]
16
+ }
17
+
18
+ #Subscriber Additional Identification
19
+ segment Hippo_eyeDoc::Segments::REF,
20
+ :name => 'Subscriber Additional Identification',
21
+ :minimum => 0,
22
+ :maximum => 9,
23
+ :position => 400,
24
+ :identified_by => {
25
+ 'REF01' => ["18", "1L", "1W", "3H", "49", "6P", "CE", "CT", "EA", "EJ", "F6", "GH", "HJ", "IF", "IG", "N6", "NQ", "Q4", "SY", "Y4"]
26
+ }
27
+
28
+ #Subscriber Address
29
+ segment Hippo_eyeDoc::Segments::N3,
30
+ :name => 'Subscriber Address',
31
+ :minimum => 0,
32
+ :maximum => 1,
33
+ :position => 600
34
+
35
+ #Subscriber City, State, ZIP Code
36
+ segment Hippo_eyeDoc::Segments::N4,
37
+ :name => 'Subscriber City, State, ZIP Code',
38
+ :minimum => 0,
39
+ :maximum => 1,
40
+ :position => 700
41
+
42
+ #Subscriber Request Validation
43
+ segment Hippo_eyeDoc::Segments::AAA,
44
+ :name => 'Subscriber Request Validation',
45
+ :minimum => 0,
46
+ :maximum => 9,
47
+ :position => 850,
48
+ :identified_by => {
49
+ 'AAA01' => ["N", "Y"],
50
+ 'AAA03' => ["15", "35", "42", "43", "45", "47", "48", "49", "51", "52", "56", "57", "58", "60", "61", "62", "63", "71", "72", "73", "74", "75", "76", "78"],
51
+ 'AAA04' => ["C", "N", "R", "S", "W", "X", "Y"]
52
+ }
53
+
54
+ #Provider Information
55
+ segment Hippo_eyeDoc::Segments::PRV,
56
+ :name => 'Provider Information',
57
+ :minimum => 0,
58
+ :maximum => 1,
59
+ :position => 900,
60
+ :identified_by => {
61
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SK", "SU"]
62
+ }
63
+
64
+ #Subscriber Demographic Information
65
+ segment Hippo_eyeDoc::Segments::DMG,
66
+ :name => 'Subscriber Demographic Information',
67
+ :minimum => 0,
68
+ :maximum => 1,
69
+ :position => 1000
70
+
71
+ #Subscriber Relationship
72
+ segment Hippo_eyeDoc::Segments::INS,
73
+ :name => 'Subscriber Relationship',
74
+ :minimum => 0,
75
+ :maximum => 1,
76
+ :position => 1100,
77
+ :identified_by => {
78
+ 'INS01' => 'Y',
79
+ 'INS02' => '18'
80
+ }
81
+
82
+ #Subscriber Health Care Diagnosis Code
83
+ segment Hippo_eyeDoc::Segments::HI,
84
+ :name => 'Subscriber Health Care Diagnosis Code',
85
+ :minimum => 0,
86
+ :maximum => 1,
87
+ :position => 1150
88
+
89
+ #Subscriber Date
90
+ segment Hippo_eyeDoc::Segments::DTP,
91
+ :name => 'Subscriber Date',
92
+ :minimum => 0,
93
+ :maximum => 9,
94
+ :position => 1200,
95
+ :identified_by => {
96
+ 'DTP01' => ["096", "102", "152", "291", "307", "318", "340", "341", "342", "343", "346", "347", "356", "357", "382", "435", "442", "458", "472", "539", "540", "636", "771"],
97
+ 'DTP02' => ["D8", "RD8"]
98
+ }
99
+
100
+ #Subscriber Military Personnel Information
101
+ segment Hippo_eyeDoc::Segments::MPI,
102
+ :name => 'Subscriber Military Personnel Information',
103
+ :minimum => 0,
104
+ :maximum => 1,
105
+ :position => 1275,
106
+ :identified_by => {
107
+ 'MPI01' => ["A", "C", "L", "O", "P", "S", "T"],
108
+ 'MPI02' => ["AE", "AO", "AS", "AT", "AU", "CC", "DD", "HD", "IR", "LX", "PE", "RE", "RM", "RR", "RU"],
109
+ 'MPI03' => ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "Q", "R", "S", "U", "W"]
110
+ }
111
+
112
+ #Subscriber Eligibility or Benefit Information
113
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_271::L2110C,
114
+ :name => 'Subscriber Eligibility or Benefit Information',
115
+ :minimum => 0,
116
+ :maximum => 99999,
117
+ :position => 1300,
118
+ :identified_by => {
119
+ 'EB.EB01' => ["1", "2", "3", "4", "5", "6", "7", "8", "A", "B", "C", "CB", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "MC", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"]
120
+ }
121
+
122
+ end
123
+ end
124
+ end