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,36 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2410 < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2410' #Drug Identification
6
+
7
+ #Drug Identification
8
+ segment Hippo_eyeDoc::Segments::LIN,
9
+ :name => 'Drug Identification',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 4940,
13
+ :identified_by => {
14
+ 'LIN02' => ["EN", "EO", "HI", "N4", "ON", "UK", "UP"]
15
+ }
16
+
17
+ #Drug Quantity
18
+ segment Hippo_eyeDoc::Segments::CTP,
19
+ :name => 'Drug Quantity',
20
+ :minimum => 1,
21
+ :maximum => 1,
22
+ :position => 4950
23
+
24
+ #Prescription or Compound Drug Association Number
25
+ segment Hippo_eyeDoc::Segments::REF,
26
+ :name => 'Prescription or Compound Drug Association Number',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 4960,
30
+ :identified_by => {
31
+ 'REF01' => ["VY", "XZ"]
32
+ }
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,41 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420A < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420A' #Rendering Provider Name
6
+
7
+ #Rendering Provider Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Rendering Provider Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5000,
13
+ :identified_by => {
14
+ 'NM101' => '82',
15
+ 'NM102' => ["1", "2"]
16
+ }
17
+
18
+ #Rendering Provider Specialty Information
19
+ segment Hippo_eyeDoc::Segments::PRV,
20
+ :name => 'Rendering Provider Specialty Information',
21
+ :minimum => 0,
22
+ :maximum => 1,
23
+ :position => 5050,
24
+ :identified_by => {
25
+ 'PRV01' => 'PE',
26
+ 'PRV02' => 'PXC'
27
+ }
28
+
29
+ #Rendering Provider Secondary Identification
30
+ segment Hippo_eyeDoc::Segments::REF,
31
+ :name => 'Rendering Provider Secondary Identification',
32
+ :minimum => 0,
33
+ :maximum => 20,
34
+ :position => 5250,
35
+ :identified_by => {
36
+ 'REF01' => ["0B", "1G", "G2", "LU"]
37
+ }
38
+
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,30 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420B < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420B' #Purchased Service Provider Name
6
+
7
+ #Purchased Service Provider Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Purchased Service Provider Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5000,
13
+ :identified_by => {
14
+ 'NM101' => 'QB',
15
+ 'NM102' => ["1", "2"]
16
+ }
17
+
18
+ #Purchased Service Provider Secondary Identification
19
+ segment Hippo_eyeDoc::Segments::REF,
20
+ :name => 'Purchased Service Provider Secondary Identification',
21
+ :minimum => 0,
22
+ :maximum => 20,
23
+ :position => 5250,
24
+ :identified_by => {
25
+ 'REF01' => ["0B", "1G", "G2"]
26
+ }
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,44 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420C < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420C' #Service Facility Location Name
6
+
7
+ #Service Facility Location Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Service Facility Location Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5000,
13
+ :identified_by => {
14
+ 'NM101' => '77',
15
+ 'NM102' => '2'
16
+ }
17
+
18
+ #Service Facility Location Address
19
+ segment Hippo_eyeDoc::Segments::N3,
20
+ :name => 'Service Facility Location Address',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 5140
24
+
25
+ #Service Facility Location City, State, ZIP Code
26
+ segment Hippo_eyeDoc::Segments::N4,
27
+ :name => 'Service Facility Location City, State, ZIP Code',
28
+ :minimum => 1,
29
+ :maximum => 1,
30
+ :position => 5200
31
+
32
+ #Service Facility Location Secondary Identification
33
+ segment Hippo_eyeDoc::Segments::REF,
34
+ :name => 'Service Facility Location Secondary Identification',
35
+ :minimum => 0,
36
+ :maximum => 3,
37
+ :position => 5250,
38
+ :identified_by => {
39
+ 'REF01' => ["G2", "LU"]
40
+ }
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,30 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420D < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420D' #Supervising Provider Name
6
+
7
+ #Supervising Provider Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Supervising Provider Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5000,
13
+ :identified_by => {
14
+ 'NM101' => 'DQ',
15
+ 'NM102' => '1'
16
+ }
17
+
18
+ #Supervising Provider Secondary Identification
19
+ segment Hippo_eyeDoc::Segments::REF,
20
+ :name => 'Supervising Provider Secondary Identification',
21
+ :minimum => 0,
22
+ :maximum => 20,
23
+ :position => 5250,
24
+ :identified_by => {
25
+ 'REF01' => ["0B", "1G", "G2", "LU"]
26
+ }
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,55 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420E < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420E' #Ordering Provider Name
6
+
7
+ #Ordering Provider Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Ordering Provider Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5000,
13
+ :identified_by => {
14
+ 'NM101' => 'DK',
15
+ 'NM102' => '1'
16
+ }
17
+
18
+ #Ordering Provider Address
19
+ segment Hippo_eyeDoc::Segments::N3,
20
+ :name => 'Ordering Provider Address',
21
+ :minimum => 0,
22
+ :maximum => 1,
23
+ :position => 5140
24
+
25
+ #Ordering Provider City, State, ZIP Code
26
+ segment Hippo_eyeDoc::Segments::N4,
27
+ :name => 'Ordering Provider City, State, ZIP Code',
28
+ :minimum => 0,
29
+ :maximum => 1,
30
+ :position => 5200
31
+
32
+ #Ordering Provider Secondary Identification
33
+ segment Hippo_eyeDoc::Segments::REF,
34
+ :name => 'Ordering Provider Secondary Identification',
35
+ :minimum => 0,
36
+ :maximum => 20,
37
+ :position => 5250,
38
+ :identified_by => {
39
+ 'REF01' => ["0B", "1G", "G2"]
40
+ }
41
+
42
+ #Ordering Provider Contact Information
43
+ segment Hippo_eyeDoc::Segments::PER,
44
+ :name => 'Ordering Provider Contact Information',
45
+ :minimum => 0,
46
+ :maximum => 1,
47
+ :position => 5300,
48
+ :identified_by => {
49
+ 'PER01' => 'IC',
50
+ 'PER03' => ["EM", "FX", "TE"]
51
+ }
52
+
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,30 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420F < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420F' #Referring Provider Name
6
+
7
+ #Referring Provider Name
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Referring Provider Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5000,
13
+ :identified_by => {
14
+ 'NM101' => ["DN", "P3"],
15
+ 'NM102' => '1'
16
+ }
17
+
18
+ #Referring Provider Secondary Identification
19
+ segment Hippo_eyeDoc::Segments::REF,
20
+ :name => 'Referring Provider Secondary Identification',
21
+ :minimum => 0,
22
+ :maximum => 20,
23
+ :position => 5250,
24
+ :identified_by => {
25
+ 'REF01' => ["0B", "1G", "G2"]
26
+ }
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,34 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420G < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420G' #Ambulance Pick-up Location
6
+
7
+ #Ambulance Pick-up Location
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Ambulance Pick-up Location',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5310,
13
+ :identified_by => {
14
+ 'NM101' => 'PW',
15
+ 'NM102' => '2'
16
+ }
17
+
18
+ #Ambulance Pick-up Location Address
19
+ segment Hippo_eyeDoc::Segments::N3,
20
+ :name => 'Ambulance Pick-up Location Address',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 5340
24
+
25
+ #Ambulance Pick-up Location City, State, ZIP Code
26
+ segment Hippo_eyeDoc::Segments::N4,
27
+ :name => 'Ambulance Pick-up Location City, State, ZIP Code',
28
+ :minimum => 1,
29
+ :maximum => 1,
30
+ :position => 5350
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2420H < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2420H' #Ambulance Drop-off Location
6
+
7
+ #Ambulance Drop-off Location
8
+ segment Hippo_eyeDoc::Segments::NM1,
9
+ :name => 'Ambulance Drop-off Location',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5380,
13
+ :identified_by => {
14
+ 'NM101' => '45',
15
+ 'NM102' => '2'
16
+ }
17
+
18
+ #Ambulance Drop-off Location Address
19
+ segment Hippo_eyeDoc::Segments::N3,
20
+ :name => 'Ambulance Drop-off Location Address',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 5410
24
+
25
+ #Ambulance Drop-off Location City, State, ZIP Code
26
+ segment Hippo_eyeDoc::Segments::N4,
27
+ :name => 'Ambulance Drop-off Location City, State, ZIP Code',
28
+ :minimum => 1,
29
+ :maximum => 1,
30
+ :position => 5420
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,47 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2430 < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2430' #Line Adjudication Information
6
+
7
+ #Line Adjudication Information
8
+ segment Hippo_eyeDoc::Segments::SVD,
9
+ :name => 'Line Adjudication Information',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5400
13
+
14
+ #Line Adjustment
15
+ segment Hippo_eyeDoc::Segments::CAS,
16
+ :name => 'Line Adjustment',
17
+ :minimum => 0,
18
+ :maximum => 5,
19
+ :position => 5450,
20
+ :identified_by => {
21
+ 'CAS01' => ["CO", "CR", "OA", "PI", "PR"]
22
+ }
23
+
24
+ #Line Check or Remittance Date
25
+ segment Hippo_eyeDoc::Segments::DTP,
26
+ :name => 'Line Check or Remittance Date',
27
+ :minimum => 1,
28
+ :maximum => 1,
29
+ :position => 5500,
30
+ :identified_by => {
31
+ 'DTP01' => '573',
32
+ 'DTP02' => 'D8'
33
+ }
34
+
35
+ #Remaining Patient Liability
36
+ segment Hippo_eyeDoc::Segments::AMT,
37
+ :name => 'Remaining Patient Liability',
38
+ :minimum => 0,
39
+ :maximum => 1,
40
+ :position => 5505,
41
+ :identified_by => {
42
+ 'AMT01' => 'EAF'
43
+ }
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,26 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2440 < Hippo_eyeDoc::TransactionSets::Base
5
+ loop_name 'L2440' #Form Identification Code
6
+
7
+ #Form Identification Code
8
+ segment Hippo_eyeDoc::Segments::LQ,
9
+ :name => 'Form Identification Code',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 5510,
13
+ :identified_by => {
14
+ 'LQ01' => ["AS", "UT"]
15
+ }
16
+
17
+ #Supporting Documentation
18
+ segment Hippo_eyeDoc::Segments::FRM,
19
+ :name => 'Supporting Documentation',
20
+ :minimum => 1,
21
+ :maximum => 99,
22
+ :position => 5520
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,71 @@
1
+ module Hippo_eyeDoc::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class Base < Hippo_eyeDoc::TransactionSets::Base
5
+ #Transaction Set Header
6
+ segment Hippo_eyeDoc::Segments::ST,
7
+ :name => 'Transaction Set Header',
8
+ :minimum => 1,
9
+ :maximum => 1,
10
+ :position => 50,
11
+ :identified_by => {
12
+ 'ST01' => '837'
13
+ }
14
+
15
+ #Beginning of Hierarchical Transaction
16
+ segment Hippo_eyeDoc::Segments::BHT,
17
+ :name => 'Beginning of Hierarchical Transaction',
18
+ :minimum => 1,
19
+ :maximum => 1,
20
+ :position => 100,
21
+ :identified_by => {
22
+ 'BHT01' => '0019',
23
+ 'BHT02' => ["00", "18"],
24
+ 'BHT06' => ["31", "CH", "RP"]
25
+ }
26
+
27
+ #Submitter Name
28
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_837::L1000A,
29
+ :name => 'Submitter Name',
30
+ :minimum => 1,
31
+ :maximum => 1,
32
+ :position => 200,
33
+ :identified_by => {
34
+ 'NM1.NM101' => '41',
35
+ 'NM1.NM102' => ["1", "2"],
36
+ 'NM1.NM108' => '46'
37
+ }
38
+
39
+ #Receiver Name
40
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_837::L1000B,
41
+ :name => 'Receiver Name',
42
+ :minimum => 1,
43
+ :maximum => 1,
44
+ :position => 500,
45
+ :identified_by => {
46
+ 'NM1.NM101' => '40',
47
+ 'NM1.NM102' => '2',
48
+ 'NM1.NM108' => '46'
49
+ }
50
+
51
+ #Billing Provider Hierarchical Level
52
+ loop Hippo_eyeDoc::TransactionSets::HIPAA_837::L2000A,
53
+ :name => 'Billing Provider Hierarchical Level',
54
+ :minimum => 1,
55
+ :maximum => 99999,
56
+ :position => 10,
57
+ :identified_by => {
58
+ 'HL.HL03' => '20',
59
+ 'HL.HL04' => '1'
60
+ }
61
+
62
+ #Transaction Set Trailer
63
+ segment Hippo_eyeDoc::Segments::SE,
64
+ :name => 'Transaction Set Trailer',
65
+ :minimum => 1,
66
+ :maximum => 1,
67
+ :position => 5550
68
+
69
+ end
70
+ end
71
+ end