change_health 0.8.0 → 0.9.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 904aa6681679c9892aa03e139a4a903adb04a5f894b205166bbad94c7b2609c2
|
4
|
+
data.tar.gz: 51069c6515bbeefa60d50f10b9bc44b0bde77b3028ba93e467e7da23555cb2b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 458730a47ceb33666fd5ee0c625c2b48c64660b1276ad3b58d9caf8c5c2be3190f415e3d7887af956819ecef97a7de23d15db65bcaa3443cf2c19506a81d44d0
|
7
|
+
data.tar.gz: 579a1ac6070e74afb2d5c6124102afac5d83e5e6991ea0ab9d4746302125e3cf5251bf76c52acd6c55688afc4bae583bff44b627e26b0c5748d6f9468a81936c
|
data/CHANGELOG.md
CHANGED
@@ -4,9 +4,18 @@ 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
|
+
## [0.9.0] - [2020-04-08]
|
8
|
+
### Added
|
9
|
+
- Added EligibilityBenefit#medicare?
|
10
|
+
- Added EligibilityData#medicare?
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- EligibilityBenefit(s)#individual returns true for medicare in benefit and queries that look for 'IND'
|
14
|
+
- EligibilityBenefit(s)#in\_network returns true for medicare in benefit and queries that look for 'Y'
|
15
|
+
|
7
16
|
## [0.8.0] - [2020-04-04]
|
8
17
|
### Changed
|
9
|
-
-
|
18
|
+
- Attempt to serialize all properties with 'date' in the name to ChangeHealth date format
|
10
19
|
|
11
20
|
## [0.7.0] - [2020-04-03]
|
12
21
|
### Changed
|
@@ -39,6 +39,11 @@ module ChangeHealth
|
|
39
39
|
year: YEAR,
|
40
40
|
remaining: REMAINING
|
41
41
|
}
|
42
|
+
MEDICARE = {
|
43
|
+
part_a: 'MA',
|
44
|
+
part_b: 'MB',
|
45
|
+
primary: 'MP'
|
46
|
+
}
|
42
47
|
HELPERS = {
|
43
48
|
timeQualifierCode: TIMEFRAMES,
|
44
49
|
coverageLevelCode: COVERAGES,
|
@@ -48,27 +53,32 @@ module ChangeHealth
|
|
48
53
|
HELPERS.each do |key, types|
|
49
54
|
types.each do |method, value|
|
50
55
|
define_method("#{method}?") do
|
51
|
-
value == self[key]
|
56
|
+
value == self[key] || :individual == method && self[key].nil? && self.medicare?
|
52
57
|
end
|
53
58
|
end
|
54
59
|
end
|
55
60
|
|
61
|
+
def medicare?
|
62
|
+
MEDICARE.values.include?(self.insuranceTypeCode)
|
63
|
+
end
|
64
|
+
|
56
65
|
%w(benefitAmount benefitPercent).each do |amount_method|
|
57
66
|
define_method("#{amount_method}") do
|
58
67
|
format_amount(amount_method)
|
59
68
|
end
|
60
69
|
end
|
61
70
|
|
62
|
-
%w(insuranceType benefitsDateInformation).each do |method|
|
71
|
+
%w(insuranceType insuranceTypeCode benefitsDateInformation).each do |method|
|
63
72
|
define_method("#{method}") do
|
64
73
|
self[method]
|
65
74
|
end
|
66
75
|
end
|
67
76
|
alias_method :date_info, :benefitsDateInformation
|
68
77
|
alias_method :insurance_type, :insuranceType
|
78
|
+
alias_method :insurance_type_code, :insuranceTypeCode
|
69
79
|
|
70
80
|
def in_plan_network?
|
71
|
-
return 'Y' == self[:inPlanNetworkIndicatorCode]
|
81
|
+
return 'Y' == self[:inPlanNetworkIndicatorCode] || self[:inPlanNetworkIndicatorCode].nil? && self.medicare?
|
72
82
|
end
|
73
83
|
alias_method :in_plan?, :in_plan_network?
|
74
84
|
alias_method :in_network?, :in_plan_network?
|
@@ -92,6 +102,19 @@ module ChangeHealth
|
|
92
102
|
alias_method :plan_end_date, :planEnd
|
93
103
|
alias_method :service_date, :service
|
94
104
|
|
105
|
+
def plan_date_range
|
106
|
+
pd = self.date_info&.dig('plan') || ''
|
107
|
+
pd.split('-')
|
108
|
+
end
|
109
|
+
|
110
|
+
def plan_date_range_start
|
111
|
+
ChangeHealth::Models::EligibilityData::PARSE_DATE.call(self.plan_date_range[0])
|
112
|
+
end
|
113
|
+
|
114
|
+
def plan_date_range_end
|
115
|
+
ChangeHealth::Models::EligibilityData::PARSE_DATE.call(self.plan_date_range[1])
|
116
|
+
end
|
117
|
+
|
95
118
|
private
|
96
119
|
def format_amount(key)
|
97
120
|
amt = self[key]
|
@@ -65,9 +65,17 @@ module ChangeHealth
|
|
65
65
|
else
|
66
66
|
if v.is_a?(Array)
|
67
67
|
return v.include?(benefit[k])
|
68
|
-
|
69
|
-
|
68
|
+
elsif benefit.medicare?
|
69
|
+
if :inPlanNetworkIndicatorCode == k.to_sym
|
70
|
+
return false == benefit.in_plan_network? if 'N' == v
|
71
|
+
return benefit.in_plan_network? if 'Y' == v
|
72
|
+
elsif :coverageLevelCode == k.to_sym
|
73
|
+
return false == benefit.individual? if EligibilityBenefit::INDIVIDUAL != v
|
74
|
+
return benefit.individual? if EligibilityBenefit::INDIVIDUAL == v
|
75
|
+
end
|
70
76
|
end
|
77
|
+
|
78
|
+
return v == benefit[k]
|
71
79
|
end
|
72
80
|
end
|
73
81
|
end
|
@@ -39,6 +39,23 @@ module ChangeHealth
|
|
39
39
|
return PARSE_DATE.call(self.date_info&.dig(f))
|
40
40
|
end
|
41
41
|
end
|
42
|
+
alias_method :eligibility_begin_date, :eligibilityBegin
|
43
|
+
alias_method :plan_begin_date, :planBegin
|
44
|
+
alias_method :service_date, :service
|
45
|
+
|
46
|
+
def plan_date_range
|
47
|
+
pd = self.date_info&.dig('plan') || ''
|
48
|
+
pd.split('-')
|
49
|
+
end
|
50
|
+
|
51
|
+
def plan_date_range_start
|
52
|
+
ChangeHealth::Models::EligibilityData::PARSE_DATE.call(self.plan_date_range[0])
|
53
|
+
end
|
54
|
+
|
55
|
+
def plan_date_range_end
|
56
|
+
ChangeHealth::Models::EligibilityData::PARSE_DATE.call(self.plan_date_range[1])
|
57
|
+
end
|
58
|
+
|
42
59
|
|
43
60
|
def plan_status(service_code: )
|
44
61
|
self.planStatus&.find {|plan| plan.dig('serviceTypeCodes').include?(service_code) } || {}
|
@@ -48,13 +65,14 @@ module ChangeHealth
|
|
48
65
|
ChangeHealth::Models::EligibilityBenefits.new(self.benefitsInformation || [])
|
49
66
|
end
|
50
67
|
|
68
|
+
def medicare?
|
69
|
+
false == benefits.empty? && benefits.all? {|b| b.medicare? }
|
70
|
+
end
|
71
|
+
|
51
72
|
alias_method :control_number, :controlNumber
|
52
73
|
alias_method :benefits_information, :benefitsInformation
|
53
74
|
alias_method :plan_statuses, :planStatus
|
54
75
|
alias_method :date_info, :planDateInformation
|
55
|
-
alias_method :eligibility_begin_date, :eligibilityBegin
|
56
|
-
alias_method :plan_begin_date, :planBegin
|
57
|
-
alias_method :service_date, :service
|
58
76
|
end
|
59
77
|
end
|
60
78
|
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: 0.
|
4
|
+
version: 0.9.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: 2020-04-
|
11
|
+
date: 2020-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|