hippo 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/CHANGELOG +4 -5
  2. data/README.md +10 -5
  3. data/lib/hippo/parser.rb +19 -9
  4. data/lib/hippo/transaction_sets/HIPAA_276/L2000A.rb +7 -3
  5. data/lib/hippo/transaction_sets/HIPAA_276/L2000B.rb +7 -3
  6. data/lib/hippo/transaction_sets/HIPAA_276/L2000C.rb +7 -3
  7. data/lib/hippo/transaction_sets/HIPAA_276/L2000D.rb +15 -8
  8. data/lib/hippo/transaction_sets/HIPAA_276/L2000E.rb +12 -7
  9. data/lib/hippo/transaction_sets/HIPAA_276/L2100A.rb +3 -2
  10. data/lib/hippo/transaction_sets/HIPAA_276/L2100B.rb +2 -1
  11. data/lib/hippo/transaction_sets/HIPAA_276/L2100C.rb +4 -2
  12. data/lib/hippo/transaction_sets/HIPAA_276/L2100D.rb +4 -2
  13. data/lib/hippo/transaction_sets/HIPAA_276/L2100E.rb +1 -1
  14. data/lib/hippo/transaction_sets/HIPAA_276/L2200D.rb +13 -12
  15. data/lib/hippo/transaction_sets/HIPAA_276/L2200E.rb +13 -12
  16. data/lib/hippo/transaction_sets/HIPAA_276/L2210D.rb +4 -3
  17. data/lib/hippo/transaction_sets/HIPAA_276/L2210E.rb +4 -3
  18. data/lib/hippo/transaction_sets/HIPAA_276/base.rb +31 -27
  19. data/lib/hippo/transaction_sets/HIPAA_277/L2000A.rb +11 -4
  20. data/lib/hippo/transaction_sets/HIPAA_277/L2000B.rb +13 -6
  21. data/lib/hippo/transaction_sets/HIPAA_277/L2000C.rb +13 -6
  22. data/lib/hippo/transaction_sets/HIPAA_277/L2000D.rb +12 -6
  23. data/lib/hippo/transaction_sets/HIPAA_277/L2000E.rb +11 -6
  24. data/lib/hippo/transaction_sets/HIPAA_277/L2100A.rb +4 -2
  25. data/lib/hippo/transaction_sets/HIPAA_277/L2100B.rb +2 -1
  26. data/lib/hippo/transaction_sets/HIPAA_277/L2100C.rb +4 -2
  27. data/lib/hippo/transaction_sets/HIPAA_277/L2100D.rb +3 -2
  28. data/lib/hippo/transaction_sets/HIPAA_277/L2100E.rb +1 -1
  29. data/lib/hippo/transaction_sets/HIPAA_277/L2200A.rb +3 -3
  30. data/lib/hippo/transaction_sets/HIPAA_277/L2200B.rb +10 -7
  31. data/lib/hippo/transaction_sets/HIPAA_277/L2200C.rb +14 -8
  32. data/lib/hippo/transaction_sets/HIPAA_277/L2200D.rb +13 -9
  33. data/lib/hippo/transaction_sets/HIPAA_277/L2200E.rb +12 -11
  34. data/lib/hippo/transaction_sets/HIPAA_277/L2220D.rb +7 -6
  35. data/lib/hippo/transaction_sets/HIPAA_277/L2220E.rb +5 -4
  36. data/lib/hippo/transaction_sets/HIPAA_277/base.rb +23 -20
  37. data/lib/hippo/transaction_sets/HIPAA_835/L1000A.rb +9 -6
  38. data/lib/hippo/transaction_sets/HIPAA_835/L1000B.rb +12 -5
  39. data/lib/hippo/transaction_sets/HIPAA_835/L2000.rb +6 -2
  40. data/lib/hippo/transaction_sets/HIPAA_835/L2100.rb +55 -24
  41. data/lib/hippo/transaction_sets/HIPAA_835/L2110.rb +30 -9
  42. data/lib/hippo/transaction_sets/HIPAA_835/base.rb +23 -13
  43. data/lib/hippo/transaction_sets/HIPAA_837/L1000A.rb +5 -3
  44. data/lib/hippo/transaction_sets/HIPAA_837/L1000B.rb +1 -1
  45. data/lib/hippo/transaction_sets/HIPAA_837/L2000A.rb +30 -9
  46. data/lib/hippo/transaction_sets/HIPAA_837/L2000B.rb +42 -7
  47. data/lib/hippo/transaction_sets/HIPAA_837/L2000C.rb +17 -5
  48. data/lib/hippo/transaction_sets/HIPAA_837/L2010AA.rb +14 -6
  49. data/lib/hippo/transaction_sets/HIPAA_837/L2010AB.rb +3 -2
  50. data/lib/hippo/transaction_sets/HIPAA_837/L2010AC.rb +8 -4
  51. data/lib/hippo/transaction_sets/HIPAA_837/L2010BA.rb +9 -7
  52. data/lib/hippo/transaction_sets/HIPAA_837/L2010BB.rb +11 -4
  53. data/lib/hippo/transaction_sets/HIPAA_837/L2010CA.rb +10 -6
  54. data/lib/hippo/transaction_sets/HIPAA_837/L2300.rb +116 -56
  55. data/lib/hippo/transaction_sets/HIPAA_837/L2310A.rb +6 -2
  56. data/lib/hippo/transaction_sets/HIPAA_837/L2310B.rb +8 -4
  57. data/lib/hippo/transaction_sets/HIPAA_837/L2310C.rb +6 -3
  58. data/lib/hippo/transaction_sets/HIPAA_837/L2310D.rb +5 -2
  59. data/lib/hippo/transaction_sets/HIPAA_837/L2310E.rb +1 -1
  60. data/lib/hippo/transaction_sets/HIPAA_837/L2310F.rb +1 -1
  61. data/lib/hippo/transaction_sets/HIPAA_837/L2320.rb +54 -19
  62. data/lib/hippo/transaction_sets/HIPAA_837/L2330A.rb +5 -3
  63. data/lib/hippo/transaction_sets/HIPAA_837/L2330B.rb +12 -8
  64. data/lib/hippo/transaction_sets/HIPAA_837/L2330C.rb +6 -2
  65. data/lib/hippo/transaction_sets/HIPAA_837/L2330D.rb +7 -3
  66. data/lib/hippo/transaction_sets/HIPAA_837/L2330E.rb +5 -2
  67. data/lib/hippo/transaction_sets/HIPAA_837/L2330F.rb +5 -2
  68. data/lib/hippo/transaction_sets/HIPAA_837/L2330G.rb +7 -3
  69. data/lib/hippo/transaction_sets/HIPAA_837/L2400.rb +122 -60
  70. data/lib/hippo/transaction_sets/HIPAA_837/L2410.rb +8 -2
  71. data/lib/hippo/transaction_sets/HIPAA_837/L2420A.rb +8 -4
  72. data/lib/hippo/transaction_sets/HIPAA_837/L2420B.rb +7 -3
  73. data/lib/hippo/transaction_sets/HIPAA_837/L2420C.rb +5 -2
  74. data/lib/hippo/transaction_sets/HIPAA_837/L2420D.rb +5 -2
  75. data/lib/hippo/transaction_sets/HIPAA_837/L2420E.rb +8 -4
  76. data/lib/hippo/transaction_sets/HIPAA_837/L2420F.rb +6 -2
  77. data/lib/hippo/transaction_sets/HIPAA_837/L2420G.rb +1 -1
  78. data/lib/hippo/transaction_sets/HIPAA_837/L2420H.rb +1 -1
  79. data/lib/hippo/transaction_sets/HIPAA_837/L2430.rb +6 -3
  80. data/lib/hippo/transaction_sets/HIPAA_837/L2440.rb +4 -1
  81. data/lib/hippo/transaction_sets/HIPAA_837/base.rb +23 -32
  82. data/lib/hippo/transaction_sets/HIPAA_999/L2000AK2.rb +9 -3
  83. data/lib/hippo/transaction_sets/HIPAA_999/L2100AK2.rb +9 -3
  84. data/lib/hippo/transaction_sets/HIPAA_999/L2110AK2.rb +4 -1
  85. data/lib/hippo/transaction_sets/HIPAA_999/base.rb +6 -3
  86. data/lib/hippo/transaction_sets/base.rb +87 -72
  87. data/lib/hippo/transaction_sets/component.rb +80 -0
  88. data/lib/hippo/transaction_sets/repeating_component.rb +30 -0
  89. data/lib/hippo/transaction_sets.rb +8 -6
  90. data/lib/hippo/version.rb +1 -1
  91. data/samples/005010X221A1_business_scenario_1.edi +1 -0
  92. data/samples/005010X221A1_tmhp_example.edi +1 -0
  93. data/samples/005010X222A1_anesthesia.edi +1 -0
  94. data/samples/005010X222A1_commercial_health_insurance.edi +1 -0
  95. data/test/test_helper.rb +6 -6
  96. data/test/test_hipaa_835.rb +229 -0
  97. data/test/test_hipaa_837.rb +263 -63
  98. data/test/test_parser.rb +26 -0
  99. data/test/test_segments_base.rb +1 -1
  100. data/test/test_transaction_sets_base.rb +21 -1
  101. metadata +17 -16
  102. data/bin/demo_270.rb +0 -280
  103. data/bin/demo_276.rb +0 -296
  104. data/bin/demo_835.rb +0 -170
  105. data/lib/hippo/samples/835.edi +0 -88
  106. data/lib/hippo/samples/sample_835_with.rb +0 -272
  107. data/lib/hippo/samples/sample_parsed.rb +0 -1162
