eligible 3.0.0.beta3 → 3.0.0.beta4
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/CHANGELOG.md +4 -0
- data/lib/eligible.rb +1 -0
- data/lib/eligible/api_resource.rb +8 -0
- data/lib/eligible/util.rb +2 -2
- data/lib/eligible/v1_0/file_object.rb +4 -13
- data/lib/eligible/v1_0/patient_statement.rb +17 -33
- data/lib/eligible/v1_0/patient_statement_service_line.rb +4 -13
- data/lib/eligible/v1_0/rest_api_base.rb +23 -0
- data/lib/eligible/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebc3b35305aecdf0a8ec318e4289d016d7e04723fac122a949bd6350acf49bad
|
4
|
+
data.tar.gz: 32bbca6062268d61c3f369369290e054f93d6e976b5117dff109830f576be3b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79488ab8c8f891662a54c1f9ac29bfee834648eb1fbf756a94e3ead25058eddd3cd232e52af0280619829b4130c0597b4d772b80d60143460c5326f5ad1b3812
|
7
|
+
data.tar.gz: 95d4d124f204774c0c6d2444f574045138a4ac515b3839391a718a6217416f854e01f0d84762f68b7556ae8bc35d8a9b68abd637d60eefa6900d046327a26058
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.0.0.beta4 - 2020-03-16
|
4
|
+
- Fixed query params conversion to support Expand feature for new REST API Endpoints
|
5
|
+
- Changed new REST API endpoints format to support `ID` field or `params`
|
6
|
+
|
3
7
|
## 3.0.0.beta3 - 2020-03-09
|
4
8
|
- Added support for new REST API endpoint "PatientStatement" and "PatientStatementServiceLine"
|
5
9
|
|
data/lib/eligible.rb
CHANGED
@@ -42,6 +42,7 @@ require 'eligible/risk_assessment'
|
|
42
42
|
require 'eligible/icd'
|
43
43
|
|
44
44
|
# New REST API Endpoints
|
45
|
+
require 'eligible/v1_0/rest_api_base'
|
45
46
|
require 'eligible/v1_0/file_object'
|
46
47
|
require 'eligible/v1_0/patient_statement'
|
47
48
|
require 'eligible/v1_0/patient_statement_service_line'
|
@@ -20,6 +20,10 @@ module Eligible
|
|
20
20
|
"/#{CGI.escape(class_name.downcase)}/"
|
21
21
|
end
|
22
22
|
|
23
|
+
def self.endpoint_name
|
24
|
+
self.const_get('ENDPOINT_NAME')
|
25
|
+
end
|
26
|
+
|
23
27
|
def self.require_param(value, name)
|
24
28
|
fail ArgumentError, "#{name} of the #{class_name} is required" if value.nil? || (value.is_a?(String) && value.empty?)
|
25
29
|
end
|
@@ -33,6 +37,10 @@ module Eligible
|
|
33
37
|
end
|
34
38
|
end
|
35
39
|
|
40
|
+
def self.rest_api_params(id_or_params)
|
41
|
+
id_or_params.is_a?(Hash) ? id_or_params : { id: id_or_params }
|
42
|
+
end
|
43
|
+
|
36
44
|
def self.send_request(method, url, params, opts)
|
37
45
|
headers = opts.clone
|
38
46
|
client_secret = headers.delete(:client_secret)
|
data/lib/eligible/util.rb
CHANGED
@@ -75,13 +75,13 @@ module Eligible
|
|
75
75
|
|
76
76
|
def self.flatten_params_array(value, calculated_key)
|
77
77
|
result = []
|
78
|
-
value.
|
78
|
+
value.each do |elem|
|
79
79
|
if elem.is_a?(Hash)
|
80
80
|
result += flatten_params(elem, "#{calculated_key}[]")
|
81
81
|
elsif elem.is_a?(Array)
|
82
82
|
result += flatten_params_array(elem, calculated_key)
|
83
83
|
else
|
84
|
-
result << ["#{calculated_key}[
|
84
|
+
result << ["#{calculated_key}[]", elem]
|
85
85
|
end
|
86
86
|
end
|
87
87
|
result
|
@@ -1,19 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Eligible
|
4
|
-
class FileObject <
|
5
|
-
|
4
|
+
class FileObject < RestAPIBase
|
5
|
+
ENDPOINT_NAME = 'files'.freeze
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.post(params, opts = {})
|
12
|
-
send_request :post, api_url('files'), params, opts
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.list(params, opts = {})
|
16
|
-
send_request :get, api_url('files'), params, opts
|
17
|
-
end
|
7
|
+
# not an allowed operation so override the implementation to not support explicitly even though route is not defined
|
8
|
+
def self.update; end
|
18
9
|
end
|
19
10
|
end
|
@@ -1,74 +1,58 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Eligible
|
4
|
-
class PatientStatement <
|
5
|
-
|
6
|
-
|
7
|
-
def self.get(params, opts = {})
|
8
|
-
send_request :get, api_url('patient_statements', params, :patient_statement_id), params, opts.merge(required_params: [:patient_statement_id])
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.post(params, opts = {})
|
12
|
-
send_request :post, api_url('patient_statements'), params, opts
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.update(params, opts = {})
|
16
|
-
send_request :put, api_url('patient_statements', params, :patient_statement_id), params, opts.merge(required_params: [:patient_statement_id])
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.list(params, opts = {})
|
20
|
-
send_request :get, api_url('patient_statements'), params, opts
|
21
|
-
end
|
4
|
+
class PatientStatement < RestAPIBase
|
5
|
+
ENDPOINT_NAME = 'patient_statements'.freeze
|
22
6
|
|
23
7
|
# Finalize the patient statement
|
24
|
-
def self.finalize(
|
25
|
-
send_request :post, "/patient_statements/#{statement_id(
|
8
|
+
def self.finalize(id, opts = {})
|
9
|
+
send_request :post, "/patient_statements/#{statement_id(id)}/finalize", rest_api_params(id), opts.merge(required_params: [:id])
|
26
10
|
end
|
27
11
|
|
28
12
|
# Post a payment
|
29
13
|
def self.payment(params, opts = {})
|
30
|
-
send_request :post, "/patient_statements/#{statement_id(params)}/payment", params, opts.merge(required_params: [:
|
14
|
+
send_request :post, "/patient_statements/#{statement_id(params)}/payment", rest_api_params(params), opts.merge(required_params: [:id])
|
31
15
|
end
|
32
16
|
|
33
17
|
# List all payments
|
34
18
|
def self.payments(params, opts = {})
|
35
|
-
send_request :get, "/patient_statements/#{statement_id(params)}/payments", params, opts.merge(required_params: [:
|
19
|
+
send_request :get, "/patient_statements/#{statement_id(params)}/payments", rest_api_params(params), opts.merge(required_params: [:id])
|
36
20
|
end
|
37
21
|
|
38
22
|
# Capture a Patient Statement
|
39
23
|
def self.capture(params, opts = {})
|
40
|
-
send_request :post, "/patient_statements/#{statement_id(params)}/capture", params, opts.merge(required_params: [:
|
24
|
+
send_request :post, "/patient_statements/#{statement_id(params)}/capture", rest_api_params(params), opts.merge(required_params: [:id])
|
41
25
|
end
|
42
26
|
|
43
27
|
# Process a Patient Statement
|
44
28
|
def self.process(params, opts = {})
|
45
|
-
send_request :post, "/patient_statements/#{statement_id(params)}/process", params, opts.merge(required_params: [:
|
29
|
+
send_request :post, "/patient_statements/#{statement_id(params)}/process", rest_api_params(params), opts.merge(required_params: [:id])
|
46
30
|
end
|
47
31
|
|
48
32
|
# Send a Patient Statement
|
49
|
-
def self.send(
|
50
|
-
send_request :post, "/patient_statements/#{statement_id(
|
33
|
+
def self.send(id, opts = {})
|
34
|
+
send_request :post, "/patient_statements/#{statement_id(id)}/send", rest_api_params(id), opts.merge(required_params: [:id])
|
51
35
|
end
|
52
36
|
|
53
37
|
# Void a Patient Statement
|
54
|
-
def self.void(
|
55
|
-
send_request :post, "/patient_statements/#{statement_id(
|
38
|
+
def self.void(id, opts = {})
|
39
|
+
send_request :post, "/patient_statements/#{statement_id(id)}/void", rest_api_params(id), opts.merge(required_params: [:id])
|
56
40
|
end
|
57
41
|
|
58
42
|
# Mark UnCollectible
|
59
|
-
def self.mark_uncollectible(
|
60
|
-
send_request :post, "/patient_statements/#{statement_id(
|
43
|
+
def self.mark_uncollectible(id, opts = {})
|
44
|
+
send_request :post, "/patient_statements/#{statement_id(id)}/mark_uncollectible", rest_api_params(id), opts.merge(required_params: [:id])
|
61
45
|
end
|
62
46
|
|
63
47
|
# Reestimate a Patient Statement
|
64
48
|
def self.reestimate(params, opts = {})
|
65
|
-
send_request :post, "/patient_statements/#{statement_id(params)}/reestimate", params, opts.merge(required_params: [:
|
49
|
+
send_request :post, "/patient_statements/#{statement_id(params)}/reestimate", rest_api_params(params), opts.merge(required_params: [:id])
|
66
50
|
end
|
67
51
|
|
68
52
|
private
|
69
53
|
|
70
|
-
def statement_id(
|
71
|
-
Util.value(
|
54
|
+
def statement_id(id_or_params)
|
55
|
+
id_or_params.is_a?(Hash) ? Util.value(id_or_params, :id) : id_or_params
|
72
56
|
end
|
73
57
|
end
|
74
58
|
end
|
@@ -1,19 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Eligible
|
4
|
-
class PatientStatementServiceLine <
|
5
|
-
|
4
|
+
class PatientStatementServiceLine < RestAPIBase
|
5
|
+
ENDPOINT_NAME = 'patient_statement_service_lines'.freeze
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.post(params, opts = {})
|
12
|
-
send_request :post, api_url('patient_statement_service_lines'), params, opts
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.list(params, opts = {})
|
16
|
-
send_request :get, api_url('patient_statement_service_lines'), params, opts
|
17
|
-
end
|
7
|
+
# not an allowed operation so override the implementation to not support explicitly even though route is not defined
|
8
|
+
def self.update; end
|
18
9
|
end
|
19
10
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
class RestAPIBase < APIResource
|
5
|
+
REST_API_VERSION = '1.0'.freeze
|
6
|
+
|
7
|
+
def self.retrieve(id, opts = {})
|
8
|
+
send_request :get, api_url(endpoint_name, rest_api_params(id), :id), rest_api_params(id), opts.merge(required_params: [:id])
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.create(params, opts = {})
|
12
|
+
send_request :post, api_url(endpoint_name), rest_api_params(params), opts
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.update(params, opts = {})
|
16
|
+
send_request :put, api_url(endpoint_name, rest_api_params(params), :id), rest_api_params(params), opts.merge(required_params: [:id])
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.list(params, opts = {})
|
20
|
+
send_request :get, api_url(endpoint_name), rest_api_params(params), opts
|
21
|
+
end
|
22
|
+
end
|
23
|
+
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: 3.0.0.
|
4
|
+
version: 3.0.0.beta4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katelyn Gleaon
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-03-
|
13
|
+
date: 2020-03-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- lib/eligible/v1_0/file_object.rb
|
159
159
|
- lib/eligible/v1_0/patient_statement.rb
|
160
160
|
- lib/eligible/v1_0/patient_statement_service_line.rb
|
161
|
+
- lib/eligible/v1_0/rest_api_base.rb
|
161
162
|
- lib/eligible/version.rb
|
162
163
|
- lib/eligible/visit_type.rb
|
163
164
|
- lib/eligible/x12.rb
|