eligible 1.1 → 2.0

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.
data/README.md CHANGED
@@ -32,13 +32,13 @@ Include `{ :format => "X12" }` in the params hash to get back the raw X12 respon
32
32
  params = {
33
33
  :payer_name => "Aetna",
34
34
  :payer_id => "000001",
35
- :service_provider_last_name => "Last",
36
- :service_provider_first_name => "First",
37
- :service_provider_NPI => "12345678",
38
- :subscriber_id => "12345678",
39
- :subscriber_last_name => "Austen",
40
- :subscriber_first_name => "Jane",
41
- :subscriber_dob => "1955-12-14"
35
+ :provider_last_name => "Last",
36
+ :provider_first_name => "First",
37
+ :provider_npi => "12345678",
38
+ :member_id => "12345678",
39
+ :member_last_name => "Austen",
40
+ :member_first_name => "Jane",
41
+ :member_dob => "1955-12-14"
42
42
  }
43
43
 
44
44
  plan = Eligible::Plan.get(params)
@@ -53,13 +53,13 @@ plan.status # returns status fields on the plan, per the plan/status endpoint
53
53
  params = {
54
54
  :payer_name => "Aetna",
55
55
  :payer_id => "000001",
56
- :service_provider_last_name => "Last",
57
- :service_provider_first_name => "First",
58
- :service_provider_NPI => "12345678",
59
- :subscriber_id => "12345678",
60
- :subscriber_last_name => "Austen",
61
- :subscriber_first_name => "Jane",
62
- :subscriber_dob => "1955-12-14"
56
+ :provider_last_name => "Last",
57
+ :provider_first_name => "First",
58
+ :provider_npi => "12345678",
59
+ :member_id => "12345678",
60
+ :member_last_name => "Austen",
61
+ :member_first_name => "Jane",
62
+ :member_dob => "1955-12-14"
63
63
  }
64
64
 
65
65
  service = Eligible::Service.get(params)
@@ -78,13 +78,13 @@ json = Eligible::Service.list(params)
78
78
  params = {
79
79
  :payer_name => "Aetna",
80
80
  :payer_id => "000001",
81
- :service_provider_last_name => "Last",
82
- :service_provider_first_name => "First",
83
- :service_provider_NPI => "12345678",
84
- :subscriber_id => "12345678",
85
- :subscriber_last_name => "Austen",
86
- :subscriber_first_name => "Jane",
87
- :subscriber_dob => "1955-12-14"
81
+ :provider_last_name => "Last",
82
+ :provider_first_name => "First",
83
+ :provider_npi => "12345678",
84
+ :member_id => "12345678",
85
+ :member_last_name => "Austen",
86
+ :member_first_name => "Jane",
87
+ :member_dob => "1955-12-14"
88
88
  }
89
89
 
90
90
  demographic = Eligible::Demographic.get(params)
