eligible 2.4.3 → 2.5.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/CONTRIBUTORS DELETED
@@ -1,5 +0,0 @@
1
- Andy Brett <andy@andybrett.com>
2
- Ivan Müller <mulleivan@gmail.com>
3
- Janet Chang <janetlaichang@gmail.com>
4
- Katelyn Gleason <k@eligibleapi.com>
5
- Rodrigo Dominguez <rod@eligibleapi.com>
@@ -1,178 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
- require 'test/unit'
3
- require 'shoulda'
4
- require 'mocha'
5
- require 'rest-client'
6
-
7
- class TestEligible < Test::Unit::TestCase
8
- include Mocha
9
-
10
- context 'Version' do
11
- should 'have a version number' do
12
- assert_not_nil Eligible::VERSION
13
- end
14
- end
15
-
16
- context '"General API"' do
17
- setup do
18
- Eligible.mock_rest_client = @mock = mock
19
- end
20
-
21
- teardown do
22
- Eligible.mock_rest_client = Eligible.api_key = nil
23
- end
24
-
25
- should 'not specifying api credentials should raise an exception' do
26
- Eligible.api_key = nil
27
- assert_raises Eligible::AuthenticationError do
28
- Eligible::Coverage.get({})
29
- end
30
- end
31
-
32
- should 'specifying invalid api credentials should raise an exception' do
33
- Eligible.api_key = 'invalid'
34
- response = test_response(test_invalid_api_key_error, 401)
35
- assert_raises Eligible::AuthenticationError do
36
- @mock.expects(:get).once.raises(RestClient::ExceptionWithResponse.new(response, 401))
37
- Eligible::Coverage.get({})
38
- end
39
- end
40
- end
41
-
42
- context 'Demographic' do
43
- setup do
44
- Eligible.api_key = 'TEST'
45
- @mock = mock
46
- Eligible.mock_rest_client = @mock
47
- end
48
-
49
- teardown do
50
- Eligible.mock_rest_client = nil
51
- Eligible.api_key = nil
52
- end
53
-
54
- should 'return an error if no params are supplied' do
55
- params = {}
56
- response = test_response(test_demographic_missing_params)
57
- @mock.expects(:get).returns(response)
58
- demographic = Eligible::Demographic.get(params)
59
- assert_not_nil demographic.error
60
- end
61
-
62
- should 'return demographic information if valid params are supplied' do
63
- params = {
64
- :payer_name => "Aetna",
65
- :payer_id => "000001",
66
- :provider_last_name => "Last",
67
- :provider_first_name => "First",
68
- :provider_npi => "1028384219",
69
- :member_id => "W120923801",
70
- :member_last_name => "Austen",
71
- :member_first_name => "Jane",
72
- :member_dob => "1955-12-14"
73
- }
74
- response = test_response(test_demographic)
75
- @mock.expects(:get).returns(response)
76
- demographic = Eligible::Demographic.get(params)
77
- assert_nil demographic.error
78
- assert_not_nil demographic.to_hash
79
- end
80
- end
81
-
82
- context 'Claim' do
83
- setup do
84
- Eligible.api_key = 'TEST'
85
- @mock = mock
86
- Eligible.mock_rest_client = @mock
87
- end
88
-
89
- teardown do
90
- Eligible.mock_rest_client = nil
91
- Eligible.api_key = nil
92
- end
93
-
94
- should 'return an error if no params are supplied' do
95
- params = {}
96
- response = test_response(test_claim_missing_params)
97
- @mock.expects(:get).returns(response)
98
- claim = Eligible::Claim.get(params)
99
- assert claim["success"] == "false"
100
- end
101
-
102
- should 'post a claim' do
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" }] } }
104
- response = test_response(test_post_claim)
105
- end
106
- end
107
-
108
- context 'Coverage' do
109
- setup do
110
- Eligible.api_key = 'TEST'
111
- @mock = mock
112
- Eligible.mock_rest_client = @mock
113
- end
114
-
115
- teardown do
116
- Eligible.mock_rest_client = nil
117
- Eligible.api_key = nil
118
- end
119
-
120
- should 'return an error if no params are supplied' do
121
- params = {}
122
- response = test_response(test_coverage_missing_params)
123
- @mock.expects(:get).returns(response)
124
- coverage = Eligible::Coverage.get(params)
125
- assert_not_nil coverage.error
126
- end
127
-
128
- should 'return coverage information if valid params are supplied' do
129
- params = {
130
- :payer_name => "Aetna",
131
- :payer_id => "000001",
132
- :provider_last_name => "Last",
133
- :provider_first_name => "First",
134
- :provider_npi => "1028384219",
135
- :member_id => "W120923801",
136
- :member_last_name => "Austen",
137
- :member_first_name => "Jane",
138
- :member_dob => "1955-12-14"
139
- }
140
- response = test_response(test_coverage)
141
- @mock.expects(:get).returns(response)
142
- coverage = Eligible::Coverage.get(params)
143
-
144
- assert_not_nil coverage.to_hash[:eligible_id]
145
- end
146
- end
147
-
148
- context 'Enrollment' do
149
- setup do
150
- Eligible.api_key = 'TEST'
151
- @mock = mock
152
- Eligible.mock_rest_client = @mock
153
- end
154
-
155
- teardown do
156
- Eligible.mock_rest_client = nil
157
- Eligible.api_key = nil
158
- end
159
-
160
- should 'post an enrollment request' do
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"] }
162
- response = test_response(test_post_enrollment)
163
-
164
- @mock.expects(:post).returns(response)
165
- enrollment = Eligible::Enrollment.post(params)
166
-
167
- assert_not_nil enrollment.to_hash[:enrollment_request]
168
- end
169
-
170
- should 'get the status of an enrollment request' do
171
- params = { "NPI" => "1028384219" }
172
- response = test_response(test_get_enrollment)
173
- @mock.expects(:get).returns(response)
174
- enrollment = Eligible::Enrollment.get(params)
175
- assert_not_nil enrollment.to_hash[:enrollments]
176
- end
177
- end
178
- end
data/test/test_helper.rb DELETED
@@ -1,97 +0,0 @@
1
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
- require 'eligible'
3
-
4
- module Eligible
5
- @mock_rest_client = nil
6
-
7
- def self.mock_rest_client=(mock_client)
8
- @mock_rest_client = mock_client
9
- end
10
-
11
- def self.execute_request(opts)
12
- get_params = (opts[:headers] || {})[:params]
13
- post_params = opts[:payload]
14
- case opts[:method]
15
- when :get then
16
- @mock_rest_client.get opts[:url], get_params, post_params
17
- when :post then
18
- @mock_rest_client.post opts[:url], get_params, post_params
19
- when :delete then
20
- @mock_rest_client.delete opts[:url], get_params, post_params
21
- end
22
- end
23
- end
24
-
25
- def test_response(body, code=200)
26
- # When an exception is raised, restclient clobbers method_missing. Hence we
27
- # can't just use the stubs interface.
28
- body = MultiJson.dump(body) if !(body.kind_of? String)
29
- m = mock
30
- m.instance_variable_set('@eligible_values', { :body => body, :code => code })
31
-
32
- def m.body
33
- @eligible_values[:body]
34
- end
35
-
36
- def m.code
37
- @eligible_values[:code]
38
- end
39
-
40
- m
41
- end
42
-
43
- def test_invalid_api_key_error
44
- { "error" => [{ "message" => "Could not authenticate you. Please re-try with a valid API key.", "code" => 1 }] }
45
- end
46
-
47
- def test_plan_missing_params
48
- { "timestamp" => "2013-02-01T13:25:58", "eligible_id" => "A4F4E1D6-7DC3-4B20-87CE-B59F48811290", "mapping_version" => "plan/all$Revision:6$$Date:13-01-110:18$", "error" => { "response_code" => "Y", "response_description" => "Yes", "agency_qualifier_code" => "", "agency_qualifier_description" => "", "reject_reason_code" => "41", "reject_reason_description" => "Authorization/AccessRestrictions", "follow-up_action_code" => "C", "follow-up_action_description" => "PleaseCorrectandResubmit" } }
49
- end
50
-
51
- def test_plan
52
- { "timestamp" => "2013-01-14T20:39:57", "eligible_id" => "B97BC91A-3E84-40A9-AA5C-D416CAE5CDB1", "mapping_version" => "plan/all$Revision:6$$Date:13-01-110:18$", "primary_insurance" => { "name" => "Aetna", "id" => "00002", "group_name" => "TOWERGROUPCOMPANIES", "plan_begins" => "2010-01-01", "plan_ends" => "", "comments" => ["AetnaChoicePOSII"] }, "type" => "30", "coverage_status" => "1", "precertification_needed" => "", "exclusions" => "", "deductible_in_network" => { "individual" => { "base_period" => "500", "remaining" => "500", "comments" => ["MedDent", "MedDent"] }, "family" => { "base_period" => "1000", "remaining" => "1000", "comments" => ["MedDent", "MedDent"] } }, "deductible_out_network" => { "individual" => { "base_period" => "1250", "remaining" => "1250", "comments" => ["MedDent", "MedDent"] }, "family" => { "base_period" => "3750", "remaining" => "3750", "comments" => ["MedDent", "MedDent"] } }, "stop_loss_in_network" => { "individual" => { "base_period" => "", "remaining" => "2000", "comments" => [] }, "family" => { "base_period" => "", "remaining" => "4000", "comments" => [] } }, "stop_loss_out_network" => { "individual" => { "base_period" => "", "remaining" => "3000", "comments" => [] }, "family" => { "base_period" => "", "remaining" => "6000", "comments" => [] } }, "balance" => "", "comments" => [], "additional_insurance" => { "comments" => [] } }
53
- end
54
-
55
- def test_service_missing_params
56
- { "timestamp" => "2013-02-04T17:23:12", "eligible_id" => "7EEA40A7-58C5-4EBC-A450-10C37CA2D252", "mapping_version" => "service/all$Revision:4$$Date:12-12-280:13$", "error" => { "response_code" => "Y", "response_description" => "Yes", "agency_qualifier_code" => "", "agency_qualifier_description" => "", "reject_reason_code" => "41", "reject_reason_description" => "Authorization/AccessRestrictions", "follow-up_action_code" => "C", "follow-up_action_description" => "PleaseCorrectandResubmit" } }
57
- end
58
-
59
- def test_service
60
- { "timestamp" => "2013-02-01T15:28:16", "eligible_id" => "FD8994B1-F977-459A-81AC-D182EA8FE66D", "mapping_version" => "service/all$Revision:4$$Date:12-12-280:13$", "type" => "33", "coverage_status" => "1", "service_begins" => "", "service_ends" => "", "not_covered" => [], "comments" => ["AetnaChoicePOSII"], "precertification_needed" => "", "visits_in_network" => { "individual" => { "total" => "", "remaining" => "", "comments" => [] }, "family" => { "total" => "", "remaining" => "", "comments" => [] } }, "visits_out_network" => { "individual" => { "total" => "", "remaining" => "", "comments" => [] }, "family" => { "total" => "", "remaining" => "", "comments" => [] } }, "copayment_in_network" => { "individual" => { "amount" => "", "comments" => [] }, "family" => { "amount" => "35", "comments" => ["OFFCHIROVISI", "COPAYNOTINCLUDEDINOOP", "MANPULATNCHRO"] } }, "copayment_out_network" => { "individual" => { "amount" => "", "comments" => [] }, "family" => { "amount" => "0", "comments" => ["MANPULATNCHRO"] } }, "coinsurance_in_network" => { "individual" => { "percent" => "", "comments" => [] }, "family" => { "percent" => "0", "comments" => ["OFFCHIROVISI", "MANPULATNCHRO"] } }, "coinsurance_out_network" => { "individual" => { "percent" => "", "comments" => [] }, "family" => { "percent" => "30", "comments" => ["CHIROVSTEVAL", "COINSAPPLIESTOOUTOFPOCKET", "MANPULATNCHRO"] } }, "deductible_in_network" => { "individual" => { "base_period" => "", "remaining" => "", "comments" => [] }, "family" => { "base_period" => "", "remaining" => "", "comments" => [] } }, "deductible_out_network" => { "individual" => { "base_period" => "", "remaining" => "", "comments" => [] }, "family" => { "base_period" => "", "remaining" => "", "comments" => [] } }, "additional_insurance" => { "comments" => [] } }
61
- end
62
-
63
- def test_demographic_missing_params
64
- { "timestamp" => "2013-02-05T13:21:38", "eligible_id" => "AE9F5EB3-B4BF-4B2E-92C5-6307CE91DB81", "mapping_version" => "demographic/dob$Revision:1$$Date:12-12-2619:01$", "error" => { "response_code" => "Y", "response_description" => "Yes", "agency_qualifier_code" => "", "agency_qualifier_description" => "", "reject_reason_code" => "41", "reject_reason_description" => "Authorization/AccessRestrictions", "follow-up_action_code" => "C", "follow-up_action_description" => "PleaseCorrectandResubmit" } }
65
- end
66
-
67
- def test_demographic
68
- { "timestamp" => "2013-02-05T13:14:36", "eligible_id" => "DCE2FFB3-179A-4825-ADA6-B8108FB5FB90", "mapping_version" => "demographic/all$Revision:4$$Date:12-12-2622:25$", "last_name" => "AUSTEN", "first_name" => "JANE", "member_id" => "R112114321", "group_id" => "060801203300001", "group_name" => "TOWERGROUPCOMPANIES", "dob" => "1955-12-14", "gender" => "M", "address" => { "street_line_1" => "123SOUTH7THSTREET", "street_line_2" => "", "city" => "CHICAGO", "state" => "CA", "zip" => "89701" } }
69
- end
70
-
71
- def test_claim_missing_params
72
- { "success" => "false", "created_at" => "2013-06-03T23:53:39Z", "error" => { "type" => "scrub", "message" => "you forgot to include gender" } }
73
- end
74
-
75
- def test_post_claim
76
- { "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" }
77
- end
78
-
79
- def test_coverage_missing_params
80
- { "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" => "" } }
81
- end
82
-
83
- def test_coverage
84
- { "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" => [] }] }] }
85
- end
86
-
87
- def test_enrollment_missing_params
88
- { "error" => "Expeting enrollment_request_id or npis" }
89
- end
90
-
91
- def test_get_enrollment
92
- [{ "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" } } }]
93
- end
94
-
95
- def test_post_enrollment
96
- { "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" } }] } }
97
- end