candidhealth 0.39.5 → 0.39.7

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/charge_capture/v_1/client.rb +8 -0
  3. data/lib/candidhealth/commons/types/procedure_modifier.rb +1 -0
  4. data/lib/candidhealth/encounters/v_4/client.rb +12 -4
  5. data/lib/candidhealth/encounters/v_4/types/payer_plan_group_payer_does_not_match_insurance_card_error.rb +77 -0
  6. data/lib/candidhealth/fee_schedules/v_3/client.rb +16 -4
  7. data/lib/candidhealth/fee_schedules/v_3/types/dimension_match.rb +16 -2
  8. data/lib/candidhealth/fee_schedules/v_3/types/dimensions.rb +16 -2
  9. data/lib/candidhealth/fee_schedules/v_3/types/match_payer_plan_groups.rb +85 -0
  10. data/lib/candidhealth/fee_schedules/v_3/types/optional_dimensions.rb +15 -2
  11. data/lib/candidhealth/fee_schedules/v_3/types/payer_plan_group_does_not_match_rate_payer_error.rb +75 -0
  12. data/lib/candidhealth/fee_schedules/v_3/types/validation_error.rb +39 -14
  13. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card.rb +10 -2
  14. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card_base.rb +10 -2
  15. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card_create.rb +10 -2
  16. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +27 -0
  17. data/lib/candidhealth/pre_encounter/appointments/v_1/client.rb +98 -4
  18. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment.rb +2 -2
  19. data/lib/candidhealth/pre_encounter/appointments/v_1/types/mutable_appointment.rb +2 -2
  20. data/lib/candidhealth/pre_encounter/appointments/v_1/types/visit.rb +96 -0
  21. data/lib/candidhealth/pre_encounter/appointments/v_1/types/visits_page.rb +98 -0
  22. data/lib/candidhealth/pre_encounter/common/types/external_identifier.rb +87 -0
  23. data/lib/candidhealth/pre_encounter/common/types/external_provider.rb +10 -2
  24. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +89 -4
  25. data/lib/candidhealth/pre_encounter/coverages/v_1/types/address.rb +118 -0
  26. data/lib/candidhealth/pre_encounter/coverages/v_1/types/benefits_related_entity.rb +11 -2
  27. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverages_page.rb +98 -0
  28. data/lib/candidhealth/pre_encounter/coverages/v_1/types/expanded_member_info.rb +133 -0
  29. data/lib/candidhealth/pre_encounter/coverages/v_1/types/insurance_plan.rb +10 -2
  30. data/lib/candidhealth/pre_encounter/coverages/v_1/types/insurance_type_code.rb +1 -0
  31. data/lib/candidhealth/pre_encounter/coverages/v_1/types/member_info.rb +93 -0
  32. data/lib/candidhealth/pre_encounter/coverages/v_1/types/plan_metadata.rb +38 -3
  33. data/lib/candidhealth/pre_encounter/eligibility_checks/client.rb +32 -0
  34. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/client.rb +116 -0
  35. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/eligibility_check.rb +119 -0
  36. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/eligibility_request.rb +135 -0
  37. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/eligibility_response.rb +15 -0
  38. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/encounter.rb +83 -0
  39. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/individual_provider.rb +81 -0
  40. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/organization_provider.rb +74 -0
  41. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/parsed_response.rb +99 -0
  42. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/provider.rb +66 -0
  43. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/request_correction.rb +79 -0
  44. data/lib/candidhealth/pre_encounter/lists/v_1/types/appointment_list_item.rb +5 -5
  45. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +70 -14
  46. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +14 -2
  47. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +14 -2
  48. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +13 -1
  49. data/lib/requests.rb +2 -2
  50. data/lib/types_export.rb +19 -0
  51. metadata +23 -2
@@ -24,6 +24,8 @@ module CandidApiClient
24
24
  attr_reader :facility_type_codes
25
25
  # @return [Set<CandidApiClient::Commons::Types::NetworkType>]
26
26
  attr_reader :network_types
27
+ # @return [Set<String>]
28
+ attr_reader :payer_plan_group_ids
27
29
  # @return [String]
28
30
  attr_reader :cpt_code
29
31
  # @return [Set<CandidApiClient::Commons::Types::ProcedureModifier>]
@@ -43,12 +45,13 @@ module CandidApiClient
43
45
  # @param license_types [Set<CandidApiClient::OrganizationProviders::V2::Types::LicenseType>]
44
46
  # @param facility_type_codes [Set<CandidApiClient::Commons::Types::FacilityTypeCode>]
45
47
  # @param network_types [Set<CandidApiClient::Commons::Types::NetworkType>]
48
+ # @param payer_plan_group_ids [Set<String>]
46
49
  # @param cpt_code [String]
47
50
  # @param modifiers [Set<CandidApiClient::Commons::Types::ProcedureModifier>]
