eligible 1.0 → 1.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.
- data/README.md +111 -79
- data/lib/eligible.rb +1 -1
- data/lib/eligible/service.rb +23 -3
- data/lib/eligible/version.rb +1 -1
- metadata +14 -14
data/README.md
CHANGED
@@ -19,100 +19,121 @@ Or install it yourself with:
|
|
19
19
|
## Usage
|
20
20
|
|
21
21
|
### Setup
|
22
|
-
require eligible
|
22
|
+
require 'eligible'
|
23
23
|
Eligible.api_key = YOUR_KEY
|
24
24
|
|
25
|
+
### Format
|
26
|
+
|
27
|
+
Include `{ :format => "X12" }` in the params hash to get back the raw X12 response.
|
28
|
+
|
25
29
|
### Retrieve Plan object and query it
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
params = {
|
33
|
+
:payer_name => "Aetna",
|
34
|
+
:payer_id => "000001",
|
35
|
+
:service_provider_last_name => "Last",
|
36
|
+
:service_provider_first_name => "First",
|
37
|
+
:service_provider_NPI => "12345678",
|
38
|
+
:subscriber_id => "12345678",
|
39
|
+
:subscriber_last_name => "Austen",
|
40
|
+
:subscriber_first_name => "Jane",
|
41
|
+
:subscriber_dob => "1955-12-14"
|
42
|
+
}
|
43
|
+
|
44
|
+
plan = Eligible::Plan.get(params)
|
45
|
+
plan.all # returns all fields on the plan, per the plan/all endpoint
|
46
|
+
plan.status # returns status fields on the plan, per the plan/status endpoint
|
47
|
+
## Etc.: plan.deductible, plan.dates, plan.balance, plan.stop_loss
|
48
|
+
```
|
42
49
|
|
43
50
|
### Retrieve Service object and query it
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
params = {
|
54
|
+
:payer_name => "Aetna",
|
55
|
+
:payer_id => "000001",
|
56
|
+
:service_provider_last_name => "Last",
|
57
|
+
:service_provider_first_name => "First",
|
58
|
+
:service_provider_NPI => "12345678",
|
59
|
+
:subscriber_id => "12345678",
|
60
|
+
:subscriber_last_name => "Austen",
|
61
|
+
:subscriber_first_name => "Jane",
|
62
|
+
:subscriber_dob => "1955-12-14"
|
63
|
+
}
|
64
|
+
|
65
|
+
service = Eligible::Service.get(params)
|
66
|
+
service.all # returns all fields for the service, per service/all
|
67
|
+
service.visits # returns the visits for the service, per service/visits
|
68
|
+
## Etc.: service.copayment, service.coinsurance, service.deductible
|
69
|
+
|
70
|
+
## The endpoints 'general' and 'list' have a slightly different syntax than the others:
|
71
|
+
json = Eligible::Service.general(params)
|
72
|
+
json = Eligible::Service.list(params)
|
73
|
+
```
|
60
74
|
|
61
75
|
### Retrieve Demographic object and query it
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
76
|
+
|
77
|
+
```ruby
|
78
|
+
params = {
|
79
|
+
:payer_name => "Aetna",
|
80
|
+
:payer_id => "000001",
|
81
|
+
:service_provider_last_name => "Last",
|
82
|
+
:service_provider_first_name => "First",
|
83
|
+
:service_provider_NPI => "12345678",
|
84
|
+
:subscriber_id => "12345678",
|
85
|
+
:subscriber_last_name => "Austen",
|
86
|
+
:subscriber_first_name => "Jane",
|
87
|
+
:subscriber_dob => "1955-12-14"
|
88
|
+
}
|
89
|
+
|
90
|
+
demographic = Eligible::Demographic.get(params)
|
91
|
+
demographic.all # returns all fields for the demographic, per demographic/all
|
92
|
+
demographic.zip # returns the patient's zip code, per demographic/zip
|
93
|
+
## Etc.: demographic.employer, demographic.address, demographic.dob
|
94
|
+
```
|
78
95
|
|
79
96
|
### Retrieve Claim object
|
80
97
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
98
|
+
```ruby
|
99
|
+
params = {
|
100
|
+
:payer_name => "Aetna",
|
101
|
+
:payer_id => "000001",
|
102
|
+
:information_receiver_organization_name => "Organization",
|
103
|
+
:information_receiver_last_name => "Last",
|
104
|
+
:information_receiver_first_name => "First",
|
105
|
+
:information_receiver_etin => "12345678",
|
106
|
+
:service_provider_organization_name => "Marshall Group",
|
107
|
+
:service_provider_last_name => "Last",
|
108
|
+
:service_provider_first_name => "First",
|
109
|
+
:service_provider_npi => "12345678",
|
110
|
+
:service_provider_tax_id => "12345678",
|
111
|
+
:subscriber_id => "12345678",
|
112
|
+
:subscriber_last_name => "Last",
|
113
|
+
:subscriber_first_name => "First",
|
114
|
+
:subscriber_dob => "1955-12-14",
|
115
|
+
:dependent_last_name => "Last",
|
116
|
+
:dependent_first_name => "First",
|
117
|
+
:dependent_dob => "1975-12-14",
|
118
|
+
:dependent_gender => "M",
|
119
|
+
:trace_number => "12345",
|
120
|
+
:claim_control_number => "67890",
|
121
|
+
:claim_charge_amount => "45.00",
|
122
|
+
:claim_start_date => "2013-01-05",
|
123
|
+
:claim_end_date => "2013-01-05"
|
124
|
+
}
|
125
|
+
|
126
|
+
claim = Eligible::Claim.get(params)
|
127
|
+
claim.status # Returns in real time the status (paid, not paid, rejected, denied, etc) of claim specified.
|
128
|
+
```
|
110
129
|
|
111
130
|
## Tests
|
112
131
|
|
113
132
|
You can run tests with
|
114
133
|
|
115
|
-
|
134
|
+
```ruby
|
135
|
+
rake test
|
136
|
+
```
|
116
137
|
|
117
138
|
If you do send a pull request, please add passing tests for the new feature/fix.
|
118
139
|
|
@@ -124,3 +145,14 @@ If you do send a pull request, please add passing tests for the new feature/fix.
|
|
124
145
|
4. Run tests (see above)
|
125
146
|
5. Push to the branch (`git push origin my-new-feature`)
|
126
147
|
6. Create new Pull Request
|
148
|
+
|
149
|
+
## Changelog
|
150
|
+
|
151
|
+
#### 1.1
|
152
|
+
|
153
|
+
- Additional endpoints for service/general and service/list
|
154
|
+
- Support x12 format in params
|
155
|
+
|
156
|
+
#### 1.0
|
157
|
+
|
158
|
+
- Initial release
|
data/lib/eligible.rb
CHANGED
@@ -151,7 +151,7 @@ module Eligible
|
|
151
151
|
begin
|
152
152
|
# Would use :symbolize_names => true, but apparently there is
|
153
153
|
# some library out there that makes symbolize_names not work.
|
154
|
-
resp = Eligible::JSON.load(rbody)
|
154
|
+
resp = params[:format] && params[:format].match(/x12/i) ? rbody : Eligible::JSON.load(rbody)
|
155
155
|
rescue MultiJson::DecodeError
|
156
156
|
raise APIError.new("Invalid response object from API: #{rbody.inspect} (HTTP response code was #{rcode})", rcode, rbody)
|
157
157
|
end
|
data/lib/eligible/service.rb
CHANGED
@@ -18,21 +18,41 @@ module Eligible
|
|
18
18
|
|
19
19
|
def visits
|
20
20
|
keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + VISITS_ATTRIBUTES
|
21
|
-
|
21
|
+
k_to_hash(keys)
|
22
22
|
end
|
23
23
|
|
24
24
|
def copayment
|
25
25
|
keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + COPAYMENT_ATTRIBUTES
|
26
|
-
|
26
|
+
k_to_hash(keys)
|
27
27
|
end
|
28
28
|
|
29
29
|
def coinsurance
|
30
30
|
keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + COINSURANCE_ATTRIBUTES
|
31
|
-
|
31
|
+
k_to_hash(keys)
|
32
32
|
end
|
33
33
|
|
34
34
|
def deductible
|
35
35
|
keys = COMMON_ATTRIBUTES + STATUS_ATTRIBUTES + DEDUCTIBLE_ATTRIBUTES
|
36
|
+
k_to_hash(keys)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.general(params, api_key=nil)
|
40
|
+
response, api_key = Eligible.request(:get, "/service/general.json", api_key, params)
|
41
|
+
response = Util.convert_to_eligible_object(response, api_key)
|
42
|
+
response = response.to_hash if response.is_a? Hash
|
43
|
+
response
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.list(params, api_key=nil)
|
47
|
+
response, api_key = Eligible.request(:get, "/service/list.json", api_key, params)
|
48
|
+
response = Util.convert_to_eligible_object(response, api_key)
|
49
|
+
response = response.to_hash if response.is_a? Hash
|
50
|
+
response
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def k_to_hash(keys)
|
36
56
|
error ? nil : to_hash.select { |k, v| keys.include?(k) }
|
37
57
|
end
|
38
58
|
end
|
data/lib/eligible/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eligible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
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-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mocha
|
16
|
-
requirement: &
|
16
|
+
requirement: &70151816374100 !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: *70151816374100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: shoulda
|
27
|
-
requirement: &
|
27
|
+
requirement: &70151816370940 !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: *70151816370940
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: test-unit
|
38
|
-
requirement: &
|
38
|
+
requirement: &70151816383660 !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: *70151816383660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70151816381080 !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: *70151816381080
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rest-client
|
60
|
-
requirement: &
|
60
|
+
requirement: &70151816394460 !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: *70151816394460
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: multi_json
|
71
|
-
requirement: &
|
71
|
+
requirement: &70151816402500 !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: *70151816402500
|
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:
|