candidhealth 0.27.0 → 0.28.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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/pre_encounter/appointments/client.rb +32 -0
  3. data/lib/candidhealth/pre_encounter/appointments/v_1/client.rb +607 -0
  4. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment.rb +257 -0
  5. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_reason.rb +19 -0
  6. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_sort_field.rb +16 -0
  7. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_type.rb +17 -0
  8. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_work_queue.rb +17 -0
  9. data/lib/candidhealth/pre_encounter/appointments/v_1/types/mutable_appointment.rb +203 -0
  10. data/lib/candidhealth/pre_encounter/appointments/v_1/types/service.rb +82 -0
  11. data/lib/candidhealth/pre_encounter/appointments/v_1/types/universal_service_identifier.rb +18 -0
  12. data/lib/candidhealth/pre_encounter/common/types/external_provider.rb +11 -2
  13. data/lib/candidhealth/pre_encounter/common/types/external_provider_type.rb +1 -0
  14. data/lib/candidhealth/pre_encounter/common/types/resource_page.rb +72 -0
  15. data/lib/candidhealth/pre_encounter/common/types/sort_direction.rb +14 -0
  16. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +267 -8
  17. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage.rb +31 -3
  18. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_benefits.rb +88 -0
  19. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_eligibility_check_response.rb +94 -0
  20. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_value.rb +74 -0
  21. data/lib/candidhealth/pre_encounter/coverages/v_1/types/eligibility_check.rb +62 -0
  22. data/lib/candidhealth/pre_encounter/coverages/v_1/types/eligibility_check_metadata.rb +103 -0
  23. data/lib/candidhealth/pre_encounter/coverages/v_1/types/eligibility_check_status.rb +19 -0
  24. data/lib/candidhealth/pre_encounter/coverages/v_1/types/insurance_type_code.rb +0 -1
  25. data/lib/candidhealth/pre_encounter/coverages/v_1/types/mutable_coverage.rb +31 -3
  26. data/lib/candidhealth/pre_encounter/coverages/v_1/types/plan_coverage.rb +86 -0
  27. data/lib/candidhealth/pre_encounter/coverages/v_1/types/plan_coverage_details.rb +124 -0
  28. data/lib/candidhealth/pre_encounter/coverages/v_1/types/service_coverage.rb +98 -0
  29. data/lib/candidhealth/pre_encounter/coverages/v_1/types/service_coverage_details.rb +124 -0
  30. data/lib/candidhealth/pre_encounter/coverages/v_1/types/service_type_code.rb +203 -0
  31. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +108 -24
  32. data/lib/candidhealth/pre_encounter/patients/v_1/types/contact.rb +11 -2
  33. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +4 -2
  34. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient_page.rb +90 -0
  35. data/lib/requests.rb +2 -2
  36. data/lib/types_export.rb +22 -0
  37. metadata +26 -2
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "plan_coverage"
4
+ require_relative "service_coverage"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module CandidApiClient
9
+ module PreEncounter
10
+ module Coverages
11
+ module V1
12
+ module Types
13
+ class CoverageBenefits
14
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverage]
15
+ attr_reader :plan_coverage
16
+ # @return [Array<CandidApiClient::PreEncounter::Coverages::V1::Types::ServiceCoverage>]
17
+ attr_reader :service_specific_coverage
18
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
19
+ attr_reader :additional_properties
20
+ # @return [Object]
21
+ attr_reader :_field_set
22
+ protected :_field_set
23
+
24
+ OMIT = Object.new
25
+
26
+ # @param plan_coverage [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverage]
27
+ # @param service_specific_coverage [Array<CandidApiClient::PreEncounter::Coverages::V1::Types::ServiceCoverage>]
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageBenefits]
30
+ def initialize(plan_coverage: OMIT, service_specific_coverage: OMIT, additional_properties: nil)
31
+ @plan_coverage = plan_coverage if plan_coverage != OMIT
32
+ @service_specific_coverage = service_specific_coverage if service_specific_coverage != OMIT
33
+ @additional_properties = additional_properties
34
+ @_field_set = {
35
+ "plan_coverage": plan_coverage,
36
+ "service_specific_coverage": service_specific_coverage
37
+ }.reject do |_k, v|
38
+ v == OMIT
39
+ end
40
+ end
41
+
42
+ # Deserialize a JSON object to an instance of CoverageBenefits
43
+ #
44
+ # @param json_object [String]
45
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageBenefits]
46
+ def self.from_json(json_object:)
47
+ struct = JSON.parse(json_object, object_class: OpenStruct)
48
+ parsed_json = JSON.parse(json_object)
49
+ if parsed_json["plan_coverage"].nil?
50
+ plan_coverage = nil
51
+ else
52
+ plan_coverage = parsed_json["plan_coverage"].to_json
53
+ plan_coverage = CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverage.from_json(json_object: plan_coverage)
54
+ end
55
+ service_specific_coverage = parsed_json["service_specific_coverage"]&.map do |item|
56
+ item = item.to_json
57
+ CandidApiClient::PreEncounter::Coverages::V1::Types::ServiceCoverage.from_json(json_object: item)
58
+ end
59
+ new(
60
+ plan_coverage: plan_coverage,
61
+ service_specific_coverage: service_specific_coverage,
62
+ additional_properties: struct
63
+ )
64
+ end
65
+
66
+ # Serialize an instance of CoverageBenefits to a JSON object
67
+ #
68
+ # @return [String]
69
+ def to_json(*_args)
70
+ @_field_set&.to_json
71
+ end
72
+
73
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
74
+ # hash and check each fields type against the current object's property
75
+ # definitions.
76
+ #
77
+ # @param obj [Object]
78
+ # @return [Void]
79
+ def self.validate_raw(obj:)
80
+ obj.plan_coverage.nil? || CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverage.validate_raw(obj: obj.plan_coverage)
81
+ obj.service_specific_coverage&.is_a?(Array) != false || raise("Passed value for field obj.service_specific_coverage is not the expected type, validation failed.")
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "eligibility_check_metadata"
4
+ require_relative "eligibility_check"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module CandidApiClient
9
+ module PreEncounter
10
+ module Coverages
11
+ module V1
12
+ module Types
13
+ class CoverageEligibilityCheckResponse
14
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata]
15
+ attr_reader :metadata
16
+ # @return [String]
17
+ attr_reader :error
18
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheck]
19
+ attr_reader :check
20
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
21
+ attr_reader :additional_properties
22
+ # @return [Object]
23
+ attr_reader :_field_set
24
+ protected :_field_set
25
+
26
+ OMIT = Object.new
27
+
28
+ # @param metadata [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata]
29
+ # @param error [String]
30
+ # @param check [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheck]
31
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
32
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageEligibilityCheckResponse]
33
+ def initialize(metadata:, error: OMIT, check: OMIT, additional_properties: nil)
34
+ @metadata = metadata
35
+ @error = error if error != OMIT
36
+ @check = check if check != OMIT
37
+ @additional_properties = additional_properties
38
+ @_field_set = { "metadata": metadata, "error": error, "check": check }.reject do |_k, v|
39
+ v == OMIT
40
+ end
41
+ end
42
+
43
+ # Deserialize a JSON object to an instance of CoverageEligibilityCheckResponse
44
+ #
45
+ # @param json_object [String]
46
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageEligibilityCheckResponse]
47
+ def self.from_json(json_object:)
48
+ struct = JSON.parse(json_object, object_class: OpenStruct)
49
+ parsed_json = JSON.parse(json_object)
50
+ if parsed_json["metadata"].nil?
51
+ metadata = nil
52
+ else
53
+ metadata = parsed_json["metadata"].to_json
54
+ metadata = CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata.from_json(json_object: metadata)
55
+ end
56
+ error = struct["error"]
57
+ if parsed_json["check"].nil?
58
+ check = nil
59
+ else
60
+ check = parsed_json["check"].to_json
61
+ check = CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheck.from_json(json_object: check)
62
+ end
63
+ new(
64
+ metadata: metadata,
65
+ error: error,
66
+ check: check,
67
+ additional_properties: struct
68
+ )
69
+ end
70
+
71
+ # Serialize an instance of CoverageEligibilityCheckResponse to a JSON object
72
+ #
73
+ # @return [String]
74
+ def to_json(*_args)
75
+ @_field_set&.to_json
76
+ end
77
+
78
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
79
+ # hash and check each fields type against the current object's property
80
+ # definitions.
81
+ #
82
+ # @param obj [Object]
83
+ # @return [Void]
84
+ def self.validate_raw(obj:)
85
+ CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata.validate_raw(obj: obj.metadata)
86
+ obj.error&.is_a?(String) != false || raise("Passed value for field obj.error is not the expected type, validation failed.")
87
+ obj.check.nil? || CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheck.validate_raw(obj: obj.check)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module PreEncounter
8
+ module Coverages
9
+ module V1
10
+ module Types
11
+ class CoverageValue
12
+ # @return [Integer]
13
+ attr_reader :family
14
+ # @return [Integer]
15
+ attr_reader :individual
16
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
17
+ attr_reader :additional_properties
18
+ # @return [Object]
19
+ attr_reader :_field_set
20
+ protected :_field_set
21
+
22
+ OMIT = Object.new
23
+
24
+ # @param family [Integer]
25
+ # @param individual [Integer]
26
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
27
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageValue]
28
+ def initialize(family: OMIT, individual: OMIT, additional_properties: nil)
29
+ @family = family if family != OMIT
30
+ @individual = individual if individual != OMIT
31
+ @additional_properties = additional_properties
32
+ @_field_set = { "family": family, "individual": individual }.reject do |_k, v|
33
+ v == OMIT
34
+ end
35
+ end
36
+
37
+ # Deserialize a JSON object to an instance of CoverageValue
38
+ #
39
+ # @param json_object [String]
40
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageValue]
41
+ def self.from_json(json_object:)
42
+ struct = JSON.parse(json_object, object_class: OpenStruct)
43
+ family = struct["family"]
44
+ individual = struct["individual"]
45
+ new(
46
+ family: family,
47
+ individual: individual,
48
+ additional_properties: struct
49
+ )
50
+ end
51
+
52
+ # Serialize an instance of CoverageValue to a JSON object
53
+ #
54
+ # @return [String]
55
+ def to_json(*_args)
56
+ @_field_set&.to_json
57
+ end
58
+
59
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
60
+ # hash and check each fields type against the current object's property
61
+ # definitions.
62
+ #
63
+ # @param obj [Object]
64
+ # @return [Void]
65
+ def self.validate_raw(obj:)
66
+ obj.family&.is_a?(Integer) != false || raise("Passed value for field obj.family is not the expected type, validation failed.")
67
+ obj.individual&.is_a?(Integer) != false || raise("Passed value for field obj.individual is not the expected type, validation failed.")
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module PreEncounter
8
+ module Coverages
9
+ module V1
10
+ module Types
11
+ class EligibilityCheck
12
+ # @return [Object]
13
+ attr_reader :raw_json
14
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
15
+ attr_reader :additional_properties
16
+ # @return [Object]
17
+ attr_reader :_field_set
18
+ protected :_field_set
19
+
20
+ OMIT = Object.new
21
+
22
+ # @param raw_json [Object]
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheck]
25
+ def initialize(raw_json:, additional_properties: nil)
26
+ @raw_json = raw_json
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "raw_json": raw_json }
29
+ end
30
+
31
+ # Deserialize a JSON object to an instance of EligibilityCheck
32
+ #
33
+ # @param json_object [String]
34
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheck]
35
+ def self.from_json(json_object:)
36
+ struct = JSON.parse(json_object, object_class: OpenStruct)
37
+ raw_json = struct["raw_json"]
38
+ new(raw_json: raw_json, additional_properties: struct)
39
+ end
40
+
41
+ # Serialize an instance of EligibilityCheck to a JSON object
42
+ #
43
+ # @return [String]
44
+ def to_json(*_args)
45
+ @_field_set&.to_json
46
+ end
47
+
48
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
49
+ # hash and check each fields type against the current object's property
50
+ # definitions.
51
+ #
52
+ # @param obj [Object]
53
+ # @return [Void]
54
+ def self.validate_raw(obj:)
55
+ obj.raw_json.is_a?(Object) != false || raise("Passed value for field obj.raw_json is not the expected type, validation failed.")
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "service_type_code"
4
+ require_relative "eligibility_check_status"
5
+ require "date"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module CandidApiClient
10
+ module PreEncounter
11
+ module Coverages
12
+ module V1
13
+ module Types
14
+ class EligibilityCheckMetadata
15
+ # @return [String]
16
+ attr_reader :check_id
17
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::ServiceTypeCode]
18
+ attr_reader :service_code
19
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckStatus]
20
+ attr_reader :status
21
+ # @return [String]
22
+ attr_reader :initiated_by
23
+ # @return [DateTime]
24
+ attr_reader :initiated_at
25
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
26
+ attr_reader :additional_properties
27
+ # @return [Object]
28
+ attr_reader :_field_set
29
+ protected :_field_set
30
+
31
+ OMIT = Object.new
32
+
33
+ # @param check_id [String]
34
+ # @param service_code [CandidApiClient::PreEncounter::Coverages::V1::Types::ServiceTypeCode]
35
+ # @param status [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckStatus]
36
+ # @param initiated_by [String]
37
+ # @param initiated_at [DateTime]
38
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
39
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata]
40
+ def initialize(check_id:, service_code:, status:, initiated_by:, initiated_at:, additional_properties: nil)
41
+ @check_id = check_id
42
+ @service_code = service_code
43
+ @status = status
44
+ @initiated_by = initiated_by
45
+ @initiated_at = initiated_at
46
+ @additional_properties = additional_properties
47
+ @_field_set = {
48
+ "check_id": check_id,
49
+ "service_code": service_code,
50
+ "status": status,
51
+ "initiated_by": initiated_by,
52
+ "initiated_at": initiated_at
53
+ }
54
+ end
55
+
56
+ # Deserialize a JSON object to an instance of EligibilityCheckMetadata
57
+ #
58
+ # @param json_object [String]
59
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata]
60
+ def self.from_json(json_object:)
61
+ struct = JSON.parse(json_object, object_class: OpenStruct)
62
+ parsed_json = JSON.parse(json_object)
63
+ check_id = struct["check_id"]
64
+ service_code = struct["service_code"]
65
+ status = struct["status"]
66
+ initiated_by = struct["initiated_by"]
67
+ initiated_at = (DateTime.parse(parsed_json["initiated_at"]) unless parsed_json["initiated_at"].nil?)
68
+ new(
69
+ check_id: check_id,
70
+ service_code: service_code,
71
+ status: status,
72
+ initiated_by: initiated_by,
73
+ initiated_at: initiated_at,
74
+ additional_properties: struct
75
+ )
76
+ end
77
+
78
+ # Serialize an instance of EligibilityCheckMetadata to a JSON object
79
+ #
80
+ # @return [String]
81
+ def to_json(*_args)
82
+ @_field_set&.to_json
83
+ end
84
+
85
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
86
+ # hash and check each fields type against the current object's property
87
+ # definitions.
88
+ #
89
+ # @param obj [Object]
90
+ # @return [Void]
91
+ def self.validate_raw(obj:)
92
+ obj.check_id.is_a?(String) != false || raise("Passed value for field obj.check_id is not the expected type, validation failed.")
93
+ obj.service_code.is_a?(CandidApiClient::PreEncounter::Coverages::V1::Types::ServiceTypeCode) != false || raise("Passed value for field obj.service_code is not the expected type, validation failed.")
94
+ obj.status.is_a?(CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
95
+ obj.initiated_by.is_a?(String) != false || raise("Passed value for field obj.initiated_by is not the expected type, validation failed.")
96
+ obj.initiated_at.is_a?(DateTime) != false || raise("Passed value for field obj.initiated_at is not the expected type, validation failed.")
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ module PreEncounter
5
+ module Coverages
6
+ module V1
7
+ module Types
8
+ # enum to represent the statuses of eligibility checks
9
+ class EligibilityCheckStatus
10
+ CREATED = "CREATED"
11
+ COMPLETED = "COMPLETED"
12
+ FAILED = "FAILED"
13
+ PENDING = "PENDING"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -66,7 +66,6 @@ module CandidApiClient
66
66
  CMV = "MV"
67
67
  COA = "OA"
68
68
  COT = "OT"
69
- CPE = "PE"
70
69
  CPL = "PL"
71
70
  CPP = "PP"
72
71
  CPR = "PR"
@@ -4,6 +4,8 @@ require_relative "coverage_status"
4
4
  require_relative "subscriber"
5
5
  require_relative "../../../common/types/relationship"
6
6
  require_relative "insurance_plan"
7
+ require_relative "eligibility_check_metadata"
8
+ require_relative "coverage_benefits"
7
9
  require "ostruct"
8
10
  require "json"
9
11
 
@@ -28,6 +30,10 @@ module CandidApiClient
28
30
  attr_reader :insurance_plan
29
31
  # @return [Boolean] A boolean indicating if the coverage has been verified by a user.
30
32
  attr_reader :verified
33
+ # @return [Array<CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata>] A list of eligibility check metadata that have been initiated on this coverage.
34
+ attr_reader :eligibility_checks
35
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageBenefits] The eligibility of the patient for the coverage, manually verified by users.
36
+ attr_reader :benefits
31
37
  # @return [OpenStruct] Additional properties unmapped to the current class definition
