candidhealth 1.6.0 → 1.8.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/auth/default/client.rb +74 -0
  3. data/lib/candidhealth/charge_capture/v_1/client.rb +48 -48
  4. data/lib/candidhealth/charge_capture/v_1/types/charge_capture_data.rb +70 -56
  5. data/lib/candidhealth/commons/types/clearinghouse.rb +18 -0
  6. data/lib/candidhealth/commons/types/procedure_modifier.rb +11 -0
  7. data/lib/candidhealth/credentialing/v_2/client.rb +342 -8
  8. data/lib/candidhealth/credentialing/v_2/types/base_credentialing_span.rb +143 -0
  9. data/lib/candidhealth/credentialing/v_2/types/facility_credentialing_span.rb +165 -0
  10. data/lib/candidhealth/credentialing/v_2/types/facility_credentialing_span_page.rb +88 -0
  11. data/lib/candidhealth/credentialing/v_2/types/provider_credentialing_span.rb +34 -34
  12. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider.rb +1 -1
  13. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update.rb +1 -1
  14. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update_with_optional_address.rb +1 -1
  15. data/lib/candidhealth/encounters/v_4/client.rb +3253 -2040
  16. data/lib/candidhealth/encounters/v_4/types/encounter.rb +111 -86
  17. data/lib/candidhealth/encounters/v_4/types/encounter_base.rb +39 -33
  18. data/lib/candidhealth/encounters/v_4/types/encounter_create.rb +796 -0
  19. data/lib/candidhealth/encounters/v_4/types/encounter_create_from_pre_encounter.rb +131 -117
  20. data/lib/candidhealth/encounters/v_4/types/encounter_deep_optional.rb +70 -56
  21. data/lib/candidhealth/encounters/v_4/types/encounter_optional.rb +29 -39
  22. data/lib/candidhealth/encounters/v_4/types/encounter_rendering_or_attending_provider_required_error.rb +55 -0
  23. data/lib/candidhealth/encounters/v_4/types/encounter_update.rb +736 -0
  24. data/lib/candidhealth/encounters_universal/types/universal_encounter_create.rb +944 -0
  25. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_base.rb +691 -0
  26. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter.rb +791 -0
  27. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter_base.rb +572 -0
  28. data/lib/candidhealth/encounters_universal/types/universal_encounter_update.rb +872 -0
  29. data/lib/candidhealth/encounters_universal/types/universal_encounter_update_base.rb +700 -0
  30. data/lib/candidhealth/fee_schedules/v_3/client.rb +57 -0
  31. data/lib/candidhealth/fee_schedules/v_3/types/validation_error.rb +12 -0
  32. data/lib/candidhealth/financials/types/patient_transaction_source.rb +1 -0
  33. data/lib/candidhealth/health_care_code_information/client.rb +30 -0
  34. data/lib/candidhealth/health_care_code_information/v_1/client.rb +268 -0
  35. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis.rb +236 -0
  36. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_code_qualifier.rb +14 -0
  37. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_new.rb +206 -0
  38. data/lib/candidhealth/health_care_code_information/v_1/types/code_list_qualifier_code.rb +1068 -0
  39. data/lib/candidhealth/health_care_code_information/v_1/types/condition_code.rb +71 -0
  40. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information.rb +237 -0
  41. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_code_qualifier.rb +13 -0
  42. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_new.rb +207 -0
  43. data/lib/candidhealth/health_care_code_information/v_1/types/date_time_period_format_qualifier.rb +54 -0
  44. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group.rb +236 -0
  45. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_code_qualifier.rb +13 -0
  46. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_new.rb +206 -0
  47. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury.rb +245 -0
  48. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_code_qualifier.rb +14 -0
  49. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_new.rb +245 -0
  50. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information.rb +218 -0
  51. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_create.rb +225 -0
  52. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_get_all_response.rb +227 -0
  53. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_new.rb +188 -0
  54. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_update.rb +225 -0
  55. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_code.rb +71 -0
  56. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information.rb +249 -0
  57. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_code_qualifier.rb +13 -0
  58. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_new.rb +219 -0
  59. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_code.rb +25 -0
  60. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_code_qualifier.rb +13 -0
  61. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information.rb +252 -0
  62. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information_new.rb +222 -0
  63. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information.rb +245 -0
  64. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_code_qualifier.rb +14 -0
  65. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_new.rb +215 -0
  66. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information.rb +248 -0
  67. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_code_qualifier.rb +14 -0
  68. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_new.rb +218 -0
  69. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit.rb +236 -0
  70. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_code_qualifier.rb +14 -0
  71. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_new.rb +206 -0
  72. data/lib/candidhealth/health_care_code_information/v_1/types/present_on_admission_indicator_code.rb +17 -0
  73. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis.rb +245 -0
  74. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_code_qualifier.rb +14 -0
  75. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_new.rb +215 -0
  76. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information.rb +246 -0
  77. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_code_qualifier.rb +15 -0
  78. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_new.rb +216 -0
  79. data/lib/candidhealth/health_care_code_information/v_1/types/rd_8_date.rb +72 -0
  80. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_admitting_diagnosis.rb +69 -0
  81. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_diagnosis_related_group.rb +69 -0
  82. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_principal_diagnosis.rb +69 -0
  83. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_principal_procedure_information.rb +71 -0
  84. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information.rb +236 -0
  85. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information_new.rb +206 -0
  86. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_qualifier.rb +13 -0
  87. data/lib/candidhealth/health_care_code_information/v_1/types/value_code.rb +119 -0
  88. data/lib/candidhealth/health_care_code_information/v_1/types/value_code_qualifier.rb +13 -0
  89. data/lib/candidhealth/health_care_code_information/v_1/types/value_information.rb +245 -0
  90. data/lib/candidhealth/health_care_code_information/v_1/types/value_information_new.rb +215 -0
  91. data/lib/candidhealth/individual/types/patient.rb +6 -6
  92. data/lib/candidhealth/individual/types/patient_base.rb +6 -6
  93. data/lib/candidhealth/individual/types/patient_create.rb +6 -6
  94. data/lib/candidhealth/individual/types/patient_update.rb +6 -6
  95. data/lib/candidhealth/individual/types/patient_update_with_optional_address.rb +6 -6
  96. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +2 -0
  97. data/lib/candidhealth/patient_ar/client.rb +30 -0
  98. data/lib/candidhealth/patient_ar/v_1/client.rb +161 -0
  99. data/lib/candidhealth/patient_ar/v_1/types/insurance_adjustment_info.rb +60 -0
  100. data/lib/candidhealth/patient_ar/v_1/types/insurance_payment_info.rb +60 -0
  101. data/lib/candidhealth/patient_ar/v_1/types/invalid_filters_error_type.rb +60 -0
  102. data/lib/candidhealth/patient_ar/v_1/types/inventory_record.rb +101 -0
  103. data/lib/candidhealth/patient_ar/v_1/types/invoice_itemization_response.rb +103 -0
  104. data/lib/candidhealth/patient_ar/v_1/types/list_inventory_paged_response.rb +77 -0
  105. data/lib/candidhealth/patient_ar/v_1/types/non_insurance_adjustment_info.rb +60 -0
  106. data/lib/candidhealth/patient_ar/v_1/types/non_insurance_payment_info.rb +60 -0
  107. data/lib/candidhealth/patient_ar/v_1/types/patient_adjustment_info.rb +60 -0
  108. data/lib/candidhealth/patient_ar/v_1/types/patient_ar_status.rb +14 -0
  109. data/lib/candidhealth/patient_ar/v_1/types/patient_payment_allocation.rb +76 -0
  110. data/lib/candidhealth/patient_ar/v_1/types/patient_payment_info.rb +75 -0
  111. data/lib/candidhealth/patient_ar/v_1/types/service_line_itemization.rb +210 -0
  112. data/lib/candidhealth/payers/client.rb +7 -0
  113. data/lib/candidhealth/payers/v_4/client.rb +137 -0
  114. data/lib/candidhealth/payers/v_4/types/clearinghouse_payer_info.rb +93 -0
  115. data/lib/candidhealth/payers/v_4/types/payer.rb +116 -0
  116. data/lib/candidhealth/payers/v_4/types/payer_ids.rb +107 -0
  117. data/lib/candidhealth/payers/v_4/types/payer_page.rb +88 -0
  118. data/lib/candidhealth/payers/v_4/types/support_state.rb +15 -0
  119. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +4 -4
  120. data/lib/candidhealth/pre_encounter/coverages/v_1/types/subscriber.rb +3 -3
  121. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +204 -6
  122. data/lib/candidhealth/pre_encounter/patients/v_1/types/guarantor.rb +3 -3
  123. data/lib/candidhealth/pre_encounter/patients/v_1/types/inferred_patient_metadata.rb +80 -0
  124. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +33 -5
  125. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +33 -5
  126. data/lib/candidhealth/pre_encounter/patients/v_1/types/origination_detail.rb +104 -0
  127. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +32 -4
  128. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_source.rb +18 -0
  129. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_type.rb +17 -0
  130. data/lib/candidhealth/pre_encounter/patients/v_1/types/specialization_category.rb +42 -0
  131. data/lib/candidhealth/service_lines/v_2/client.rb +252 -10
  132. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +28 -10
  133. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +52 -40
  134. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base.rb +251 -0
  135. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb +243 -0
  136. data/lib/candidhealth/service_lines/v_2/types/service_line_create_optional.rb +48 -24
  137. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb +58 -46
  138. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base.rb +273 -0
  139. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base_base.rb +265 -0
  140. data/lib/candidhealth/service_lines/v_2/types/service_line_update.rb +64 -54
  141. data/lib/candidhealth/service_lines/v_2/types/service_line_update_base.rb +263 -0
  142. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create.rb +271 -0
  143. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create_standalone.rb +317 -0
  144. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_update.rb +307 -0
  145. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite.rb +2 -2
  146. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_base.rb +90 -0
  147. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_update.rb +112 -0
  148. data/lib/candidhealth.rb +21 -7
  149. data/lib/requests.rb +2 -2
  150. data/lib/types_export.rb +116 -13
  151. metadata +109 -2
