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 +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/
|