change_health 2.2.0 → 2.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a1ce76c1da3af060d7c36a7a3f22c9e9bb1920b2db4f0f2cb9060ec777c1854
4
- data.tar.gz: 2e4553b586e4bf8b13db083f423853708132a0686dac5ec27beea6223e740a0d
3
+ metadata.gz: c125bdbe69dd6012d726e7ec54364c9535520520beeb4b7503dfc2b8eaf53a04
4
+ data.tar.gz: 1645afbc96aed15798aab5603445c63892593924ae8fcac0c8490d166fa46919
5
5
  SHA512:
6
- metadata.gz: c15e9b053bdbfbfca3700a3d95971517aa0c07654267cc704ce4d210cc264d6d1f9aab08ccad3c165a59b3d8d56fc82bf4be5c69f6c2155c1127fa4ee5fed5ea
7
- data.tar.gz: 5a83d9c160bef86e5a296fea12335cc56cbac2959e1841e3f9382cee6b902586138be8e8e61328c0d3579afec5f904fa4712a9ccf8e8e7c89613e15ae663f668
6
+ metadata.gz: cb574a463704359781dbddee731ce6f298916bbbb37a95dd1f44790aa56e6ba730e916a67655266f1d80dc6a47924140b3ec53fde6425e982fc000ab2b259765
7
+ data.tar.gz: 63162fe79c441191d1a73ebc3967d66bc9f20d1f7cfae7126771c17c08bed61905933e188a66d527835a32f2192a7d1e7246c220b34b06d043577e4fd6dc1a6e
data/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.2.1] - [2021-11-15-21]
8
+ ### Added
9
+ Custom Headers for Reports API and Professional Claims API
10
+ * Report
11
+ * Submission
12
+
7
13
  ## [2.2.0] - [2021-11-04-21]
8
14
  ### Added