48
51
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
49
52
  # @return [CandidApiClient::FeeSchedules::V3::Types::OptionalDimensions]
50
- def initialize(states:, zip_codes:, license_types:, facility_type_codes:, network_types:, modifiers:,
51
- payer_uuid: OMIT, organization_billing_provider_id: OMIT, cpt_code: OMIT, additional_properties: nil)
53
+ def initialize(states:, zip_codes:, license_types:, facility_type_codes:, network_types:,
54
+ payer_plan_group_ids:, modifiers:, payer_uuid: OMIT, organization_billing_provider_id: OMIT, cpt_code: OMIT, additional_properties: nil)
52
55
  @payer_uuid = payer_uuid if payer_uuid != OMIT
53
56
  if organization_billing_provider_id != OMIT
54
57
  @organization_billing_provider_id = organization_billing_provider_id
@@ -58,6 +61,7 @@ module CandidApiClient
58
61
  @license_types = license_types
59
62
  @facility_type_codes = facility_type_codes
60
63
  @network_types = network_types
64
+ @payer_plan_group_ids = payer_plan_group_ids
61
65
  @cpt_code = cpt_code if cpt_code != OMIT
62
66
  @modifiers = modifiers
63
67
  @additional_properties = additional_properties
@@ -69,6 +73,7 @@ module CandidApiClient
69
73
  "license_types": license_types,
70
74
  "facility_type_codes": facility_type_codes,
71
75
  "network_types": network_types,
76
+ "payer_plan_group_ids": payer_plan_group_ids,
72
77
  "cpt_code": cpt_code,
73
78
  "modifiers": modifiers
74
79
  }.reject do |_k, v|
@@ -115,6 +120,12 @@ module CandidApiClient
115
120
  network_types = parsed_json["network_types"].to_json
116
121
  network_types = Set.new(network_types)
117
122
  end
123
+ if parsed_json["payer_plan_group_ids"].nil?
124
+ payer_plan_group_ids = nil
125
+ else
126
+ payer_plan_group_ids = parsed_json["payer_plan_group_ids"].to_json
127
+ payer_plan_group_ids = Set.new(payer_plan_group_ids)
128
+ end
118
129
  cpt_code = struct["cpt_code"]
119
130
  if parsed_json["modifiers"].nil?
120
131
  modifiers = nil
@@ -130,6 +141,7 @@ module CandidApiClient
130
141
  license_types: license_types,
131
142
  facility_type_codes: facility_type_codes,
132
143
  network_types: network_types,
144
+ payer_plan_group_ids: payer_plan_group_ids,
133
145
  cpt_code: cpt_code,
134
146
  modifiers: modifiers,
135
147
  additional_properties: struct
@@ -157,6 +169,7 @@ module CandidApiClient
157
169
  obj.license_types.is_a?(Set) != false || raise("Passed value for field obj.license_types is not the expected type, validation failed.")
158
170
  obj.facility_type_codes.is_a?(Set) != false || raise("Passed value for field obj.facility_type_codes is not the expected type, validation failed.")
159
171
  obj.network_types.is_a?(Set) != false || raise("Passed value for field obj.network_types is not the expected type, validation failed.")
172
+ obj.payer_plan_group_ids.is_a?(Set) != false || raise("Passed value for field obj.payer_plan_group_ids is not the expected type, validation failed.")
160
173
  obj.cpt_code&.is_a?(String) != false || raise("Passed value for field obj.cpt_code is not the expected type, validation failed.")
161
174
  obj.modifiers.is_a?(Set) != false || raise("Passed value for field obj.modifiers is not the expected type, validation failed.")
162
175
  end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module FeeSchedules
