change_health 5.18.0 → 6.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad94a64e05364d0f24774fe9721a4a2ffadb08448a07348c7835e0dcd0354806
4
- data.tar.gz: 050236cd7408f842f717717af0cbcaafba23cf84860bcb5cfac85f4ea2d07ff1
3
+ metadata.gz: d2d6ad0d50b0e805179570b1db9df8ab057f3a06488508ea0ea84141afb8eec1
4
+ data.tar.gz: 2d8ea569efbe4fc84f2670971674a6e58544328af5b78e1163e4c26c8d894926
5
5
  SHA512:
6
- metadata.gz: d9048cdfb5921250757a618b7b9e1f44c608e7fb86344830a25ef2a83ed2fd848760e2b8bd13adb482eb264d84d3405c83fd4a25b032fdd11eb046dbb80fa652
7
- data.tar.gz: 844d6a4f4a32f29db366d7975072400f95a3f18dd833c2239ca7b7e4802ec0334bf4e0d19d48f50c7231b6f8148095d71c4ad14cd02a328431cfc2a85d2f54da
6
+ metadata.gz: 68764a4c0968bde39f68b3f1acda7d6cd323dcb1122b71f9df754f060eea39bdba066c25c2a1cb97f566702f22b77ee1f442ab985afc3cbe6d119d7fbc34d773
7
+ data.tar.gz: 6a3a18c0af0b00ee2800d0d87184d518170e964bf4f9fa5795b5da37820246fdc171a1abb7b212de3a73f34beae73930e2b44a0552bbc554bdae506657bb9ab2
data/CHANGELOG.md CHANGED
@@ -5,6 +5,32 @@ 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
+ # [6.1.0] - 2025-01-24
9
+
10
+ ### Added
11
+
12
+ * `Report835ServiceLine#service_date`
13
+ * `Report835ServiceLine#service_date_begin`
14
+ * `Report835ServiceLine#service_date_end`
15
+
16
+ # [6.0.0] - 2024-11-22
17
+
18
+ Previously the only field extracted from the `informationStatuses` section of the 277 report JSON was `healthCareClaimStatusCategoryCode`. This version includes the following additional fields from this section: `healthCareClaimStatusCategoryCodeValue`, `statusCode` & `statusCodeValue`.
19
+
20
+ ### Removed
21
+
22
+ Breaking changes:
23
+
24
+ * `Report277InfoClaimStatus#status_category_codes`
25
+ * `Report277InfoClaimStatus#add_status_category_code`
26
+
27
+ ### Added
28
+
29
+ * `ChangeHealth::Response::Claim::Report277InfoStatus` model that encapsulates the fields listed above.
30
+ * `Report277InfoClaimStatus#info_statuses` property that stores all `Report277InfoStatus` found in the `informationStatuses` section of the 277 JSON.
31
+ * `Report277InfoClaimStatus#add_info_status` method to add individual `Report277InfoStatus`.
32
+ * `Report277Data#latest_info_statuses` method to return the latest `informationStatuses` in the 277 JSON. See README for usage.
33
+
8
34
  # [5.18.0] - 2024-08-19
9
35
 
10
36
  ### Added
@@ -748,6 +774,8 @@ Added the ability to hit professional claim submission API. For more details, se
748
774
  * Authentication
749
775
  * Configuration
750
776
 
777
+ [6.1.0]: https://github.com/WeInfuse/change_health/compare/v6.0.0...v6.1.0
778
+ [6.0.0]: https://github.com/WeInfuse/change_health/compare/v5.18.0...v6.0.0
751
779
  [5.18.0]: https://github.com/WeInfuse/change_health/compare/v5.17.0...v5.18.0
752
780
  [5.17.0]: https://github.com/WeInfuse/change_health/compare/v5.16.0...v5.17.0
753
781
  [5.16.0]: https://github.com/WeInfuse/change_health/compare/v5.15.0...v5.16.0
data/README.md CHANGED
@@ -436,6 +436,20 @@ claim277.report_creation_date
436
436
  # Tue, 01 Dec 2020
437
437
 
438
438
  # Report 277 specific below
439
+ statuses = claim277.latest_info_statuses
440
+
441
+ statuses.first.status_category_code
442
+ # "F1"
443
+
444
+ statuses.first.status_category_code_value
445
+ # "Finalized/Payment-The claim/line has been paid."
446
+
447
+ statuses.first.status_code
448
+ # "20"
449
+
450
+ statuses.first.status_code_value
451
+ # "Accepted for processing."
452
+
439
453
  claim277.latest_status_category_codes
440
454
  # ["F1"]
441
455
 
@@ -10,7 +10,7 @@ module ChangeHealth
10
10
  property :professionalService, from: :professional_service