@@ -0,0 +1,210 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+ require_relative "insurance_adjustment_info"
5
+ require_relative "insurance_payment_info"
6
+ require_relative "non_insurance_adjustment_info"
7
+ require_relative "non_insurance_payment_info"
8
+ require_relative "patient_adjustment_info"
9
+ require_relative "patient_payment_info"
10
+ require "ostruct"
11
+ require "json"
12
+
13
+ module CandidApiClient
14
+ module PatientAr
15
+ module V1
16
+ module Types
17
+ class ServiceLineItemization
18
+ # @return [String] The ID of the service line.
19
+ attr_reader :service_line_id
20
+ # @return [String] The procedure code (CPT/HCPCS) associated with the service line.
21
+ attr_reader :procedure_code
22
+ # @return [Date] The date of service for the service line.
23
+ attr_reader :date_of_service
24
+ # @return [Integer] The total patient balance in cents for the service line. Negative values
25
+ # indicate a credit balance.
26
+ attr_reader :patient_balance_cents
27
+ # @return [Integer] The total charge amount in cents for the service line.
28
+ attr_reader :charge_amount_cents
29
+ # @return [CandidApiClient::PatientAr::V1::Types::InsuranceAdjustmentInfo]
30
+ attr_reader :insurance_adjustments
31
+ # @return [CandidApiClient::PatientAr::V1::Types::InsurancePaymentInfo]
32
+ attr_reader :insurance_payments
33
+ # @return [CandidApiClient::PatientAr::V1::Types::NonInsuranceAdjustmentInfo]
34
+ attr_reader :non_insurance_adjustments
35
+ # @return [CandidApiClient::PatientAr::V1::Types::NonInsurancePaymentInfo]
36
+ attr_reader :non_insurance_payments
37
+ # @return [CandidApiClient::PatientAr::V1::Types::PatientAdjustmentInfo]
38
+ attr_reader :patient_adjustments
39
+ # @return [CandidApiClient::PatientAr::V1::Types::PatientPaymentInfo]
40
+ attr_reader :patient_payments
41
+ # @return [Integer] The copay amount in cents for the service line.
42
+ attr_reader :copay_cents
43
+ # @return [Integer] The coinsurance amount in cents for the service line.
44
+ attr_reader :coinsurance_cents
45
+ # @return [Integer] The deductible amount in cents for the service line.
46
+ attr_reader :deductible_cents
47
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
48
+ attr_reader :additional_properties
49
+ # @return [Object]
50
+ attr_reader :_field_set
51
+ protected :_field_set
52
+
53
+ OMIT = Object.new
54
+
55
+ # @param service_line_id [String] The ID of the service line.
56
+ # @param procedure_code [String] The procedure code (CPT/HCPCS) associated with the service line.
57
+ # @param date_of_service [Date] The date of service for the service line.
58
+ # @param patient_balance_cents [Integer] The total patient balance in cents for the service line. Negative values
59
+ # indicate a credit balance.
60
+ # @param charge_amount_cents [Integer] The total charge amount in cents for the service line.
61
+ # @param insurance_adjustments [CandidApiClient::PatientAr::V1::Types::InsuranceAdjustmentInfo]
62
+ # @param insurance_payments [CandidApiClient::PatientAr::V1::Types::InsurancePaymentInfo]
63
+ # @param non_insurance_adjustments [CandidApiClient::PatientAr::V1::Types::NonInsuranceAdjustmentInfo]
64
+ # @param non_insurance_payments [CandidApiClient::PatientAr::V1::Types::NonInsurancePaymentInfo]
65
+ # @param patient_adjustments [CandidApiClient::PatientAr::V1::Types::PatientAdjustmentInfo]
66
+ # @param patient_payments [CandidApiClient::PatientAr::V1::Types::PatientPaymentInfo]
67
+ # @param copay_cents [Integer] The copay amount in cents for the service line.
68
+ # @param coinsurance_cents [Integer] The coinsurance amount in cents for the service line.
69
+ # @param deductible_cents [Integer] The deductible amount in cents for the service line.
70
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
71
+ # @return [CandidApiClient::PatientAr::V1::Types::ServiceLineItemization]
72
+ def initialize(service_line_id:, procedure_code:, date_of_service:, patient_balance_cents:,
73
+ charge_amount_cents:, insurance_adjustments:, insurance_payments:, non_insurance_adjustments:, non_insurance_payments:, patient_adjustments:, patient_payments:, copay_cents:, coinsurance_cents:, deductible_cents:, additional_properties: nil)
74
+ @service_line_id = service_line_id
75
+ @procedure_code = procedure_code
76
+ @date_of_service = date_of_service
77
+ @patient_balance_cents = patient_balance_cents
78
+ @charge_amount_cents = charge_amount_cents
79
+ @insurance_adjustments = insurance_adjustments
80
+ @insurance_payments = insurance_payments
81
+ @non_insurance_adjustments = non_insurance_adjustments
82
+ @non_insurance_payments = non_insurance_payments
83
+ @patient_adjustments = patient_adjustments
84
+ @patient_payments = patient_payments
85
+ @copay_cents = copay_cents
86
+ @coinsurance_cents = coinsurance_cents
87
+ @deductible_cents = deductible_cents
88
+ @additional_properties = additional_properties
89
+ @_field_set = {
90
+ "service_line_id": service_line_id,
91
+ "procedure_code": procedure_code,
92
+ "date_of_service": date_of_service,
93
+ "patient_balance_cents": patient_balance_cents,
94
+ "charge_amount_cents": charge_amount_cents,
95
+ "insurance_adjustments": insurance_adjustments,
96
+ "insurance_payments": insurance_payments,
97
+ "non_insurance_adjustments": non_insurance_adjustments,
98
+ "non_insurance_payments": non_insurance_payments,
99
+ "patient_adjustments": patient_adjustments,
100
+ "patient_payments": patient_payments,
101
+ "copay_cents": copay_cents,
102
+ "coinsurance_cents": coinsurance_cents,
103
+ "deductible_cents": deductible_cents
104
+ }
105
+ end
106
+
107
+ # Deserialize a JSON object to an instance of ServiceLineItemization
108
+ #
109
+ # @param json_object [String]
110
+ # @return [CandidApiClient::PatientAr::V1::Types::ServiceLineItemization]
111
+ def self.from_json(json_object:)
112
+ struct = JSON.parse(json_object, object_class: OpenStruct)
113
+ parsed_json = JSON.parse(json_object)
114
+ service_line_id = struct["service_line_id"]
115
+ procedure_code = struct["procedure_code"]
116
+ date_of_service = (Date.parse(parsed_json["date_of_service"]) unless parsed_json["date_of_service"].nil?)
117
+ patient_balance_cents = struct["patient_balance_cents"]
118
+ charge_amount_cents = struct["charge_amount_cents"]
119
+ if parsed_json["insurance_adjustments"].nil?
120
+ insurance_adjustments = nil
121
+ else
122
+ insurance_adjustments = parsed_json["insurance_adjustments"].to_json
123
+ insurance_adjustments = CandidApiClient::PatientAr::V1::Types::InsuranceAdjustmentInfo.from_json(json_object: insurance_adjustments)
124
+ end
125
+ if parsed_json["insurance_payments"].nil?
126
+ insurance_payments = nil
127
+ else
128
+ insurance_payments = parsed_json["insurance_payments"].to_json
129
+ insurance_payments = CandidApiClient::PatientAr::V1::Types::InsurancePaymentInfo.from_json(json_object: insurance_payments)
130
+ end
131
+ if parsed_json["non_insurance_adjustments"].nil?
132
+ non_insurance_adjustments = nil
133
+ else
134
+ non_insurance_adjustments = parsed_json["non_insurance_adjustments"].to_json
135
+ non_insurance_adjustments = CandidApiClient::PatientAr::V1::Types::NonInsuranceAdjustmentInfo.from_json(json_object: non_insurance_adjustments)
136
+ end
137
+ if parsed_json["non_insurance_payments"].nil?
138
+ non_insurance_payments = nil
139
+ else
140
+ non_insurance_payments = parsed_json["non_insurance_payments"].to_json
141
+ non_insurance_payments = CandidApiClient::PatientAr::V1::Types::NonInsurancePaymentInfo.from_json(json_object: non_insurance_payments)
142
+ end
143
+ if parsed_json["patient_adjustments"].nil?
144
+ patient_adjustments = nil
145
+ else
146
+ patient_adjustments = parsed_json["patient_adjustments"].to_json
147
+ patient_adjustments = CandidApiClient::PatientAr::V1::Types::PatientAdjustmentInfo.from_json(json_object: patient_adjustments)
148
+ end
149
+ if parsed_json["patient_payments"].nil?
150
+ patient_payments = nil
151
+ else
152
+ patient_payments = parsed_json["patient_payments"].to_json
153
+ patient_payments = CandidApiClient::PatientAr::V1::Types::PatientPaymentInfo.from_json(json_object: patient_payments)
154
+ end
155
+ copay_cents = struct["copay_cents"]
156
+ coinsurance_cents = struct["coinsurance_cents"]
157
+ deductible_cents = struct["deductible_cents"]
158
+ new(
159
+ service_line_id: service_line_id,
160
+ procedure_code: procedure_code,
161
+ date_of_service: date_of_service,
162
+ patient_balance_cents: patient_balance_cents,
163
+ charge_amount_cents: charge_amount_cents,
164
+ insurance_adjustments: insurance_adjustments,
165
+ insurance_payments: insurance_payments,
166
+ non_insurance_adjustments: non_insurance_adjustments,
167
+ non_insurance_payments: non_insurance_payments,
168
+ patient_adjustments: patient_adjustments,
169
+ patient_payments: patient_payments,
170
+ copay_cents: copay_cents,
171
+ coinsurance_cents: coinsurance_cents,
172
+ deductible_cents: deductible_cents,
173
+ additional_properties: struct
174
+ )
175
+ end
176
+
177
+ # Serialize an instance of ServiceLineItemization to a JSON object
178
+ #
179
+ # @return [String]
180
+ def to_json(*_args)
181
+ @_field_set&.to_json
182
+ end
183
+
184
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
185
+ # hash and check each fields type against the current object's property
186
+ # definitions.
187
+ #
188
+ # @param obj [Object]
189
+ # @return [Void]
190
+ def self.validate_raw(obj:)
191
+ obj.service_line_id.is_a?(String) != false || raise("Passed value for field obj.service_line_id is not the expected type, validation failed.")
192
+ obj.procedure_code.is_a?(String) != false || raise("Passed value for field obj.procedure_code is not the expected type, validation failed.")
193
+ obj.date_of_service.is_a?(Date) != false || raise("Passed value for field obj.date_of_service is not the expected type, validation failed.")
194
+ obj.patient_balance_cents.is_a?(Integer) != false || raise("Passed value for field obj.patient_balance_cents is not the expected type, validation failed.")
195
+ obj.charge_amount_cents.is_a?(Integer) != false || raise("Passed value for field obj.charge_amount_cents is not the expected type, validation failed.")
196
+ CandidApiClient::PatientAr::V1::Types::InsuranceAdjustmentInfo.validate_raw(obj: obj.insurance_adjustments)
197
+ CandidApiClient::PatientAr::V1::Types::InsurancePaymentInfo.validate_raw(obj: obj.insurance_payments)
198
+ CandidApiClient::PatientAr::V1::Types::NonInsuranceAdjustmentInfo.validate_raw(obj: obj.non_insurance_adjustments)
199
+ CandidApiClient::PatientAr::V1::Types::NonInsurancePaymentInfo.validate_raw(obj: obj.non_insurance_payments)
200
+ CandidApiClient::PatientAr::V1::Types::PatientAdjustmentInfo.validate_raw(obj: obj.patient_adjustments)
201
+ CandidApiClient::PatientAr::V1::Types::PatientPaymentInfo.validate_raw(obj: obj.patient_payments)
202
+ obj.copay_cents.is_a?(Integer) != false || raise("Passed value for field obj.copay_cents is not the expected type, validation failed.")
203
+ obj.coinsurance_cents.is_a?(Integer) != false || raise("Passed value for field obj.coinsurance_cents is not the expected type, validation failed.")
204
+ obj.deductible_cents.is_a?(Integer) != false || raise("Passed value for field obj.deductible_cents is not the expected type, validation failed.")
205
+ end
206
+ end
207
+ end
208
+ end
209
+ end
210
+ end
@@ -2,28 +2,35 @@
2
2
 