@@ -15,9 +15,9 @@ module Hippo::TransactionSets
15
15
  segment Hippo::Segments::STC,
16
16
  :name => 'Service Line Level Status Information',
17
17
  :minimum => 1,
18
- :maximum => nil,
18
+ :maximum => 99999,
19
19
  :position => 1900,
20
- :defaults => {
20
+ :identified_by => {
21
21
  'STC03' => 'U'
22
22
  }
23
23
 
@@ -27,7 +27,7 @@ module Hippo::TransactionSets
27
27
  :minimum => 1,
28
28
  :maximum => 1,
29
29
  :position => 2000,
30
- :defaults => {
30
+ :identified_by => {
31
31
  'REF01' => 'FJ'
32
32
  }
33
33
 
@@ -37,7 +37,7 @@ module Hippo::TransactionSets
37
37
  :minimum => 0,
38
38
  :maximum => 1,
39
39
  :position => 2010,
40
- :defaults => {
40
+ :identified_by => {
41
41
  'REF01' => 'XZ'
42
42
  }
43
43
 
@@ -47,8 +47,9 @@ module Hippo::TransactionSets
47
47
  :minimum => 0,
48
48
  :maximum => 1,
49
49
  :position => 2100,
50
- :defaults => {
51
- 'DTP01' => '472'
50
+ :identified_by => {
51
+ 'DTP01' => '472',
52
+ 'DTP02' => ["D8", "RD8"]
52
53
  }
53
54
 
54
55
  end
@@ -15,7 +15,7 @@ module Hippo::TransactionSets
15
15
  segment Hippo::Segments::STC,
16
16
  :name => 'Service Line Status Information',
17
17
  :minimum => 1,
18
- :maximum => nil,
18
+ :maximum => 99999,
19
19
  :position => 1900
20
20
 
21
21
  #Service Line Item Identification
@@ -24,7 +24,7 @@ module Hippo::TransactionSets
24
24
  :minimum => 0,
25
25
  :maximum => 1,
26
26
  :position => 2000,
27
- :defaults => {
27
+ :identified_by => {
28
28
  'REF01' => 'FJ'
29
29
  }
30
30
 
@@ -34,8 +34,9 @@ module Hippo::TransactionSets
34
34
  :minimum => 1,
35
35
  :maximum => 1,
36
36
  :position => 2100,
37
- :defaults => {
38
- 'DTP01' => '472'
37
+ :identified_by => {
38
+ 'DTP01' => '472',
39
+ 'DTP02' => ["D8", "RD8"]
39
40
  }
40
41
 
41
42
  end
@@ -9,7 +9,7 @@ module Hippo::TransactionSets
9
9
  :minimum => 1,
10
10
  :maximum => 1,
11
11
  :position => 100,
12
- :defaults => {
12
+ :identified_by => {
13
13
  'ST01' => '277'
14
14
  }
15
15
 
@@ -19,7 +19,7 @@ module Hippo::TransactionSets
19
19
  :minimum => 1,
20
20
  :maximum => 1,
21
21
  :position => 200,
22
- :defaults => {
22
+ :identified_by => {
23
23
  'BHT01' => '0085',
24
24
  'BHT02' => '08',
25
25
  'BHT06' => 'TH'
@@ -28,42 +28,45 @@ module Hippo::TransactionSets
28
28
  #Information Source Level
29
29
  loop Hippo::TransactionSets::HIPAA_277::L2000A,
30
30
  :name => 'Information Source Level',
31
- :identified_by => {
32
- 'HL.HL03' => '20'
33
- },
34
31
  :minimum => 1,
35
32
  :maximum => 1,
36
- :position => 100
33
+ :position => 100,
34
+ :identified_by => {
35
+ 'HL.HL03' => '20',
36
+ 'HL.HL04' => '1'
37
+ }
37
38
 
38
39
  #Information Receiver Level
39
40
  loop Hippo::TransactionSets::HIPAA_277::L2000B,
40
41
  :name => 'Information Receiver Level',
41
- :identified_by => {
42
- 'HL.HL03' => '21'
43
- },
44
42
  :minimum => 1,
45
43
  :maximum => 1,
46
- :position => 100
44
+ :position => 100,
45
+ :identified_by => {
46
+ 'HL.HL03' => '21',
47
+ 'HL.HL04' => ["0", "1"]
48
+ }
47
49
 
48
50
  #Billing Provider of Service Level
49
51
  loop Hippo::TransactionSets::HIPAA_277::L2000C,
50
52
  :name => 'Billing Provider of Service Level',
51
- :identified_by => {
52
- 'HL.HL03' => '19'
53
- },
54
53
  :minimum => 0,
55
- :maximum => nil,
56
- :position => 100
54
+ :maximum => 99999,
55
+ :position => 100,
56
+ :identified_by => {
57
+ 'HL.HL03' => '19',
58
+ 'HL.HL04' => ["0", "1"]
59
+ }
57
60
 
58
61
  #Patient Level
59
62
  loop Hippo::TransactionSets::HIPAA_277::L2000D,
60
63
  :name => 'Patient Level',
61
- :identified_by => {
62
- 'HL.HL03' => 'PT'
63
- },
64
64
  :minimum => 0,
65
- :maximum => nil,
66
- :position => 100
65
+ :maximum => 99999,
66
+ :position => 100,
67
+ :identified_by => {
68
+ 'HL.HL03' => 'PT'
69
+ }
67
70
 
68
71
  #Transaction Set Trailer
69
72
  segment Hippo::Segments::SE,
@@ -10,7 +10,7 @@ module Hippo::TransactionSets
10
10
  :minimum => 1,
11
11
  :maximum => 1,
12
12
  :position => 800,
13
- :defaults => {
13
+ :identified_by => {
14
14
  'N101' => 'PR'
15
15
  }
16
16
 
@@ -33,7 +33,10 @@ module Hippo::TransactionSets
33
33
  :name => 'Additional Payer Identification',
34
34
  :minimum => 0,
35
35
  :maximum => 4,
36
- :position => 1200
36
+ :position => 1200,
37
+ :identified_by => {
38
+ 'REF01' => ["2U", "EO", "HI", "NF"]
39
+ }
37
40
 
38
41
  #Payer Business Contact Information
39
42
  segment Hippo::Segments::PER,
@@ -41,7 +44,7 @@ module Hippo::TransactionSets
41
44
  :minimum => 0,
42
45
  :maximum => 1,
43
46
  :position => 1300,
44
- :defaults => {
47
+ :identified_by => {
45
48
  'PER01' => 'CX'
46
49
  }
47
50
 
@@ -49,9 +52,9 @@ module Hippo::TransactionSets
49
52
  segment Hippo::Segments::PER,
50
53
  :name => 'Payer Technical Contact Information',
51
54
  :minimum => 1,
52
- :maximum => nil,
55
+ :maximum => 99999,
53
56
  :position => 1303,
54
- :defaults => {
57
+ :identified_by => {
55
58
  'PER01' => 'BL'
56
59
  }
57
60
 
@@ -61,7 +64,7 @@ module Hippo::TransactionSets
61
64
  :minimum => 0,
62
65
  :maximum => 1,
63
66
  :position => 1305,
64
- :defaults => {
67
+ :identified_by => {
65
68
  'PER01' => 'IC',
66
69
  'PER03' => 'UR'
67
70
  }
@@ -10,8 +10,9 @@ module Hippo::TransactionSets
10
10
  :minimum => 1,
11
11
  :maximum => 1,
12
12
  :position => 1400,
13
- :defaults => {
14
- 'N101' => 'PE'
13
+ :identified_by => {
14
+ 'N101' => 'PE',
15
+ 'N103' => ["FI", "XV", "XX"]
15
16
  }
16
17
 
17
18
  #Payee Address
@@ -32,15 +33,21 @@ module Hippo::TransactionSets
32
33
  segment Hippo::Segments::REF,
33
34
  :name => 'Payee Additional Identification',
34
35
  :minimum => 0,
35
- :maximum => nil,
36
- :position => 1800
36
+ :maximum => 99999,
37
+ :position => 1800,
38
+ :identified_by => {
39
+ 'REF01' => ["0B", "D3", "PQ", "TJ"]
40
+ }
37
41
 
38
42
  #Remittance Delivery Method
39
43
  segment Hippo::Segments::RDM,
40
44
  :name => 'Remittance Delivery Method',
41
45
  :minimum => 0,
42
46
  :maximum => 1,
43
- :position => 2000
47
+ :position => 2000,
48
+ :identified_by => {
49
+ 'RDM01' => ["BM", "EM", "FT", "OL"]
50
+ }
44
51
 
45
52
  end
46
53
  end
@@ -29,8 +29,12 @@ module Hippo::TransactionSets
29
29
  loop Hippo::TransactionSets::HIPAA_835::L2100,
30
30
  :name => 'Claim Payment Information',
31
31
  :minimum => 1,
32
- :maximum => nil,
33
- :position => 100
32
+ :maximum => 99999,
33
+ :position => 100,
34
+ :identified_by => {
35
+ 'CLP.CLP02' => ["1", "2", "3", "4", "19", "20", "21", "22", "23", "25"],
36
+ 'CLP.CLP06' => ["12", "13", "14", "15", "16", "17", "AM", "CH", "DS", "HM", "LM", "MA", "MB", "MC", "OF", "TV", "VA", "WC", "ZZ"]
37
+ }
34
38
 
35
39
  end
36
40
  end
@@ -9,14 +9,21 @@ module Hippo::TransactionSets
9
9
  :name => 'Claim Payment Information',
10
10
  :minimum => 1,
11
11
  :maximum => 1,
12
- :position => 100
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'CLP02' => ["1", "2", "3", "4", "19", "20", "21", "22", "23", "25"],
15
+ 'CLP06' => ["12", "13", "14", "15", "16", "17", "AM", "CH", "DS", "HM", "LM", "MA", "MB", "MC", "OF", "TV", "VA", "WC", "ZZ"]
16
+ }
13
17
 
14
18
  #Claim Adjustment
15
19
  segment Hippo::Segments::CAS,
16
20
  :name => 'Claim Adjustment',
17
21
  :minimum => 0,
18
22
  :maximum => 99,
19
- :position => 200
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'CAS01' => ["CO", "OA", "PI", "PR"]
26
+ }
20
27
 
21
28
  #Patient Name
22
29
  segment Hippo::Segments::NM1,
@@ -24,7 +31,7 @@ module Hippo::TransactionSets
24
31
  :minimum => 1,
25
32
  :maximum => 1,
26
33
  :position => 290,
27
- :defaults => {
34
+ :identified_by => {
28
35
  'NM101' => 'QC',
29
36
  'NM102' => '1'
30
37
  }
@@ -35,8 +42,10 @@ module Hippo::TransactionSets
35
42
  :minimum => 0,
36
43
  :maximum => 1,
37
44
  :position => 300,
38
- :defaults => {
39
- 'NM101' => 'IL'
45
+ :identified_by => {
46
+ 'NM101' => 'IL',
47
+ 'NM102' => ["1", "2"],
48
+ 'NM108' => ["FI", "II", "MI"]
40
49
  }
41
50
 
42
51
  #Corrected Patient/Insured Name
@@ -45,8 +54,9 @@ module Hippo::TransactionSets
45
54
  :minimum => 0,
46
55
  :maximum => 1,
47
56
  :position => 310,
48
- :defaults => {
49
- 'NM101' => '74'
57
+ :identified_by => {
58
+ 'NM101' => '74',
59
+ 'NM102' => ["1", "2"]
50
60
  }
51
61
 
52
62
  #Service Provider Name
@@ -55,8 +65,10 @@ module Hippo::TransactionSets
55
65
  :minimum => 0,
56
66
  :maximum => 1,
57
67
  :position => 320,
58
- :defaults => {
59
- 'NM101' => '82'
68
+ :identified_by => {
69
+ 'NM101' => '82',
70
+ 'NM102' => ["1", "2"],
71
+ 'NM108' => ["BD", "BS", "FI", "MC", "PC", "SL", "UP", "XX"]
60
72
  }
61
73
 
62
74
  #Crossover Carrier Name
@@ -65,9 +77,10 @@ module Hippo::TransactionSets
65
77
  :minimum => 0,
66
78
  :maximum => 1,
67
79
  :position => 330,
68
- :defaults => {
80
+ :identified_by => {
69
81
  'NM101' => 'TT',
70
- 'NM102' => '2'
82
+ 'NM102' => '2',
83
+ 'NM108' => ["AD", "FI", "NI", "PI", "PP", "XV"]
71
84
  }
72
85
 
73
86
  #Corrected Priority Payer Name
@@ -76,9 +89,10 @@ module Hippo::TransactionSets
76
89
  :minimum => 0,
77
90
  :maximum => 1,
78
91
  :position => 340,
79
- :defaults => {
92
+ :identified_by => {
80
93
  'NM101' => 'PR',
81
- 'NM102' => '2'
94
+ 'NM102' => '2',
95
+ 'NM108' => ["AD", "FI", "NI", "PI", "PP", "XV"]
82
96
  }
83
97
 
84
98
  #Other Subscriber Name
@@ -87,8 +101,9 @@ module Hippo::TransactionSets
87
101
  :minimum => 0,
88
102
  :maximum => 1,
89
103
  :position => 350,
90
- :defaults => {
91
- 'NM101' => 'GB'
104
+ :identified_by => {
105
+ 'NM101' => 'GB',
106
+ 'NM102' => ["1", "2"]
92
107
  }
93
108
 
94
109
  #Inpatient Adjudication Information
@@ -110,21 +125,30 @@ module Hippo::TransactionSets
110
125
  :name => 'Other Claim Related Identification',
111
126
  :minimum => 0,
112
127
  :maximum => 5,
113
- :position => 400
128
+ :position => 400,
129
+ :identified_by => {
130
+ 'REF01' => ["1L", "1W", "28", "6P", "9A", "9C", "BB", "CE", "EA", "F8", "G1", "G3", "IG", "SY"]
131
+ }
114
132
 
115
133
  #Rendering Provider Identification
116
134
  segment Hippo::Segments::REF,
117
135
  :name => 'Rendering Provider Identification',
118
136
  :minimum => 0,
119
137
  :maximum => 10,
120
- :position => 450
138
+ :position => 450,
139
+ :identified_by => {
140
+ 'REF01' => ["0B", "1A", "1B", "1C", "1D", "1G", "1H", "1J", "D3", "G2", "LU"]
141
+ }
121
142
 
122
143
  #Statement From or To Date
123
144
  segment Hippo::Segments::DTM,
124
145
  :name => 'Statement From or To Date',
125
146
  :minimum => 0,
126
147
  :maximum => 2,
127
- :position => 500
148
+ :position => 500,
149
+ :identified_by => {
150
+ 'DTM01' => ["232", "233"]
151
+ }
128
152
 
129
153
  #Coverage Expiration Date
130
154
  segment Hippo::Segments::DTM,
@@ -132,7 +156,7 @@ module Hippo::TransactionSets
132
156
  :minimum => 0,
133
157
  :maximum => 1,
134
158
  :position => 505,
135
- :defaults => {
159
+ :identified_by => {
136
160
  'DTM01' => '036'
137
161
  }
138
162
 
@@ -142,7 +166,7 @@ module Hippo::TransactionSets
142
166
  :minimum => 0,
143
167
  :maximum => 1,
144
168
  :position => 510,
145
- :defaults => {
169
+ :identified_by => {
146
170
  'DTM01' => '050'
147
171
  }
148
172
 
@@ -152,8 +176,9 @@ module Hippo::TransactionSets
152
176
  :minimum => 0,
153
177
  :maximum => 2,
154
178
  :position => 600,
155
- :defaults => {
156
- 'PER01' => 'CX'
179
+ :identified_by => {
180
+ 'PER01' => 'CX',
181
+ 'PER03' => ["EM", "FX", "TE"]
157
182
  }
158
183
 
159
184
  #Claim Supplemental Information
@@ -161,14 +186,20 @@ module Hippo::TransactionSets
161
186
  :name => 'Claim Supplemental Information',
162
187
  :minimum => 0,
163
188
  :maximum => 13,
164
- :position => 620
189
+ :position => 620,
190
+ :identified_by => {
191
+ 'AMT01' => ["AU", "D8", "DY", "F5", "I", "NL", "T", "T2", "ZK", "ZL", "ZM", "ZN", "ZO"]
192
+ }
165
193
 
166
194
  #Claim Supplemental Information Quantity
167
195
  segment Hippo::Segments::QTY,
168
196
  :name => 'Claim Supplemental Information Quantity',
169
197
  :minimum => 0,
170
198
  :maximum => 14,
171
- :position => 640
199
+ :position => 640,
200
+ :identified_by => {
201
+ 'QTY01' => ["CA", "CD", "LA", "LE", "NE", "NR", "OU", "PS", "VS", "ZK", "ZL", "ZM", "ZN", "ZO"]
202
+ }
172
203
 
173
204
  #Service Payment Information
174
205
  loop Hippo::TransactionSets::HIPAA_835::L2110,
@@ -16,21 +16,30 @@ module Hippo::TransactionSets
16
16
  :name => 'Service Date',
17
17
  :minimum => 0,
18
18
  :maximum => 2,
19
- :position => 800
19
+ :position => 800,
20
+ :identified_by => {
21
+ 'DTM01' => ["150", "151", "472"]
22
+ }
20
23
 
21
24
  #Service Adjustment
22
25
  segment Hippo::Segments::CAS,
23
26
  :name => 'Service Adjustment',
24
27
  :minimum => 0,
25
28
  :maximum => 99,
26
- :position => 900
29
+ :position => 900,
30
+ :identified_by => {
31
+ 'CAS01' => ["CO", "OA", "PI", "PR"]
32
+ }
27
33
 
28
34
  #Service Identification
29
35
  segment Hippo::Segments::REF,
30
36
  :name => 'Service Identification',
31
37
  :minimum => 0,
32
38
  :maximum => 8,
33
- :position => 1000
39
+ :position => 1000,
40
+ :identified_by => {
41
+ 'REF01' => ["1S", "APC", "BB", "E9", "G1", "G3", "LU", "RB"]
42
+ }
34
43
 
35
44
  #Line Item Control Number
36
45
  segment Hippo::Segments::REF,
@@ -38,7 +47,7 @@ module Hippo::TransactionSets
38
47
  :minimum => 0,
39
48
  :maximum => 1,
40
49
  :position => 1010,
41
- :defaults => {
50
+ :identified_by => {
42
51
  'REF01' => '6R'
43
52
  }
44
53
 
@@ -47,7 +56,10 @@ module Hippo::TransactionSets
47
56
  :name => 'Rendering Provider Information',
48
57
  :minimum => 0,
49
58
  :maximum => 10,
50
- :position => 1050
59
+ :position => 1050,
60
+ :identified_by => {
61
+ 'REF01' => ["0B", "1A", "1B", "1C", "1D", "1G", "1H", "1J", "D3", "G2", "HPI", "SY", "TJ"]
62
+ }
51
63
 
52
64
  #HealthCare Policy Identification
53
65
  segment Hippo::Segments::REF,
@@ -55,7 +67,7 @@ module Hippo::TransactionSets
55
67
  :minimum => 0,
56
68
  :maximum => 5,
57
69
  :position => 1060,
58
- :defaults => {
70
+ :identified_by => {
59
71
  'REF01' => '0K'
60
72
  }
61
73
 
@@ -64,21 +76,30 @@ module Hippo::TransactionSets
64
76
  :name => 'Service Supplemental Amount',
65
77
  :minimum => 0,
66
78
  :maximum => 9,
67
- :position => 1100
79
+ :position => 1100,
80
+ :identified_by => {
81
+ 'AMT01' => ["B6", "KH", "T", "T2", "ZK", "ZL", "ZM", "ZN", "ZO"]
82
+ }
68
83
 
69
84
  #Service Supplemental Quantity
70
85
  segment Hippo::Segments::QTY,
71
86
  :name => 'Service Supplemental Quantity',
72
87
  :minimum => 0,
73
88
  :maximum => 6,
74
- :position => 1200
89
+ :position => 1200,
90
+ :identified_by => {
91
+ 'QTY01' => ["ZK", "ZL", "ZM", "ZN", "ZO"]
92
+ }
75
93
 
76
94
  #Health Care Remark Codes
77
95
  segment Hippo::Segments::LQ,
78
96
  :name => 'Health Care Remark Codes',
79
97
  :minimum => 0,
80
98
  :maximum => 99,
81
- :position => 1300
99
+ :position => 1300,
100
+ :identified_by => {
101
+ 'LQ01' => ["HE", "RX"]
102
+ }
82
103
 
83
104
  end
84
105
  end
@@ -9,7 +9,7 @@ module Hippo::TransactionSets
9
9
  :minimum => 1,
10
10
  :maximum => 1,
11
11
  :position => 100,
12
- :defaults => {
12
+ :identified_by => {
13
13
  'ST01' => '835'
14
14
  }
15
15
 
@@ -18,7 +18,12 @@ module Hippo::TransactionSets
18
18
  :name => 'Financial Information',
19
19
  :minimum => 1,
20
20
  :maximum => 1,
21
- :position => 200
21
+ :position => 200,
22
+ :identified_by => {
23
+ 'BPR01' => ["C", "D", "H", "I", "P", "U", "X"],
24
+ 'BPR03' => ["C", "D"],
25
+ 'BPR04' => ["ACH", "BOP", "CHK", "FWT", "NON"]
26
+ }
22
27
 
23
28
  #Reassociation Trace Number
24
29
  segment Hippo::Segments::TRN,
@@ -26,7 +31,7 @@ module Hippo::TransactionSets
26
31
  :minimum => 1,
27
32
  :maximum => 1,
28
33
  :position => 400,
29
- :defaults => {
34
+ :identified_by => {
30
35
  'TRN01' => '1'
31
36
  }
32
37
 
@@ -36,7 +41,7 @@ module Hippo::TransactionSets
36
41
  :minimum => 0,
37
42
  :maximum => 1,
38
43
  :position => 500,
39
- :defaults => {
44
+ :identified_by => {
40
45
  'CUR01' => 'PR'
41
46
  }
42
47
 
@@ -46,7 +51,7 @@ module Hippo::TransactionSets
46
51
  :minimum => 0,
47
52
  :maximum => 1,
48
53
  :position => 590,
49
- :defaults => {
54
+ :identified_by => {
50
55
  'REF01' => 'EV'
51
56
  }
52
57
 
@@ -56,7 +61,7 @@ module Hippo::TransactionSets
56
61
  :minimum => 0,
57
62
  :maximum => 1,
58
63
  :position => 600,
59
- :defaults => {
64
+ :identified_by => {
60
65
  'REF01' => 'F2'
61
66
  }
62
67
 
@@ -66,38 +71,43 @@ module Hippo::TransactionSets
66
71
  :minimum => 0,
67
72
  :maximum => 1,
68
73
  :position => 700,
69
- :defaults => {
74
+ :identified_by => {
70
75
  'DTM01' => '405'
71
76
  }
72
77
 
73
78
  #Payer Identification
74
79
  loop Hippo::TransactionSets::HIPAA_835::L1000A,
75
80
  :name => 'Payer Identification',
76
- :identified_by => {'N1.N101' => 'PR'},
77
81
  :minimum => 1,
78
82
  :maximum => 1,
79
- :position => 800
83
+ :position => 800,
84
+ :identified_by => {
85
+ 'N1.N101' => 'PR'
86
+ }
80
87
 
81
88
  #Payee Identification
82
89
  loop Hippo::TransactionSets::HIPAA_835::L1000B,
83
90
  :name => 'Payee Identification',
84
- :identified_by => {'N1.N101' => 'PE'},
85
91
  :minimum => 1,
86
92
  :maximum => 1,
87
- :position => 1400
93
+ :position => 1400,
94
+ :identified_by => {
95
+ 'N1.N101' => 'PE',
96
+ 'N1.N103' => ["FI", "XV", "XX"]
97
+ }
88
98
 
89
99
  #Header Number
90
100
  loop Hippo::TransactionSets::HIPAA_835::L2000,
91
101
  :name => 'Header Number',
92
102
  :minimum => 0,
93
- :maximum => nil,
103
+ :maximum => 99999,
94
104
  :position => 30
95
105
 
96
106
  #Provider Adjustment
97
107
  segment Hippo::Segments::PLB,
98
108
  :name => 'Provider Adjustment',
99
109
  :minimum => 0,
100
- :maximum => nil,
110
+ :maximum => 99999,
101
111
  :position => 100
102
112
 
103
113
  #Transaction Set Trailer