eligible 2.3 → 2.4.1
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.
- checksums.yaml +4 -4
- data/CONTRIBUTORS +5 -1
- data/README.md +265 -69
- data/eligible.gemspec +6 -7
- data/lib/eligible.rb +53 -59
- data/lib/eligible/api_resource.rb +3 -1
- data/lib/eligible/claim.rb +17 -11
- data/lib/eligible/coverage.rb +13 -18
- data/lib/eligible/demographic.rb +9 -39
- data/lib/eligible/eligible_object.rb +1 -1
- data/lib/eligible/enrollment.rb +12 -17
- data/lib/eligible/json.rb +5 -15
- data/lib/eligible/medicare.rb +19 -0
- data/lib/eligible/payment.rb +11 -8
- data/lib/eligible/ticket.rb +40 -0
- data/lib/eligible/util.rb +32 -60
- data/lib/eligible/version.rb +1 -1
- data/lib/eligible/x12.rb +3 -12
- data/test/test_eligible.rb +13 -179
- data/test/test_helper.rb +30 -20
- metadata +18 -21
- data/lib/eligible/plan.rb +0 -42
- data/lib/eligible/service.rb +0 -59
- data/lib/eligible/webhook.rb +0 -16
data/lib/eligible/json.rb
CHANGED
@@ -1,21 +1,11 @@
|
|
1
1
|
module Eligible
|
2
2
|
module JSON
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.load(*args)
|
9
|
-
MultiJson.load(*args)
|
10
|
-
end
|
11
|
-
else
|
12
|
-
def self.dump(*args)
|
13
|
-
MultiJson.encode(*args)
|
14
|
-
end
|
3
|
+
def self.dump(*args)
|
4
|
+
MultiJson.dump(*args)
|
5
|
+
end
|
15
6
|
|
16
|
-
|
17
|
-
|
18
|
-
end
|
7
|
+
def self.load(*args)
|
8
|
+
MultiJson.load(*args)
|
19
9
|
end
|
20
10
|
end
|
21
11
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Eligible
|
2
|
+
class Medicare < APIResource
|
3
|
+
|
4
|
+
class << self
|
5
|
+
|
6
|
+
def get(params, api_key=nil)
|
7
|
+
response, api_key = Eligible.request(:get, '/medicare/coverage.json', api_key, params)
|
8
|
+
Util.convert_to_eligible_object(response, api_key)
|
9
|
+
end
|
10
|
+
|
11
|
+
def batch_post(params, api_key=nil)
|
12
|
+
response, api_key = Eligible.request(:post, '/medicare/coverage/batch.json', api_key, params)
|
13
|
+
Util.convert_to_eligible_object(response, api_key)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/eligible/payment.rb
CHANGED
@@ -1,16 +1,19 @@
|
|
1
1
|
module Eligible
|
2
2
|
class Payment < APIResource
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
class << self
|
5
|
+
|
6
|
+
def get(params, api_key=nil)
|
7
|
+
response, api_key = Eligible.request(:get, "/payment/status/#{params[:reference_id]}.json", api_key, params)
|
8
|
+
Util.convert_to_eligible_object(response, api_key)
|
9
|
+
end
|
10
|
+
|
11
|
+
def all(api_key=nil)
|
12
|
+
response, api_key = Eligible.request(:get, '/payment/status.json', api_key, {})
|
13
|
+
Util.convert_to_eligible_object(response, api_key)
|
14
|
+
end
|
8
15
|
|
9
|
-
def self.all(api_key=nil)
|
10
|
-
response, api_key = Eligible.request(:get, "/payment/status.json", api_key, {})
|
11
|
-
Util.convert_to_eligible_object(response, api_key)
|
12
16
|
end
|
13
17
|
|
14
18
|
end
|
15
|
-
|
16
19
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Eligible
|
2
|
+
class Ticket < APIResource
|
3
|
+
|
4
|
+
class << self
|
5
|
+
|
6
|
+
def create(params, api_key=nil)
|
7
|
+
response, api_key = Eligible.request(:post, '/tickets', api_key, params)
|
8
|
+
Util.convert_to_eligible_object(response, api_key)
|
9
|
+
end
|
10
|
+
|
11
|
+
def comments(params, api_key=nil)
|
12
|
+
response, api_key = Eligible.request(:post, "/tickets/#{params[:id]}/comments", api_key, params)
|
13
|
+
Util.convert_to_eligible_object(response, api_key)
|
14
|
+
end
|
15
|
+
|
16
|
+
def all
|
17
|
+
response, api_key = Eligible.request(:get, '/tickets', api_key)
|
18
|
+
Util.convert_to_eligible_object(response, api_key)
|
19
|
+
end
|
20
|
+
|
21
|
+
def get(params, api_key=nil)
|
22
|
+
response, api_key = Eligible.request(:get, "/tickets/#{params[:id]}", api_key, params)
|
23
|
+
Util.convert_to_eligible_object(response, api_key)
|
24
|
+
end
|
25
|
+
|
26
|
+
def delete(params, api_key=nil)
|
27
|
+
response, api_key = Eligible.request(:delete, "/tickets/#{params[:id]}", api_key, params)
|
28
|
+
Util.convert_to_eligible_object(response, api_key)
|
29
|
+
end
|
30
|
+
|
31
|
+
def update(params, api_key=nil)
|
32
|
+
response, api_key = Eligible.request(:put, "/tickets/#{params[:id]}", api_key, params)
|
33
|
+
Util.convert_to_eligible_object(response, api_key)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
data/lib/eligible/util.rb
CHANGED
@@ -1,75 +1,47 @@
|
|
1
1
|
module Eligible
|
2
2
|
module Util
|
3
|
-
def self.objects_to_ids(h)
|
4
|
-
case h
|
5
|
-
when APIResource
|
6
|
-
h.id
|
7
|
-
when Hash
|
8
|
-
res = {}
|
9
|
-
h.each { |k, v| res[k] = objects_to_ids(v) unless v.nil? }
|
10
|
-
res
|
11
|
-
when Array
|
12
|
-
h.map { |v| objects_to_ids(v) }
|
13
|
-
else
|
14
|
-
h
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
3
|
def self.convert_to_eligible_object(resp, api_key)
|
19
4
|
types = {
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
'coverage' => Coverage,
|
25
|
-
'enrollment' => Enrollment
|
5
|
+
'demographic' => Demographic,
|
6
|
+
'claim' => Claim,
|
7
|
+
'coverage' => Coverage,
|
8
|
+
'enrollment' => Enrollment
|
26
9
|
}
|
27
10
|
case resp
|
28
|
-
|
29
|
-
|
30
|
-
|
11
|
+
when Array
|
12
|
+
if resp[0] && resp[0][:enrollment_npi]
|
13
|
+
Enrollment.construct_from({:enrollments => resp}, api_key)
|
14
|
+
else
|
15
|
+
resp.map { |i| convert_to_eligible_object(i, api_key) }
|
16
|
+
end
|
17
|
+
when Hash
|
18
|
+
if resp[:enrollment_request]
|
19
|
+
klass = Enrollment
|
20
|
+
elsif resp[:demographics]
|
21
|
+
klass = Coverage
|
22
|
+
elsif resp[:subscriber] && resp[:dependent]
|
23
|
+
klass = Demographic
|
24
|
+
end
|
25
|
+
klass ||= EligibleObject
|
26
|
+
klass.construct_from(resp, api_key)
|
31
27
|
else
|
32
|
-
resp
|
33
|
-
end
|
34
|
-
when Hash
|
35
|
-
# Try converting to a known object class. If none available, fall back to generic APIResource
|
36
|
-
if resp[:mapping_version] && klass_name = resp[:mapping_version].match(/^[^\/]*/)[0]
|
37
|
-
klass = types[klass_name]
|
38
|
-
elsif resp[:enrollment_request]
|
39
|
-
klass = Enrollment
|
40
|
-
elsif resp[:demographics]
|
41
|
-
klass = Coverage
|
42
|
-
end
|
43
|
-
klass ||= EligibleObject
|
44
|
-
klass.construct_from(resp, api_key)
|
45
|
-
else
|
46
|
-
resp
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.file_readable(file)
|
51
|
-
begin
|
52
|
-
File.open(file) { |f| }
|
53
|
-
rescue
|
54
|
-
false
|
55
|
-
else
|
56
|
-
true
|
28
|
+
resp
|
57
29
|
end
|
58
30
|
end
|
59
31
|
|
60
32
|
def self.symbolize_names(object)
|
61
33
|
case object
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
34
|
+
when Hash
|
35
|
+
new = {}
|
36
|
+
object.each do |key, value|
|
37
|
+
key = (key.to_sym rescue key) || key
|
38
|
+
new[key] = symbolize_names(value)
|
39
|
+
end
|
40
|
+
new
|
41
|
+
when Array
|
42
|
+
object.map { |value| symbolize_names(value) }
|
43
|
+
else
|
44
|
+
object
|
73
45
|
end
|
74
46
|
end
|
75
47
|
|
data/lib/eligible/version.rb
CHANGED
data/lib/eligible/x12.rb
CHANGED
@@ -2,18 +2,9 @@ module Eligible
|
|
2
2
|
class X12 < APIResource
|
3
3
|
|
4
4
|
def self.post(params, api_key=nil)
|
5
|
-
|
6
|
-
|
7
|
-
require 'uri'
|
8
|
-
uri = URI.parse("https://gds.eligibleapi.com")
|
9
|
-
|
10
|
-
post_args = "x12=#{params}&api_key=#{Eligible.api_key}&test=#{Eligible.test}"
|
11
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
12
|
-
http.use_ssl = true
|
13
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
14
|
-
path = "/v1.1/x12"
|
15
|
-
response = http.post(path, post_args)
|
16
|
-
Util.convert_to_eligible_object(response, Eligible.api_key)
|
5
|
+
response, api_key = Eligible.request(:post, '/x12', api_key, params)
|
6
|
+
Util.convert_to_eligible_object(response, api_key)
|
17
7
|
end
|
8
|
+
|
18
9
|
end
|
19
10
|
end
|
data/test/test_eligible.rb
CHANGED
@@ -13,22 +13,19 @@ class TestEligible < Test::Unit::TestCase
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
context'
|
16
|
+
context '"General API"' do
|
17
17
|
setup do
|
18
|
-
Eligible.
|
19
|
-
@mock = mock
|
20
|
-
Eligible.mock_rest_client = @mock
|
18
|
+
Eligible.mock_rest_client = @mock = mock
|
21
19
|
end
|
22
20
|
|
23
21
|
teardown do
|
24
|
-
Eligible.mock_rest_client = nil
|
25
|
-
Eligible.api_key = nil
|
22
|
+
Eligible.mock_rest_client = Eligible.api_key = nil
|
26
23
|
end
|
27
24
|
|
28
25
|
should 'not specifying api credentials should raise an exception' do
|
29
26
|
Eligible.api_key = nil
|
30
27
|
assert_raises Eligible::AuthenticationError do
|
31
|
-
Eligible::
|
28
|
+
Eligible::Coverage.get({})
|
32
29
|
end
|
33
30
|
end
|
34
31
|
|
@@ -37,147 +34,11 @@ class TestEligible < Test::Unit::TestCase
|
|
37
34
|
response = test_response(test_invalid_api_key_error, 401)
|
38
35
|
assert_raises Eligible::AuthenticationError do
|
39
36
|
@mock.expects(:get).once.raises(RestClient::ExceptionWithResponse.new(response, 401))
|
40
|
-
Eligible::
|
37
|
+
Eligible::Coverage.get({})
|
41
38
|
end
|
42
39
|
end
|
43
40
|
end
|
44
41
|
|
45
|
-
context 'Plan' do
|
46
|
-
setup do
|
47
|
-
Eligible.api_key = 'TEST'
|
48
|
-
@mock = mock
|
49
|
-
Eligible.mock_rest_client = @mock
|
50
|
-
end
|
51
|
-
|
52
|
-
teardown do
|
53
|
-
Eligible.mock_rest_client = nil
|
54
|
-
Eligible.api_key = nil
|
55
|
-
end
|
56
|
-
|
57
|
-
should 'return an error if no params are supplied' do
|
58
|
-
params = {}
|
59
|
-
response = test_response(test_plan_missing_params)
|
60
|
-
@mock.expects(:get).returns(response)
|
61
|
-
plan = Eligible::Plan.get(params)
|
62
|
-
assert_not_nil plan.error
|
63
|
-
end
|
64
|
-
|
65
|
-
should 'return plan information if valid params are supplied' do
|
66
|
-
params = {
|
67
|
-
:payer_name => "Aetna",
|
68
|
-
:payer_id => "000001",
|
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
|
-
}
|
77
|
-
response = test_response(test_plan)
|
78
|
-
@mock.expects(:get).returns(response)
|
79
|
-
plan = Eligible::Plan.get(params)
|
80
|
-
assert_nil plan.error
|
81
|
-
assert_not_nil plan.all
|
82
|
-
end
|
83
|
-
|
84
|
-
should 'return the right subsets of the data when requested' do
|
85
|
-
params = {
|
86
|
-
:payer_name => "Aetna",
|
87
|
-
:payer_id => "000001",
|
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
|
-
}
|
96
|
-
response = test_response(test_plan)
|
97
|
-
@mock.expects(:get).returns(response)
|
98
|
-
plan = Eligible::Plan.get(params)
|
99
|
-
|
100
|
-
assert_not_nil plan.all[:primary_insurance]
|
101
|
-
assert_not_nil plan.status[:coverage_status]
|
102
|
-
assert_nil plan.status[:deductible_in_network]
|
103
|
-
assert_not_nil plan.deductible[:deductible_in_network]
|
104
|
-
assert_nil plan.deductible[:balance]
|
105
|
-
assert_not_nil plan.dates[:primary_insurance][:plan_begins]
|
106
|
-
assert_nil plan.dates[:deductible_in_network]
|
107
|
-
assert_not_nil plan.balance[:balance]
|
108
|
-
assert_nil plan.balance[:deductible_in_network]
|
109
|
-
assert_not_nil plan.stop_loss[:stop_loss_in_network]
|
110
|
-
assert_nil plan.stop_loss[:deductible_in_network]
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
context 'Service' do
|
115
|
-
setup do
|
116
|
-
Eligible.api_key = 'TEST'
|
117
|
-
@mock = mock
|
118
|
-
Eligible.mock_rest_client = @mock
|
119
|
-
end
|
120
|
-
|
121
|
-
teardown do
|
122
|
-
Eligible.mock_rest_client = nil
|
123
|
-
Eligible.api_key = nil
|
124
|
-
end
|
125
|
-
|
126
|
-
should 'return an error if no params are supplied' do
|
127
|
-
params = {}
|
128
|
-
response = test_response(test_service_missing_params)
|
129
|
-
@mock.expects(:get).returns(response)
|
130
|
-
service = Eligible::Service.get(params)
|
131
|
-
assert_not_nil service.error
|
132
|
-
end
|
133
|
-
|
134
|
-
should 'return eligibility information if valid params are supplied' do
|
135
|
-
params = {
|
136
|
-
:payer_name => "Aetna",
|
137
|
-
:payer_id => "000001",
|
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
|
-
}
|
146
|
-
response = test_response(test_service)
|
147
|
-
@mock.expects(:get).returns(response)
|
148
|
-
service = Eligible::Service.get(params)
|
149
|
-
assert_nil service.error
|
150
|
-
assert_not_nil service.all
|
151
|
-
end
|
152
|
-
|
153
|
-
should 'return the right subsets of the data when requested' do
|
154
|
-
params = {
|
155
|
-
:payer_name => "Aetna",
|
156
|
-
:payer_id => "000001",
|
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
|
-
}
|
165
|
-
response = test_response(test_service)
|
166
|
-
@mock.expects(:get).returns(response)
|
167
|
-
service = Eligible::Service.get(params)
|
168
|
-
|
169
|
-
assert_not_nil service.all[:service_begins]
|
170
|
-
assert_not_nil service.visits[:visits_in_network]
|
171
|
-
assert_nil service.visits[:copayment_in_network]
|
172
|
-
assert_not_nil service.copayment[:copayment_in_network]
|
173
|
-
assert_nil service.copayment[:visits_in_network]
|
174
|
-
assert_not_nil service.coinsurance[:coinsurance_in_network]
|
175
|
-
assert_nil service.coinsurance[:visits_in_network]
|
176
|
-
assert_not_nil service.deductible[:deductible_in_network]
|
177
|
-
assert_nil service.deductible[:visits_in_network]
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
42
|
context 'Demographic' do
|
182
43
|
setup do
|
183
44
|
Eligible.api_key = 'TEST'
|
@@ -201,7 +62,7 @@ class TestEligible < Test::Unit::TestCase
|
|
201
62
|
should 'return demographic information if valid params are supplied' do
|
202
63
|
params = {
|
203
64
|
:payer_name => "Aetna",
|
204
|
-
:payer_id
|
65
|
+
:payer_id => "000001",
|
205
66
|
:provider_last_name => "Last",
|
206
67
|
:provider_first_name => "First",
|
207
68
|
:provider_npi => "1028384219",
|
@@ -214,34 +75,7 @@ class TestEligible < Test::Unit::TestCase
|
|
214
75
|
@mock.expects(:get).returns(response)
|
215
76
|
demographic = Eligible::Demographic.get(params)
|
216
77
|
assert_nil demographic.error
|
217
|
-
assert_not_nil demographic.
|
218
|
-
end
|
219
|
-
|
220
|
-
should 'return the right subsets of the data when requested' do
|
221
|
-
params = {
|
222
|
-
:payer_name => "Aetna",
|
223
|
-
:payer_id => "000001",
|
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
|
-
}
|
232
|
-
response = test_response(test_demographic)
|
233
|
-
@mock.expects(:get).returns(response)
|
234
|
-
demographic = Eligible::Demographic.get(params)
|
235
|
-
|
236
|
-
assert_not_nil demographic.all[:timestamp]
|
237
|
-
assert_not_nil demographic.zip[:zip]
|
238
|
-
assert_nil demographic.zip[:group_id]
|
239
|
-
assert_not_nil demographic.employer[:group_id]
|
240
|
-
assert_nil demographic.employer[:zip]
|
241
|
-
assert_not_nil demographic.address[:address]
|
242
|
-
assert_nil demographic.address[:group_id]
|
243
|
-
assert_not_nil demographic.dob[:dob]
|
244
|
-
assert_nil demographic.dob[:address]
|
78
|
+
assert_not_nil demographic.to_hash
|
245
79
|
end
|
246
80
|
end
|
247
81
|
|
@@ -266,7 +100,7 @@ class TestEligible < Test::Unit::TestCase
|
|
266
100
|
end
|
267
101
|
|
268
102
|
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"}]}}
|
103
|
+
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
104
|
response = test_response(test_post_claim)
|
271
105
|
end
|
272
106
|
end
|
@@ -294,7 +128,7 @@ class TestEligible < Test::Unit::TestCase
|
|
294
128
|
should 'return coverage information if valid params are supplied' do
|
295
129
|
params = {
|
296
130
|
:payer_name => "Aetna",
|
297
|
-
:payer_id
|
131
|
+
:payer_id => "000001",
|
298
132
|
:provider_last_name => "Last",
|
299
133
|
:provider_first_name => "First",
|
300
134
|
:provider_npi => "1028384219",
|
@@ -307,7 +141,7 @@ class TestEligible < Test::Unit::TestCase
|
|
307
141
|
@mock.expects(:get).returns(response)
|
308
142
|
coverage = Eligible::Coverage.get(params)
|
309
143
|
|
310
|
-
assert_not_nil coverage.
|
144
|
+
assert_not_nil coverage.to_hash[:eligible_id]
|
311
145
|
end
|
312
146
|
end
|
313
147
|
|
@@ -324,13 +158,13 @@ class TestEligible < Test::Unit::TestCase
|
|
324
158
|
end
|
325
159
|
|
326
160
|
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"]}
|
161
|
+
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
162
|
response = test_response(test_post_enrollment)
|
329
163
|
|
330
164
|
@mock.expects(:post).returns(response)
|
331
165
|
enrollment = Eligible::Enrollment.post(params)
|
332
166
|
|
333
|
-
assert_not_nil enrollment.
|
167
|
+
assert_not_nil enrollment.to_hash[:enrollment_request]
|
334
168
|
end
|
335
169
|
|
336
170
|
should 'get the status of an enrollment request' do
|
@@ -338,7 +172,7 @@ class TestEligible < Test::Unit::TestCase
|
|
338
172
|
response = test_response(test_get_enrollment)
|
339
173
|
@mock.expects(:get).returns(response)
|
340
174
|
enrollment = Eligible::Enrollment.get(params)
|
341
|
-
assert_not_nil enrollment.
|
175
|
+
assert_not_nil enrollment.to_hash[:enrollments]
|
342
176
|
end
|
343
177
|
end
|
344
178
|
end
|