candidhealth 1.7.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/auth/default/client.rb +34 -6
  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/encounter_providers/v_2/types/billing_provider.rb +1 -1
  8. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update.rb +1 -1
  9. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update_with_optional_address.rb +1 -1
  10. data/lib/candidhealth/encounters/v_4/client.rb +3253 -2040
  11. data/lib/candidhealth/encounters/v_4/types/encounter.rb +111 -86
  12. data/lib/candidhealth/encounters/v_4/types/encounter_base.rb +39 -33
  13. data/lib/candidhealth/encounters/v_4/types/encounter_create.rb +796 -0
  14. data/lib/candidhealth/encounters/v_4/types/encounter_create_from_pre_encounter.rb +131 -117
  15. data/lib/candidhealth/encounters/v_4/types/encounter_deep_optional.rb +70 -56
  16. data/lib/candidhealth/encounters/v_4/types/encounter_optional.rb +29 -39
  17. data/lib/candidhealth/encounters/v_4/types/encounter_rendering_or_attending_provider_required_error.rb +55 -0
  18. data/lib/candidhealth/encounters/v_4/types/encounter_update.rb +736 -0
  19. data/lib/candidhealth/encounters_universal/types/universal_encounter_create.rb +944 -0
  20. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_base.rb +691 -0
  21. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter.rb +791 -0
  22. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter_base.rb +572 -0
  23. data/lib/candidhealth/encounters_universal/types/universal_encounter_update.rb +872 -0
  24. data/lib/candidhealth/encounters_universal/types/universal_encounter_update_base.rb +700 -0
  25. data/lib/candidhealth/fee_schedules/v_3/client.rb +57 -0
  26. data/lib/candidhealth/fee_schedules/v_3/types/validation_error.rb +12 -0
  27. data/lib/candidhealth/financials/types/patient_transaction_source.rb +1 -0
  28. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_new.rb +206 -0
  29. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_new.rb +207 -0
  30. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_new.rb +206 -0
  31. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_new.rb +245 -0
  32. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_create.rb +225 -0
  33. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_new.rb +219 -0
  34. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information_new.rb +222 -0
  35. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_new.rb +215 -0
  36. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_new.rb +218 -0
  37. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_new.rb +206 -0
  38. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_new.rb +215 -0
  39. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_new.rb +216 -0
  40. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information_new.rb +206 -0
  41. data/lib/candidhealth/health_care_code_information/v_1/types/value_information_new.rb +215 -0
  42. data/lib/candidhealth/individual/types/patient.rb +6 -6
  43. data/lib/candidhealth/individual/types/patient_base.rb +6 -6
  44. data/lib/candidhealth/individual/types/patient_create.rb +6 -6
  45. data/lib/candidhealth/individual/types/patient_update.rb +6 -6
  46. data/lib/candidhealth/individual/types/patient_update_with_optional_address.rb +6 -6
  47. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +2 -0
  48. data/lib/candidhealth/payers/client.rb +7 -0
  49. data/lib/candidhealth/payers/v_4/client.rb +137 -0
  50. data/lib/candidhealth/payers/v_4/types/clearinghouse_payer_info.rb +93 -0
  51. data/lib/candidhealth/payers/v_4/types/payer.rb +116 -0
  52. data/lib/candidhealth/payers/v_4/types/payer_ids.rb +107 -0
  53. data/lib/candidhealth/payers/v_4/types/payer_page.rb +88 -0
  54. data/lib/candidhealth/payers/v_4/types/support_state.rb +15 -0
  55. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +4 -4
  56. data/lib/candidhealth/pre_encounter/coverages/v_1/types/subscriber.rb +3 -3
  57. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +72 -6
  58. data/lib/candidhealth/pre_encounter/patients/v_1/types/guarantor.rb +3 -3
  59. data/lib/candidhealth/pre_encounter/patients/v_1/types/inferred_patient_metadata.rb +80 -0
  60. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +19 -5
  61. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +19 -5
  62. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +18 -4
  63. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_type.rb +1 -0
  64. data/lib/candidhealth/service_lines/v_2/client.rb +252 -10
  65. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +28 -10
  66. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +52 -40
  67. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base.rb +251 -0
  68. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb +243 -0
  69. data/lib/candidhealth/service_lines/v_2/types/service_line_create_optional.rb +48 -24
  70. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb +58 -46
  71. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base.rb +273 -0
  72. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base_base.rb +265 -0
  73. data/lib/candidhealth/service_lines/v_2/types/service_line_update.rb +64 -54
  74. data/lib/candidhealth/service_lines/v_2/types/service_line_update_base.rb +263 -0
  75. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create.rb +271 -0
  76. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create_standalone.rb +317 -0
  77. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_update.rb +307 -0
  78. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite.rb +2 -2
  79. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_base.rb +90 -0
  80. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_update.rb +112 -0
  81. data/lib/requests.rb +2 -2
  82. data/lib/types_export.rb +44 -4
  83. metadata +43 -2