@@ -103,15 +103,15 @@ params = {
103
103
  :information_receiver_last_name => "Last",
104
104
  :information_receiver_first_name => "First",
105
105
  :information_receiver_etin => "12345678",
106
- :service_provider_organization_name => "Marshall Group",
107
- :service_provider_last_name => "Last",
108
- :service_provider_first_name => "First",
109
- :service_provider_npi => "12345678",
110
- :service_provider_tax_id => "12345678",
111
- :subscriber_id => "12345678",
112
- :subscriber_last_name => "Last",
113
- :subscriber_first_name => "First",
114
- :subscriber_dob => "1955-12-14",
106
+ :provider_organization_name => "Marshall Group",
107
+ :provider_last_name => "Last",
108
+ :provider_first_name => "First",
109
+ :provider_npi => "12345678",
110
+ :provider_tax_id => "12345678",
111
+ :member_id => "12345678",
112
+ :member_last_name => "Last",
113
+ :member_first_name => "First",
114
+ :member_dob => "1955-12-14",
115
115
  :dependent_last_name => "Last",
116
116
  :dependent_first_name => "First",
117
117
  :dependent_dob => "1975-12-14",
@@ -127,6 +127,196 @@ claim = Eligible::Claim.get(params)
127
127
  claim.status # Returns in real time the status (paid, not paid, rejected, denied, etc) of claim specified.
128
128
  ```
129
129
 
130
+ ### Post Enrollment object
131
+
132
+ ```ruby
133
+ params = {
134
+ "provider_list" => [
135
+ {
136
+ "facility_name" => "Quality",
137
+ "provider_name" => "Jane Austen",
138
+ "tax_id" => "12345678",
139
+ "address" => "125 Snow Shoe Road",
140
+ "city" => "Sacramento",
141
+ "state" => "CA",
142
+ "zip" => "94107",
143
+ "ptan" => "54321",
144
+ "npi" => "987654321"
145
+ },
146
+ {
147
+ "facility_name" => "Aetna",
148
+ "provider_name" => "Jack Austen",
149
+ "tax_id" => "12345678",
150
+ "address" => "985 Snow Shoe Road",
151
+ "city" => "Menlo Park",
152
+ "state" => "CA",
153
+ "zip" => "94107",
154
+ "ptan" => "54321",
155
+ "npi" => "987654321"
156
+ }
157
+ ],
158
+ "payer_ids" => [
159
+ "00431",
160
+ "00282"
161
+ ]
162
+ }
163
+
164
+ Eligible::Enrollment.post(params)
165
+ ```
166
+
167
+ ### Retrieve Enrollment object
168
+
169
+ ```ruby
170
+ params = { "enrollment_request_id" => "123" }
171
+
172
+ enrollment = Eligible::Enrollment.get(params)
173
+ enrollment.status # returns the status of the request to enroll the provider(s)
174
+ ```
175
+
176
+ ### Retrieve Coverage object
177
+
178
+ ```ruby
179
+ params = {
180
+ :service_type => "33",
181
+ :network => "OUT",
182
+ :payer_id => "000001",
183
+ :provider_last_name => "Last",
184
+ :provider_first_name => "First",
185
+ :provider_npi => "12345678",
186
+ :member_id => "12345678",
187
+ :member_last_name => "Austen",
188
+ :member_first_name => "Jane",
189
+ :member_dob => "1955-12-14"
190
+ }
191
+
192
+ coverage = Eligible::Coverage.get(params)
193
+ coverage.all # returns all coverage info for the request
194
+ ```
195
+
196
+ ### Post Claim object
197
+
198
+ ```ruby
199
+ params = {
200
+ "api_key": "asdfsdfsd21132ddsfsdfd",
201
+ "receiver": {
202
+ "name": "AETNA",
203
+ "id": "60054"
204
+ },
205
+ "billing_provider": {
206
+ "taxonomy_code": "332B00000X",
207
+ "practice_name": "Jane Austen Practice",
208
+ "npi": "1922222222",
209
+ "address": {
210
+ "street_line_1": "419 Fulton",
211
+ "street_line_2": "",
212
+ "city": "San Francisco",
213
+ "state": "CA",
214
+ "zip": "94102"
215
+ },
216
+ "tin": "43291023",
217
+ "insurance_provider_id": "129873210"
218
+ },
219
+ "pay_to_provider": {
220
+ "address": {
221
+ "street_line_1": "",
222
+ "street_line_2": "",
223
+ "city": "",
224
+ "state": "",
225
+ "zip": ""
226
+ }
227
+ },
228
+ "subscriber": {
229
+ "last_name": "Franklin",
230
+ "first_name": "Benjamin",
231
+ "member_id": "W2832032427",
232
+ "group_id": "455716",
233
+ "group_name": "none",
234
+ "dob": "1734-05-04",
235
+ "gender": "M",
236
+ "address": {
237
+ "street_line_1": "435 Sugar Lane",
238
+ "street_line_2": "",
239
+ "city": "Sweet",
240
+ "state": "OH",
241
+ "zip": "436233127"
242
+ }
243
+ },
244
+ "payer": {
245
+ "name": "AETNA",
246
+ "id": "60054",
247
+ "address": {
248
+ "street_line_1": "Po Box 981106",
249
+ "street_line_2": "",
250
+ "city": "El Paso",
251
+ "state": "TX",
252
+ "zip": "799981222"
253
+ }
254
+ },
255
+ "dependent": {
256
+ "relationship": "",
257
+ "last_name": "",
258
+ "first_name": "",
259
+ "dob": "",
260
+ "gender": "",
261
+ "address": {
262
+ "street_line_1": "",
263
+ "street_line_2": "",
264
+ "city": "",
265
+ "state": "",
266
+ "zip": ""
267
+ }
268
+ },
269
+ "claim": {
270
+ "claim_number": "412",
271
+ "total_charge_amount": "275",
272
+ "claim_frequency": "1",
273
+ "patient_signature_on_file": "Y",
274
+ "provider_plan_participation": "A",
275
+ "direct_payment_authorized": "Y",
276
+ "release_of_information": "I",
277
+ "service_lines": [
278
+ {
279
+ "line_number": "1",
280
+ "place_of_service": "11",
281
+ "charge_amount": "275",
282
+ "product_service": "99213",
283
+ "qualifier": "HC",
284
+ "description": "",
285
+ "modifier_1": "",
286
+ "modifier_2": "",
287
+ "modifier_3": "",
288
+ "modifier_4": "",
289
+ "diagnosis_1": "32723",
290
+ "diagnosis_2": "",
291
+ "diagnosis_3": "",
292
+ "diagnosis_4": "",
293
+ "service_start": "2013-03-07",
294
+ "service_end": "2013-03-07",
295
+ "authorization_code": ""
296
+ }
297
+ ]
298
+ }
299
+ }
300
+
301
+ Eligible::Claim.post(params)
302
+ ```
303
+
304
+ ### Retrieve all Claim objects/acknowledgments
305
+
306
+ ```ruby
307
+ claims = Eligible::Claim.all # returns status information for all claims that have been submitted with the API key
308
+ ```
309
+
310
+ ### Retrieve individual Claim object/acknowledgment
311
+
312
+ ```ruby
313
+ params = {
314
+ :response_id => "12345"
315
+ }
316
+
317
+ claim = Eligible::Claim.get(params) # returns status information on an individual claim
318
+ ```
319
+
130
320
  ## Tests
131
321
 
132
322
  You can run tests with
@@ -2,6 +2,7 @@ require 'cgi'
2
2
  require 'set'
3
3
  require 'rubygems'
4
4
  require 'openssl'
5
+ require 'json'
5
6
 
6
7
  gem 'rest-client', '~> 1.4'
7
8
  require 'rest_client'
@@ -16,6 +17,8 @@ require 'eligible/plan'
16
17
  require 'eligible/service'
17
18
  require 'eligible/demographic'
18
19
  require 'eligible/claim'
20
+ require 'eligible/enrollment'
21
+ require 'eligible/coverage'
19
22
 
20
23
  # Errors
21
24
  require 'eligible/errors/eligible_error'
@@ -25,8 +28,8 @@ require 'eligible/errors/api_error'
25
28
 
26
29
  module Eligible
27
30
  @@api_key = nil
28
- @@api_base = "https://v1.eligibleapi.net"
29
- @@api_version = 1
31
+ @@api_base = "https://gds.eligibleapi.com/v1.1"
32
+ @@api_version = 1.1
30
33
 
31
34
  def self.api_url(url='')
32
35
  @@api_base + url
@@ -93,7 +96,7 @@ module Eligible
93
96
  end
94
97
  payload = nil
95
98
  else
96
- payload = Util.flatten_params(params).collect{|(key, value)| "#{key}=#{Util.url_encode(value)}"}.join('&')
99
+ payload = params.merge!({"api_key" => api_key }).to_json #Util.flatten_params(params).collect{|(key, value)| "#{key}=#{Util.url_encode(value)}"}.join('&')
97
100
  end
98
101
 
99
102
  begin
@@ -1,7 +1,17 @@
1
1
  module Eligible
2
2
  class Claim < APIResource
3
3
  def self.get(params, api_key=nil)
4
- response, api_key = Eligible.request(:get, url, api_key, params)
4
+ response, api_key = Eligible.request(:get, "/claims/acknowledgements/#{params[:reference_id]}.json", api_key, params)
5
+ Util.convert_to_eligible_object(response, api_key)
6
+ end
7
+
8
+ def self.post(params, api_key=nil)
9
+ response, api_key = Eligible.request(:get, "/claims.json", api_key, params)
10
+ Util.convert_to_eligible_object(response, api_key)
11
+ end
12
+
13
+ def self.all(api_key=nil)
14
+ response, api_key = Eligible.request(:get, "/claims/acknowledgements.json", api_key)
5
15
  Util.convert_to_eligible_object(response, api_key)
6
16
  end
7
17
 
@@ -0,0 +1,16 @@
1
+ module Eligible
2
+
3
+ class Coverage < APIResource
4
+
5
+ def self.get(params, api_key=nil)
6
+ response, api_key = Eligible.request(:get, url, api_key, params)
7
+ Util.convert_to_eligible_object(response, api_key)
8
+ end
9
+
10
+ def all
11
+ error ? nil : to_hash
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,20 @@
1
+ module Eligible
2
+
3
+ class Enrollment < APIResource
4
+
5
+ def self.get(params, api_key=nil)
6
+ response, api_key = Eligible.request(:get, "/enrollment.json", api_key, params)
7
+ Util.convert_to_eligible_object(response, api_key)
8
+ end
9
+
10
+ def self.post(params, api_key=nil)
11
+ response, api_key = Eligible.request(:post, "/enrollment.json", api_key, params)
12
+ Util.convert_to_eligible_object(response, api_key)
13
+ end
14
+
15
+ def all
16
+ error ? nil : to_hash
17
+ end
18
+ end
19
+
20
+ end
@@ -20,15 +20,25 @@ module Eligible
20
20
  'plan' => Plan,
21
21
  'service' => Service,
22
22
  'demographic' => Demographic,
23
- 'claim' => Claim
23
+ 'claim' => Claim,
24
+ 'coverage' => Coverage,
25
+ 'enrollment' => Enrollment
24
26
  }
25
27
  case resp
26
28
  when Array
27
- resp.map { |i| convert_to_eligible_object(i, api_key) }
29
+ if resp[0] && resp[0][:enrollment_npi]
30
+ Enrollment.construct_from({ :enrollments => resp }, api_key)
31
+ else
32
+ resp.map { |i| convert_to_eligible_object(i, api_key) }
33
+ end
28
34
  when Hash
29
35
  # Try converting to a known object class. If none available, fall back to generic APIResource
30
36
  if resp[:mapping_version] && klass_name = resp[:mapping_version].match(/^[^\/]*/)[0]
31
37
  klass = types[klass_name]
38
+ elsif resp[:enrollment_request]
39
+ klass = Enrollment
40
+ elsif resp[:demographics]
41
+ klass = Coverage
32
42
  end
33
43
  klass ||= EligibleObject
34
44
  klass.construct_from(resp, api_key)
@@ -1,3 +1,3 @@
1
1
  module Eligible
2
- VERSION = "1.1"
2
+ VERSION = "2.0"
3
3
  end
@@ -0,0 +1,16 @@
1
+ module Eligible
2
+ class Webhook < APIResource
3
+
4
+ def self.all(api_key=nil)
5
+ response, api_key = Eligible.request(:get, url, api_key, params)
6
+ Util.convert_to_eligible_object(response, api_key)
7
+ end
8
+
9
+ def self.post(params, api_key=nil)
10
+ response, api_key = Eligible.request(:get, url, api_key, params)
11
+ Util.convert_to_eligible_object(response, api_key)
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -66,13 +66,13 @@ class TestEligible < Test::Unit::TestCase
66
66
  params = {
67
67
  :payer_name => "Aetna",
68
68
  :payer_id => "000001",
69
- :service_provider_last_name => "Last",
70
- :service_provider_first_name => "First",
71
- :service_provider_NPI => "1928384219",
72
- :subscriber_id => "W120923801",
73
- :subscriber_last_name => "Austen",
74
- :subscriber_first_name => "Jane",
75
- :subscriber_dob => "1955-12-14"
69
+ :provider_last_name => "Last",
70
+ :provider_first_name => "First",
71
+ :provider_npi => "1028384219",
72
+ :member_id => "W120923801",
73
+ :member_last_name => "Austen",
74
+ :member_first_name => "Jane",
75
+ :member_dob => "1955-12-14"
76
76
  }
77
77
  response = test_response(test_plan)
78
78
  @mock.expects(:get).returns(response)
@@ -85,13 +85,13 @@ class TestEligible < Test::Unit::TestCase
85
85
  params = {
86
86
  :payer_name => "Aetna",
87
87
  :payer_id => "000001",
88
- :service_provider_last_name => "Last",
89
- :service_provider_first_name => "First",
90
- :service_provider_NPI => "1928384219",
91
- :subscriber_id => "W120923801",
92
- :subscriber_last_name => "Austen",
93
- :subscriber_first_name => "Jane",
94
- :subscriber_dob => "1955-12-14"
88
+ :provider_last_name => "Last",
89
+ :provider_first_name => "First",
90
+ :provider_npi => "1028384219",
91
+ :member_id => "W120923801",
92
+ :member_last_name => "Austen",
93
+ :member_first_name => "Jane",
94
+ :member_dob => "1955-12-14"
95
95
  }
96
96
  response = test_response(test_plan)
97
97
  @mock.expects(:get).returns(response)
@@ -135,13 +135,13 @@ class TestEligible < Test::Unit::TestCase
135
135
  params = {
136
136
  :payer_name => "Aetna",
137
137
  :payer_id => "000001",
138
- :service_provider_last_name => "Last",
139
- :service_provider_first_name => "First",
140
- :service_provider_NPI => "1928384219",
141
- :subscriber_id => "W120923801",
142
- :subscriber_last_name => "Austen",
143
- :subscriber_first_name => "Jane",
144
- :subscriber_dob => "1955-12-14"
138
+ :provider_last_name => "Last",
139
+ :provider_first_name => "First",
140
+ :provider_npi => "1028384219",
141
+ :member_id => "W120923801",
142
+ :member_last_name => "Austen",
143
+ :member_first_name => "Jane",
144
+ :member_dob => "1955-12-14"
145
145
  }
146
146
  response = test_response(test_service)
147
147
  @mock.expects(:get).returns(response)
@@ -154,13 +154,13 @@ class TestEligible < Test::Unit::TestCase
154
154
  params = {
155
155
  :payer_name => "Aetna",
156
156
  :payer_id => "000001",
157
- :service_provider_last_name => "Last",
158
- :service_provider_first_name => "First",
159
- :service_provider_NPI => "1928384219",
160
- :subscriber_id => "W120923801",
161
- :subscriber_last_name => "Austen",
162
- :subscriber_first_name => "Jane",
163
- :subscriber_dob => "1955-12-14"
157
+ :provider_last_name => "Last",
158
+ :provider_first_name => "First",
159
+ :provider_npi => "1028384219",
160
+ :member_id => "W120923801",
161
+ :member_last_name => "Austen",
162
+ :member_first_name => "Jane",
163
+ :member_dob => "1955-12-14"
164
164
  }
165
165
  response = test_response(test_service)
166
166
  @mock.expects(:get).returns(response)
@@ -202,13 +202,13 @@ class TestEligible < Test::Unit::TestCase
202
202
  params = {
203
203
  :payer_name => "Aetna",
204
204
  :payer_id => "000001",
205
- :service_provider_last_name => "Last",
206
- :service_provider_first_name => "First",
207
- :service_provider_NPI => "1928384219",
208
- :subscriber_id => "W120923801",
209
- :subscriber_last_name => "Austen",
210
- :subscriber_first_name => "Jane",
211
- :subscriber_dob => "1955-12-14"
205
+ :provider_last_name => "Last",
206
+ :provider_first_name => "First",
207
+ :provider_npi => "1028384219",
208
+ :member_id => "W120923801",
209
+ :member_last_name => "Austen",
210
+ :member_first_name => "Jane",
211
+ :member_dob => "1955-12-14"
212
212
  }
213
213
  response = test_response(test_demographic)
214
214
  @mock.expects(:get).returns(response)
@@ -221,13 +221,13 @@ class TestEligible < Test::Unit::TestCase
221
221
  params = {
222
222
  :payer_name => "Aetna",
223
223
  :payer_id => "000001",
224
- :service_provider_last_name => "Last",
225
- :service_provider_first_name => "First",
226
- :service_provider_NPI => "1928384219",
227
- :subscriber_id => "W120923801",
228
- :subscriber_last_name => "Austen",
229
- :subscriber_first_name => "Jane",
230
- :subscriber_dob => "1955-12-14"
224
+ :provider_last_name => "Last",
225
+ :provider_first_name => "First",
226
+ :provider_npi => "1028384219",
227
+ :member_id => "W120923801",
228
+ :member_last_name => "Austen",
229
+ :member_first_name => "Jane",
230
+ :member_dob => "1955-12-14"
231
231
  }
232
232
  response = test_response(test_demographic)
233
233
  @mock.expects(:get).returns(response)
@@ -262,18 +262,83 @@ class TestEligible < Test::Unit::TestCase
262
262
  response = test_response(test_claim_missing_params)
263
263
  @mock.expects(:get).returns(response)
264
264
  claim = Eligible::Claim.get(params)
265
- assert_not_nil claim.error
265
+ assert claim["success"] == "false"
266
266
  end
267
267
 
268
- should "return claim information if valid params are supplied" do
268
+ should "post a claim" do
269
+ params = {"api_key"=>"asdfsdfsd21132ddsfsdfd", "billing_provider"=>{"taxonomy_code"=>"332B00000X", "practice_name"=>"Jane Austen Practice", "npi"=>"1922222222", "address"=>{"street_line_1"=>"419 Fulton", "street_line_2"=>"", "city"=>"San Francisco", "state"=>"CA", "zip"=>"94102"}, "tin"=>"43291023", "insurance_provider_id"=>"129873210"}, "pay_to_provider"=>{"address"=>{"street_line_1"=>"", "street_line_2"=>"", "city"=>"", "state"=>"", "zip"=>""}}, "subscriber"=>{"last_name"=>"Franklin", "first_name"=>"Benjamin", "member_id"=>"W2832032427", "group_id"=>"455716", "group_name"=>"none", "dob"=>"1734-05-04", "gender"=>"M", "address"=>{"street_line_1"=>"435 Sugar Lane", "street_line_2"=>"", "city"=>"Sweet", "state"=>"OH", "zip"=>"436233127"}}, "payer"=>{"name"=>"AETNA", "id"=>"60054", "address"=>{"street_line_1"=>"Po Box 981106", "street_line_2"=>"", "city"=>"El Paso", "state"=>"TX", "zip"=>"799981222"}}, "dependent"=>{"relationship"=>"", "last_name"=>"", "first_name"=>"", "dob"=>"", "gender"=>"", "address"=>{"street_line_1"=>"", "street_line_2"=>"", "city"=>"", "state"=>"", "zip"=>""}}, "claim"=>{"total_charge_amount"=>"275", "claim_frequency"=>"1", "patient_signature_on_file"=>"Y", "provider_plan_participation"=>"A", "direct_payment_authorized"=>"Y", "release_of_information"=>"I", "service_lines"=>[{"line_number"=>"1", "service_start"=>"2013-03-07", "service_end"=>"2013-03-07", "authorization_code"=>"", "place_of_service"=>"11", "charge_amount"=>"275", "product_service"=>"99213", "qualifier"=>"HC", "description"=>"", "modifier_1"=>"", "diagnosis_1"=>"32723"}]}}
270
+ response = test_response(test_post_claim)
271
+ end
272
+ end
273
+
274
+ context "Coverage" do
275
+ setup do
276
+ Eligible.api_key = "TEST"
277
+ @mock = mock
278
+ Eligible.mock_rest_client = @mock
279
+ end
280
+
281
+ teardown do
282
+ Eligible.mock_rest_client = nil
283
+ Eligible.api_key = nil
284
+ end
285
+
286
+ should "return an error if no params are supplied" do
287
+ params = {}
288
+ response = test_response(test_coverage_missing_params)
289
+ @mock.expects(:get).returns(response)
290
+ coverage = Eligible::Coverage.get(params)
291
+ assert_not_nil coverage.error
292
+ end
293
+
294
+ should "return coverage information if valid params are supplied" do
269
295
  params = {
270
- :tbd => true
296
+ :payer_name => "Aetna",
297
+ :payer_id => "000001",
298
+ :provider_last_name => "Last",
299
+ :provider_first_name => "First",
300
+ :provider_npi => "1028384219",
301
+ :member_id => "W120923801",
302
+ :member_last_name => "Austen",
303
+ :member_first_name => "Jane",
304
+ :member_dob => "1955-12-14"
271
305
  }
272
- response = test_response(test_claim)
306
+ response = test_response(test_coverage)
273
307
  @mock.expects(:get).returns(response)
274
- claim = Eligible::Claim.get(params)
275
- assert_nil claim.error
276
- assert_not_nil claim.status
308
+ coverage = Eligible::Coverage.get(params)
309
+
310
+ assert_not_nil coverage.all[:eligible_id]
311
+ end
312
+ end
313
+
314
+ context "Enrollment" do
315
+ setup do
316
+ Eligible.api_key = "TEST"
317
+ @mock = mock
318
+ Eligible.mock_rest_client = @mock
319
+ end
320
+
321
+ teardown do
322
+ Eligible.mock_rest_client = nil
323
+ Eligible.api_key = nil
324
+ end
325
+
326
+ should "post an enrollment request" do
327
+ params = {"service_provider_list"=>[{"facility_name"=>"Quality", "provider_name"=>"Jane Austen", "tax_id"=>"12345678", "address"=>"125 Snow Shoe Road", "city"=>"Sacramento", "state"=>"CA", "zip"=>"94107", "ptan"=>"54321", "npi"=>"987654321"}, {"facility_name"=>"Aetna", "provider_name"=>"Jack Austen", "tax_id"=>"12345678", "address"=>"985 Snow Shoe Road", "city"=>"Menlo Park", "state"=>"CA", "zip"=>"94107", "ptan"=>"54321", "npi"=>"987654321"}], "payer_ids"=>["00431", "00282"]}
328
+ response = test_response(test_post_enrollment)
329
+
330
+ @mock.expects(:post).returns(response)
331
+ enrollment = Eligible::Enrollment.post(params)
332
+
333
+ assert_not_nil enrollment.all[:enrollment_request]
334
+ end
335
+
336
+ should "get the status of an enrollment request" do
337
+ params = { "NPI" => "1028384219" }
338
+ response = test_response(test_get_enrollment)
339
+ @mock.expects(:get).returns(response)
340
+ enrollment = Eligible::Enrollment.get(params)
341
+ assert_not_nil enrollment.all[:enrollments]
277
342
  end
278
343
  end
279
344
  end
@@ -59,9 +59,29 @@ def test_demographic
59
59
  end
60
60
 
61
61
  def test_claim_missing_params
62
- {"timestamp"=>"2013-02-05T13:21:38", "eligible_id"=>"AE9F5EB3-B4BF-4B2E-92C5-6307CE91DB81", "mapping_version"=>"claim/status$Revision:1$$Date:12-12-2619:01$", "error"=>{"response_code"=>"Y", "response_description"=>"Yes", "agency_qualifier_code"=>"", "agency_qualifier_description"=>"", "reject_reason_code"=>"41", "reject_reason_description"=>"Authorization/AccessRestrictions", "follow-up_action_code"=>"C", "follow-up_action_description"=>"PleaseCorrectandResubmit"}}
62
+ {"success"=>"false", "created_at"=>"2013-06-03T23:53:39Z", "error"=>{"type"=>"scrub", "message"=>"you forgot to include gender"}}
63
63
  end
64
64
 
65
- def test_claim
65
+ def test_post_claim
66
66
  {"timestamp"=>"2012-12-30T22:41:10", "eligible_id"=>"DCE2FFB3-179A-4825-ADA6-B8108FB5FB90", "mapping_version"=>"claim/status$Revision:1$$Date:12-12-3022:10$", "referenced_transaction_trace_number"=>"970779644", "claim_status_category_code"=>"F0", "claim_status_category_description"=>"Finalized-Theclaim/encounterhascompletedtheadjudicationcycleandnomoreactionwillbetaken.", "claim_status_code"=>"1", "claim_status_description"=>"Formoredetailedinformation,seeremittanceadvice.", "status_information_effective_date"=>"2007-03-13", "total_claim_charge_amount"=>"172", "claim_payment_amount"=>"126.9", "adjudication_finalized_date"=>"2007-03-18", "remittance_date"=>"2007-03-19", "remittance_trace_number"=>"458787", "payer_claim_control_number"=>"4121476181852", "claim_service_begin_date"=>"2007-02-23", "claim_service_end_date"=>"2007-02-28"}
67
+ end
68
+
69
+ def test_coverage_missing_params
70
+ {"created_at"=>"2013-06-11T12:21:47Z", "eligible_id"=>"57c320d8-2e14-68ed-73d0-41c3b23c0f43", "error"=>{"response_code"=>"Y", "response_description"=>"Yes", "agency_qualifier_code"=>"", "agency_qualifier_description"=>"", "reject_reason_code"=>"41", "reject_reason_description"=>"Authorization/Access Restrictions", "follow-up_action_code"=>"C", "follow-up_action_description"=>"Please Correct and Resubmit", "details"=>""}}
71
+ end
72
+
73
+ def test_coverage
74
+ {"created_at"=>"2013-05-09T22:42:40Z", "eligible_id"=>"3233a9a1-a286-2896-ba3d-9f171303428b", "demographics"=>{"subscriber"=>{"last_name"=>"FRANKLIN", "first_name"=>"BENJAMIN", "member_id"=>"TYA445554301", "group_id"=>"3207524", "group_name"=>"FOUNDING FATHERS", "dob"=>"1701-10-17", "gender"=>"M", "address"=>{"street_line_1"=>"2 FRANKLIN STREET", "street_line_2"=>"", "city"=>"SAN FRANCISCO", "state"=>"CA", "zip"=>"94102"}}, "dependent"=>{"last_name"=>"FRANKLIN", "first_name"=>"IDA", "member_id"=>"ZZZ445554301", "group_id"=>"3207524", "group_name"=>"FOUNDING FATHERS", "dob"=>"1701-12-12", "gender"=>"F", "address"=>{"street_line_1"=>"2 FRANKLIN STREET", "street_line_2"=>"", "city"=>"SAN FRANCISCO", "state"=>"CA", "zip"=>"94102"}}}, "primary_insurance"=>{"name"=>"CIGNA", "id"=>"00001", "contacts"=>[{"contact_type"=>"url", "contact_value"=>"cignaforhcp.cigna.com"}], "service_providers"=>{"physicians"=>[{"insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO)", "primary_care"=>"true", "restricted"=>"TRUE", "contact_details"=>[{"last_name"=>"JEFFERSON", "first_name"=>"THOMAS", "indentification_type"=>"Centers for Medicare and Medicaid Services National Provider Identifier", "identification_code"=>"2222222222", "contacts"=>[], "address"=>{"street_line_1"=>"PO BOX 2222222", "street_line_2"=>"", "city"=>"SAN FRANCISCO", "state"=>"CA", "zip"=>"94105"}}], "dates"=>[{"date_type"=>"eligibility", "date_value"=>"2010-01-01"}], "comments"=>["HRA BALANCE"]}]}}, "plan"=>{"type"=>"30", "coverage_status"=>"1", "coverage_status_label"=>"ACTIVE COVERAGE", "coverage_basis"=>[], "plan_number"=>"43", "plan_name"=>"TRADITIONAL BLUE PPO 813 $15/ $15 COPAY", "group_name"=>"FOUNDING FATHERS", "dates"=>[{"date_type"=>"plan_begin", "date_value"=>"2010-01-01"}, {"date_type"=>"service", "date_value"=>"2013-05-24"}, {"date_type"=>"eligibility_begin", "date_value"=>"2007-02-01"}], "exclusions"=>{"noncovered"=>[{"type"=>"BZ", "type_label"=>"Physician Visit - Well", "time_period"=>"32", "time_period_label"=>"lifetime", "level"=>"INDIVIDUAL", "network"=>"OUT", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "dates"=>[], "contact_details"=>[], "comments"=>[]}], "pre_exisiting_condition"=>{"waiting_period"=>[]}}, "financials"=>{"deductible"=>{"remainings"=>{"in_network"=>[{"amount"=>"0", "level"=>"FAMILY", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"0", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}], "out_network"=>[]}, "totals"=>{"in_network"=>[{"amount"=>"0", "time_period"=>"24", "time_period_label"=>"year_to_date", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"0", "time_period"=>"23", "time_period_label"=>"calendar_year", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"0", "time_period"=>"24", "time_period_label"=>"year_to_date", "level"=>"FAMILY", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"0", "time_period"=>"23", "time_period_label"=>"calendar_year", "level"=>"FAMILY", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}], "out_network"=>[]}}, "stop_loss"=>{"remainings"=>{"in_network"=>[{"amount"=>"6490", "level"=>"INDIVIDUAL", "insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO) - Medicare Risk", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"0", "level"=>"FAMILY", "insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO) - Medicare Risk", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}], "out_network"=>[]}, "totals"=>{"in_network"=>[{"amount"=>"210", "time_period"=>"24", "time_period_label"=>"year_to_date", "level"=>"INDIVIDUAL", "insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO) - Medicare Risk", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"210", "time_period"=>"24", "time_period_label"=>"year_to_date", "level"=>"FAMILY", "insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO) - Medicare Risk", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"0", "time_period"=>"23", "time_period_label"=>"calendar_year", "level"=>"FAMILY", "insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO) - Medicare Risk", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}, {"amount"=>"6700", "time_period"=>"23", "time_period_label"=>"calendar_year", "level"=>"INDIVIDUAL", "insurance_type"=>"HN", "insurance_type_label"=>"Health Maintenance Organization (HMO) - Medicare Risk", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[], "comments"=>[]}], "out_network"=>[]}}, "spending_account"=>{"remaining"=>[]}, "coinsurance"=>{"percents"=>{"in_network"=>[], "out_network"=>[]}}, "copayment"=>{"amounts"=>{"in_network"=>[{"amount"=>"20", "time_period"=>"", "time_period_label"=>"", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "dates"=>[], "contact_details"=>[], "comments"=>[]}], "out_network"=>[{"amount"=>"40", "time_period"=>"", "time_period_label"=>"", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "dates"=>[], "contact_details"=>[], "comments"=>[]}]}}, "cost_containment"=>{"remainings"=>{"in_network"=>[], "out_network"=>[]}, "totals"=>{"in_network"=>[], "out_network"=>[]}}, "spend_down"=>{"remainings"=>{"in_network"=>[], "out_network"=>[]}, "totals"=>{"in_network"=>[], "out_network"=>[]}}, "limitations"=>{"amounts"=>[]}, "disclaimer"=>[], "other_sources"=>{"amounts"=>[]}}, "benefit_details"=>{"benefit_type_label"=>{"amounts"=>[]}, "managed_care"=>{"amounts"=>[]}, "unlimited"=>{"amounts"=>[]}}, "additional_insurance_policies"=>[{"insurance_type"=>"47", "insurance_type_label"=>"Medicare Secondary, Other Liability Insurance is Primary", "coverage_description"=>"", "reference"=>[{"reference_code"=>"IG", "reference_label"=>"Insurance Policy Number", "reference_number"=>"1232004008"}], "contact_details"=>[{"last_name"=>"CLAIMS MANAGEMENT INC", "first_name"=>"", "indentification_type"=>"", "identification_code"=>"", "contacts"=>[], "address"=>{"street_line_1"=>"PO BOX 2210", "street_line_2"=>"ATTN JANE AUSTEN", "city"=>"SAN FRANCISCO", "state"=>"CA", "zip"=>"941052312"}}], "dates"=>[{"date_type"=>"coordination_of_benefits", "date_value"=>"2005-02-12"}], "comments"=>[]}]}, "services"=>[{"type"=>"96", "type_label"=>"Physician Professional", "coverage_status"=>"11", "coverage_status_label"=>"generic inquiry provided no information for this service type. Retry by including service_type_code=96 for an explicit inquiry for this service type."}, {"type"=>"98", "type_label"=>"Professional Physician Visit - Office", "coverage_status"=>"1", "coverage_status_label"=>"active coverage", "authorization_required"=>"", "noncovered"=>[], "facility"=>{"amounts"=>[{"amount"=>"", "time_period"=>"26", "time_period_label"=>"EPISODE", "level"=>"INDIVIDUAL", "network"=>"Y", "insurance_type"=>"MA", "insurance_type_label"=>"MEDICARE PART A", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "contact_details"=>[], "dates"=>[{"date_type"=>"benefit_begin", "date_value"=>"2013-05-20"}], "comments"=>["Revocation Code - 0"]}]}, "benefit_details"=>{"benefit_type_label"=>{"amounts"=>[]}, "managed_care"=>{"amounts"=>[]}, "unlimited"=>{"amounts"=>[]}}, "financials"=>{"deductible"=>{}, "stop_loss"=>{}, "spending_account"=>{}, "coinsurance"=>{}, "copayment"=>{}, "cost_containment"=>{}, "spend_down"=>{}, "limitations"=>{}, "other_sources"=>{}}, "visits"=>{"amounts"=>{"in_network"=>[{"amount"=>"20", "time_period"=>"", "time_period_label"=>"", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "dates"=>[], "contact_details"=>[], "comments"=>[]}], "out_network"=>[{"amount"=>"40", "time_period"=>"", "time_period_label"=>"", "level"=>"INDIVIDUAL", "insurance_type"=>"", "insurance_type_label"=>"", "pos"=>"", "pos_label"=>"", "authorization_required"=>"", "dates"=>[], "contact_details"=>[], "comments"=>[]}]}}, "additional_insurance_policies"=>[{"insurance_type"=>"47", "insurance_type_label"=>"Medicare Secondary, Other Liability Insurance is Primary", "coverage_description"=>"", "reference"=>[{"reference_code"=>"IG", "reference_label"=>"Insurance Policy Number", "reference_number"=>"1232004008"}], "contact_details"=>[{"last_name"=>"CLAIMS MANAGEMENT INC", "first_name"=>"", "indentification_type"=>"", "identification_code"=>"", "contacts"=>[], "address"=>{"street_line_1"=>"PO BOX 2210", "street_line_2"=>"ATTN JANE AUSTEN", "city"=>"SAN FRANCISCO", "state"=>"CA", "zip"=>"941052312"}}], "dates"=>[{"date_type"=>"coordination_of_benefits", "date_value"=>"2005-02-12"}], "comments"=>[]}]}]}
75
+ end
76
+
77
+ def test_enrollment_missing_params
78
+ {"error" =>"Expeting enrollment_request_id or npis"}
79
+ end
80
+
81
+ def test_get_enrollment
82
+ [{"enrollment_npi"=>{"address"=>"985 Snow Shoe Road", "city"=>"Sacramento", "created_at"=>"2013-04-24T21:47:31+00:00", "facility_name"=>"Quality", "npi"=>"987654321", "provider_name"=>"Jack Austen", "ptan"=>"54321", "state"=>"CA", "status"=>"rejected", "tax_id"=>"12345678", "updated_at"=>"2013-04-28T17:10:00+00:00", "zip"=>"94107", "enrollment_insurance_company"=>{"name"=>"Medicare", "payer_id"=>"00431"}}}, {"enrollment_npi"=>{"address"=>"985 Snow Shoe Road", "city"=>"Sacramento", "created_at"=>"2013-04-24T21:47:31+00:00", "facility_name"=>"Quality", "npi"=>"987654321", "provider_name"=>"Jack Austen", "ptan"=>"54321", "state"=>"CA", "status"=>"accepted", "tax_id"=>"12345678", "updated_at"=>"2013-04-28T22:51:43+00:00", "zip"=>"94107", "enrollment_insurance_company"=>{"name"=>"Kaiser North", "payer_id"=>"00282"}}}]
83
+ end
84
+
85
+ def test_post_enrollment
86
+ {"enrollment_request"=>{"created_at"=>"2013-04-14T07:29:09-07:00", "id"=>5, "status"=>"pending", "updated_at"=>"2013-04-14T07:29:09-07:00", "enrollment_npis"=>[{"address"=>"125 Snow Shoe Road", "city"=>"Sacramento", "created_at"=>"2013-04-14T07:29:09-07:00", "facility_name"=>"Quality", "npi"=>"987654321", "provider_name"=>"Jane Austen", "ptan"=>"54321", "state"=>"CA", "status"=>"submitted", "tax_id"=>"12345678", "updated_at"=>"2013-04-14T07:29:09-07:00", "zip"=>"94107", "enrollment_insurance_company"=>{"name"=>"Medicare", "payer_id"=>"00431"}}, {"address"=>"125 Snow Shoe Road", "city"=>"Sacramento", "created_at"=>"2013-04-14T07:29:09-07:00", "facility_name"=>"Quality", "npi"=>"987654321", "provider_name"=>"Jane Austen", "ptan"=>"54321", "state"=>"CA", "status"=>"submitted", "tax_id"=>"12345678", "updated_at"=>"2013-04-14T07:29:09-07:00", "zip"=>"94107", "enrollment_insurance_company"=>{"name"=>"Medicare", "payer_id"=>"00431"}}, {"address"=>"125 Snow Shoe Road", "city"=>"Sacramento", "created_at"=>"2013-04-14T07:29:09-07:00", "facility_name"=>"Quality", "npi"=>"987654321", "provider_name"=>"Jane Austen", "ptan"=>"54321", "state"=>"CA", "status"=>"submitted", "tax_id"=>"12345678", "updated_at"=>"2013-04-14T07:29:09-07:00", "zip"=>"94107", "enrollment_insurance_company"=>{"name"=>"Kaiser Nort", "payer_id"=>"00282"}}, {"address"=>"125 Snow Shoe Road", "city"=>"Sacramento", "created_at"=>"2013-04-14T07:29:09-07:00", "facility_name"=>"Quality", "npi"=>"987654321", "provider_name"=>"Jane Austen", "ptan"=>"54321", "state"=>"CA", "status"=>"submitted", "tax_id"=>"12345678", "updated_at"=>"2013-04-14T07:29:09-07:00", "zip"=>"94107", "enrollment_insurance_company"=>{"name"=>"Kaiser Nort", "payer_id"=>"00282"}}]}}
67
87
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eligible
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: '2.0'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-14 00:00:00.000000000 Z
12
+ date: 2013-06-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mocha
16
- requirement: &70151816374100 !ruby/object:Gem::Requirement
16
+ requirement: &70203756283980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70151816374100
24
+ version_requirements: *70203756283980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: shoulda
27
- requirement: &70151816370940 !ruby/object:Gem::Requirement
27
+ requirement: &70203756283560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70151816370940
35
+ version_requirements: *70203756283560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: test-unit
38
- requirement: &70151816383660 !ruby/object:Gem::Requirement
38
+ requirement: &70203756283140 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70151816383660
46
+ version_requirements: *70203756283140
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70151816381080 !ruby/object:Gem::Requirement
49
+ requirement: &70203756282720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70151816381080
57
+ version_requirements: *70203756282720
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rest-client
60
- requirement: &70151816394460 !ruby/object:Gem::Requirement
60
+ requirement: &70203756282220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.4'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70151816394460
68
+ version_requirements: *70203756282220
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: multi_json
71
- requirement: &70151816402500 !ruby/object:Gem::Requirement
71
+ requirement: &70203756281700 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -79,7 +79,7 @@ dependencies:
79
79
  version: '2'
80
80
  type: :runtime
81
81
  prerelease: false
82
- version_requirements: *70151816402500
82
+ version_requirements: *70203756281700
83
83
  description: Eligible is a developer-friendly way to process health care eligibility
84
84
  checks. Learn more at https://eligibleapi.com
85
85
  email:
@@ -98,8 +98,10 @@ files:
98
98
  - lib/eligible.rb
99
99
  - lib/eligible/api_resource.rb
100
100
  - lib/eligible/claim.rb
101
+ - lib/eligible/coverage.rb
101
102
  - lib/eligible/demographic.rb
102
103
  - lib/eligible/eligible_object.rb
104
+ - lib/eligible/enrollment.rb
103
105
  - lib/eligible/errors/api_connection_error.rb
104
106
  - lib/eligible/errors/api_error.rb
105
107
  - lib/eligible/errors/authentication_error.rb
@@ -109,6 +111,7 @@ files:
109
111
  - lib/eligible/service.rb
110
112
  - lib/eligible/util.rb
111
113
  - lib/eligible/version.rb
114
+ - lib/eligible/webhook.rb
112
115
  - test/test_eligible.rb
113
116
  - test/test_helper.rb
114
117
  homepage: https://eligibleapi.com/