32
38
  attr_reader :additional_properties
33
39
  # @return [Object]
@@ -45,16 +51,20 @@ module CandidApiClient
45
51
  # @param patient [String] The patient who benefits from the insurance coverage
46
52
  # @param insurance_plan [CandidApiClient::PreEncounter::Coverages::V1::Types::InsurancePlan]
47
53
  # @param verified [Boolean] A boolean indicating if the coverage has been verified by a user.
54
+ # @param eligibility_checks [Array<CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata>] A list of eligibility check metadata that have been initiated on this coverage.
55
+ # @param benefits [CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageBenefits] The eligibility of the patient for the coverage, manually verified by users.
48
56
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
49
57
  # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::MutableCoverage]
50
58
  def initialize(status:, subscriber:, relationship:, patient:, insurance_plan:, verified:,
51
- additional_properties: nil)
59
+ eligibility_checks: OMIT, benefits: OMIT, additional_properties: nil)
52
60
  @status = status
53
61
  @subscriber = subscriber
54
62
  @relationship = relationship
55
63
  @patient = patient
56
64
  @insurance_plan = insurance_plan
57
65
  @verified = verified
66
+ @eligibility_checks = eligibility_checks if eligibility_checks != OMIT
67
+ @benefits = benefits if benefits != OMIT
58
68
  @additional_properties = additional_properties