@@ -0,0 +1,225 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "principal_diagnosis_new"
4
+ require_relative "admitting_diagnosis_new"
5
+ require_relative "patient_reason_for_visit_new"
6
+ require_relative "external_cause_of_injury_new"
7
+ require_relative "diagnosis_related_group_new"
8
+ require_relative "other_diagnosis_information_new"
9
+ require_relative "principal_procedure_information_new"
10
+ require_relative "other_procedure_information_new"
11
+ require_relative "occurrence_span_information_new"
12
+ require_relative "occurrence_information_new"
13
+ require_relative "treatment_code_information_new"
14
+ require_relative "value_information_new"
15
+ require_relative "condition_information_new"
16
+ require "ostruct"
17
+ require "json"
18
+
19
+ module CandidApiClient
20
+ module HealthCareCodeInformation
21
+ module V1
22
+ module Types
23
+ class HealthCareCodeInformationCreate
24
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalDiagnosisNew]
25
+ attr_reader :principal_diagnosis
26
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::AdmittingDiagnosisNew]
27
+ attr_reader :admitting_diagnosis
28
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::PatientReasonForVisitNew>]
29
+ attr_reader :patient_reasons_for_visit
30
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::ExternalCauseOfInjuryNew>]
31
+ attr_reader :external_causes_of_injury
32
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::DiagnosisRelatedGroupNew]
33
+ attr_reader :diagnosis_related_groups
34
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationNew>]
35
+ attr_reader :other_diagnosis_information
36
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalProcedureInformationNew]
37
+ attr_reader :principal_procedure
38
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OtherProcedureInformationNew>]
39
+ attr_reader :other_procedure_information
40
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanInformationNew>]
41
+ attr_reader :occurrence_span_information
42
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationNew>]
43
+ attr_reader :occurrence_information
44
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::TreatmentCodeInformationNew>]
45
+ attr_reader :treatment_code_information
46
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::ValueInformationNew>]
47
+ attr_reader :value_information
48
+ # @return [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::ConditionInformationNew>]
49
+ attr_reader :condition_information
50
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
51
+ attr_reader :additional_properties
52
+ # @return [Object]
53
+ attr_reader :_field_set
54
+ protected :_field_set
55
+
56
+ OMIT = Object.new
57
+
58
+ # @param principal_diagnosis [CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalDiagnosisNew]
59
+ # @param admitting_diagnosis [CandidApiClient::HealthCareCodeInformation::V1::Types::AdmittingDiagnosisNew]
60
+ # @param patient_reasons_for_visit [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::PatientReasonForVisitNew>]
61
+ # @param external_causes_of_injury [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::ExternalCauseOfInjuryNew>]
62
+ # @param diagnosis_related_groups [CandidApiClient::HealthCareCodeInformation::V1::Types::DiagnosisRelatedGroupNew]
63
+ # @param other_diagnosis_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationNew>]
64
+ # @param principal_procedure [CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalProcedureInformationNew]
65
+ # @param other_procedure_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OtherProcedureInformationNew>]
66
+ # @param occurrence_span_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanInformationNew>]
67
+ # @param occurrence_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationNew>]
68
+ # @param treatment_code_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::TreatmentCodeInformationNew>]
69
+ # @param value_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::ValueInformationNew>]
70
+ # @param condition_information [Array<CandidApiClient::HealthCareCodeInformation::V1::Types::ConditionInformationNew>]
71
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
72
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::HealthCareCodeInformationCreate]
73
+ def initialize(principal_diagnosis: OMIT, admitting_diagnosis: OMIT, patient_reasons_for_visit: OMIT,
74
+ external_causes_of_injury: OMIT, diagnosis_related_groups: OMIT, other_diagnosis_information: OMIT, principal_procedure: OMIT, other_procedure_information: OMIT, occurrence_span_information: OMIT, occurrence_information: OMIT, treatment_code_information: OMIT, value_information: OMIT, condition_information: OMIT, additional_properties: nil)
75
+ @principal_diagnosis = principal_diagnosis if principal_diagnosis != OMIT
76
+ @admitting_diagnosis = admitting_diagnosis if admitting_diagnosis != OMIT
77
+ @patient_reasons_for_visit = patient_reasons_for_visit if patient_reasons_for_visit != OMIT
78
+ @external_causes_of_injury = external_causes_of_injury if external_causes_of_injury != OMIT
79
+ @diagnosis_related_groups = diagnosis_related_groups if diagnosis_related_groups != OMIT
80
+ @other_diagnosis_information = other_diagnosis_information if other_diagnosis_information != OMIT
81
+ @principal_procedure = principal_procedure if principal_procedure != OMIT
82
+ @other_procedure_information = other_procedure_information if other_procedure_information != OMIT
83
+ @occurrence_span_information = occurrence_span_information if occurrence_span_information != OMIT
84
+ @occurrence_information = occurrence_information if occurrence_information != OMIT
85
+ @treatment_code_information = treatment_code_information if treatment_code_information != OMIT
86
+ @value_information = value_information if value_information != OMIT
87
+ @condition_information = condition_information if condition_information != OMIT
88
+ @additional_properties = additional_properties
89
+ @_field_set = {
90
+ "principal_diagnosis": principal_diagnosis,
91
+ "admitting_diagnosis": admitting_diagnosis,
92
+ "patient_reasons_for_visit": patient_reasons_for_visit,
93
+ "external_causes_of_injury": external_causes_of_injury,
94
+ "diagnosis_related_groups": diagnosis_related_groups,
95
+ "other_diagnosis_information": other_diagnosis_information,
96
+ "principal_procedure": principal_procedure,
97
+ "other_procedure_information": other_procedure_information,
98
+ "occurrence_span_information": occurrence_span_information,
99
+ "occurrence_information": occurrence_information,
100
+ "treatment_code_information": treatment_code_information,
101
+ "value_information": value_information,
102
+ "condition_information": condition_information
103
+ }.reject do |_k, v|
104
+ v == OMIT
105
+ end
106
+ end
107
+
108
+ # Deserialize a JSON object to an instance of HealthCareCodeInformationCreate
109
+ #
110
+ # @param json_object [String]
111
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::HealthCareCodeInformationCreate]
112
+ def self.from_json(json_object:)
113
+ struct = JSON.parse(json_object, object_class: OpenStruct)
114
+ parsed_json = JSON.parse(json_object)
115
+ if parsed_json["principal_diagnosis"].nil?
116
+ principal_diagnosis = nil
117
+ else
118
+ principal_diagnosis = parsed_json["principal_diagnosis"].to_json
119
+ principal_diagnosis = CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalDiagnosisNew.from_json(json_object: principal_diagnosis)
120
+ end
121
+ if parsed_json["admitting_diagnosis"].nil?
122
+ admitting_diagnosis = nil
123
+ else
124
+ admitting_diagnosis = parsed_json["admitting_diagnosis"].to_json
125
+ admitting_diagnosis = CandidApiClient::HealthCareCodeInformation::V1::Types::AdmittingDiagnosisNew.from_json(json_object: admitting_diagnosis)
126
+ end
127
+ patient_reasons_for_visit = parsed_json["patient_reasons_for_visit"]&.map do |item|
128
+ item = item.to_json
129
+ CandidApiClient::HealthCareCodeInformation::V1::Types::PatientReasonForVisitNew.from_json(json_object: item)
130
+ end
131
+ external_causes_of_injury = parsed_json["external_causes_of_injury"]&.map do |item|
132
+ item = item.to_json
133
+ CandidApiClient::HealthCareCodeInformation::V1::Types::ExternalCauseOfInjuryNew.from_json(json_object: item)
134
+ end
135
+ if parsed_json["diagnosis_related_groups"].nil?
136
+ diagnosis_related_groups = nil
137
+ else
138
+ diagnosis_related_groups = parsed_json["diagnosis_related_groups"].to_json
139
+ diagnosis_related_groups = CandidApiClient::HealthCareCodeInformation::V1::Types::DiagnosisRelatedGroupNew.from_json(json_object: diagnosis_related_groups)
140
+ end
141
+ other_diagnosis_information = parsed_json["other_diagnosis_information"]&.map do |item|
142
+ item = item.to_json
143
+ CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationNew.from_json(json_object: item)
144
+ end
145
+ if parsed_json["principal_procedure"].nil?
146
+ principal_procedure = nil
147
+ else
148
+ principal_procedure = parsed_json["principal_procedure"].to_json
149
+ principal_procedure = CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalProcedureInformationNew.from_json(json_object: principal_procedure)
150
+ end
151
+ other_procedure_information = parsed_json["other_procedure_information"]&.map do |item|
152
+ item = item.to_json
153
+ CandidApiClient::HealthCareCodeInformation::V1::Types::OtherProcedureInformationNew.from_json(json_object: item)
154
+ end
155
+ occurrence_span_information = parsed_json["occurrence_span_information"]&.map do |item|
156
+ item = item.to_json
157
+ CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanInformationNew.from_json(json_object: item)
158
+ end
159
+ occurrence_information = parsed_json["occurrence_information"]&.map do |item|
160
+ item = item.to_json
161
+ CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationNew.from_json(json_object: item)
162
+ end
163
+ treatment_code_information = parsed_json["treatment_code_information"]&.map do |item|
164
+ item = item.to_json
165
+ CandidApiClient::HealthCareCodeInformation::V1::Types::TreatmentCodeInformationNew.from_json(json_object: item)
166
+ end
167
+ value_information = parsed_json["value_information"]&.map do |item|
168
+ item = item.to_json
169
+ CandidApiClient::HealthCareCodeInformation::V1::Types::ValueInformationNew.from_json(json_object: item)
170
+ end
171
+ condition_information = parsed_json["condition_information"]&.map do |item|
172
+ item = item.to_json
173
+ CandidApiClient::HealthCareCodeInformation::V1::Types::ConditionInformationNew.from_json(json_object: item)
174
+ end
175
+ new(
176
+ principal_diagnosis: principal_diagnosis,
177
+ admitting_diagnosis: admitting_diagnosis,
178
+ patient_reasons_for_visit: patient_reasons_for_visit,
179
+ external_causes_of_injury: external_causes_of_injury,
180
+ diagnosis_related_groups: diagnosis_related_groups,
181
+ other_diagnosis_information: other_diagnosis_information,
182
+ principal_procedure: principal_procedure,
183
+ other_procedure_information: other_procedure_information,
184
+ occurrence_span_information: occurrence_span_information,
185
+ occurrence_information: occurrence_information,
186
+ treatment_code_information: treatment_code_information,
187
+ value_information: value_information,
188
+ condition_information: condition_information,
189
+ additional_properties: struct
190
+ )
191
+ end
192
+
193
+ # Serialize an instance of HealthCareCodeInformationCreate to a JSON object
194
+ #
195
+ # @return [String]
196
+ def to_json(*_args)
197
+ @_field_set&.to_json
198
+ end
199
+
200
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
201
+ # hash and check each fields type against the current object's property
202
+ # definitions.
203
+ #
204
+ # @param obj [Object]
205
+ # @return [Void]
206
+ def self.validate_raw(obj:)
207
+ obj.principal_diagnosis.nil? || CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalDiagnosisNew.validate_raw(obj: obj.principal_diagnosis)
208
+ obj.admitting_diagnosis.nil? || CandidApiClient::HealthCareCodeInformation::V1::Types::AdmittingDiagnosisNew.validate_raw(obj: obj.admitting_diagnosis)
209
+ obj.patient_reasons_for_visit&.is_a?(Array) != false || raise("Passed value for field obj.patient_reasons_for_visit is not the expected type, validation failed.")
210
+ obj.external_causes_of_injury&.is_a?(Array) != false || raise("Passed value for field obj.external_causes_of_injury is not the expected type, validation failed.")
211
+ obj.diagnosis_related_groups.nil? || CandidApiClient::HealthCareCodeInformation::V1::Types::DiagnosisRelatedGroupNew.validate_raw(obj: obj.diagnosis_related_groups)
212
+ obj.other_diagnosis_information&.is_a?(Array) != false || raise("Passed value for field obj.other_diagnosis_information is not the expected type, validation failed.")
213
+ obj.principal_procedure.nil? || CandidApiClient::HealthCareCodeInformation::V1::Types::PrincipalProcedureInformationNew.validate_raw(obj: obj.principal_procedure)
214
+ obj.other_procedure_information&.is_a?(Array) != false || raise("Passed value for field obj.other_procedure_information is not the expected type, validation failed.")
215
+ obj.occurrence_span_information&.is_a?(Array) != false || raise("Passed value for field obj.occurrence_span_information is not the expected type, validation failed.")
216
+ obj.occurrence_information&.is_a?(Array) != false || raise("Passed value for field obj.occurrence_information is not the expected type, validation failed.")
217
+ obj.treatment_code_information&.is_a?(Array) != false || raise("Passed value for field obj.treatment_code_information is not the expected type, validation failed.")
218
+ obj.value_information&.is_a?(Array) != false || raise("Passed value for field obj.value_information is not the expected type, validation failed.")
219
+ obj.condition_information&.is_a?(Array) != false || raise("Passed value for field obj.condition_information is not the expected type, validation failed.")
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
225
+ end
@@ -0,0 +1,219 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "occurrence_information_code_qualifier"
4
+ require_relative "occurrence_code"
5
+ require "date"
6
+ require_relative "code_list_qualifier_code"
7
+ require_relative "date_time_period_format_qualifier"
8
+ require "ostruct"
9
+ require "json"
10
+
11
+ module CandidApiClient
12
+ module HealthCareCodeInformation
13
+ module V1
14
+ module Types
15
+ # This corresponds to the BH code qualifier value.
16
+ class OccurrenceInformationNew
17
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationCodeQualifier]
18
+ attr_reader :occurrence_code_qualifier
19
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceCode]
20
+ attr_reader :occurrence_code
21
+ # @return [DateTime]
22
+ attr_reader :occurrence_date
23
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::CodeListQualifierCode]
24
+ attr_reader :code_list_qualifier
25
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
26
+ # You do not need to set this field generally, instead it is provided as advisory
27
+ # context on how this HealthCareCodeInformation's data will be available in
28
+ # reporting.
29
+ attr_reader :industry_code_1
30
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
31
+ # You do not need to set this field generally, instead it is provided as advisory
32
+ # context on how this HealthCareCodeInformation's data will be available in
33
+ # reporting.
34
+ attr_reader :industry_code_2
35
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
36
+ # You do not need to set this field generally, instead it is provided as advisory
37
+ # context on how this HealthCareCodeInformation's data will be available in
38
+ # reporting.
39
+ attr_reader :industry_code_3
40
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
41
+ # You do not need to set this field generally, instead it is provided as advisory
42
+ # context on how this HealthCareCodeInformation's data will be available in
43
+ # reporting.
44
+ attr_reader :industry_code_4
45
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::DateTimePeriodFormatQualifier] Controls how the date_time_period field is interpreted and is submitted
46
+ # as part of claim process.
47
+ # You do not need to set this field generally, instead it is provided as advisory
48
+ # context on how this HealthCareCodeInformation's data will be available in
49
+ # reporting.
50
+ attr_reader :date_time_period_format_qualifier
51
+ # @return [String] A string, formatted according to date_time_period_format_qualifier, which
52
+ # ultimately represents the date time period in which an information object
53
+ # is covering.
54
+ # You do not need to set this field generally, instead it is provided as advisory
55
+ # context on how this HealthCareCodeInformation's data will be available in
56
+ # reporting.
57
+ attr_reader :date_time_period
58
+ # @return [String] A decimal used to represent ValueInformation results.
59
+ # You do not need to set this field generally, instead it is provided as advisory
60
+ # context on how this HealthCareCodeInformation's data will be available in
61
+ # reporting.
62
+ attr_reader :monetary_amount
63
+ # @return [String] You do not need to set this field generally, instead it is provided as advisory
64
+ # context on how this HealthCareCodeInformation's data will be available in
65
+ # reporting.
66
+ attr_reader :quantity
67
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
68
+ attr_reader :additional_properties
69
+ # @return [Object]
70
+ attr_reader :_field_set
71
+ protected :_field_set
72
+
73
+ OMIT = Object.new
74
+
75
+ # @param occurrence_code_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationCodeQualifier]
76
+ # @param occurrence_code [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceCode]
77
+ # @param occurrence_date [DateTime]
78
+ # @param code_list_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::CodeListQualifierCode]
79
+ # @param industry_code_1 [String] A code string whose interpretation depends on the code_list_qualifier being set.
80
+ # You do not need to set this field generally, instead it is provided as advisory
81
+ # context on how this HealthCareCodeInformation's data will be available in
82
+ # reporting.
83
+ # @param industry_code_2 [String] A code string whose interpretation depends on the code_list_qualifier being set.
84
+ # You do not need to set this field generally, instead it is provided as advisory
85
+ # context on how this HealthCareCodeInformation's data will be available in
86
+ # reporting.
87
+ # @param industry_code_3 [String] A code string whose interpretation depends on the code_list_qualifier being set.
88
+ # You do not need to set this field generally, instead it is provided as advisory
89
+ # context on how this HealthCareCodeInformation's data will be available in
90
+ # reporting.
91
+ # @param industry_code_4 [String] A code string whose interpretation depends on the code_list_qualifier being set.
92
+ # You do not need to set this field generally, instead it is provided as advisory
93
+ # context on how this HealthCareCodeInformation's data will be available in
94
+ # reporting.
95
+ # @param date_time_period_format_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::DateTimePeriodFormatQualifier] Controls how the date_time_period field is interpreted and is submitted
96
+ # as part of claim process.
97
+ # You do not need to set this field generally, instead it is provided as advisory
98
+ # context on how this HealthCareCodeInformation's data will be available in
99
+ # reporting.
100
+ # @param date_time_period [String] A string, formatted according to date_time_period_format_qualifier, which
101
+ # ultimately represents the date time period in which an information object
102
+ # is covering.
103
+ # You do not need to set this field generally, instead it is provided as advisory
104
+ # context on how this HealthCareCodeInformation's data will be available in
105
+ # reporting.
106
+ # @param monetary_amount [String] A decimal used to represent ValueInformation results.
107
+ # You do not need to set this field generally, instead it is provided as advisory
108
+ # context on how this HealthCareCodeInformation's data will be available in
109
+ # reporting.
110
+ # @param quantity [String] You do not need to set this field generally, instead it is provided as advisory
111
+ # context on how this HealthCareCodeInformation's data will be available in
112
+ # reporting.
113
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
114
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationNew]
115
+ def initialize(occurrence_code_qualifier:, occurrence_code:, occurrence_date:, code_list_qualifier: OMIT,
116
+ industry_code_1: OMIT, industry_code_2: OMIT, industry_code_3: OMIT, industry_code_4: OMIT, date_time_period_format_qualifier: OMIT, date_time_period: OMIT, monetary_amount: OMIT, quantity: OMIT, additional_properties: nil)
117
+ @occurrence_code_qualifier = occurrence_code_qualifier
118
+ @occurrence_code = occurrence_code
119
+ @occurrence_date = occurrence_date
120
+ @code_list_qualifier = code_list_qualifier if code_list_qualifier != OMIT
121
+ @industry_code_1 = industry_code_1 if industry_code_1 != OMIT
122
+ @industry_code_2 = industry_code_2 if industry_code_2 != OMIT
123
+ @industry_code_3 = industry_code_3 if industry_code_3 != OMIT
124
+ @industry_code_4 = industry_code_4 if industry_code_4 != OMIT
125
+ if date_time_period_format_qualifier != OMIT
126
+ @date_time_period_format_qualifier = date_time_period_format_qualifier
127
+ end
128
+ @date_time_period = date_time_period if date_time_period != OMIT
129
+ @monetary_amount = monetary_amount if monetary_amount != OMIT
130
+ @quantity = quantity if quantity != OMIT
131
+ @additional_properties = additional_properties
132
+ @_field_set = {
133
+ "occurrence_code_qualifier": occurrence_code_qualifier,
134
+ "occurrence_code": occurrence_code,
135
+ "occurrence_date": occurrence_date,
136
+ "code_list_qualifier": code_list_qualifier,
137
+ "industry_code_1": industry_code_1,
138
+ "industry_code_2": industry_code_2,
139
+ "industry_code_3": industry_code_3,
140
+ "industry_code_4": industry_code_4,
141
+ "date_time_period_format_qualifier": date_time_period_format_qualifier,
142
+ "date_time_period": date_time_period,
143
+ "monetary_amount": monetary_amount,
144
+ "quantity": quantity
145
+ }.reject do |_k, v|
146
+ v == OMIT
147
+ end
148
+ end
149
+
150
+ # Deserialize a JSON object to an instance of OccurrenceInformationNew
151
+ #
152
+ # @param json_object [String]
153
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationNew]
154
+ def self.from_json(json_object:)
155
+ struct = JSON.parse(json_object, object_class: OpenStruct)
156
+ parsed_json = JSON.parse(json_object)
157
+ occurrence_code_qualifier = struct["occurrence_code_qualifier"]
158
+ occurrence_code = struct["occurrence_code"]
159
+ occurrence_date = unless parsed_json["occurrence_date"].nil?
160
+ DateTime.parse(parsed_json["occurrence_date"])
161
+ end
162
+ code_list_qualifier = struct["code_list_qualifier"]
163
+ industry_code_1 = struct["industry_code_1"]
164
+ industry_code_2 = struct["industry_code_2"]
165
+ industry_code_3 = struct["industry_code_3"]
166
+ industry_code_4 = struct["industry_code_4"]
167
+ date_time_period_format_qualifier = struct["date_time_period_format_qualifier"]
168
+ date_time_period = struct["date_time_period"]
169
+ monetary_amount = struct["monetary_amount"]
170
+ quantity = struct["quantity"]
171
+ new(
172
+ occurrence_code_qualifier: occurrence_code_qualifier,
173
+ occurrence_code: occurrence_code,
174
+ occurrence_date: occurrence_date,
175
+ code_list_qualifier: code_list_qualifier,
176
+ industry_code_1: industry_code_1,
177
+ industry_code_2: industry_code_2,
178
+ industry_code_3: industry_code_3,
179
+ industry_code_4: industry_code_4,
180
+ date_time_period_format_qualifier: date_time_period_format_qualifier,
181
+ date_time_period: date_time_period,
182
+ monetary_amount: monetary_amount,
183
+ quantity: quantity,
184
+ additional_properties: struct
185
+ )
186
+ end
187
+
188
+ # Serialize an instance of OccurrenceInformationNew to a JSON object
189
+ #
190
+ # @return [String]
191
+ def to_json(*_args)
192
+ @_field_set&.to_json
193
+ end
194
+
195
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
196
+ # hash and check each fields type against the current object's property
197
+ # definitions.
198
+ #
199
+ # @param obj [Object]
200
+ # @return [Void]
201
+ def self.validate_raw(obj:)
202
+ obj.occurrence_code_qualifier.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceInformationCodeQualifier) != false || raise("Passed value for field obj.occurrence_code_qualifier is not the expected type, validation failed.")
203
+ obj.occurrence_code.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceCode) != false || raise("Passed value for field obj.occurrence_code is not the expected type, validation failed.")
204
+ obj.occurrence_date.is_a?(DateTime) != false || raise("Passed value for field obj.occurrence_date is not the expected type, validation failed.")
205
+ obj.code_list_qualifier&.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::CodeListQualifierCode) != false || raise("Passed value for field obj.code_list_qualifier is not the expected type, validation failed.")
206
+ obj.industry_code_1&.is_a?(String) != false || raise("Passed value for field obj.industry_code_1 is not the expected type, validation failed.")
207
+ obj.industry_code_2&.is_a?(String) != false || raise("Passed value for field obj.industry_code_2 is not the expected type, validation failed.")
208
+ obj.industry_code_3&.is_a?(String) != false || raise("Passed value for field obj.industry_code_3 is not the expected type, validation failed.")
209
+ obj.industry_code_4&.is_a?(String) != false || raise("Passed value for field obj.industry_code_4 is not the expected type, validation failed.")
210
+ obj.date_time_period_format_qualifier&.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::DateTimePeriodFormatQualifier) != false || raise("Passed value for field obj.date_time_period_format_qualifier is not the expected type, validation failed.")
211
+ obj.date_time_period&.is_a?(String) != false || raise("Passed value for field obj.date_time_period is not the expected type, validation failed.")
212
+ obj.monetary_amount&.is_a?(String) != false || raise("Passed value for field obj.monetary_amount is not the expected type, validation failed.")
213
+ obj.quantity&.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
214
+ end
215
+ end
216
+ end
217
+ end
218
+ end
219
+ end