8
+ module V3
9
+ module Types
10
+ class PayerPlanGroupDoesNotMatchRatePayerError
11
+ # @return [String]
12
+ attr_reader :rate_payer_uuid
13
+ # @return [String]
14
+ attr_reader :payer_plan_group_payer_uuid
15
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
16
+ attr_reader :additional_properties
17
+ # @return [Object]
18
+ attr_reader :_field_set
19
+ protected :_field_set
20
+
21
+ OMIT = Object.new
22
+
23
+ # @param rate_payer_uuid [String]
24
+ # @param payer_plan_group_payer_uuid [String]
25
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
26
+ # @return [CandidApiClient::FeeSchedules::V3::Types::PayerPlanGroupDoesNotMatchRatePayerError]
27
+ def initialize(rate_payer_uuid:, payer_plan_group_payer_uuid:, additional_properties: nil)
28
+ @rate_payer_uuid = rate_payer_uuid
29
+ @payer_plan_group_payer_uuid = payer_plan_group_payer_uuid
30
+ @additional_properties = additional_properties
31
+ @_field_set = {
32
+ "rate_payer_uuid": rate_payer_uuid,
33
+ "payer_plan_group_payer_uuid": payer_plan_group_payer_uuid
34
+ }
35
+ end
36
+
37
+ # Deserialize a JSON object to an instance of
38
+ # PayerPlanGroupDoesNotMatchRatePayerError
39
+ #
40
+ # @param json_object [String]
41
+ # @return [CandidApiClient::FeeSchedules::V3::Types::PayerPlanGroupDoesNotMatchRatePayerError]
42
+ def self.from_json(json_object:)
43
+ struct = JSON.parse(json_object, object_class: OpenStruct)
44
+ rate_payer_uuid = struct["rate_payer_uuid"]
45
+ payer_plan_group_payer_uuid = struct["payer_plan_group_payer_uuid"]
46
+ new(
47
+ rate_payer_uuid: rate_payer_uuid,
48
+ payer_plan_group_payer_uuid: payer_plan_group_payer_uuid,
49
+ additional_properties: struct
50
+ )
51
+ end
52
+
53
+ # Serialize an instance of PayerPlanGroupDoesNotMatchRatePayerError to a JSON
54
+ # object
55
+ #
56
+ # @return [String]
57
+ def to_json(*_args)
58
+ @_field_set&.to_json
59
+ end
60
+
61
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
62
+ # hash and check each fields type against the current object's property
63
+ # definitions.
64
+ #
65
+ # @param obj [Object]
66
+ # @return [Void]
67
+ def self.validate_raw(obj:)
68
+ obj.rate_payer_uuid.is_a?(String) != false || raise("Passed value for field obj.rate_payer_uuid is not the expected type, validation failed.")
69
+ obj.payer_plan_group_payer_uuid.is_a?(String) != false || raise("Passed value for field obj.payer_plan_group_payer_uuid is not the expected type, validation failed.")
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -4,6 +4,7 @@ require "json"
4
4
  require_relative "overlapping_rate_entries_error"
5
5
  require_relative "../../../commons/types/entity_conflict_error_message"
6
6
  require_relative "../../../commons/types/entity_not_found_error_message"
7
+ require_relative "payer_plan_group_does_not_match_rate_payer_error"
7
8
 
8
9
  module CandidApiClient
9
10
  module FeeSchedules
@@ -32,20 +33,24 @@ module CandidApiClient
32
33
  # @return [CandidApiClient::FeeSchedules::V3::Types::ValidationError]
33
34
  def self.from_json(json_object:)
34
35
  struct = JSON.parse(json_object, object_class: OpenStruct)
35
- member = case struct.type
36
- when "overlapping_rate_entries"
37
- CandidApiClient::FeeSchedules::V3::Types::OverlappingRateEntriesError.from_json(json_object: json_object)
38
- when "version_conflict"
39
- CandidApiClient::Commons::Types::EntityConflictErrorMessage.from_json(json_object: json_object)
40
- when "organization_provider_not_found"
41
- CandidApiClient::Commons::Types::EntityNotFoundErrorMessage.from_json(json_object: json_object)
42
- when "duplicate_rate"
43
- nil
44
- when "empty_entries"
45
- nil
46
- else
47
- CandidApiClient::FeeSchedules::V3::Types::OverlappingRateEntriesError.from_json(json_object: json_object)
48
- end
36
+ case struct.type
37
+ when "overlapping_rate_entries"
38
+ member = CandidApiClient::FeeSchedules::V3::Types::OverlappingRateEntriesError.from_json(json_object: json_object)
39
+ when "version_conflict"
40
+ member = CandidApiClient::Commons::Types::EntityConflictErrorMessage.from_json(json_object: json_object)
41
+ when "organization_provider_not_found"
42
+ member = CandidApiClient::Commons::Types::EntityNotFoundErrorMessage.from_json(json_object: json_object)
43
+ when "duplicate_rate"
44
+ member = nil
45
+ when "empty_entries"
46
+ member = nil
47
+ when "payer_plan_group_not_found"
48
+ member = CandidApiClient::Commons::Types::EntityNotFoundErrorMessage.from_json(json_object: json_object)
49
+ when "payer_plan_group_does_not_match_rate_payer"
50
+ member = CandidApiClient::FeeSchedules::V3::Types::PayerPlanGroupDoesNotMatchRatePayerError.from_json(json_object: json_object)
51
+ else
52
+ member = CandidApiClient::FeeSchedules::V3::Types::OverlappingRateEntriesError.from_json(json_object: json_object)
53
+ end
49
54
  new(member: member, discriminant: struct.type)
50
55
  end
51
56
 
@@ -64,6 +69,10 @@ module CandidApiClient
64
69
  { type: @discriminant }.to_json
65
70
  when "empty_entries"
66
71
  { type: @discriminant }.to_json