11
11
  property :renderingProvider, from: :rendering_provider
12
12
  property :serviceDate, from: :service_date
13
- property :serviceDateEnd, from: :service_date_end, required: false
13
+ property :serviceDateEnd, from: :service_date_end
14
14
  end
15
15
  end
16
16
  end
@@ -19,8 +19,12 @@ module ChangeHealth
19
19
  self[:procedure_codes] << procedure_code
20
20
  end
21
21
 
22
+ def latest_info_statuses
23
+ latest_info_claim_status&.info_statuses
24
+ end
25
+
22
26
  def latest_status_category_codes
23
- latest_info_claim_status&.status_category_codes
27
+ latest_info_statuses&.map(&:status_category_code)
24
28
  end
25
29
 
26
30
  def total_charge_amount
@@ -54,14 +54,19 @@ module ChangeHealth
54
54
  status_information_effective_date = ChangeHealth::Models::PARSE_DATE.call(info_claim_status['statusInformationEffectiveDate'])
55
55
  total_charge_amount = info_claim_status['totalClaimChargeAmount']
56
56
 
57
- status_category_codes = []
57
+ info_statuses = []
58
58
  info_claim_status['informationStatuses']&.each do |info_status|
59
- status_category_codes << info_status['healthCareClaimStatusCategoryCode']
59
+ info_statuses << Report277InfoStatus.new(
60
+ status_category_code: info_status['healthCareClaimStatusCategoryCode'],
61
+ status_category_code_value: info_status['healthCareClaimStatusCategoryCodeValue'],
62
+ status_code: info_status['statusCode'],
63
+ status_code_value: info_status['statusCodeValue']
64
+ )
60
65
  end
61
66
 
62
67
  info_claim_statuses << Report277InfoClaimStatus.new(
63
68
  message: message,
64
- status_category_codes: status_category_codes,
69
+ info_statuses: info_statuses,
65
70
  total_charge_amount: total_charge_amount,
66
71
  status_information_effective_date: status_information_effective_date
67
72
  )
@@ -3,13 +3,13 @@ module ChangeHealth
3
3
  module Claim
4
4
  class Report277InfoClaimStatus < Hashie::Trash
5
5
  property :message, required: false
6
- property :status_category_codes, required: false
6
+ property :info_statuses, required: false
7
7
  property :total_charge_amount, required: false
8
8
  property :status_information_effective_date, required: false
9
9
 
10
- def add_status_category_code(status_category_code)
11
- self[:status_category_codes] ||= []
12
- self[:status_category_codes] << status_category_code
10
+ def add_info_status(info_status)
11
+ self[:info_statuses] ||= []
12
+ self[:info_statuses] << info_status
13
13
  end
14
14
  end
15
15
  end
@@ -0,0 +1,12 @@
1
+ module ChangeHealth
2
+ module Response
3
+ module Claim
4
+ class Report277InfoStatus < Hashie::Trash
5
+ property :status_category_code, required: false
6
+ property :status_category_code_value, required: false
7
+ property :status_code, required: false
8
+ property :status_code_value, required: false
9
+ end
10
+ end
11
+ end
12
+ end
@@ -93,15 +93,18 @@ module ChangeHealth
93
93
  service_date_begin = nil
94
94
  service_date_end = nil
95
95
  service_lines = payment_info['serviceLines']&.map do |service_line|
96
- service_line_date = ChangeHealth::Models::PARSE_DATE.call(service_line['serviceDate'])
97
- unless service_line_date.nil?
98
- if service_date_begin.nil? || service_line_date < service_date_begin
99
- service_date_begin = service_line_date
100
- end
101
- if service_date_end.nil? || service_date_end < service_line_date
102
- service_date_end = service_line_date
103
- end
104
- end
96
+ service_line_date_parsed = ChangeHealth::Models::PARSE_DATE.call(service_line['serviceDate'])
97
+ service_line_date_begin_parsed = ChangeHealth::Models::PARSE_DATE.call(service_line['serviceStartDate'])
98
+ service_line_date_end_parsed = ChangeHealth::Models::PARSE_DATE.call(service_line['serviceEndDate'])
99
+
100
+ all_dates = [service_line_date_parsed, service_line_date_begin_parsed, service_line_date_end_parsed]
101
+
102
+ service_line_date_begin = all_dates.compact.min
103
+ service_line_date = service_line_date_begin
104
+ service_line_date_end = all_dates.compact.max
105
+
106
+ service_date_begin = [service_date_begin, service_line_date_begin].compact.min
107
+ service_date_end = [service_date_end, service_line_date_end].compact.max
105
108
 
