hippo 0.0.4

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 (203) hide show
  1. data/.gitignore +6 -0
  2. data/CHANGELOG +9 -0
  3. data/Gemfile +11 -0
  4. data/Guardfile +14 -0
  5. data/README.md +227 -0
  6. data/Rakefile +12 -0
  7. data/bin/demo_270.rb +280 -0
  8. data/bin/demo_276.rb +296 -0
  9. data/bin/demo_835.rb +170 -0
  10. data/hippo.gemspec +24 -0
  11. data/lib/hippo/exceptions.rb +8 -0
  12. data/lib/hippo/field.rb +6 -0
  13. data/lib/hippo/loop.rb +0 -0
  14. data/lib/hippo/parser.rb +92 -0
  15. data/lib/hippo/samples/835.edi +88 -0
  16. data/lib/hippo/samples/sample_835_with.rb +272 -0
  17. data/lib/hippo/samples/sample_parsed.rb +1162 -0
  18. data/lib/hippo/segments/AK1.rb +32 -0
  19. data/lib/hippo/segments/AK2.rb +31 -0
  20. data/lib/hippo/segments/AK9.rb +82 -0
  21. data/lib/hippo/segments/AMT.rb +31 -0
  22. data/lib/hippo/segments/BHT.rb +55 -0
  23. data/lib/hippo/segments/BPR.rb +175 -0
  24. data/lib/hippo/segments/CAS.rb +159 -0
  25. data/lib/hippo/segments/CL1.rb +39 -0
  26. data/lib/hippo/segments/CLM.rb +223 -0
  27. data/lib/hippo/segments/CLP.rb +119 -0
  28. data/lib/hippo/segments/CN1.rb +55 -0
  29. data/lib/hippo/segments/CR1.rb +87 -0
  30. data/lib/hippo/segments/CR2.rb +104 -0
  31. data/lib/hippo/segments/CR3.rb +47 -0
  32. data/lib/hippo/segments/CR4.rb +239 -0
  33. data/lib/hippo/segments/CR5.rb +151 -0
  34. data/lib/hippo/segments/CR6.rb +175 -0
  35. data/lib/hippo/segments/CR7.rb +33 -0
  36. data/lib/hippo/segments/CR8.rb +79 -0
  37. data/lib/hippo/segments/CRC.rb +63 -0
  38. data/lib/hippo/segments/CTP.rb +212 -0
  39. data/lib/hippo/segments/CTX.rb +105 -0
  40. data/lib/hippo/segments/CUR.rb +175 -0
  41. data/lib/hippo/segments/DMG.rb +115 -0
  42. data/lib/hippo/segments/DN1.rb +39 -0
  43. data/lib/hippo/segments/DN2.rb +55 -0
  44. data/lib/hippo/segments/DSB.rb +71 -0
  45. data/lib/hippo/segments/DTM.rb +55 -0
  46. data/lib/hippo/segments/DTP.rb +31 -0
  47. data/lib/hippo/segments/FRM.rb +47 -0
  48. data/lib/hippo/segments/GE.rb +19 -0
  49. data/lib/hippo/segments/GS.rb +52 -0
  50. data/lib/hippo/segments/HCP.rb +127 -0
  51. data/lib/hippo/segments/HI.rb +919 -0
  52. data/lib/hippo/segments/HL.rb +44 -0
  53. data/lib/hippo/segments/HSD.rb +72 -0
  54. data/lib/hippo/segments/IEA.rb +19 -0
  55. data/lib/hippo/segments/IK3.rb +40 -0
  56. data/lib/hippo/segments/IK4.rb +63 -0
  57. data/lib/hippo/segments/IK5.rb +55 -0
  58. data/lib/hippo/segments/IMM.rb +55 -0
  59. data/lib/hippo/segments/ISA.rb +95 -0
  60. data/lib/hippo/segments/K3.rb +147 -0
  61. data/lib/hippo/segments/LIN.rb +255 -0
  62. data/lib/hippo/segments/LQ.rb +23 -0
  63. data/lib/hippo/segments/LX.rb +21 -0
  64. data/lib/hippo/segments/MEA.rb +219 -0
  65. data/lib/hippo/segments/MIA.rb +199 -0
  66. data/lib/hippo/segments/MOA.rb +79 -0
  67. data/lib/hippo/segments/N1.rb +55 -0
  68. data/lib/hippo/segments/N2.rb +23 -0
  69. data/lib/hippo/segments/N3.rb +23 -0
  70. data/lib/hippo/segments/N4.rb +63 -0
  71. data/lib/hippo/segments/NM1.rb +103 -0
  72. data/lib/hippo/segments/NTE.rb +23 -0
  73. data/lib/hippo/segments/OI.rb +55 -0
  74. data/lib/hippo/segments/PAT.rb +79 -0
  75. data/lib/hippo/segments/PER.rb +79 -0
  76. data/lib/hippo/segments/PLB.rb +191 -0
  77. data/lib/hippo/segments/PRV.rb +75 -0
  78. data/lib/hippo/segments/PS1.rb +31 -0
  79. data/lib/hippo/segments/PWK.rb +116 -0
  80. data/lib/hippo/segments/QTY.rb +155 -0
  81. data/lib/hippo/segments/RDM.rb +135 -0
  82. data/lib/hippo/segments/REF.rb +83 -0
  83. data/lib/hippo/segments/SBR.rb +79 -0
  84. data/lib/hippo/segments/SE.rb +24 -0
  85. data/lib/hippo/segments/ST.rb +31 -0
  86. data/lib/hippo/segments/STC.rb +187 -0
  87. data/lib/hippo/segments/SV1.rb +267 -0
  88. data/lib/hippo/segments/SV2.rb +147 -0
  89. data/lib/hippo/segments/SV3.rb +223 -0
  90. data/lib/hippo/segments/SV4.rb +211 -0
  91. data/lib/hippo/segments/SV5.rb +123 -0
  92. data/lib/hippo/segments/SV6.rb +155 -0
  93. data/lib/hippo/segments/SV7.rb +55 -0
  94. data/lib/hippo/segments/SVC.rb +183 -0
  95. data/lib/hippo/segments/SVD.rb +116 -0
  96. data/lib/hippo/segments/TOO.rb +67 -0
  97. data/lib/hippo/segments/TRN.rb +39 -0
  98. data/lib/hippo/segments/TS2.rb +159 -0
  99. data/lib/hippo/segments/TS3.rb +199 -0
  100. data/lib/hippo/segments/UR.rb +23 -0
  101. data/lib/hippo/segments/base.rb +148 -0
  102. data/lib/hippo/segments.rb +85 -0
  103. data/lib/hippo/transaction_sets/HIPAA_276/L2000A.rb +28 -0
  104. data/lib/hippo/transaction_sets/HIPAA_276/L2000B.rb +28 -0
  105. data/lib/hippo/transaction_sets/HIPAA_276/L2000C.rb +28 -0
  106. data/lib/hippo/transaction_sets/HIPAA_276/L2000D.rb +45 -0
  107. data/lib/hippo/transaction_sets/HIPAA_276/L2000E.rb +45 -0
  108. data/lib/hippo/transaction_sets/HIPAA_276/L2100A.rb +20 -0
  109. data/lib/hippo/transaction_sets/HIPAA_276/L2100B.rb +20 -0
  110. data/lib/hippo/transaction_sets/HIPAA_276/L2100C.rb +19 -0
  111. data/lib/hippo/transaction_sets/HIPAA_276/L2100D.rb +19 -0
  112. data/lib/hippo/transaction_sets/HIPAA_276/L2100E.rb +20 -0
  113. data/lib/hippo/transaction_sets/HIPAA_276/L2200D.rb +116 -0
  114. data/lib/hippo/transaction_sets/HIPAA_276/L2200E.rb +116 -0
  115. data/lib/hippo/transaction_sets/HIPAA_276/L2210D.rb +36 -0
  116. data/lib/hippo/transaction_sets/HIPAA_276/L2210E.rb +36 -0
  117. data/lib/hippo/transaction_sets/HIPAA_276/base.rb +86 -0
  118. data/lib/hippo/transaction_sets/HIPAA_276.rb +21 -0
  119. data/lib/hippo/transaction_sets/HIPAA_277/L2000A.rb +35 -0
  120. data/lib/hippo/transaction_sets/HIPAA_277/L2000B.rb +35 -0
  121. data/lib/hippo/transaction_sets/HIPAA_277/L2000C.rb +35 -0
  122. data/lib/hippo/transaction_sets/HIPAA_277/L2000D.rb +35 -0
  123. data/lib/hippo/transaction_sets/HIPAA_277/L2000E.rb +35 -0
  124. data/lib/hippo/transaction_sets/HIPAA_277/L2100A.rb +19 -0
  125. data/lib/hippo/transaction_sets/HIPAA_277/L2100B.rb +20 -0
  126. data/lib/hippo/transaction_sets/HIPAA_277/L2100C.rb +19 -0
  127. data/lib/hippo/transaction_sets/HIPAA_277/L2100D.rb +20 -0
  128. data/lib/hippo/transaction_sets/HIPAA_277/L2100E.rb +20 -0
  129. data/lib/hippo/transaction_sets/HIPAA_277/L2200A.rb +41 -0
  130. data/lib/hippo/transaction_sets/HIPAA_277/L2200B.rb +66 -0
  131. data/lib/hippo/transaction_sets/HIPAA_277/L2200C.rb +73 -0
  132. data/lib/hippo/transaction_sets/HIPAA_277/L2200D.rb +73 -0
  133. data/lib/hippo/transaction_sets/HIPAA_277/L2200E.rb +103 -0
  134. data/lib/hippo/transaction_sets/HIPAA_277/L2220D.rb +56 -0
  135. data/lib/hippo/transaction_sets/HIPAA_277/L2220E.rb +43 -0
  136. data/lib/hippo/transaction_sets/HIPAA_277/base.rb +77 -0
  137. data/lib/hippo/transaction_sets/HIPAA_277.rb +24 -0
  138. data/lib/hippo/transaction_sets/HIPAA_835/L1000A.rb +71 -0
  139. data/lib/hippo/transaction_sets/HIPAA_835/L1000B.rb +47 -0
  140. data/lib/hippo/transaction_sets/HIPAA_835/L2000.rb +37 -0
  141. data/lib/hippo/transaction_sets/HIPAA_835/L2100.rb +182 -0
  142. data/lib/hippo/transaction_sets/HIPAA_835/L2110.rb +85 -0
  143. data/lib/hippo/transaction_sets/HIPAA_835/base.rb +112 -0
  144. data/lib/hippo/transaction_sets/HIPAA_835.rb +12 -0
  145. data/lib/hippo/transaction_sets/HIPAA_837/L1000A.rb +30 -0
  146. data/lib/hippo/transaction_sets/HIPAA_837/L1000B.rb +21 -0
  147. data/lib/hippo/transaction_sets/HIPAA_837/L2000A.rb +65 -0
  148. data/lib/hippo/transaction_sets/HIPAA_837/L2000B.rb +49 -0
  149. data/lib/hippo/transaction_sets/HIPAA_837/L2000C.rb +42 -0
  150. data/lib/hippo/transaction_sets/HIPAA_837/L2010AA.rb +57 -0
  151. data/lib/hippo/transaction_sets/HIPAA_837/L2010AB.rb +33 -0
  152. data/lib/hippo/transaction_sets/HIPAA_837/L2010AC.rb +51 -0
  153. data/lib/hippo/transaction_sets/HIPAA_837/L2010BA.rb +74 -0
  154. data/lib/hippo/transaction_sets/HIPAA_837/L2010BB.rb +48 -0
  155. data/lib/hippo/transaction_sets/HIPAA_837/L2010CA.rb +72 -0
  156. data/lib/hippo/transaction_sets/HIPAA_837/L2300.rb +510 -0
  157. data/lib/hippo/transaction_sets/HIPAA_837/L2310A.rb +26 -0
  158. data/lib/hippo/transaction_sets/HIPAA_837/L2310B.rb +37 -0
  159. data/lib/hippo/transaction_sets/HIPAA_837/L2310C.rb +52 -0
  160. data/lib/hippo/transaction_sets/HIPAA_837/L2310D.rb +27 -0
  161. data/lib/hippo/transaction_sets/HIPAA_837/L2310E.rb +34 -0
  162. data/lib/hippo/transaction_sets/HIPAA_837/L2310F.rb +34 -0
  163. data/lib/hippo/transaction_sets/HIPAA_837/L2320.rb +122 -0
  164. data/lib/hippo/transaction_sets/HIPAA_837/L2330A.rb +43 -0
  165. data/lib/hippo/transaction_sets/HIPAA_837/L2330B.rb +92 -0
  166. data/lib/hippo/transaction_sets/HIPAA_837/L2330C.rb +26 -0
  167. data/lib/hippo/transaction_sets/HIPAA_837/L2330D.rb +26 -0
  168. data/lib/hippo/transaction_sets/HIPAA_837/L2330E.rb +27 -0
  169. data/lib/hippo/transaction_sets/HIPAA_837/L2330F.rb +27 -0
  170. data/lib/hippo/transaction_sets/HIPAA_837/L2330G.rb +26 -0
  171. data/lib/hippo/transaction_sets/HIPAA_837/L2400.rb +475 -0
  172. data/lib/hippo/transaction_sets/HIPAA_837/L2410.rb +30 -0
  173. data/lib/hippo/transaction_sets/HIPAA_837/L2420A.rb +37 -0
  174. data/lib/hippo/transaction_sets/HIPAA_837/L2420B.rb +26 -0
  175. data/lib/hippo/transaction_sets/HIPAA_837/L2420C.rb +41 -0
  176. data/lib/hippo/transaction_sets/HIPAA_837/L2420D.rb +27 -0
  177. data/lib/hippo/transaction_sets/HIPAA_837/L2420E.rb +51 -0
  178. data/lib/hippo/transaction_sets/HIPAA_837/L2420F.rb +26 -0
  179. data/lib/hippo/transaction_sets/HIPAA_837/L2420G.rb +34 -0
  180. data/lib/hippo/transaction_sets/HIPAA_837/L2420H.rb +34 -0
  181. data/lib/hippo/transaction_sets/HIPAA_837/L2430.rb +44 -0
  182. data/lib/hippo/transaction_sets/HIPAA_837/L2440.rb +23 -0
  183. data/lib/hippo/transaction_sets/HIPAA_837/base.rb +81 -0
  184. data/lib/hippo/transaction_sets/HIPAA_837.rb +45 -0
  185. data/lib/hippo/transaction_sets/HIPAA_999/L2000 - AK2.rb +30 -0
  186. data/lib/hippo/transaction_sets/HIPAA_999/L2000AK2.rb +30 -0
  187. data/lib/hippo/transaction_sets/HIPAA_999/L2100 - AK2.rb +37 -0
  188. data/lib/hippo/transaction_sets/HIPAA_999/L2100AK2.rb +37 -0
  189. data/lib/hippo/transaction_sets/HIPAA_999/L2110 - AK2.rb +23 -0
  190. data/lib/hippo/transaction_sets/HIPAA_999/L2110AK2.rb +23 -0
  191. data/lib/hippo/transaction_sets/HIPAA_999/base.rb +46 -0
  192. data/lib/hippo/transaction_sets/HIPAA_999.rb +10 -0
  193. data/lib/hippo/transaction_sets/base.rb +136 -0
  194. data/lib/hippo/transaction_sets.rb +11 -0
  195. data/lib/hippo/version.rb +3 -0
  196. data/lib/hippo.rb +15 -0
  197. data/samples/835_4010.edi +1 -0
  198. data/samples/837_4010A1.edi +1 -0
  199. data/test/test_helper.rb +118 -0
  200. data/test/test_hipaa_837.rb +396 -0
  201. data/test/test_segments_base.rb +106 -0
  202. data/test/test_transaction_sets_base.rb +85 -0
  203. metadata +277 -0