72
+ when "payer_plan_group_not_found"
73
+ { **@member.to_json, type: @discriminant }.to_json
74
+ when "payer_plan_group_does_not_match_rate_payer"
75
+ { **@member.to_json, type: @discriminant }.to_json
67
76
  else
68
77
  { "type": @discriminant, value: @member }.to_json
69
78
  end
@@ -88,6 +97,10 @@ module CandidApiClient
88
97
  # noop
89
98
  when "empty_entries"
90
99
  # noop
100
+ when "payer_plan_group_not_found"
101
+ CandidApiClient::Commons::Types::EntityNotFoundErrorMessage.validate_raw(obj: obj)
102
+ when "payer_plan_group_does_not_match_rate_payer"
103
+ CandidApiClient::FeeSchedules::V3::Types::PayerPlanGroupDoesNotMatchRatePayerError.validate_raw(obj: obj)
91
104
  else
92
105
  raise("Passed value matched no type within the union, validation failed.")
93
106
  end
@@ -128,6 +141,18 @@ module CandidApiClient
128
141
  def self.empty_entries
129
142
  new(member: nil, discriminant: "empty_entries")
130
143
  end
144
+
145
+ # @param member [CandidApiClient::Commons::Types::EntityNotFoundErrorMessage]
146
+ # @return [CandidApiClient::FeeSchedules::V3::Types::ValidationError]
147
+ def self.payer_plan_group_not_found(member:)
148
+ new(member: member, discriminant: "payer_plan_group_not_found")
149
+ end
150
+
151
+ # @param member [CandidApiClient::FeeSchedules::V3::Types::PayerPlanGroupDoesNotMatchRatePayerError]
152
+ # @return [CandidApiClient::FeeSchedules::V3::Types::ValidationError]
153
+ def self.payer_plan_group_does_not_match_rate_payer(member:)
154
+ new(member: member, discriminant: "payer_plan_group_does_not_match_rate_payer")
155
+ end
131
156
  end
132
157
  end
133
158
  end
@@ -34,6 +34,8 @@ module CandidApiClient
34
34
  attr_reader :plan_type
35
35
  # @return [CandidApiClient::Commons::Types::InsuranceTypeCode]
36
36
  attr_reader :insurance_type
37
+ # @return [String]
38
+ attr_reader :payer_plan_group_id
37
39
  # @return [OpenStruct] Additional properties unmapped to the current class definition
38
40
  attr_reader :additional_properties
39
41
  # @return [Object]
@@ -54,10 +56,11 @@ module CandidApiClient
54
56
  # @param plan_name [String] Box 11c on the CMS-1500 claim form.
55
57
  # @param plan_type [CandidApiClient::Commons::Types::SourceOfPaymentCode]
56
58
  # @param insurance_type [CandidApiClient::Commons::Types::InsuranceTypeCode]
59
+ # @param payer_plan_group_id [String]
57
60
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
58
61
  # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCard]
59
62
  def initialize(insurance_card_id:, member_id:, payer_name:, payer_id:, rx_bin: OMIT, rx_pcn: OMIT,
60
- image_url_front: OMIT, image_url_back: OMIT, group_number: OMIT, plan_name: OMIT, plan_type: OMIT, insurance_type: OMIT, additional_properties: nil)
63
+ image_url_front: OMIT, image_url_back: OMIT, group_number: OMIT, plan_name: OMIT, plan_type: OMIT, insurance_type: OMIT, payer_plan_group_id: OMIT, additional_properties: nil)
61
64
  @insurance_card_id = insurance_card_id
62
65
  @member_id = member_id
63
66
  @payer_name = payer_name
@@ -70,6 +73,7 @@ module CandidApiClient
70
73
  @plan_name = plan_name if plan_name != OMIT
71
74
  @plan_type = plan_type if plan_type != OMIT
72
75
  @insurance_type = insurance_type if insurance_type != OMIT
76
+ @payer_plan_group_id = payer_plan_group_id if payer_plan_group_id != OMIT
73
77
  @additional_properties = additional_properties
74
78
  @_field_set = {
75
79
  "insurance_card_id": insurance_card_id,
@@ -83,7 +87,8 @@ module CandidApiClient
83
87
  "group_number": group_number,
84
88
  "plan_name": plan_name,
85
89
  "plan_type": plan_type,
86
- "insurance_type": insurance_type
90
+ "insurance_type": insurance_type,
91
+ "payer_plan_group_id": payer_plan_group_id
87
92
  }.reject do |_k, v|
88
93
  v == OMIT
89
94
  end
@@ -107,6 +112,7 @@ module CandidApiClient
107
112
  plan_name = struct["plan_name"]
108
113
  plan_type = struct["plan_type"]
109
114
  insurance_type = struct["insurance_type"]