3
3
  require_relative "../../requests"
4
4
  require_relative "v_3/client"
5
+ require_relative "v_4/client"
5
6
 
6
7
  module CandidApiClient
7
8
  module Payers
8
9
  class Client
9
10
  # @return [CandidApiClient::Payers::V3::V3Client]
10
11
  attr_reader :v_3
12
+ # @return [CandidApiClient::Payers::V4::V4Client]
13
+ attr_reader :v_4
11
14
 
12
15
  # @param request_client [CandidApiClient::RequestClient]
13
16
  # @return [CandidApiClient::Payers::Client]
14
17
  def initialize(request_client:)
15
18
  @v_3 = CandidApiClient::Payers::V3::V3Client.new(request_client: request_client)
19
+ @v_4 = CandidApiClient::Payers::V4::V4Client.new(request_client: request_client)
16
20
  end
17
21
  end
18
22
 
19
23
  class AsyncClient
20
24
  # @return [CandidApiClient::Payers::V3::AsyncV3Client]
21
25
  attr_reader :v_3
26
+ # @return [CandidApiClient::Payers::V4::AsyncV4Client]
27
+ attr_reader :v_4
22
28
 
23
29
  # @param request_client [CandidApiClient::AsyncRequestClient]
24
30
  # @return [CandidApiClient::Payers::AsyncClient]
