change_health 3.5.4 → 4.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +23 -21
- data/lib/change_health/response/claim/report/report_835_claim.rb +0 -5
- data/lib/change_health/response/claim/report/report_835_data.rb +36 -32
- data/lib/change_health/response/claim/report/report_835_payment.rb +17 -0
- data/lib/change_health/version.rb +1 -1
- data/lib/change_health.rb +1 -0
- 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: 61fbaa1ebca6d1f3f6a8a2674d07e11b2f96a3eccc7e6176aa25284d541134cb
|
4
|
+
data.tar.gz: 1a6abf496339d316071c33e36f8c64b2cb8c995849b8d263146c67230f4d3943
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8683182931c2dbe546f5230335b5349e4362d96b01ea50d0d6811ecda55a6ce703a8404e5e6aaaed33ea4d4181af159bfc0c7293001361765e758e831097e13f
|
7
|
+
data.tar.gz: a166e936b7d07d346e30434ca52417966bf6764d4af5216b262256e9d106974c3ef0f6cd38ad8dd0516aa9091b786adccfc6cddf0ea2bb257d66cb349de1b9e0
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
# [4.0.0] - 2022-05-26
|
9
|
+
|
10
|
+
### Changed
|
11
|
+
The assumption that only one payment would be in a report835 was wrong. Corrected that by adding in a model to hold the payment information - Report835Payment. Removed payment related info from Report835Data and Report835Claim. See README for usage
|
12
|
+
* check_issue_or_eft_effective_date
|
13
|
+
* check_or_eft_trace_number
|
14
|
+
* payer_identifier
|
15
|
+
* payment_method_code
|
16
|
+
* report_creation_date
|
17
|
+
* total_actual_provider_payment_amount
|
18
|
+
|
8
19
|
# [3.5.4] - 2022-05-18
|
9
20
|
|
10
21
|
* Used dig on `service_provider_npi` variable assigning because it produces way fewer bugs
|
@@ -357,6 +368,7 @@ Added the ability to hit professional claim submission API. For more details, se
|
|
357
368
|
* Authentication
|
358
369
|
* Configuration
|
359
370
|
|
371
|
+
[4.0.0]: https://github.com/WeInfuse/change_health/compare/v3.5.4...v4.0.0
|
360
372
|
[3.5.4]: https://github.com/WeInfuse/change_health/compare/v3.5.3...v3.5.4
|
361
373
|
[3.5.3]: https://github.com/WeInfuse/change_health/compare/v3.5.2...v3.5.3
|
362
374
|
[3.5.2]: https://github.com/WeInfuse/change_health/compare/v3.5.1...v3.5.2
|
data/README.md
CHANGED
@@ -243,66 +243,68 @@ From a report, you can get an array of claims
|
|
243
243
|
#### Report 277
|
244
244
|
|
245
245
|
```ruby
|
246
|
-
|
246
|
+
report277_data = ChangeHealth::Request::Claim::Report.get_report("X3000000.AB", as_json_report: true)
|
247
247
|
|
248
|
-
|
248
|
+
report277_data.payer_name
|
249
249
|
# "PREMERA"
|
250
250
|
|
251
|
-
|
251
|
+
report277_data.report_creation_date
|
252
252
|
# Tue, 01 Dec 2020
|
253
253
|
|
254
|
-
|
255
|
-
|
254
|
+
claim277 = report277_data.claims.first
|
255
|
+
claim277.payer_name
|
256
256
|
# "PREMERA"
|
257
257
|
|
258
|
-
|
258
|
+
claim277.report_name
|
259
259
|
# "X3000000.AB"
|
260
260
|
|
261
|
-
|
261
|
+
claim277.patient_first_name
|
262
262
|
# "JOHNONE"
|
263
263
|
|
264
|
-
|
264
|
+
claim277.report_creation_date
|
265
265
|
# Tue, 01 Dec 2020
|
266
266
|
|
267
267
|
# Report 277 specific below
|
268
|
-
|
268
|
+
claim277.latest_status_category_codes
|
269
269
|
# ["F1"]
|
270
270
|
|
271
|
-
|
271
|
+
claim277.total_charge_amount
|
272
272
|
# "100"
|
273
273
|
|
274
|
-
|
274
|
+
claim277.procedure_codes
|
275
275
|
# ["97161"]
|
276
276
|
```
|
277
277
|
|
278
278
|
#### Report 835
|
279
279
|
|
280
280
|
```ruby
|
281
|
-
|
281
|
+
report835_data = ChangeHealth::Request::Claim::Report.get_report("R5000000.XY", as_json_report: true)
|
282
282
|
|
283
|
-
|
283
|
+
payment835 = report835_data.payments.first
|
284
|
+
|
285
|
+
payment835.payment_method_code
|
284
286
|
# "ACH"
|
285
287
|
|
286
|
-
|
288
|
+
payment835.total_actual_provider_payment_amount
|
287
289
|
# "2563.13"
|
288
290
|
|
289
|
-
|
290
|
-
|
291
|
+
claim835 = payment835.claims.first
|
292
|
+
claim835.payer_name
|
291
293
|
# "NATIONAL GOVERNMENT SERVICES, INC."
|
292
294
|
|
293
|
-
|
295
|
+
claim835.patient_first_name
|
294
296
|
# "JANE"
|
295
297
|
|
296
|
-
|
298
|
+
claim835.patient_member_id
|
297
299
|
# "7SL5RA7XR19"
|
298
300
|
|
299
|
-
|
301
|
+
claim835.report_creation_date
|
300
302
|
# Wed, 22 Apr 2020
|
301
303
|
|
302
|
-
|
304
|
+
claim835.procedure_codes
|
303
305
|
# ["21210", "21026", "21208", "30580"]
|
304
306
|
|
305
|
-
|
307
|
+
claim835.service_lines.map(&:line_item_charge_amount)
|
306
308
|
# ["3600", "1890", "1836", "1680"]
|
307
309
|
```
|
308
310
|
|
@@ -2,15 +2,10 @@ module ChangeHealth
|
|
2
2
|
module Response
|
3
3
|
module Claim
|
4
4
|
class Report835Claim < ReportClaim
|
5
|
-
property :check_issue_or_eft_effective_date, required: false
|
6
|
-
property :check_or_eft_trace_number, required: false
|
7
5
|
property :claim_payment_remark_codes, required: false
|
8
6
|
property :patient_control_number, required: false
|
9
7
|
property :payer_claim_control_number, required: false
|
10
|
-
property :payer_identifier, required: false
|
11
|
-
property :payment_method_code, required: false
|
12
8
|
property :service_lines, required: false
|
13
|
-
property :total_actual_provider_payment_amount, required: false
|
14
9
|
property :total_charge_amount, required: false
|
15
10
|
|
16
11
|
def procedure_codes
|
@@ -7,14 +7,6 @@ module ChangeHealth
|
|
7
7
|
@raw['transactions']
|
8
8
|
end
|
9
9
|
|
10
|
-
def check_or_eft_trace_number
|
11
|
-
transactions&.first&.dig('paymentAndRemitReassociationDetails', 'checkOrEFTTraceNumber')
|
12
|
-
end
|
13
|
-
|
14
|
-
def check_issue_or_eft_effective_date
|
15
|
-
ChangeHealth::Models::PARSE_DATE.call(transactions&.first&.dig('financialInformation', 'checkIssueOrEFTEffectiveDate'))
|
16
|
-
end
|
17
|
-
|
18
10
|
def payer_identification
|
19
11
|
transactions&.first&.dig('payer', 'payerIdentificationNumber')
|
20
12
|
end
|
@@ -24,34 +16,40 @@ module ChangeHealth
|
|
24
16
|
transactions&.first&.dig('payer')&.dig('name')
|
25
17
|
end
|
26
18
|
|
27
|
-
def payer_identifier
|
28
|
-
ChangeHealth::Models::PARSE_DATE.call(transactions&.first&.dig('financialInformation', 'payerIdentifier'))
|
29
|
-
end
|
30
|
-
|
31
|
-
def payment_method_code
|
32
|
-
transactions&.first&.dig('financialInformation', 'paymentMethodCode')
|
33
|
-
end
|
34
|
-
|
35
19
|
def report_creation_date
|
36
|
-
|
20
|
+
payments.map(&:report_creation_date).min
|
37
21
|
end
|
38
22
|
|
39
|
-
def
|
40
|
-
|
23
|
+
def claims
|
24
|
+
payments.flat_map(&:claims).compact
|
41
25
|
end
|
42
26
|
|
43
|
-
def
|
44
|
-
|
27
|
+
def payments
|
28
|
+
report_payments = []
|
45
29
|
|
46
30
|
transactions&.each do |transaction|
|
47
|
-
transaction
|
48
|
-
|
31
|
+
check_or_eft_trace_number = transaction.dig('paymentAndRemitReassociationDetails', 'checkOrEFTTraceNumber')
|
32
|
+
check_issue_or_eft_effective_date =
|
33
|
+
ChangeHealth::Models::PARSE_DATE.call(
|
34
|
+
transaction.dig('financialInformation', 'checkIssueOrEFTEffectiveDate')
|
35
|
+
)
|
36
|
+
payer_identifier = transaction.dig('financialInformation', 'payerIdentifier')
|
37
|
+
payment_method_code = transaction.dig('financialInformation', 'paymentMethodCode')
|
38
|
+
report_creation_date = ChangeHealth::Models::PARSE_DATE.call(transaction.dig('productionDate'))
|
39
|
+
total_actual_provider_payment_amount =
|
40
|
+
transaction.dig('financialInformation', 'totalActualProviderPaymentAmount')
|
41
|
+
claims = transaction['detailInfo']&.flat_map do |detail_info|
|
42
|
+
detail_info['paymentInfo']&.map do |payment_info|
|
49
43
|
patient_control_number = payment_info.dig('claimPaymentInfo', 'patientControlNumber')
|
50
44
|
patient_first_name = payment_info.dig('patientName', 'firstName')
|
51
45
|
patient_last_name = payment_info.dig('patientName', 'lastName')
|
52
|
-
patient_member_id =
|
46
|
+
patient_member_id =
|
47
|
+
payment_info.dig('patientName', 'memberId') ||
|
48
|
+
payment_info.dig('subscriber', 'memberId')
|
53
49
|
payer_claim_control_number = payment_info.dig('claimPaymentInfo', 'payerClaimControlNumber')
|
54
|
-
service_provider_npi =
|
50
|
+
service_provider_npi =
|
51
|
+
payment_info.dig('renderingProvider', 'npi') ||
|
52
|
+
detail_info.dig('providerSummaryInformation', 'providerIdentifier')
|
55
53
|
total_charge_amount = payment_info.dig('claimPaymentInfo', 'totalClaimChargeAmount')
|
56
54
|
|
57
55
|
claim_payment_remark_codes = []
|
@@ -114,9 +112,7 @@ module ChangeHealth
|
|
114
112
|
)
|
115
113
|
end
|
116
114
|
|
117
|
-
|
118
|
-
check_issue_or_eft_effective_date: check_issue_or_eft_effective_date,
|
119
|
-
check_or_eft_trace_number: check_or_eft_trace_number,
|
115
|
+
Report835Claim.new(
|
120
116
|
claim_payment_remark_codes: claim_payment_remark_codes,
|
121
117
|
patient_control_number: patient_control_number,
|
122
118
|
patient_first_name: patient_first_name,
|
@@ -124,23 +120,31 @@ module ChangeHealth
|
|
124
120
|
patient_member_id: patient_member_id,
|
125
121
|
payer_claim_control_number: payer_claim_control_number,
|
126
122
|
payer_identification: payer_identification,
|
127
|
-
payer_identifier: payer_identifier,
|
128
123
|
payer_name: payer_name,
|
129
|
-
payment_method_code: payment_method_code,
|
130
124
|
report_creation_date: report_creation_date,
|
131
125
|
report_name: report_name,
|
132
126
|
service_date_begin: service_date_begin,
|
133
127
|
service_date_end: service_date_end,
|
134
128
|
service_lines: service_lines,
|
135
129
|
service_provider_npi: service_provider_npi,
|
136
|
-
total_actual_provider_payment_amount: total_actual_provider_payment_amount,
|
137
130
|
total_charge_amount: total_charge_amount
|
138
131
|
)
|
139
132
|
end
|
140
133
|
end
|
134
|
+
report_payments << Report835Payment.new(
|
135
|
+
check_issue_or_eft_effective_date: check_issue_or_eft_effective_date,
|
136
|
+
check_or_eft_trace_number: check_or_eft_trace_number,
|
137
|
+
claims: claims,
|
138
|
+
payer_identifier: payer_identifier,
|
139
|
+
payer_name: payer_name,
|
140
|
+
payment_method_code: payment_method_code,
|
141
|
+
report_creation_date: report_creation_date,
|
142
|
+
report_name: report_name,
|
143
|
+
total_actual_provider_payment_amount: total_actual_provider_payment_amount
|
144
|
+
)
|
141
145
|
end
|
142
146
|
|
143
|
-
|
147
|
+
report_payments
|
144
148
|
end
|
145
149
|
end
|
146
150
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Response
|
3
|
+
module Claim
|
4
|
+
class Report835Payment < Hashie::Trash
|
5
|
+
property :check_issue_or_eft_effective_date, required: false
|
6
|
+
property :check_or_eft_trace_number, required: false
|
7
|
+
property :claims, required: false
|
8
|
+
property :payer_identifier, required: false
|
9
|
+
property :payer_name, required: false
|
10
|
+
property :payment_method_code, required: false
|
11
|
+
property :report_creation_date, required: false
|
12
|
+
property :report_name, required: false
|
13
|
+
property :total_actual_provider_payment_amount, required: false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/change_health.rb
CHANGED
@@ -33,6 +33,7 @@ require 'change_health/response/claim/report/report_277_claim'
|
|
33
33
|
require 'change_health/response/claim/report/report_277_info_claim_status'
|
34
34
|
require 'change_health/response/claim/report/report_835_claim'
|
35
35
|
require 'change_health/response/claim/report/report_835_health_care_check_remark_code'
|
36
|
+
require 'change_health/response/claim/report/report_835_payment'
|
36
37
|
require 'change_health/response/claim/report/report_835_service_adjustment'
|
37
38
|
require 'change_health/response/claim/report/report_835_service_line'
|
38
39
|
require 'change_health/response/eligibility/eligibility_benefit'
|
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:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Crockett
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-05-
|
11
|
+
date: 2022-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -169,6 +169,7 @@ files:
|
|
169
169
|
- lib/change_health/response/claim/report/report_835_claim.rb
|
170
170
|
- lib/change_health/response/claim/report/report_835_data.rb
|
171
171
|
- lib/change_health/response/claim/report/report_835_health_care_check_remark_code.rb
|
172
|
+
- lib/change_health/response/claim/report/report_835_payment.rb
|
172
173
|
- lib/change_health/response/claim/report/report_835_service_adjustment.rb
|
173
174
|
- lib/change_health/response/claim/report/report_835_service_line.rb
|
174
175
|
- lib/change_health/response/claim/report/report_claim.rb
|