115
+ payer_plan_group_id = struct["payer_plan_group_id"]
110
116
  new(
111
117
  insurance_card_id: insurance_card_id,
112
118
  member_id: member_id,
@@ -120,6 +126,7 @@ module CandidApiClient
120
126
  plan_name: plan_name,
121
127
  plan_type: plan_type,
122
128
  insurance_type: insurance_type,
129
+ payer_plan_group_id: payer_plan_group_id,
123
130
  additional_properties: struct
124
131
  )
125
132
  end
@@ -150,6 +157,7 @@ module CandidApiClient
150
157
  obj.plan_name&.is_a?(String) != false || raise("Passed value for field obj.plan_name is not the expected type, validation failed.")
151
158
  obj.plan_type&.is_a?(CandidApiClient::Commons::Types::SourceOfPaymentCode) != false || raise("Passed value for field obj.plan_type is not the expected type, validation failed.")
152
159
  obj.insurance_type&.is_a?(CandidApiClient::Commons::Types::InsuranceTypeCode) != false || raise("Passed value for field obj.insurance_type is not the expected type, validation failed.")
160
+ obj.payer_plan_group_id&.is_a?(String) != false || raise("Passed value for field obj.payer_plan_group_id is not the expected type, validation failed.")
153
161
  end
154
162
  end
155
163
  end
@@ -18,6 +18,8 @@ module CandidApiClient
18
18
  attr_reader :plan_type
19
19
  # @return [CandidApiClient::Commons::Types::InsuranceTypeCode]
20
20
  attr_reader :insurance_type
21
+ # @return [String]
22
+ attr_reader :payer_plan_group_id
21
23
  # @return [OpenStruct] Additional properties unmapped to the current class definition
22
24
  attr_reader :additional_properties
23
25
  # @return [Object]
@@ -30,20 +32,23 @@ module CandidApiClient
30
32
  # @param plan_name [String] Box 11c on the CMS-1500 claim form.
31
33
  # @param plan_type [CandidApiClient::Commons::Types::SourceOfPaymentCode]
32
34
  # @param insurance_type [CandidApiClient::Commons::Types::InsuranceTypeCode]
35
+ # @param payer_plan_group_id [String]
33
36
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
34
37
  # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardBase]
35
38
  def initialize(group_number: OMIT, plan_name: OMIT, plan_type: OMIT, insurance_type: OMIT,
36
- additional_properties: nil)
39
+ payer_plan_group_id: OMIT, additional_properties: nil)
37
40
  @group_number = group_number if group_number != OMIT
38
41
  @plan_name = plan_name if plan_name != OMIT
39
42
  @plan_type = plan_type if plan_type != OMIT
40
43
  @insurance_type = insurance_type if insurance_type != OMIT
44
+ @payer_plan_group_id = payer_plan_group_id if payer_plan_group_id != OMIT
41
45
  @additional_properties = additional_properties
42
46
  @_field_set = {
43
47
  "group_number": group_number,
44
48
  "plan_name": plan_name,
45
49
  "plan_type": plan_type,
46
- "insurance_type": insurance_type
50
+ "insurance_type": insurance_type,
51
+ "payer_plan_group_id": payer_plan_group_id
47
52
  }.reject do |_k, v|
48
53
  v == OMIT
49
54
  end
@@ -59,11 +64,13 @@ module CandidApiClient
59
64
  plan_name = struct["plan_name"]
60
65
  plan_type = struct["plan_type"]
61
66
  insurance_type = struct["insurance_type"]
67
+ payer_plan_group_id = struct["payer_plan_group_id"]
62
68
  new(
63
69
  group_number: group_number,
64
70
  plan_name: plan_name,
65
71
  plan_type: plan_type,
66
72
  insurance_type: insurance_type,
73
+ payer_plan_group_id: payer_plan_group_id,
67
74
  additional_properties: struct
68
75
  )
69
76
  end
@@ -86,6 +93,7 @@ module CandidApiClient
86
93
  obj.plan_name&.is_a?(String) != false || raise("Passed value for field obj.plan_name is not the expected type, validation failed.")
87
94
  obj.plan_type&.is_a?(CandidApiClient::Commons::Types::SourceOfPaymentCode) != false || raise("Passed value for field obj.plan_type is not the expected type, validation failed.")
88
95
  obj.insurance_type&.is_a?(CandidApiClient::Commons::Types::InsuranceTypeCode) != false || raise("Passed value for field obj.insurance_type is not the expected type, validation failed.")
96
+ obj.payer_plan_group_id&.is_a?(String) != false || raise("Passed value for field obj.payer_plan_group_id is not the expected type, validation failed.")
89
97
  end
90
98
  end
91
99
  end
@@ -35,6 +35,8 @@ module CandidApiClient
35
35
  attr_reader :plan_type
36
36
  # @return [CandidApiClient::Commons::Types::InsuranceTypeCode]