@@ -0,0 +1,49 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2000B < Hippo::TransactionSets::Base
5
+ loop_name 'L2000B' #Subscriber Hierarchical Level
6
+
7
+ #Subscriber Hierarchical Level
8
+ segment Hippo::Segments::HL,
9
+ :name => 'Subscriber Hierarchical Level',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 10,
13
+ :defaults => {
14
+ 'HL03' => '22'
15
+ }
16
+
17
+ #Subscriber Information
18
+ segment Hippo::Segments::SBR,
19
+ :name => 'Subscriber Information',
20
+ :minimum => 1,
21
+ :maximum => 1,
22
+ :position => 50
23
+
24
+ #Patient Information
25
+ segment Hippo::Segments::PAT,
26
+ :name => 'Patient Information',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 70
30
+
31
+ #Subscriber Name
32
+ loop Hippo::TransactionSets::HIPAA_837::L2010BA,
33
+ :name => 'Subscriber Name',
34
+ :identified_by => {'NM1.NM101' => 'IL'},
35
+ :minimum => 1,
36
+ :maximum => 1,
37
+ :position => 150
38
+
39
+ #Payer Name
40
+ loop Hippo::TransactionSets::HIPAA_837::L2010BB,
41
+ :name => 'Payer Name',
42
+ :identified_by => {'NM1.NM101' => 'PR'},
43
+ :minimum => 1,
44
+ :maximum => 1,
45
+ :position => 150
46
+
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,42 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2000C < Hippo::TransactionSets::Base
5
+ loop_name 'L2000C' #Patient Hierarchical Level
6
+
7
+ #Patient Hierarchical Level
8
+ segment Hippo::Segments::HL,
9
+ :name => 'Patient Hierarchical Level',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 10,
13
+ :defaults => {
14
+ 'HL03' => '23',
15
+ 'HL04' => '0'
16
+ }
17
+
18
+ #Patient Information
19
+ segment Hippo::Segments::PAT,
20
+ :name => 'Patient Information',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 70
24
+
25
+ #Patient Name
26
+ loop Hippo::TransactionSets::HIPAA_837::L2010CA,
27
+ :name => 'Patient Name',
28
+ :identified_by => {'NM1.NM101' => 'QC'},
29
+ :minimum => 1,
30
+ :maximum => 1,
31
+ :position => 150
32
+
33
+ #Claim Information
34
+ loop Hippo::TransactionSets::HIPAA_837::L2300,
35
+ :name => 'Claim Information',
36
+ :minimum => 1,
37
+ :maximum => 100,
38
+ :position => 1300
39
+
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,57 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2010AA < Hippo::TransactionSets::Base
5
+ loop_name 'L2010AA' #Billing Provider Name
6
+
7
+ #Billing Provider Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Billing Provider Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 150,
13
+ :defaults => {
14
+ 'NM101' => '85'
15
+ }
16
+
17
+ #Billing Provider Address
18
+ segment Hippo::Segments::N3,
19
+ :name => 'Billing Provider Address',
20
+ :minimum => 1,
21
+ :maximum => 1,
22
+ :position => 250
23
+
24
+ #Billing Provider City, State, ZIP Code
25
+ segment Hippo::Segments::N4,
26
+ :name => 'Billing Provider City, State, ZIP Code',
27
+ :minimum => 1,
28
+ :maximum => 1,
29
+ :position => 300
30
+
31
+ #Billing Provider Tax Identification
32
+ segment Hippo::Segments::REF,
33
+ :name => 'Billing Provider Tax Identification',
34
+ :minimum => 1,
35
+ :maximum => 1,
36
+ :position => 350
37
+
38
+ #Billing Provider UPIN/License Information
39
+ segment Hippo::Segments::REF,
40
+ :name => 'Billing Provider UPIN/License Information',
41
+ :minimum => 0,
42
+ :maximum => 2,
43
+ :position => 360
44
+
45
+ #Billing Provider Contact Information
46
+ segment Hippo::Segments::PER,
47
+ :name => 'Billing Provider Contact Information',
48
+ :minimum => 0,
49
+ :maximum => 2,
50
+ :position => 400,
51
+ :defaults => {
52
+ 'PER01' => 'IC'
53
+ }
54
+
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,33 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2010AB < Hippo::TransactionSets::Base
5
+ loop_name 'L2010AB' #Pay-to Address Name
6
+
7
+ #Pay-to Address Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Pay-to Address Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 150,
13
+ :defaults => {
14
+ 'NM101' => '87'
15
+ }
16
+
17
+ #Pay-to Address - ADDRESS
18
+ segment Hippo::Segments::N3,
19
+ :name => 'Pay-to Address - ADDRESS',
20
+ :minimum => 1,
21
+ :maximum => 1,
22
+ :position => 250
23
+
24
+ #Pay-To Address City, State, ZIP Code
25
+ segment Hippo::Segments::N4,
26
+ :name => 'Pay-To Address City, State, ZIP Code',
27
+ :minimum => 1,
28
+ :maximum => 1,
29
+ :position => 300
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,51 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2010AC < Hippo::TransactionSets::Base
5
+ loop_name 'L2010AC' #Pay-To Plan Name
6
+
7
+ #Pay-To Plan Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Pay-To Plan Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 450,
13
+ :defaults => {
14
+ 'NM101' => 'PE',
15
+ 'NM102' => '2'
16
+ }
17
+
18
+ #Pay-to Plan Address
19
+ segment Hippo::Segments::N3,
20
+ :name => 'Pay-to Plan Address',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 550
24
+
25
+ #Pay-To Plan City, State, ZIP Code
26
+ segment Hippo::Segments::N4,
27
+ :name => 'Pay-To Plan City, State, ZIP Code',
28
+ :minimum => 1,
29
+ :maximum => 1,
30
+ :position => 600
31
+
32
+ #Pay-to Plan Secondary Identification
33
+ segment Hippo::Segments::REF,
34
+ :name => 'Pay-to Plan Secondary Identification',
35
+ :minimum => 0,
36
+ :maximum => 1,
37
+ :position => 650
38
+
39
+ #Pay-To Plan Tax Identification Number
40
+ segment Hippo::Segments::REF,
41
+ :name => 'Pay-To Plan Tax Identification Number',
42
+ :minimum => 1,
43
+ :maximum => 1,
44
+ :position => 655,
45
+ :defaults => {
46
+ 'REF01' => 'EI'
47
+ }
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,74 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2010BA < Hippo::TransactionSets::Base
5
+ loop_name 'L2010BA' #Subscriber Name
6
+
7
+ #Subscriber Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Subscriber Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 150,
13
+ :defaults => {
14
+ 'NM101' => 'IL'
15
+ }
16
+
17
+ #Subscriber Address
18
+ segment Hippo::Segments::N3,
19
+ :name => 'Subscriber Address',
20
+ :minimum => 0,
21
+ :maximum => 1,
22
+ :position => 250
23
+
24
+ #Subscriber City, State, ZIP Code
25
+ segment Hippo::Segments::N4,
26
+ :name => 'Subscriber City, State, ZIP Code',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 300
30
+
31
+ #Subscriber Demographic Information
32
+ segment Hippo::Segments::DMG,
33
+ :name => 'Subscriber Demographic Information',
34
+ :minimum => 0,
35
+ :maximum => 1,
36
+ :position => 320,
37
+ :defaults => {
38
+ 'DMG01' => 'D8'
39
+ }
40
+
41
+ #Subscriber Secondary Identification
42
+ segment Hippo::Segments::REF,
43
+ :name => 'Subscriber Secondary Identification',
44
+ :minimum => 0,
45
+ :maximum => 1,
46
+ :position => 350,
47
+ :defaults => {
48
+ 'REF01' => 'SY'
49
+ }
50
+
51
+ #Property and Casualty Claim Number
52
+ segment Hippo::Segments::REF,
53
+ :name => 'Property and Casualty Claim Number',
54
+ :minimum => 0,
55
+ :maximum => 1,
56
+ :position => 360,
57
+ :defaults => {
58
+ 'REF01' => 'Y4'
59
+ }
60
+
61
+ #Property and Casualty Subscriber Contact Information
62
+ segment Hippo::Segments::PER,
63
+ :name => 'Property and Casualty Subscriber Contact Information',
64
+ :minimum => 0,
65
+ :maximum => 1,
66
+ :position => 400,
67
+ :defaults => {
68
+ 'PER01' => 'IC',
69
+ 'PER03' => 'TE'
70
+ }
71
+
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,48 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2010BB < Hippo::TransactionSets::Base
5
+ loop_name 'L2010BB' #Payer Name
6
+
7
+ #Payer Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Payer Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 150,
13
+ :defaults => {
14
+ 'NM101' => 'PR',
15
+ 'NM102' => '2'
16
+ }
17
+
18
+ #Payer Address
19
+ segment Hippo::Segments::N3,
20
+ :name => 'Payer Address',
21
+ :minimum => 0,
22
+ :maximum => 1,
23
+ :position => 250
24
+
25
+ #Payer City, State, ZIP Code
26
+ segment Hippo::Segments::N4,
27
+ :name => 'Payer City, State, ZIP Code',
28
+ :minimum => 0,
29
+ :maximum => 1,
30
+ :position => 300
31
+
32
+ #Payer Secondary Identification
33
+ segment Hippo::Segments::REF,
34
+ :name => 'Payer Secondary Identification',
35
+ :minimum => 0,
36
+ :maximum => 3,
37
+ :position => 350
38
+
39
+ #Billing Provider Secondary Identification
40
+ segment Hippo::Segments::REF,
41
+ :name => 'Billing Provider Secondary Identification',
42
+ :minimum => 0,
43
+ :maximum => 2,
44
+ :position => 370
45
+
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,72 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_837
3
+
4
+ class L2010CA < Hippo::TransactionSets::Base
5
+ loop_name 'L2010CA' #Patient Name
6
+
7
+ #Patient Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Patient Name',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 150,
13
+ :defaults => {
14
+ 'NM101' => 'QC',
15
+ 'NM102' => '1'
16
+ }
17
+
18
+ #Patient Address
19
+ segment Hippo::Segments::N3,
20
+ :name => 'Patient Address',
21
+ :minimum => 1,
22
+ :maximum => 1,
23
+ :position => 250
24
+
25
+ #Patient City, State, ZIP Code
26
+ segment Hippo::Segments::N4,
27
+ :name => 'Patient City, State, ZIP Code',
28
+ :minimum => 1,
29
+ :maximum => 1,
30
+ :position => 300
31
+
32
+ #Patient Demographic Information
33
+ segment Hippo::Segments::DMG,
34
+ :name => 'Patient Demographic Information',
35
+ :minimum => 1,
36
+ :maximum => 1,
37
+ :position => 320,
38
+ :defaults => {
39
+ 'DMG01' => 'D8'
40
+ }
41
+
42
+ #Property and Casualty Claim Number
43
+ segment Hippo::Segments::REF,
44
+ :name => 'Property and Casualty Claim Number',
45
+ :minimum => 0,
46
+ :maximum => 1,
47
+ :position => 360,
48
+ :defaults => {
49
+ 'REF01' => 'Y4'
50
+ }
51
+
52
+ #Property and Casualty Patient Identifier
53
+ segment Hippo::Segments::REF,
54
+ :name => 'Property and Casualty Patient Identifier',
55
+ :minimum => 0,
56
+ :maximum => 1,
57
+ :position => 362
58
+
59
+ #Property and Casualty Patient Contact Information
60
+ segment Hippo::Segments::PER,
61
+ :name => 'Property and Casualty Patient Contact Information',
62
+ :minimum => 0,
63
+ :maximum => 1,
64
+ :position => 400,
65
+ :defaults => {
66
+ 'PER01' => 'IC',
67
+ 'PER03' => 'TE'
68
+ }
69
+
70
+ end
71
+ end
72
+ end