59
69
  @_field_set = {
60
70
  "status": status,
@@ -62,8 +72,12 @@ module CandidApiClient
62
72
  "relationship": relationship,
63
73
  "patient": patient,
64
74
  "insurance_plan": insurance_plan,
65
- "verified": verified
66
- }
75
+ "verified": verified,
76
+ "eligibility_checks": eligibility_checks,
77
+ "benefits": benefits
78
+ }.reject do |_k, v|
79
+ v == OMIT
80
+ end
67
81
  end
68
82
 
69
83
  # Deserialize a JSON object to an instance of MutableCoverage
@@ -89,6 +103,16 @@ module CandidApiClient
89
103
  insurance_plan = CandidApiClient::PreEncounter::Coverages::V1::Types::InsurancePlan.from_json(json_object: insurance_plan)
90
104
  end
91
105
  verified = struct["verified"]
106
+ eligibility_checks = parsed_json["eligibility_checks"]&.map do |item|
107
+ item = item.to_json
108
+ CandidApiClient::PreEncounter::Coverages::V1::Types::EligibilityCheckMetadata.from_json(json_object: item)
109
+ end
110
+ if parsed_json["benefits"].nil?
111
+ benefits = nil
112
+ else
113
+ benefits = parsed_json["benefits"].to_json
114
+ benefits = CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageBenefits.from_json(json_object: benefits)
115
+ end
92
116
  new(
93
117
  status: status,
94
118
  subscriber: subscriber,
@@ -96,6 +120,8 @@ module CandidApiClient
96
120
  patient: patient,
97
121
  insurance_plan: insurance_plan,
98
122
  verified: verified,
123
+ eligibility_checks: eligibility_checks,
124
+ benefits: benefits,
99
125
  additional_properties: struct
100
126
  )