37
37
  attr_reader :insurance_type
38
+ # @return [String]
39
+ attr_reader :payer_plan_group_id
38
40
  # @return [OpenStruct] Additional properties unmapped to the current class definition
39
41
  attr_reader :additional_properties
40
42
  # @return [Object]
@@ -55,10 +57,11 @@ module CandidApiClient
55
57
  # @param plan_name [String] Box 11c on the CMS-1500 claim form.
56
58
  # @param plan_type [CandidApiClient::Commons::Types::SourceOfPaymentCode]
57
59
  # @param insurance_type [CandidApiClient::Commons::Types::InsuranceTypeCode]
60
+ # @param payer_plan_group_id [String]
58
61
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
59
62
  # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreate]
60
63
  def initialize(member_id:, payer_name:, payer_id:, rx_bin: OMIT, rx_pcn: OMIT, image_url_front: OMIT,
61
- image_url_back: OMIT, emr_payer_crosswalk: OMIT, group_number: OMIT, plan_name: OMIT, plan_type: OMIT, insurance_type: OMIT, additional_properties: nil)
64
+ image_url_back: OMIT, emr_payer_crosswalk: OMIT, group_number: OMIT, plan_name: OMIT, plan_type: OMIT, insurance_type: OMIT, payer_plan_group_id: OMIT, additional_properties: nil)
62
65
  @member_id = member_id
63
66
  @payer_name = payer_name
64
67
  @payer_id = payer_id
@@ -71,6 +74,7 @@ module CandidApiClient
71
74
  @plan_name = plan_name if plan_name != OMIT
72
75
  @plan_type = plan_type if plan_type != OMIT
73
76
  @insurance_type = insurance_type if insurance_type != OMIT
77
+ @payer_plan_group_id = payer_plan_group_id if payer_plan_group_id != OMIT
74
78
  @additional_properties = additional_properties
75
79
  @_field_set = {
76
80
  "member_id": member_id,
@@ -84,7 +88,8 @@ module CandidApiClient
84
88
  "group_number": group_number,
85
89
  "plan_name": plan_name,
86
90
  "plan_type": plan_type,
87
- "insurance_type": insurance_type
91
+ "insurance_type": insurance_type,
92
+ "payer_plan_group_id": payer_plan_group_id
88
93
  }.reject do |_k, v|
89
94
  v == OMIT
90
95
  end
@@ -108,6 +113,7 @@ module CandidApiClient
108
113
  plan_name = struct["plan_name"]
109
114
  plan_type = struct["plan_type"]
110
115
  insurance_type = struct["insurance_type"]
116
+ payer_plan_group_id = struct["payer_plan_group_id"]
111
117
  new(
112
118
  member_id: member_id,
113
119
  payer_name: payer_name,
@@ -121,6 +127,7 @@ module CandidApiClient
121
127
  plan_name: plan_name,
122
128
  plan_type: plan_type,
123
129
  insurance_type: insurance_type,
130
+ payer_plan_group_id: payer_plan_group_id,
124
131
  additional_properties: struct
125
132
  )
126
133
  end
@@ -151,6 +158,7 @@ module CandidApiClient
151
158
  obj.plan_name&.is_a?(String) != false || raise("Passed value for field obj.plan_name is not the expected type, validation failed.")
152
159
  obj.plan_type&.is_a?(CandidApiClient::Commons::Types::SourceOfPaymentCode) != false || raise("Passed value for field obj.plan_type is not the expected type, validation failed.")
153
160
  obj.insurance_type&.is_a?(CandidApiClient::Commons::Types::InsuranceTypeCode) != false || raise("Passed value for field obj.insurance_type is not the expected type, validation failed.")
161
+ obj.payer_plan_group_id&.is_a?(String) != false || raise("Passed value for field obj.payer_plan_group_id is not the expected type, validation failed.")
154
162
  end
155
163
  end
156
164
  end
@@ -73,6 +73,33 @@ module CandidApiClient
73
73
  MFTA = "MFTA"
74
74
  APCC = "APCC"
75
75
  DNP = "DNP"
76
+ AGNPBC = "AGNPBC"
77
+ ANP = "ANP"
78
+ FNPPP = "FNPPP"
79
+ LCSWR = "LCSWR"
80
+ ALC = "ALC"
81
+ RMFTI = "RMFTI"
82
+ LAMFT = "LAMFT"
83
+ LPCA = "LPCA"
84
+ LSWI = "LSWI"
85
+ CSW = "CSW"
86
+ CPC = "CPC"
87
+ LGMFT = "LGMFT"
88
+ LLPC = "LLPC"
89
+ PLPC = "PLPC"
90
+ PLMFT = "PLMFT"
91
+ LMHCA = "LMHCA"
92
+ CIT = "CIT"
93
+ CT = "CT"
94
+ MFT = "MFT"
95
+ LSW = "LSW"
96
+ PLMHP = "PLMHP"
97
+ PCMSW = "PCMSW"
98
+ LMHP = "LMHP"
99
+ OTRL = "OTR/L"
100
+ RPA = "RPA"
101
+ COTA = "COTA"
102
+ CRNP = "CRNP"
76
103
  end
