eligible 2.6.0 → 2.6.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/.rubocop.yml +754 -762
- data/ChangeLog +7 -0
- data/README.md +276 -64
- data/lib/eligible.rb +17 -4
- data/lib/eligible/api_resource.rb +14 -1
- data/lib/eligible/claim.rb +6 -3
- data/lib/eligible/coverage_resource.rb +5 -1
- data/lib/eligible/customer.rb +4 -4
- data/lib/eligible/enrollment.rb +4 -4
- data/lib/eligible/original_signature_pdf.rb +20 -6
- data/lib/eligible/payer.rb +4 -3
- data/lib/eligible/preauth_resource.rb +11 -0
- data/lib/eligible/precert.rb +11 -0
- data/lib/eligible/received_pdf.rb +24 -0
- data/lib/eligible/referral.rb +11 -0
- data/lib/eligible/ticket.rb +19 -6
- data/lib/eligible/util.rb +9 -0
- data/lib/eligible/version.rb +1 -1
- metadata +6 -2
data/ChangeLog
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
2016-05-10 Eligible <support@eligible.com>
|
2
|
+
* 2.6.1
|
3
|
+
- Suppressing ssl_verify_callback return code warning
|
4
|
+
- Added new endpoints: received_pdf, precert and referral
|
5
|
+
- Refactored the code and fixed couple of bugs
|
6
|
+
- Documentation updates for the endpoints
|
7
|
+
|
1
8
|
2016-02-23 Eligible <support@eligible.com>
|
2
9
|
|
3
10
|
* 2.6.0
|
data/README.md
CHANGED
@@ -36,7 +36,7 @@ Eligible.test = true
|
|
36
36
|
On each api call, you can overwrite the api key or the test parameter:
|
37
37
|
|
38
38
|
```ruby
|
39
|
-
Eligible::
|
39
|
+
Eligible::Coverage.get({:api_key => 'NEW_KEY', :test => false})
|
40
40
|
```
|
41
41
|
|
42
42
|
### Response Format
|
@@ -45,7 +45,7 @@ By default, all responses are in JSON, but you can request raw
|
|
45
45
|
access to X12 by adding is as a parameter on the api call:
|
46
46
|
|
47
47
|
```ruby
|
48
|
-
Eligible::
|
48
|
+
Eligible::Coverage.get({:format => "x12"})
|
49
49
|
```
|
50
50
|
|
51
51
|
# Important notes
|
@@ -56,8 +56,9 @@ the parameter `payer_id`, required for most of the api calls, is
|
|
56
56
|
provided by Eligible from its website, in xml and json format, which
|
57
57
|
you can embed into your applications.
|
58
58
|
|
59
|
-
[https://eligible.com/resources/
|
60
|
-
|
59
|
+
[https://eligible.com/resources/payers/eligibility.xml](https://eligible.com/resources/payers/eligibility.xml)
|
60
|
+
|
61
|
+
[https://eligible.com/resources/payers/eligibility.json](https://eligible.com/resources/payers/eligibility.json)
|
61
62
|
|
62
63
|
## Payer List for Claims
|
63
64
|
|
@@ -65,8 +66,23 @@ the parameter `payer_id`, required for claims, is provided by Eligible
|
|
65
66
|
from its website, in xml and json format, which you can embed into
|
66
67
|
your applications.
|
67
68
|
|
68
|
-
|
69
|
-
|
69
|
+
## Medical
|
70
|
+
|
71
|
+
[https://eligible.com/resources/payers/claims/medical.xml](https://eligible.com/resources/payers/claims/medical.xml)
|
72
|
+
|
73
|
+
[https://eligible.com/resources/payers/claims/medical.json](https://eligible.com/resources/payers/claims/medical.json)
|
74
|
+
|
75
|
+
## Institutional
|
76
|
+
|
77
|
+
[https://eligible.com/resources/payers/claims/institutional.xml](https://eligible.com/resources/payers/claims/institutional.xml)
|
78
|
+
|
79
|
+
[https://eligible.com/resources/payers/claims/institutional.json](https://eligible.com/resources/payers/claims/institutional.json)
|
80
|
+
|
81
|
+
## Dental
|
82
|
+
|
83
|
+
[https://eligible.com/resources/payers/claims/dental.xml](https://eligible.com/resources/payers/claims/dental.xml)
|
84
|
+
|
85
|
+
[https://eligible.com/resources/payers/claims/dental.json](https://eligible.com/resources/payers/claims/dental.json)
|
70
86
|
|
71
87
|
## Service Type Codes
|
72
88
|
|
@@ -91,16 +107,16 @@ On all results you can check for errors in `result.error`. The raw
|
|
91
107
|
json format is available by using `result.to_hash`.
|
92
108
|
|
93
109
|
```ruby
|
94
|
-
|
95
|
-
|
96
|
-
|
110
|
+
coverage = Eligible::Coverage.get(params)
|
111
|
+
coverage.error
|
112
|
+
coverage.to_hash
|
97
113
|
```
|
98
114
|
|
99
115
|
## Coverage
|
100
116
|
|
101
117
|
### Reference
|
102
118
|
|
103
|
-
[https://eligible.com
|
119
|
+
[https://reference.eligible.com/#coverage](https://reference.eligible.com/#coverage)
|
104
120
|
|
105
121
|
### Retrieve eligibility and benefit information
|
106
122
|
|
@@ -123,34 +139,35 @@ coverage.to_hash # returns all coverage info for the request
|
|
123
139
|
coverage.error # return error, if any
|
124
140
|
```
|
125
141
|
|
126
|
-
##
|
142
|
+
## Cost Estimate
|
127
143
|
|
128
144
|
### Reference
|
145
|
+
[https://eligible.com/reference/cost-estimates](https://eligible.com/reference/cost-estimates)
|
129
146
|
|
130
|
-
|
131
|
-
|
132
|
-
### Fetch demographics for a patient
|
147
|
+
### Retrieve cost estimate information
|
133
148
|
|
134
149
|
```ruby
|
135
150
|
params = {
|
136
|
-
:
|
137
|
-
:
|
138
|
-
:
|
139
|
-
:
|
140
|
-
:
|
141
|
-
:
|
142
|
-
:
|
143
|
-
:
|
144
|
-
:member_dob => "1955-12-14"
|
151
|
+
service_type: '98',
|
152
|
+
network: 'IN',
|
153
|
+
payer_id: '00001',
|
154
|
+
provider_npi: '1234567893',
|
155
|
+
member_id: 'COST_ESTIMATE_001',
|
156
|
+
member_dob: '1886-01-01',
|
157
|
+
provider_price: '200',
|
158
|
+
level: 'individual'
|
145
159
|
}
|
146
160
|
|
147
|
-
|
148
|
-
|
149
|
-
demographic.error # return error, if any
|
161
|
+
cost_estimate = Eligible::Coverage.cost_estimate(params)
|
162
|
+
cost_estimate.to_hash # returns all coverage info along with cost estimate
|
150
163
|
```
|
151
164
|
|
152
165
|
## Medicare
|
153
166
|
|
167
|
+
### Reference
|
168
|
+
|
169
|
+
[https://reference.eligible.com/#medicare](https://reference.eligible.com/#medicare)
|
170
|
+
|
154
171
|
### Retrieve eligibility and benefit information from CMS Medicare for a patient.
|
155
172
|
|
156
173
|
```ruby
|
@@ -173,7 +190,7 @@ medicare.error # return error, if any
|
|
173
190
|
|
174
191
|
All the batch api calls will notify the results via webhook. You can
|
175
192
|
setup a webhook in your
|
176
|
-
[Dashboard](https://
|
193
|
+
[Dashboard](https://eligible.com/dashboard/webhooks). All batch api
|
177
194
|
calls return a *reference_id* value and the *number_of_items*
|
178
195
|
submitted.
|
179
196
|
|
@@ -215,42 +232,6 @@ result.to_hash # returns the api call results
|
|
215
232
|
result.error # return error, if any
|
216
233
|
```
|
217
234
|
|
218
|
-
### Demographic Batch API
|
219
|
-
|
220
|
-
```ruby
|
221
|
-
params = {
|
222
|
-
"parameters"=>[
|
223
|
-
{
|
224
|
-
"id"=>1,
|
225
|
-
"payer_name"=>"UnitedHealthCare",
|
226
|
-
"payer_id"=>"00112",
|
227
|
-
"service_provider_npi"=>"12341234",
|
228
|
-
"subscriber_id"=>"98769876",
|
229
|
-
"subscriber_first_name"=>"Jane",
|
230
|
-
"subscriber_last_name"=>"Austen",
|
231
|
-
"service_provider_last_name"=>"Gaurav",
|
232
|
-
"service_provider_first_name"=>"Gupta",
|
233
|
-
"subscriber_dob"=>"1947-10-07"
|
234
|
-
},
|
235
|
-
{
|
236
|
-
"id"=>2,
|
237
|
-
"payer_name"=>"UnitedHealthCare",
|
238
|
-
"payer_id"=>"00112",
|
239
|
-
"service_provider_npi"=>"67676767",
|
240
|
-
"subscriber_id"=>"98989898",
|
241
|
-
"subscriber_first_name"=>"Gaurav",
|
242
|
-
"subscriber_last_name"=>"Gupta",
|
243
|
-
"service_provider_last_name"=>"Jane",
|
244
|
-
"service_provider_first_name"=>"Austen",
|
245
|
-
"subscriber_dob"=>"1947-08-15"
|
246
|
-
}
|
247
|
-
]
|
248
|
-
}
|
249
|
-
result = Eligible::Demographic.batch_post(params)
|
250
|
-
result.to_hash # returns the api call results
|
251
|
-
result.error # return error, if any
|
252
|
-
```
|
253
|
-
|
254
235
|
### Medicare Batch API
|
255
236
|
|
256
237
|
```ruby
|
@@ -290,6 +271,9 @@ Enrollment requests can have multiple enrollment NPIs. You can repeat
|
|
290
271
|
the enrollment for a NPI multiple times across different enrollment
|
291
272
|
requests.
|
292
273
|
|
274
|
+
### Reference
|
275
|
+
[https://reference.eligible.com/#enrollment-introduction](https://reference.eligible.com/#enrollment-introduction)
|
276
|
+
|
293
277
|
### Create an Enrollment Request
|
294
278
|
|
295
279
|
```ruby
|
@@ -343,6 +327,10 @@ enrollment = Eligible::Enrollment.get(params)
|
|
343
327
|
|
344
328
|
## Claims
|
345
329
|
|
330
|
+
### Reference
|
331
|
+
|
332
|
+
[https://reference.eligible.com/#create-a-claim](https://reference.eligible.com/#create-a-claim)
|
333
|
+
|
346
334
|
### Create Claim object
|
347
335
|
|
348
336
|
```ruby
|
@@ -438,7 +426,7 @@ claim = Eligible::Claim.get(params) # returns acknowledgment information on an i
|
|
438
426
|
|
439
427
|
### Reference
|
440
428
|
|
441
|
-
[https://eligible.com
|
429
|
+
[https://reference.eligible.com/#payment-status](https://reference.eligible.com/#payment-status)
|
442
430
|
|
443
431
|
### Retrieve Payment status
|
444
432
|
|
@@ -473,6 +461,10 @@ result = Eligible::X12.post(params)
|
|
473
461
|
|
474
462
|
## Tickets
|
475
463
|
|
464
|
+
### Reference
|
465
|
+
|
466
|
+
[https://reference.eligible.com/#create-a-ticket](https://reference.eligible.com/#create-a-ticket)
|
467
|
+
|
476
468
|
### Create a ticket
|
477
469
|
|
478
470
|
```ruby
|
@@ -528,6 +520,226 @@ comments.error # return error, if any
|
|
528
520
|
Eligible::Ticket.all
|
529
521
|
```
|
530
522
|
|
523
|
+
## Customer
|
524
|
+
|
525
|
+
### Reference
|
526
|
+
|
527
|
+
[https://reference.eligible.com/#customers-introduction](https://reference.eligible.com/#customers-introduction)
|
528
|
+
|
529
|
+
### Create a customer
|
530
|
+
|
531
|
+
```ruby
|
532
|
+
customer_params = { customer: { name: "ABC company",
|
533
|
+
site_name: "ABC site name"
|
534
|
+
}
|
535
|
+
}
|
536
|
+
customer_response = Eligible::Customer.post(customer_params)
|
537
|
+
customer_response.to_json
|
538
|
+
```
|
539
|
+
|
540
|
+
### Get a customer
|
541
|
+
|
542
|
+
```ruby
|
543
|
+
customer_params = { customer_id: "123" }
|
544
|
+
customer_response = Eligible::Customer.get(customer_params)
|
545
|
+
customer_response.to_json
|
546
|
+
```
|
547
|
+
|
548
|
+
### Update a customer
|
549
|
+
|
550
|
+
```ruby
|
551
|
+
customer_params = { customer_id: "123",
|
552
|
+
customer: { site_name: "XYZ site name" }
|
553
|
+
}
|
554
|
+
customer_response = Eligible::Customer.update(customer_params)
|
555
|
+
customer_response.to_json
|
556
|
+
```
|
557
|
+
|
558
|
+
### Get all customers
|
559
|
+
|
560
|
+
```ruby
|
561
|
+
customer_params = {}
|
562
|
+
customer_response = Eligible::Customer.all(customer_params)
|
563
|
+
customer_response.to_json
|
564
|
+
```
|
565
|
+
|
566
|
+
## Received Pdf
|
567
|
+
|
568
|
+
### Reference
|
569
|
+
|
570
|
+
[https://reference.eligible.com/#view-received-pdf](https://reference.eligible.com/#view-received-pdf)
|
571
|
+
|
572
|
+
### Get received pdf
|
573
|
+
|
574
|
+
```ruby
|
575
|
+
params = { enrollment_npi_id: '123' }
|
576
|
+
response = Eligible::ReceivedPdf.get(params)
|
577
|
+
response.to_hash
|
578
|
+
```
|
579
|
+
|
580
|
+
### Download received pdf
|
581
|
+
By default, it downloads to /tmp/received_pdf.pdf
|
582
|
+
```ruby
|
583
|
+
params = { enrollment_npi_id: '123', filename: 'file_path_where_to_download' }
|
584
|
+
Eligible::ReceivedPdf.download(params)
|
585
|
+
```
|
586
|
+
|
587
|
+
## Original Signature Pdf
|
588
|
+
|
589
|
+
### Reference
|
590
|
+
|
591
|
+
[https://reference.eligible.com/#create-original-signature-pdf](https://reference.eligible.com/#create-original-signature-pdf)
|
592
|
+
|
593
|
+
### Get original signature pdf
|
594
|
+
|
595
|
+
```ruby
|
596
|
+
params = { enrollment_npi_id: '123' }
|
597
|
+
response = Eligible::OriginalSignaturePdf.get(params)
|
598
|
+
response.to_hash
|
599
|
+
```
|
600
|
+
|
601
|
+
### Create original signature pdf
|
602
|
+
|
603
|
+
```ruby
|
604
|
+
params = { enrollment_npi_id: '123' }
|
605
|
+
params[:file] = File.new('path_to_file')
|
606
|
+
response = Eligible::OriginalSignaturePdf.post(params)
|
607
|
+
response.to_hash
|
608
|
+
```
|
609
|
+
|
610
|
+
### Update original signature pdf
|
611
|
+
|
612
|
+
```ruby
|
613
|
+
params = { enrollment_npi_id: '123' }
|
614
|
+
params[:file] = File.new('path_to_new_file')
|
615
|
+
response = Eligible::OriginalSignaturePdf.update(params)
|
616
|
+
response.to_hash
|
617
|
+
```
|
618
|
+
|
619
|
+
### Download original signature pdf
|
620
|
+
By default, it downloads to /tmp/original_signature_pdf.pdf
|
621
|
+
```ruby
|
622
|
+
params = { enrollment_npi_id: '123', filename: 'file_path_where_to_download' }
|
623
|
+
Eligible::OriginalSignaturePdf.download(params)
|
624
|
+
```
|
625
|
+
|
626
|
+
### Delete original signature pdf
|
627
|
+
|
628
|
+
```ruby
|
629
|
+
params = { enrollment_npi_id: '123' }
|
630
|
+
response = Eligible::OriginalSignaturePdf.delete(params)
|
631
|
+
response.to_hash
|
632
|
+
```
|
633
|
+
|
634
|
+
## Payer
|
635
|
+
|
636
|
+
### Reference
|
637
|
+
|
638
|
+
[https://reference.eligible.com/#introduction](https://reference.eligible.com/#introduction)
|
639
|
+
|
640
|
+
### List all the payers
|
641
|
+
|
642
|
+
```ruby
|
643
|
+
response = Eligible::Payer.list({})
|
644
|
+
response.collect { |payer| payer.to_hash }
|
645
|
+
```
|
646
|
+
|
647
|
+
### View a single payer
|
648
|
+
|
649
|
+
```ruby
|
650
|
+
params = { payer_id: '12345' }
|
651
|
+
response = Eligible::Payer.get(params)
|
652
|
+
response.to_hash
|
653
|
+
```
|
654
|
+
|
655
|
+
### Search options for a payer
|
656
|
+
|
657
|
+
```ruby
|
658
|
+
params = { payer_id: '12345' }
|
659
|
+
response = Eligible::Payer.search_options(params)
|
660
|
+
response.to_hash
|
661
|
+
```
|
662
|
+
|
663
|
+
### Search options for all payers
|
664
|
+
|
665
|
+
```ruby
|
666
|
+
response = Eligible::Payer.search_options({})
|
667
|
+
response.collect { |payer| payer.to_hash }
|
668
|
+
```
|
669
|
+
|
670
|
+
## Precertification
|
671
|
+
|
672
|
+
### Reference
|
673
|
+
|
674
|
+
[https://reference.eligible.com/#precertification](https://reference.eligible.com/#precertification)
|
675
|
+
|
676
|
+
### Inquiry
|
677
|
+
|
678
|
+
```ruby
|
679
|
+
params = { provider_npi: '1234567893',
|
680
|
+
member_id: 'ABCDEF',
|
681
|
+
member_dob: '2016-03-04'
|
682
|
+
}
|
683
|
+
response = Eligible::Precert.inquiry(params)
|
684
|
+
response.to_hash
|
685
|
+
```
|
686
|
+
|
687
|
+
### Create
|
688
|
+
|
689
|
+
```ruby
|
690
|
+
params = { 'requester' => { 'information' => 'test' },
|
691
|
+
'subscriber' => { 'last_name' => 'XYZ',
|
692
|
+
'first_name' => 'AVC',
|
693
|
+
'id' => '231213'
|
694
|
+
},
|
695
|
+
'event' => { 'provider' => 'information' },
|
696
|
+
'services' => [{ 'service' => 'test' }]
|
697
|
+
}
|
698
|
+
response = Eligible::Precert.create(params)
|
699
|
+
response.to_hash
|
700
|
+
```
|
701
|
+
|
702
|
+
## Referral
|
703
|
+
|
704
|
+
### Inquiry
|
705
|
+
|
706
|
+
```ruby
|
707
|
+
params = { provider_npi: '1234567893',
|
708
|
+
member_id: 'ABCDEF',
|
709
|
+
member_dob: '2016-03-04'
|
710
|
+
}
|
711
|
+
response = Eligible::Referral.inquiry(params)
|
712
|
+
response.to_hash
|
713
|
+
```
|
714
|
+
|
715
|
+
### Create
|
716
|
+
|
717
|
+
```ruby
|
718
|
+
params = { 'requester' => { 'information' => 'test' },
|
719
|
+
'subscriber' => { 'last_name' => 'XYZ',
|
720
|
+
'first_name' => 'AVC',
|
721
|
+
'id' => '231213'
|
722
|
+
},
|
723
|
+
'event' => { 'provider' => 'information' },
|
724
|
+
'services' => [{ 'service' => 'test' }]
|
725
|
+
}
|
726
|
+
response = Eligible::Referral.create(params)
|
727
|
+
response.to_hash
|
728
|
+
```
|
729
|
+
|
730
|
+
## Errors
|
731
|
+
|
732
|
+
This is the list of errors thrown from the eligible ruby gem.
|
733
|
+
|
734
|
+
1. Eligible::EligibleError - Base class for the customized errors raised from Eligible gem.
|
735
|
+
2. Eligible::APIError - Raised when there is some invalid response from the api call. Raised for error codes other than 400, 401 and 404.
|
736
|
+
3. Eligible::APIConnectionError - Raised when there is some network issue like socket error, not able to connect to Eligible etc.
|
737
|
+
4. Eligible::InvalidRequestError - Raised when error code is 400 or 404.
|
738
|
+
5. Eligible::AuthenticationError - Raised when authentication fails. Mostly due to wrong api key.
|
739
|
+
6. NotImplementedError - Raised when the functionality you are trying to use doesn't exist.
|
740
|
+
7. ArgumentError - Raised when all the required params are not provided.
|
741
|
+
|
742
|
+
|
531
743
|
## Contributing
|
532
744
|
|
533
745
|
Running `rake` will run the test suite along with rubocop as a basic
|