101
127
  end
@@ -120,6 +146,8 @@ module CandidApiClient
120
146
  obj.patient.is_a?(String) != false || raise("Passed value for field obj.patient is not the expected type, validation failed.")
121
147
  CandidApiClient::PreEncounter::Coverages::V1::Types::InsurancePlan.validate_raw(obj: obj.insurance_plan)
122
148
  obj.verified.is_a?(Boolean) != false || raise("Passed value for field obj.verified is not the expected type, validation failed.")
149
+ obj.eligibility_checks&.is_a?(Array) != false || raise("Passed value for field obj.eligibility_checks is not the expected type, validation failed.")
150
+ obj.benefits.nil? || CandidApiClient::PreEncounter::Coverages::V1::Types::CoverageBenefits.validate_raw(obj: obj.benefits)
123
151
  end
124
152
  end
125
153
  end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "plan_coverage_details"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module CandidApiClient
8
+ module PreEncounter
9
+ module Coverages
10
+ module V1
11
+ module Types
12
+ class PlanCoverage
13
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails]
14
+ attr_reader :in_network
15
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails]
16
+ attr_reader :out_of_network
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param in_network [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails]
26
+ # @param out_of_network [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails]
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverage]
29
+ def initialize(in_network: OMIT, out_of_network: OMIT, additional_properties: nil)
30
+ @in_network = in_network if in_network != OMIT
31
+ @out_of_network = out_of_network if out_of_network != OMIT
32
+ @additional_properties = additional_properties
33
+ @_field_set = { "in_network": in_network, "out_of_network": out_of_network }.reject do |_k, v|
34
+ v == OMIT
35
+ end
36
+ end
37
+
38
+ # Deserialize a JSON object to an instance of PlanCoverage
39
+ #
40
+ # @param json_object [String]
41
+ # @return [CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverage]
42
+ def self.from_json(json_object:)
43
+ struct = JSON.parse(json_object, object_class: OpenStruct)
44
+ parsed_json = JSON.parse(json_object)
45
+ if parsed_json["in_network"].nil?
46
+ in_network = nil
47
+ else
48
+ in_network = parsed_json["in_network"].to_json
49
+ in_network = CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails.from_json(json_object: in_network)
50
+ end
51
+ if parsed_json["out_of_network"].nil?
52
+ out_of_network = nil
53
+ else
54
+ out_of_network = parsed_json["out_of_network"].to_json
55
+ out_of_network = CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails.from_json(json_object: out_of_network)
56
+ end
57
+ new(
58
+ in_network: in_network,
59
+ out_of_network: out_of_network,
60
+ additional_properties: struct
61
+ )
62
+ end
63
+
64
+ # Serialize an instance of PlanCoverage to a JSON object
65
+ #
66
+ # @return [String]
67
+ def to_json(*_args)
68
+ @_field_set&.to_json
69
+ end
70
+
71
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
72
+ # hash and check each fields type against the current object's property
73
+ # definitions.
74
+ #
75
+ # @param obj [Object]
76
+ # @return [Void]
77
+ def self.validate_raw(obj:)
78
+ obj.in_network.nil? || CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails.validate_raw(obj: obj.in_network)
79
+ obj.out_of_network.nil? || CandidApiClient::PreEncounter::Coverages::V1::Types::PlanCoverageDetails.validate_raw(obj: obj.out_of_network)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end