77
104
  end
78
105
  end
@@ -3,6 +3,8 @@
3
3
  require_relative "../../../../requests"
4
4
  require_relative "types/mutable_appointment"
5
5
  require_relative "types/appointment"
6
+ require_relative "../../common/types/sort_direction"
7
+ require_relative "types/visits_page"
6
8
  require "json"
7
9
  require "date"
8
10
  require "async"
@@ -47,6 +49,7 @@ module CandidApiClient
47
49
  # * :start (Date)
48
50
  # * :end_ (Date)
49
51
  # * :canonical_id (String)
52
+ # * :fax (String)
50
53
  # * :estimated_copay_cents (Integer)
51
54
  # * :estimated_patient_responsibility_cents (Integer)
52
55
  # * :patient_deposit_cents (Integer)
@@ -59,7 +62,7 @@ module CandidApiClient
59
62
  # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
60
63
  # @example
61
64
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
62
- # api.pre_encounter.appointments.v_1.create(request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE })
65
+ # api.pre_encounter.appointments.v_1.create(request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string", fax: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE })
63
66
  def create(request:, request_options: nil)
64
67
  response = @request_client.conn.post do |req|
65
68
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -76,6 +79,49 @@ module CandidApiClient
76
79
  CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
77
80
  end
78
81
 
82
+ # Gets all Visits within a given time range. The return list is ordered by
83
+ # start_time ascending.
84
+ #
85
+ # @param page_token [String]
86
+ # @param limit [Integer]
87
+ # @param sort_field [String] Defaults to appointment.start_time.
88
+ # @param sort_direction [CandidApiClient::PreEncounter::Common::Types::SortDirection] Defaults to ascending.
89
+ # @param filters [String]
90
+ # @param request_options [CandidApiClient::RequestOptions]
91
+ # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::VisitsPage]
92
+ # @example
93
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
94
+ # api.pre_encounter.appointments.v_1.get_visits(
95
+ # page_token: "string",
96
+ # limit: 1,
97
+ # sort_field: "string",
98
+ # sort_direction: ASC,
99
+ # filters: "string"
100
+ # )
101
+ def get_visits(page_token: nil, limit: nil, sort_field: nil, sort_direction: nil, filters: nil,
102
+ request_options: nil)
103
+ response = @request_client.conn.get do |req|
104
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
105
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
106
+ req.headers = {
107
+ **(req.headers || {}),
108
+ **@request_client.get_headers,
109
+ **(request_options&.additional_headers || {})
110
+ }.compact
111
+ req.params = {
112
+ **(request_options&.additional_query_parameters || {}),
113
+ "page_token": page_token,
114
+ "limit": limit,
115
+ "sort_field": sort_field,
116
+ "sort_direction": sort_direction,
117
+ "filters": filters
118
+ }.compact
119
+ req.url "#{@request_client.get_url(environment: PreEncounter,
120
+ request_options: request_options)}/appointments/v1/visits"
121
+ end
122
+ CandidApiClient::PreEncounter::Appointments::V1::Types::VisitsPage.from_json(json_object: response.body)
123
+ end
124
+
79
125
  # Gets an appointment.
80
126
  #
81
127
  # @param id [String]
@@ -155,6 +201,7 @@ module CandidApiClient
155
201
  # * :start (Date)
156
202
  # * :end_ (Date)
157
203
  # * :canonical_id (String)
204
+ # * :fax (String)
158
205
  # * :estimated_copay_cents (Integer)
159
206
  # * :estimated_patient_responsibility_cents (Integer)
160
207
  # * :patient_deposit_cents (Integer)
@@ -170,7 +217,7 @@ module CandidApiClient
170
217
  # api.pre_encounter.appointments.v_1.update(
171
218
  # id: "string",
172
219
  # version: "string",
173
- # request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE }
220
+ # request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string", fax: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE }
174
221
  # )
175
222
  def update(id:, version:, request:, request_options: nil)
176
223
  response = @request_client.conn.put do |req|
@@ -280,6 +327,7 @@ module CandidApiClient
280
327
  # * :start (Date)
281
328
  # * :end_ (Date)
282
329
  # * :canonical_id (String)
330
+ # * :fax (String)
283
331
  # * :estimated_copay_cents (Integer)
284
332
  # * :estimated_patient_responsibility_cents (Integer)
285
333
  # * :patient_deposit_cents (Integer)
@@ -292,7 +340,7 @@ module CandidApiClient
292
340
  # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