106
109
  adjudicated_procedure_code = service_line.dig('servicePaymentInformation', 'adjudicatedProcedureCode')
107
110
  allowed_actual = service_line.dig('serviceSupplementalAmounts', 'allowedActual')
@@ -125,15 +128,21 @@ module ChangeHealth
125
128
  Report835ServiceLine.new(
126
129
  adjudicated_procedure_code: adjudicated_procedure_code,
127
130
  allowed_actual: allowed_actual,
131
+ health_care_check_remark_codes: health_care_check_remark_codes,
128
132
  line_item_charge_amount: line_item_charge_amount,
129
133
  line_item_provider_payment_amount: line_item_provider_payment_amount,
130
134
  service_adjustments: service_adjustments,
131
- health_care_check_remark_codes: health_care_check_remark_codes
135
+ service_date: service_line_date,
136
+ service_date_begin: service_line_date_begin,
137
+ service_date_end: service_line_date_end
132
138
  )
133
139
  end
134
140
 
135
- if service_date_begin.nil? && service_date_end.nil?
141
+ if service_date_begin.nil?
136
142
  service_date_begin = ChangeHealth::Models::PARSE_DATE.call(payment_info['claimStatementPeriodStart'])
143
+ end
144
+
145
+ if service_date_end.nil?
137
146
  service_date_end = ChangeHealth::Models::PARSE_DATE.call(payment_info['claimStatementPeriodEnd'])
138
147
  end
139
148
 
@@ -2,12 +2,15 @@ module ChangeHealth
2
2
  module Response
3
3
  module Claim
4
4
  class Report835ServiceLine < Hashie::Trash
5
- property :adjudicated_procedure_code, required: false
6
- property :allowed_actual, required: false
7
- property :health_care_check_remark_codes, required: false
8
- property :line_item_charge_amount, required: false
9
- property :line_item_provider_payment_amount, required: false
10
- property :service_adjustments, required: false
5
+ property :adjudicated_procedure_code
6
+ property :allowed_actual
7
+ property :health_care_check_remark_codes
8
+ property :line_item_charge_amount
9
+ property :line_item_provider_payment_amount
10
+ property :service_adjustments
11
+ property :service_date
12
+ property :service_date_begin
13
+ property :service_date_end
11
14
 
12
15
  def create_group_adjustments(service_adjustments)
13
16
  adjustment_array = service_adjustments[:adjustments].map do |key, value|
@@ -1,3 +1,3 @@
1
1
  module ChangeHealth
2
- VERSION = '5.18.0'.freeze
2
+ VERSION = '6.1.0'.freeze
3
3
  end
data/lib/change_health.rb CHANGED
@@ -46,6 +46,7 @@ require 'change_health/response/claim/report/report_277_data'
46
46
  require 'change_health/response/claim/report/report_835_data'
47
47
  require 'change_health/response/claim/report/report_claim'
48
48
  require 'change_health/response/claim/report/report_277_claim'
49
+ require 'change_health/response/claim/report/report_277_info_status'
49
50
  require 'change_health/response/claim/report/report_277_info_claim_status'
50
51
  require 'change_health/response/claim/report/report_835_claim'
51
52
  require 'change_health/response/claim/report/report_835_health_care_check_remark_code'
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: 5.18.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Crockett
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-19 00:00:00.000000000 Z
11
+ date: 2025-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -128,7 +128,7 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0.9'
131
- description:
131
+ description:
132
132
  email:
133
133
  - mike.crockett@weinfuse.com
134
134
  executables: []
@@ -182,6 +182,7 @@ files:
182
182
  - lib/change_health/response/claim/report/report_277_claim.rb
183
183
  - lib/change_health/response/claim/report/report_277_data.rb
184
184
  - lib/change_health/response/claim/report/report_277_info_claim_status.rb
185
+ - lib/change_health/response/claim/report/report_277_info_status.rb
185
186
  - lib/change_health/response/claim/report/report_835_claim.rb
186
187
  - lib/change_health/response/claim/report/report_835_data.rb
187
188
  - lib/change_health/response/claim/report/report_835_health_care_check_remark_code.rb
@@ -206,7 +207,7 @@ licenses:
206
207
  - MIT
207
208
  metadata:
208
209
  allowed_push_host: https://rubygems.org
209
- post_install_message:
210
+ post_install_message:
210
211
  rdoc_options: []
211
212
  require_paths:
212
213
  - lib
@@ -222,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
223
  version: '0'
223
224
  requirements: []
224
225
  rubygems_version: 3.1.6
225
- signing_key:
226
+ signing_key:
226
227
  specification_version: 4
227
228
  summary: Ruby wrapper for the ChangeHealth API
228
229
  test_files: []