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,16 @@
1
+ require_relative 'transaction_sets/base'
2
+ require_relative 'transaction_sets/component'
3
+ require_relative 'transaction_sets/repeating_component'
4
+
5
+ module Hippo_eyeDoc
6
+ module TransactionSets
7
+ autoload_relative :HIPAA_270, 'transaction_sets/HIPAA_270'
8
+ autoload_relative :HIPAA_271, 'transaction_sets/HIPAA_271'
9
+ autoload_relative :HIPAA_276, 'transaction_sets/HIPAA_276'
10
+ autoload_relative :HIPAA_277, 'transaction_sets/HIPAA_277'
11
+ autoload_relative :HIPAA_835, 'transaction_sets/HIPAA_835'
12
+ autoload_relative :HIPAA_837, 'transaction_sets/HIPAA_837'
13
+ autoload_relative :HIPAA_997, 'transaction_sets/HIPAA_997'
14
+ autoload_relative :HIPAA_999, 'transaction_sets/HIPAA_999'
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
3
+ autoload_relative :Base, 'HIPAA_270/base'
4
+ autoload_relative :L2000A, 'HIPAA_270/L2000A'
5
+ autoload_relative :L2000B, 'HIPAA_270/L2000B'
6
+ autoload_relative :L2000C, 'HIPAA_270/L2000C'
7
+ autoload_relative :L2000D, 'HIPAA_270/L2000D'
8
+ autoload_relative :L2100A, 'HIPAA_270/L2100A'
9
+ autoload_relative :L2100B, 'HIPAA_270/L2100B'
10
+ autoload_relative :L2100C, 'HIPAA_270/L2100C'
11
+ autoload_relative :L2100D, 'HIPAA_270/L2100D'
12
+ autoload_relative :L2110C, 'HIPAA_270/L2110C'
13
+ autoload_relative :L2110D, 'HIPAA_270/L2110D'
14
+ end
15
+ end
@@ -0,0 +1,43 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
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' => '1'
16
+ }
17
+
18
+ #Information Source Name
19
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::L2100A,
20
+ :name => 'Information Source Name',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 300,
24
+ :identified_by => {
25
+ 'NM1.NM101' => ["2B", "36", "GP", "P5", "PR"],
26
+ 'NM1.NM102' => ["1", "2"],
27
+ 'NM1.NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
28
+ }
29
+
30
+ #Information Receiver Level
31
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::L2000B,
32
+ :name => 'Information Receiver Level',
33
+ :minimum => 1,
34
+ :maximum => 99999,
35
+ :position => 100,
36
+ :identified_by => {
37
+ 'HL.HL03' => '21',
38
+ 'HL.HL04' => '1'
39
+ }
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
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 => 1,
11
+ :maximum => 1,
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'HL03' => '21',
15
+ 'HL04' => '1'
16
+ }
17
+
18
+ #Information Receiver Name
19
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::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_270::L2000C,
32
+ :name => 'Subscriber Level',
33
+ :minimum => 1,
34
+ :maximum => 99999,
35
+ :position => 100,
36
+ :identified_by => {
37
+ 'HL.HL03' => '22',
38
+ 'HL.HL04' => ["0", "1"]
39
+ }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,52 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
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 => 1,
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 => 2,
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'TRN01' => '1'
26
+ }
27
+
28
+ #Subscriber Name
29
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::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_270::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_270
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 => 2,
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'TRN01' => '1'
26
+ }
27
+
28
+ #Dependent Name
29
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::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,21 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
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
+ end
20
+ end
21
+ end
@@ -0,0 +1,55 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
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 Provider Information
44
+ segment Hippo_eyeDoc::Segments::PRV,
45
+ :name => 'Information Receiver Provider Information',
46
+ :minimum => 0,
47
+ :maximum => 1,
48
+ :position => 900,
49
+ :identified_by => {
50
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
51
+ }
52
+
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,97 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
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", "6P", "CT", "EA", "EJ", "F6", "GH", "HJ", "IG", "N6", "NQ", "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
+ #Provider Information
43
+ segment Hippo_eyeDoc::Segments::PRV,
44
+ :name => 'Provider Information',
45
+ :minimum => 0,
46
+ :maximum => 1,
47
+ :position => 900,
48
+ :identified_by => {
49
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SK", "SU"]
50
+ }
51
+
52
+ #Subscriber Demographic Information
53
+ segment Hippo_eyeDoc::Segments::DMG,
54
+ :name => 'Subscriber Demographic Information',
55
+ :minimum => 0,
56
+ :maximum => 1,
57
+ :position => 1000
58
+
59
+ #Multiple Birth Sequence Number
60
+ segment Hippo_eyeDoc::Segments::INS,
61
+ :name => 'Multiple Birth Sequence Number',
62
+ :minimum => 0,
63
+ :maximum => 1,
64
+ :position => 1100,
65
+ :identified_by => {
66
+ 'INS01' => 'Y',
67
+ 'INS02' => '18'
68
+ }
69
+
70
+ #Subscriber Health Care Diagnosis Code
71
+ segment Hippo_eyeDoc::Segments::HI,
72
+ :name => 'Subscriber Health Care Diagnosis Code',
73
+ :minimum => 0,
74
+ :maximum => 1,
75
+ :position => 1150
76
+
77
+ #Subscriber Date
78
+ segment Hippo_eyeDoc::Segments::DTP,
79
+ :name => 'Subscriber Date',
80
+ :minimum => 0,
81
+ :maximum => 2,
82
+ :position => 1200,
83
+ :identified_by => {
84
+ 'DTP01' => ["102", "291"],
85
+ 'DTP02' => ["D8", "RD8"]
86
+ }
87
+
88
+ #Subscriber Eligibility or Benefit Inquiry
89
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_270::L2110C,
90
+ :name => 'Subscriber Eligibility or Benefit Inquiry',
91
+ :minimum => 0,
92
+ :maximum => 99,
93
+ :position => 1300
94
+
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,67 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_270
3
+
4
+ class L2110C < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2110C' #Subscriber Eligibility or Benefit Inquiry
6
+
7
+ #Subscriber Eligibility or Benefit Inquiry
8
+ segment Hippo_eyeDoc::Segments::EQ,
9
+ :name => 'Subscriber Eligibility or Benefit Inquiry',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1300
13
+
14
+ #Subscriber Spend Down Amount
15
+ segment Hippo_eyeDoc::Segments::AMT,
16
+ :name => 'Subscriber Spend Down Amount',
17
+ :minimum => 0,
18
+ :maximum => 1,
19
+ :position => 1350,
20
+ :identified_by => {
21
+ 'AMT01' => 'R'
22
+ }
23
+
24
+ #Subscriber Spend Down Total Billed Amount
25
+ segment Hippo_eyeDoc::Segments::AMT,
26
+ :name => 'Subscriber Spend Down Total Billed Amount',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 1355,
30
+ :identified_by => {
31
+ 'AMT01' => 'PB'
32
+ }
33
+
34
+ #Subscriber Eligibility or Benefit Additional Inquiry Information
35
+ segment Hippo_eyeDoc::Segments::III,
36
+ :name => 'Subscriber Eligibility or Benefit Additional Inquiry Information',
37
+ :minimum => 0,
38
+ :maximum => 1,
39
+ :position => 1390,
40
+ :identified_by => {
41
+ 'III01' => 'ZZ'
42
+ }
43
+
44
+ #Subscriber Additional Information
45
+ segment Hippo_eyeDoc::Segments::REF,
46
+ :name => 'Subscriber Additional Information',
47
+ :minimum => 0,
48
+ :maximum => 1,
49
+ :position => 1400,
50
+ :identified_by => {
51
+ 'REF01' => ["9F", "G1"]
52
+ }
53
+
54
+ #Subscriber Eligibility/Benefit Date
55
+ segment Hippo_eyeDoc::Segments::DTP,
56
+ :name => 'Subscriber Eligibility/Benefit Date',
57
+ :minimum => 0,
58
+ :maximum => 1,
59
+ :position => 1500,
60
+ :identified_by => {
61
+ 'DTP01' => '291',
62
+ 'DTP02' => ["D8", "RD8"]
63
+ }
64
+
65
+ end
66
+ end
67
+ end