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 +220 -30
- data/lib/eligible.rb +6 -3
- data/lib/eligible/claim.rb +11 -1
- data/lib/eligible/coverage.rb +16 -0
- data/lib/eligible/enrollment.rb +20 -0
- data/lib/eligible/util.rb +12 -2
- data/lib/eligible/version.rb +1 -1
- data/lib/eligible/webhook.rb +16 -0
- data/test/test_eligible.rb +114 -49
- data/test/test_helper.rb +22 -2
- metadata +17 -14
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
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
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
|
-
:
|
57
|
-
:
|
58
|
-
:
|
59
|
-
:
|
60
|
-
:
|
61
|
-
:
|
62
|
-
:
|
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
|
-
:
|
82
|
-
:
|
83
|
-
:
|
84
|
-
:
|
85
|
-
:
|
86
|
-
:
|
87
|
-
:
|
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
|
-
:
|
107
|
-
:
|
108
|
-
:
|
109
|
-
:
|
110
|
-
:
|
111
|
-
:
|
112
|
-
:
|
113
|
-
:
|
114
|
-
:
|
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
|
data/lib/eligible.rb
CHANGED
@@ -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://
|
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
|
data/lib/eligible/claim.rb
CHANGED
@@ -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,
|
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
|
data/lib/eligible/util.rb
CHANGED
@@ -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
|
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)
|
data/lib/eligible/version.rb
CHANGED
@@ -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
|
data/test/test_eligible.rb
CHANGED
@@ -66,13 +66,13 @@ class TestEligible < Test::Unit::TestCase
|
|
66
66
|
params = {
|
67
67
|
:payer_name => "Aetna",
|
68
68
|
:payer_id => "000001",
|
69
|
-
:
|
70
|
-
:
|
71
|
-
:
|
72
|
-
:
|
73
|
-
:
|
74
|
-
:
|
75
|
-
:
|
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
|
-
:
|
89
|
-
:
|
90
|
-
:
|
91
|
-
:
|
92
|
-
:
|
93
|
-
:
|
94
|
-
:
|
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
|
-
:
|
139
|
-
:
|
140
|
-
:
|
141
|
-
:
|
142
|
-
:
|
143
|
-
:
|
144
|
-
:
|
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
|
-
:
|
158
|
-
:
|
159
|
-
:
|
160
|
-
:
|
161
|
-
:
|
162
|
-
:
|
163
|
-
:
|
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
|
-
:
|
206
|
-
:
|
207
|
-
:
|
208
|
-
:
|
209
|
-
:
|
210
|
-
:
|
211
|
-
:
|
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
|
-
:
|
225
|
-
:
|
226
|
-
:
|
227
|
-
:
|
228
|
-
:
|
229
|
-
:
|
230
|
-
:
|
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
|
-
|
265
|
+
assert claim["success"] == "false"
|
266
266
|
end
|
267
267
|
|
268
|
-
should "
|
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
|
-
:
|
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(
|
306
|
+
response = test_response(test_coverage)
|
273
307
|
@mock.expects(:get).returns(response)
|
274
|
-
|
275
|
-
|
276
|
-
assert_not_nil
|
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
|
data/test/test_helper.rb
CHANGED
@@ -59,9 +59,29 @@ def test_demographic
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def test_claim_missing_params
|
62
|
-
{"
|
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
|
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: '
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *70203756283980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: shoulda
|
27
|
-
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: *
|
35
|
+
version_requirements: *70203756283560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: test-unit
|
38
|
-
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: *
|
46
|
+
version_requirements: *70203756283140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
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: *
|
57
|
+
version_requirements: *70203756282720
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rest-client
|
60
|
-
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: *
|
68
|
+
version_requirements: *70203756282220
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: multi_json
|
71
|
-
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: *
|
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/
|