eligible 1.1 → 2.0

Sign up to get free protection for your applications and to get access to all the features.
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/