25
31
  def initialize(request_client:)
26
32
  @v_3 = CandidApiClient::Payers::V3::AsyncV3Client.new(request_client: request_client)
33
+ @v_4 = CandidApiClient::Payers::V4::AsyncV4Client.new(request_client: request_client)
27
34
  end
28
35
  end
29
36
  end
@@ -0,0 +1,137 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "types/payer"
5
+ require_relative "types/payer_page"
6
+ require "async"
7
+
8
+ module CandidApiClient
9
+ module Payers
10
+ module V4
11
+ class V4Client
12
+ # @return [CandidApiClient::RequestClient]
13
+ attr_reader :request_client
14
+
15
+ # @param request_client [CandidApiClient::RequestClient]
16
+ # @return [CandidApiClient::Payers::V4::V4Client]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+
21
+ # @param payer_uuid [String]
22
+ # @param request_options [CandidApiClient::RequestOptions]
23
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
24
+ # @example
25
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
26
+ # api.payers.v_4.get(payer_uuid: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32")
27
+ def get(payer_uuid:, request_options: nil)
28
+ response = @request_client.conn.get do |req|
29
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
30
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
31
+ req.headers = {
32
+ **(req.headers || {}),
33
+ **@request_client.get_headers,
34
+ **(request_options&.additional_headers || {})
35
+ }.compact
36
+ req.url "#{@request_client.get_url(environment: CandidApi,
37
+ request_options: request_options)}/api/payers/v4/#{payer_uuid}"
38
+ end
39
+ CandidApiClient::Payers::V4::Types::Payer.from_json(json_object: response.body)
40
+ end
41
+
42
+ # @param limit [Integer] Maximum number of entities per page, defaults to 100.
43
+ # @param search_term [String]
44
+ # @param page_token [String]
45
+ # @param request_options [CandidApiClient::RequestOptions]
46
+ # @return [CandidApiClient::Payers::V4::Types::PayerPage]
47
+ # @example
48
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
49
+ # api.payers.v_4.get_all
50
+ def get_all(limit: nil, search_term: nil, page_token: nil, request_options: nil)
51
+ response = @request_client.conn.get do |req|
52
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
53
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
54
+ req.headers = {
55
+ **(req.headers || {}),
56
+ **@request_client.get_headers,
57
+ **(request_options&.additional_headers || {})
58
+ }.compact
59
+ req.params = {
60
+ **(request_options&.additional_query_parameters || {}),
61
+ "limit": limit,
62
+ "search_term": search_term,
63
+ "page_token": page_token
64
+ }.compact
65
+ req.url "#{@request_client.get_url(environment: CandidApi, request_options: request_options)}/api/payers/v4"
66
+ end
67
+ CandidApiClient::Payers::V4::Types::PayerPage.from_json(json_object: response.body)
68
+ end
69
+ end
70
+
71
+ class AsyncV4Client
72
+ # @return [CandidApiClient::AsyncRequestClient]
73
+ attr_reader :request_client
74
+
75
+ # @param request_client [CandidApiClient::AsyncRequestClient]
76
+ # @return [CandidApiClient::Payers::V4::AsyncV4Client]
77
+ def initialize(request_client:)
78
+ @request_client = request_client
79
+ end
80
+
81
+ # @param payer_uuid [String]
82
+ # @param request_options [CandidApiClient::RequestOptions]
83
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
84
+ # @example
85
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
86
+ # api.payers.v_4.get(payer_uuid: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32")
87
+ def get(payer_uuid:, request_options: nil)
88
+ Async do
89
+ response = @request_client.conn.get do |req|
90
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
91
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
92
+ req.headers = {
93
+ **(req.headers || {}),
94
+ **@request_client.get_headers,
95
+ **(request_options&.additional_headers || {})
96
+ }.compact
97
+ req.url "#{@request_client.get_url(environment: CandidApi,
98
+ request_options: request_options)}/api/payers/v4/#{payer_uuid}"
99
+ end
100
+ CandidApiClient::Payers::V4::Types::Payer.from_json(json_object: response.body)
101
+ end
102
+ end
103
+
104
+ # @param limit [Integer] Maximum number of entities per page, defaults to 100.
105
+ # @param search_term [String]
106
+ # @param page_token [String]
107
+ # @param request_options [CandidApiClient::RequestOptions]
108
+ # @return [CandidApiClient::Payers::V4::Types::PayerPage]
109
+ # @example
110
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
111
+ # api.payers.v_4.get_all
112
+ def get_all(limit: nil, search_term: nil, page_token: nil, request_options: nil)
113
+ Async do
114
+ response = @request_client.conn.get do |req|
115
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
116
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
117
+ req.headers = {
118
+ **(req.headers || {}),
119
+ **@request_client.get_headers,
120
+ **(request_options&.additional_headers || {})
121
+ }.compact
122
+ req.params = {
123
+ **(request_options&.additional_query_parameters || {}),
124
+ "limit": limit,
125
+ "search_term": search_term,
126
+ "page_token": page_token
127
+ }.compact
128
+ req.url "#{@request_client.get_url(environment: CandidApi,
129
+ request_options: request_options)}/api/payers/v4"
130
+ end
131
+ CandidApiClient::Payers::V4::Types::PayerPage.from_json(json_object: response.body)
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,93 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "payer_ids"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module CandidApiClient
8
+ module Payers
9
+ module V4
10
+ module Types
11
+ class ClearinghousePayerInfo
12
+ # @return [String] The clearinghouse display name of the payer.
13
+ attr_reader :payer_name
14
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for professional claims
15
+ attr_reader :professional_payer_ids
16
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for institutional claims
17
+ attr_reader :institutional_payer_ids
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 payer_name [String] The clearinghouse display name of the payer.
27
+ # @param professional_payer_ids [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for professional claims
28
+ # @param institutional_payer_ids [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for institutional claims
29
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
30
+ # @return [CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo]
31
+ def initialize(payer_name:, professional_payer_ids:, institutional_payer_ids:, additional_properties: nil)
32
+ @payer_name = payer_name
33
+ @professional_payer_ids = professional_payer_ids
34
+ @institutional_payer_ids = institutional_payer_ids
35
+ @additional_properties = additional_properties
36
+ @_field_set = {
37
+ "payer_name": payer_name,
38
+ "professional_payer_ids": professional_payer_ids,
39
+ "institutional_payer_ids": institutional_payer_ids
40
+ }
41
+ end
42
+
43
+ # Deserialize a JSON object to an instance of ClearinghousePayerInfo
44
+ #
45
+ # @param json_object [String]
46
+ # @return [CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo]
47
+ def self.from_json(json_object:)
48
+ struct = JSON.parse(json_object, object_class: OpenStruct)
49
+ parsed_json = JSON.parse(json_object)
50
+ payer_name = struct["payer_name"]
51
+ if parsed_json["professional_payer_ids"].nil?
52
+ professional_payer_ids = nil
53
+ else
54
+ professional_payer_ids = parsed_json["professional_payer_ids"].to_json
55
+ professional_payer_ids = CandidApiClient::Payers::V4::Types::PayerIds.from_json(json_object: professional_payer_ids)
56
+ end
57
+ if parsed_json["institutional_payer_ids"].nil?
58
+ institutional_payer_ids = nil
59
+ else
60
+ institutional_payer_ids = parsed_json["institutional_payer_ids"].to_json
61
+ institutional_payer_ids = CandidApiClient::Payers::V4::Types::PayerIds.from_json(json_object: institutional_payer_ids)
62
+ end
63
+ new(
64
+ payer_name: payer_name,
65
+ professional_payer_ids: professional_payer_ids,
66
+ institutional_payer_ids: institutional_payer_ids,
67
+ additional_properties: struct
68
+ )
69
+ end
70
+
71
+ # Serialize an instance of ClearinghousePayerInfo 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
+ obj.payer_name.is_a?(String) != false || raise("Passed value for field obj.payer_name is not the expected type, validation failed.")
86
+ CandidApiClient::Payers::V4::Types::PayerIds.validate_raw(obj: obj.professional_payer_ids)
87
+ CandidApiClient::Payers::V4::Types::PayerIds.validate_raw(obj: obj.institutional_payer_ids)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "payer_ids"
4
+ require_relative "../../../commons/types/street_address_long_zip"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module CandidApiClient
9
+ module Payers
10
+ module V4
11
+ module Types
12
+ class Payer
13
+ # @return [String] Auto-generated ID set on creation.
14
+ attr_reader :payer_uuid
15
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds] The primary national payer IDs of the payer.
16
+ attr_reader :payer_ids
17
+ # @return [String] The primary display name of the payer.
18
+ attr_reader :payer_name
19
+ # @return [Hash{CandidApiClient::Commons::Types::Clearinghouse => CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo}]
20
+ attr_reader :clearinghouse_payer_info
21
+ # @return [CandidApiClient::Commons::Types::StreetAddressLongZip]
22
+ attr_reader :street_address
23
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
24
+ attr_reader :additional_properties
25
+ # @return [Object]
26
+ attr_reader :_field_set
27
+ protected :_field_set
28
+
29
+ OMIT = Object.new
30
+
31
+ # @param payer_uuid [String] Auto-generated ID set on creation.
32
+ # @param payer_ids [CandidApiClient::Payers::V4::Types::PayerIds] The primary national payer IDs of the payer.
33
+ # @param payer_name [String] The primary display name of the payer.
34
+ # @param clearinghouse_payer_info [Hash{CandidApiClient::Commons::Types::Clearinghouse => CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo}]
35
+ # @param street_address [CandidApiClient::Commons::Types::StreetAddressLongZip]
36
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
37
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
38
+ def initialize(payer_uuid:, payer_ids:, payer_name:, clearinghouse_payer_info:, street_address: OMIT,
39
+ additional_properties: nil)
40
+ @payer_uuid = payer_uuid
41
+ @payer_ids = payer_ids
42
+ @payer_name = payer_name
43
+ @clearinghouse_payer_info = clearinghouse_payer_info
44
+ @street_address = street_address if street_address != OMIT
45
+ @additional_properties = additional_properties
46
+ @_field_set = {
47
+ "payer_uuid": payer_uuid,
48
+ "payer_ids": payer_ids,
49
+ "payer_name": payer_name,
50
+ "clearinghouse_payer_info": clearinghouse_payer_info,
51
+ "street_address": street_address
52
+ }.reject do |_k, v|
53
+ v == OMIT
54
+ end
55
+ end
56
+
57
+ # Deserialize a JSON object to an instance of Payer
58
+ #
59
+ # @param json_object [String]
60
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
61
+ def self.from_json(json_object:)
62
+ struct = JSON.parse(json_object, object_class: OpenStruct)
63
+ parsed_json = JSON.parse(json_object)
64
+ payer_uuid = struct["payer_uuid"]
65
+ if parsed_json["payer_ids"].nil?
66
+ payer_ids = nil
67
+ else
68
+ payer_ids = parsed_json["payer_ids"].to_json
69
+ payer_ids = CandidApiClient::Payers::V4::Types::PayerIds.from_json(json_object: payer_ids)
70
+ end
71
+ payer_name = struct["payer_name"]
72
+ clearinghouse_payer_info = parsed_json["clearinghouse_payer_info"]&.transform_values do |value|
73
+ value = value.to_json
74
+ CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo.from_json(json_object: value)
75
+ end
76
+ if parsed_json["street_address"].nil?
77
+ street_address = nil
78
+ else
79
+ street_address = parsed_json["street_address"].to_json
80
+ street_address = CandidApiClient::Commons::Types::StreetAddressLongZip.from_json(json_object: street_address)
81
+ end
82
+ new(
83
+ payer_uuid: payer_uuid,
84
+ payer_ids: payer_ids,
85
+ payer_name: payer_name,
86
+ clearinghouse_payer_info: clearinghouse_payer_info,
87
+ street_address: street_address,
88
+ additional_properties: struct
89
+ )
90
+ end
91
+
92
+ # Serialize an instance of Payer to a JSON object
93
+ #
94
+ # @return [String]
95
+ def to_json(*_args)
96
+ @_field_set&.to_json
97
+ end
98
+
99
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
100
+ # hash and check each fields type against the current object's property
101
+ # definitions.
102
+ #
103
+ # @param obj [Object]
104
+ # @return [Void]
105
+ def self.validate_raw(obj:)
106
+ obj.payer_uuid.is_a?(String) != false || raise("Passed value for field obj.payer_uuid is not the expected type, validation failed.")
107
+ CandidApiClient::Payers::V4::Types::PayerIds.validate_raw(obj: obj.payer_ids)
108
+ obj.payer_name.is_a?(String) != false || raise("Passed value for field obj.payer_name is not the expected type, validation failed.")
109
+ obj.clearinghouse_payer_info.is_a?(Hash) != false || raise("Passed value for field obj.clearinghouse_payer_info is not the expected type, validation failed.")
110
+ obj.street_address.nil? || CandidApiClient::Commons::Types::StreetAddressLongZip.validate_raw(obj: obj.street_address)
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end