293
341
  # @example
294
342
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
295
- # api.pre_encounter.appointments.v_1.create(request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE })
343
+ # api.pre_encounter.appointments.v_1.create(request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string", fax: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE })
296
344
  def create(request:, request_options: nil)
297
345
  Async do
298
346
  response = @request_client.conn.post do |req|
@@ -311,6 +359,51 @@ module CandidApiClient
311
359
  end
312
360
  end
313
361
 
362
+ # Gets all Visits within a given time range. The return list is ordered by
363
+ # start_time ascending.
364
+ #
365
+ # @param page_token [String]
366
+ # @param limit [Integer]
367
+ # @param sort_field [String] Defaults to appointment.start_time.
368
+ # @param sort_direction [CandidApiClient::PreEncounter::Common::Types::SortDirection] Defaults to ascending.
369
+ # @param filters [String]
370
+ # @param request_options [CandidApiClient::RequestOptions]
371
+ # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::VisitsPage]
372
+ # @example
373
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
374
+ # api.pre_encounter.appointments.v_1.get_visits(
375
+ # page_token: "string",
376
+ # limit: 1,
377
+ # sort_field: "string",
378
+ # sort_direction: ASC,
379
+ # filters: "string"
380
+ # )
381
+ def get_visits(page_token: nil, limit: nil, sort_field: nil, sort_direction: nil, filters: nil,
382
+ request_options: nil)
383
+ Async do
384
+ response = @request_client.conn.get do |req|
385
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
386
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
387
+ req.headers = {
388
+ **(req.headers || {}),
389
+ **@request_client.get_headers,
390
+ **(request_options&.additional_headers || {})
391
+ }.compact
392
+ req.params = {
393
+ **(request_options&.additional_query_parameters || {}),
394
+ "page_token": page_token,
395
+ "limit": limit,
396
+ "sort_field": sort_field,
397
+ "sort_direction": sort_direction,
398
+ "filters": filters
399
+ }.compact
400
+ req.url "#{@request_client.get_url(environment: PreEncounter,
401
+ request_options: request_options)}/appointments/v1/visits"
402
+ end
403
+ CandidApiClient::PreEncounter::Appointments::V1::Types::VisitsPage.from_json(json_object: response.body)
404
+ end
405
+ end
406
+
314
407
  # Gets an appointment.
315
408
  #
316
409
  # @param id [String]
@@ -394,6 +487,7 @@ module CandidApiClient
394
487
  # * :start (Date)
395
488
  # * :end_ (Date)
396
489
  # * :canonical_id (String)
490
+ # * :fax (String)
397
491
  # * :estimated_copay_cents (Integer)
398
492
  # * :estimated_patient_responsibility_cents (Integer)
399
493
  # * :patient_deposit_cents (Integer)
@@ -409,7 +503,7 @@ module CandidApiClient
409
503
  # api.pre_encounter.appointments.v_1.update(
410
504
  # id: "string",
411
505
  # version: "string",
412
- # request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE }
506
+ # request: { patient_id: "string", start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), status: PENDING, service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", attending_doctor: { name: { family: "string", given: ["string"], use: USUAL, period: { } }, type: PRIMARY, npi: "string", telecoms: [{ value: "string", use: HOME }], addresses: , period: { }, canonical_id: "string", fax: "string" }, estimated_copay_cents: 1, estimated_patient_responsibility_cents: 1, patient_deposit_cents: 1, checked_in_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), notes: "string", location_resource_id: "string", automated_eligibility_check_complete: true, work_queue: EMERGENT_ISSUE }
413
507
  # )
414
508
  def update(id:, version:, request:, request_options: nil)
415
509
  Async do
@@ -70,7 +70,7 @@ module CandidApiClient
70
70
  attr_reader :automated_eligibility_check_complete
71
71
  # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue] The work queue that the appointment belongs to. It is not recommended to change
72
72
  # this value manually via API. If status is NOT_READY, work_queue must be set. If
73
- # status is READY or CHECKED_IN, work_queue must be null.
73
+ # status is READY, work_queue must be null.
74
74
  attr_reader :work_queue
75
75
  # @return [OpenStruct] Additional properties unmapped to the current class definition
76
76
  attr_reader :additional_properties
@@ -115,7 +115,7 @@ module CandidApiClient
115
115
  # appointment.
116
116
  # @param work_queue [CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue] The work queue that the appointment belongs to. It is not recommended to change
117
117
  # this value manually via API. If status is NOT_READY, work_queue must be set. If
118
- # status is READY or CHECKED_IN, work_queue must be null.
118
+ # status is READY, work_queue must be null.
119
119
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
120
120
  # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
121
121
  def initialize(id:, organization_id:, deactivated:, version:, updated_at:, updating_user_id:, patient_id:,