9
15
  Ability to hit [Claim Responses and Reports](https://developers.changehealthcare.com/eligibilityandclaims/docs/claims-responses-and-reports-getting-started)
data/README.md CHANGED
@@ -174,6 +174,12 @@ claim_information = ChangeHealth::Models::Claim::ClaimInformation.new(
174
174
  service_lines: [service_line1, service_line2]
175
175
  )
176
176
 
177
+ professional_headers = {
178
+ submitter_id: '111000',
179
+ biller_id: '000111',
180
+ username: '222333hey',
181
+ password: 'builder1'
182
+ }
177
183
 
178
184
  claim_submission = ChangeHealth::Request::Claim::Submission.new(
179
185
  trading_partner_service_id: "9496",
@@ -181,10 +187,13 @@ claim_submission = ChangeHealth::Request::Claim::Submission.new(
181
187
  receiver: receiver,
182
188
  subscriber: subscriber,
183
189
  providers: [provider],
184
- claim_information: claim_information
190
+ claim_information: claim_information,
191
+ headers: professional_headers
185
192
  )
186
193
 
187
194
  claim_submission_data = claim_submission.submission
195
+
196
+ validation = claim_submission.validation
188
197
  ```
189
198
 
190
199
  ### Claim Reports
@@ -192,21 +201,26 @@ claim_submission_data = claim_submission.submission
192
201
  ```ruby
193
202
  ChangeHealth::Request::Claim::Report.ping # Test your connection
194
203
 
195
- report_list = ChangeHealth::Request::Claim::Report.report_list
204
+ report_headers = {
205
+ username: '111000john',
206
+ password: 'WeInfuse1'
207
+ }
208
+
209
+ report_list = ChangeHealth::Request::Claim::Report.report_list(headers: report_headers)
196
210
 
197
211
  report_list.report_names
198
212
  # ["X3000000.XX", "R5000000.XY", "R5000000.XX", "X3000000.AB", "X3000000.AC", "X3000000.ZZ", "R5000000.XZ", "R5000000.YZ", "R5000000.WA", "R5000000.WB", "R5000000.WC"]
199
213
 
200
- report1_edi = ChangeHealth::Request::Claim::Report.get_report(report_list.report_names.first, as_json_report: false)
214
+ report1_edi = ChangeHealth::Request::Claim::Report.get_report(report_list.report_names.first, as_json_report: false, headers: report_headers)
201
215
  # Report in edi format
202
216
 
203
- report1_json = ChangeHealth::Request::Claim::Report.get_report(report_list.report_names.first, as_json_report: true)
217
+ report1_json = ChangeHealth::Request::Claim::Report.get_report(report_list.report_names.first, as_json_report: true, headers: report_headers)
204
218
  # Report in json format
205
219
 
206
- reports_json = report_list.report_names.map {|report_name| ChangeHealth::Request::Claim::Report.get_report(report_name)}
220
+ reports_json = report_list.report_names.map {|report_name| ChangeHealth::Request::Claim::Report.get_report(report_name, headers: report_headers)}
207
221
  # all reports in json format
208
222
 
209
- reports_edi = report_list.report_names.map {|report_name| ChangeHealth::Request::Claim::Report.get_report(report_name, as_json_report: false)}
223
+ reports_edi = report_list.report_names.map {|report_name| ChangeHealth::Request::Claim::Report.get_report(report_name, as_json_report: false, headers: report_headers)}
210
224
  # all reports in edi format
211
225
  ```
212
226
 
@@ -216,8 +230,8 @@ reports_edi = report_list.report_names.map {|report_name| ChangeHealth::Request:
216
230
  ChangeHealth.configure do |c|
217
231
  c.client_id = ENV['CHANGE_HEALTH_CLIENT_ID']
218
232
  c.client_secret = ENV['CHANGE_HEALTH_SECRET']
219
- c.grant_type = 'bob' # Defaults to client_credentials
220
- c.api_endpoint = 'http://hello.com' # Defaults to Change Health Sandbox endpoint
233
+ c.grant_type = 'client_credentials' # Defaults to client_credentials
234
+ c.api_endpoint = 'https://sandbox.apigw.changehealthcare.com' # Defaults to Change Health Sandbox endpoint
221
235
  end
222
236
  ```
223
237
 
@@ -5,12 +5,14 @@ module ChangeHealth
5
5
  ENDPOINT = '/medicalnetwork/reports/v2'.freeze
6
6
  HEALTH_CHECK_ENDPOINT = ENDPOINT + '/healthcheck'.freeze
7
7
 
8
- def self.report_list
9
- ChangeHealth::Response::Claim::ReportListData.new(response: ChangeHealth::Connection.new.request(endpoint: ENDPOINT, verb: :get))
8
+ def self.report_list(headers: nil)
9
+ final_headers = ChangeHealth::Request::Claim::Report.report_headers(headers)
10
+ ChangeHealth::Response::Claim::ReportListData.new(response: ChangeHealth::Connection.new.request(endpoint: ENDPOINT, verb: :get, headers: final_headers))
10
11
  end
11
12
 
12
- def self.get_report(report_name, as_json_report: true)
13
+ def self.get_report(report_name, as_json_report: true, headers: nil)
13
14
  return if report_name.nil? || report_name.empty?
15
+ final_headers = ChangeHealth::Request::Claim::Report.report_headers(headers)
14
16
 
15
17
  individual_report_endpoint = ENDPOINT + '/' + report_name
16
18
  if as_json_report
@@ -23,7 +25,7 @@ module ChangeHealth
23
25
 
24
26
  ChangeHealth::Response::Claim::ReportData.new(report_name,
25
27
  as_json_report,
26
- response: ChangeHealth::Connection.new.request(endpoint: individual_report_endpoint, verb: :get))
28
+ response: ChangeHealth::Connection.new.request(endpoint: individual_report_endpoint, verb: :get, headers: final_headers))
27
29
  end
28
30
 
29
31
  def self.health_check
@@ -33,6 +35,17 @@ module ChangeHealth
33
35
  def self.ping
34
36
  self.health_check
35
37
  end
38
+
39
+ def self.report_headers(headers)
40
+ if headers
41
+ extra_headers = {}
42
+ extra_headers["X-CHC-Reports-Username"] = headers[:username]
43
+ extra_headers["X-CHC-Reports-Password"] = headers[:password]
44
+ extra_headers
45
+ else
46
+ nil
47
+ end
48
+ end
36
49
  end
37
50
  end
38
51
  end
@@ -2,9 +2,11 @@ module ChangeHealth
2
2
  module Request
3
3
  module Claim
4
4
  class Submission < Hashie::Trash
5
+
5
6
  ENDPOINT = '/medicalnetwork/professionalclaims/v3'.freeze
6
7
  HEALTH_CHECK_ENDPOINT = ENDPOINT + '/healthcheck'.freeze
7
8
  SUBMISSION_ENDPOINT = ENDPOINT + '/submission'.freeze
9
+ VALIDATION_ENDPOINT = ENDPOINT + '/validation'.freeze
8
10
 
9
11
  property :claimInformation, from: :claim_information, required: false
10
12
  property :controlNumber, from: :control_number, required: true, default: ChangeHealth::Models::CONTROL_NUMBER
@@ -12,6 +14,7 @@ module ChangeHealth
12
14
  property :receiver, required: false
13
15
  property :submitter, required: false
14
16
  property :subscriber, required: false
17
+ property :headers, required: false
15
18
  # Need one or the other, trading partner id or trading partner service id
16
19
  property :tradingPartnerId, from: :trading_partner_id, required: false
17
20
  property :tradingPartnerServiceId, from: :trading_partner_service_id, required: false
@@ -22,7 +25,11 @@ module ChangeHealth
22
25
  end
23
26
 
24
27
  def submission
25
- ChangeHealth::Response::Claim::SubmissionData.new(response: ChangeHealth::Connection.new.request(endpoint: SUBMISSION_ENDPOINT, body: self.to_h))
28
+ ChangeHealth::Response::Claim::SubmissionData.new(response: ChangeHealth::Connection.new.request(endpoint: SUBMISSION_ENDPOINT, body: self.to_h, headers: professional_headers))
29
+ end
30
+
31
+ def validation
32
+ ChangeHealth::Response::Claim::SubmissionData.new(response: ChangeHealth::Connection.new.request(endpoint: VALIDATION_ENDPOINT, body: self.to_h, headers: professional_headers))
26
33
  end
27
34
 
28
35
  def self.health_check
@@ -32,6 +39,19 @@ module ChangeHealth
32
39
  def self.ping
33
40
  self.health_check
34
41
  end
42
+
43
+ def professional_headers
44
+ if self[:headers]
45
+ extra_headers = {}
46
+ extra_headers["X-CHC-ClaimSubmission-SubmitterId"] = self[:headers][:submitter_id]
47
+ extra_headers["X-CHC-ClaimSubmission-BillerId"] = self[:headers][:biller_id]
48
+ extra_headers["X-CHC-ClaimSubmission-Username"] = self[:headers][:username]
49
+ extra_headers["X-CHC-ClaimSubmission-Pwd"] = self[:headers][:password]
50
+ extra_headers
51
+ else
52
+ nil
53
+ end
54
+ end
35
55
  end
36
56
  end
37
57
  end
@@ -1,3 +1,3 @@
1
1
  module ChangeHealth
2
- VERSION = '2.2.0'.freeze
2
+ VERSION = '2.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: change_health
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Crockett
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-05 00:00:00.000000000 Z
11
+ date: 2021-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -192,7 +192,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.1.6
195
+ rubyforge_project:
196
+ rubygems_version: 2.7.6
196
197
  signing_key:
197
198
  specification_version: 4
198
199
  summary: Ruby wrapper for the ChangeHealth API