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,222 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "occurrence_span_code_qualifier"
4
+ require_relative "occurrence_span_code"
5
+ require_relative "rd_8_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 BI code qualifier value.
16
+ class OccurrenceSpanInformationNew
17
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanCodeQualifier]
18
+ attr_reader :occurrence_span_code_qualifier
19
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanCode]
20
+ attr_reader :occurrence_span_code
21
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::Rd8Date]
22
+ attr_reader :occurrence_span_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_span_code_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanCodeQualifier]
76
+ # @param occurrence_span_code [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanCode]
77
+ # @param occurrence_span_date [CandidApiClient::HealthCareCodeInformation::V1::Types::Rd8Date]
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::OccurrenceSpanInformationNew]
115
+ def initialize(occurrence_span_code_qualifier:, occurrence_span_code:, occurrence_span_date:,
116
+ code_list_qualifier: OMIT, 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_span_code_qualifier = occurrence_span_code_qualifier
118
+ @occurrence_span_code = occurrence_span_code
119
+ @occurrence_span_date = occurrence_span_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_span_code_qualifier": occurrence_span_code_qualifier,
134
+ "occurrence_span_code": occurrence_span_code,
135
+ "occurrence_span_date": occurrence_span_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 OccurrenceSpanInformationNew
151
+ #
152
+ # @param json_object [String]
153
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanInformationNew]
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_span_code_qualifier = struct["occurrence_span_code_qualifier"]
158
+ occurrence_span_code = struct["occurrence_span_code"]
159
+ if parsed_json["occurrence_span_date"].nil?
160
+ occurrence_span_date = nil
161
+ else
162
+ occurrence_span_date = parsed_json["occurrence_span_date"].to_json
163
+ occurrence_span_date = CandidApiClient::HealthCareCodeInformation::V1::Types::Rd8Date.from_json(json_object: occurrence_span_date)
164
+ end
165
+ code_list_qualifier = struct["code_list_qualifier"]
166
+ industry_code_1 = struct["industry_code_1"]
167
+ industry_code_2 = struct["industry_code_2"]
168
+ industry_code_3 = struct["industry_code_3"]
169
+ industry_code_4 = struct["industry_code_4"]
170
+ date_time_period_format_qualifier = struct["date_time_period_format_qualifier"]
171
+ date_time_period = struct["date_time_period"]
172
+ monetary_amount = struct["monetary_amount"]
173
+ quantity = struct["quantity"]
174
+ new(
175
+ occurrence_span_code_qualifier: occurrence_span_code_qualifier,
176
+ occurrence_span_code: occurrence_span_code,
177
+ occurrence_span_date: occurrence_span_date,
178
+ code_list_qualifier: code_list_qualifier,
179
+ industry_code_1: industry_code_1,
180
+ industry_code_2: industry_code_2,
181
+ industry_code_3: industry_code_3,
182
+ industry_code_4: industry_code_4,
183
+ date_time_period_format_qualifier: date_time_period_format_qualifier,
184
+ date_time_period: date_time_period,
185
+ monetary_amount: monetary_amount,
186
+ quantity: quantity,
187
+ additional_properties: struct
188
+ )
189
+ end
190
+
191
+ # Serialize an instance of OccurrenceSpanInformationNew to a JSON object
192
+ #
193
+ # @return [String]
194
+ def to_json(*_args)
195
+ @_field_set&.to_json
196
+ end
197
+
198
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
199
+ # hash and check each fields type against the current object's property
200
+ # definitions.
201
+ #
202
+ # @param obj [Object]
203
+ # @return [Void]
204
+ def self.validate_raw(obj:)
205
+ obj.occurrence_span_code_qualifier.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanCodeQualifier) != false || raise("Passed value for field obj.occurrence_span_code_qualifier is not the expected type, validation failed.")
206
+ obj.occurrence_span_code.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::OccurrenceSpanCode) != false || raise("Passed value for field obj.occurrence_span_code is not the expected type, validation failed.")
207
+ CandidApiClient::HealthCareCodeInformation::V1::Types::Rd8Date.validate_raw(obj: obj.occurrence_span_date)
208
+ 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.")
209
+ obj.industry_code_1&.is_a?(String) != false || raise("Passed value for field obj.industry_code_1 is not the expected type, validation failed.")
210
+ obj.industry_code_2&.is_a?(String) != false || raise("Passed value for field obj.industry_code_2 is not the expected type, validation failed.")
211
+ obj.industry_code_3&.is_a?(String) != false || raise("Passed value for field obj.industry_code_3 is not the expected type, validation failed.")
212
+ obj.industry_code_4&.is_a?(String) != false || raise("Passed value for field obj.industry_code_4 is not the expected type, validation failed.")
213
+ 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.")
214
+ obj.date_time_period&.is_a?(String) != false || raise("Passed value for field obj.date_time_period is not the expected type, validation failed.")
215
+ obj.monetary_amount&.is_a?(String) != false || raise("Passed value for field obj.monetary_amount is not the expected type, validation failed.")
216
+ obj.quantity&.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
217
+ end
218
+ end
219
+ end
220
+ end
221
+ end
222
+ end
@@ -0,0 +1,215 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "other_diagnosis_information_code_qualifier"
4
+ require_relative "present_on_admission_indicator_code"
5
+ require_relative "code_list_qualifier_code"
6
+ require_relative "date_time_period_format_qualifier"
7
+ require "ostruct"
8
+ require "json"
9
+
10
+ module CandidApiClient
11
+ module HealthCareCodeInformation
12
+ module V1
13
+ module Types
14
+ # This corresponds to BF and ABF code qualifier values.
15
+ class OtherDiagnosisInformationNew
16
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationCodeQualifier]
17
+ attr_reader :other_diagnosis_code_qualifier
18
+ # @return [String]
19
+ attr_reader :other_diagnosis
20
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::PresentOnAdmissionIndicatorCode]
21
+ attr_reader :present_on_admission_indicator
22
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::CodeListQualifierCode]
23
+ attr_reader :code_list_qualifier
24
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
25
+ # You do not need to set this field generally, instead it is provided as advisory
26
+ # context on how this HealthCareCodeInformation's data will be available in
27
+ # reporting.
28
+ attr_reader :industry_code_1
29
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
30
+ # You do not need to set this field generally, instead it is provided as advisory
31
+ # context on how this HealthCareCodeInformation's data will be available in
32
+ # reporting.
33
+ attr_reader :industry_code_2
34
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
35
+ # You do not need to set this field generally, instead it is provided as advisory
36
+ # context on how this HealthCareCodeInformation's data will be available in
37
+ # reporting.
38
+ attr_reader :industry_code_3
39
+ # @return [String] A code string whose interpretation depends on the code_list_qualifier being set.
40
+ # You do not need to set this field generally, instead it is provided as advisory
41
+ # context on how this HealthCareCodeInformation's data will be available in
42
+ # reporting.
43
+ attr_reader :industry_code_4
44
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::DateTimePeriodFormatQualifier] Controls how the date_time_period field is interpreted and is submitted
45
+ # as part of claim process.
46
+ # You do not need to set this field generally, instead it is provided as advisory
47
+ # context on how this HealthCareCodeInformation's data will be available in
48
+ # reporting.
49
+ attr_reader :date_time_period_format_qualifier
50
+ # @return [String] A string, formatted according to date_time_period_format_qualifier, which
51
+ # ultimately represents the date time period in which an information object
52
+ # is covering.
53
+ # You do not need to set this field generally, instead it is provided as advisory
54
+ # context on how this HealthCareCodeInformation's data will be available in
55
+ # reporting.
56
+ attr_reader :date_time_period
57
+ # @return [String] A decimal used to represent ValueInformation results.
58
+ # You do not need to set this field generally, instead it is provided as advisory
59
+ # context on how this HealthCareCodeInformation's data will be available in
60
+ # reporting.
61
+ attr_reader :monetary_amount
62
+ # @return [String] You do not need to set this field generally, instead it is provided as advisory
63
+ # context on how this HealthCareCodeInformation's data will be available in
64
+ # reporting.
65
+ attr_reader :quantity
66
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
67
+ attr_reader :additional_properties
68
+ # @return [Object]
69
+ attr_reader :_field_set
70
+ protected :_field_set
71
+
72
+ OMIT = Object.new
73
+
74
+ # @param other_diagnosis_code_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationCodeQualifier]
75
+ # @param other_diagnosis [String]
76
+ # @param present_on_admission_indicator [CandidApiClient::HealthCareCodeInformation::V1::Types::PresentOnAdmissionIndicatorCode]
77
+ # @param code_list_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::CodeListQualifierCode]
78
+ # @param industry_code_1 [String] A code string whose interpretation depends on the code_list_qualifier being set.
79
+ # You do not need to set this field generally, instead it is provided as advisory
80
+ # context on how this HealthCareCodeInformation's data will be available in
81
+ # reporting.
82
+ # @param industry_code_2 [String] A code string whose interpretation depends on the code_list_qualifier being set.
83
+ # You do not need to set this field generally, instead it is provided as advisory
84
+ # context on how this HealthCareCodeInformation's data will be available in
85
+ # reporting.
86
+ # @param industry_code_3 [String] A code string whose interpretation depends on the code_list_qualifier being set.
87
+ # You do not need to set this field generally, instead it is provided as advisory
88
+ # context on how this HealthCareCodeInformation's data will be available in
89
+ # reporting.
90
+ # @param industry_code_4 [String] A code string whose interpretation depends on the code_list_qualifier being set.
91
+ # You do not need to set this field generally, instead it is provided as advisory
92
+ # context on how this HealthCareCodeInformation's data will be available in
93
+ # reporting.
94
+ # @param date_time_period_format_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::DateTimePeriodFormatQualifier] Controls how the date_time_period field is interpreted and is submitted
95
+ # as part of claim process.
96
+ # You do not need to set this field generally, instead it is provided as advisory
97
+ # context on how this HealthCareCodeInformation's data will be available in
98
+ # reporting.
99
+ # @param date_time_period [String] A string, formatted according to date_time_period_format_qualifier, which
100
+ # ultimately represents the date time period in which an information object
101
+ # is covering.
102
+ # You do not need to set this field generally, instead it is provided as advisory
103
+ # context on how this HealthCareCodeInformation's data will be available in
104
+ # reporting.
105
+ # @param monetary_amount [String] A decimal used to represent ValueInformation results.
106
+ # You do not need to set this field generally, instead it is provided as advisory
107
+ # context on how this HealthCareCodeInformation's data will be available in
108
+ # reporting.
109
+ # @param quantity [String] You do not need to set this field generally, instead it is provided as advisory
110
+ # context on how this HealthCareCodeInformation's data will be available in
111
+ # reporting.
112
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
113
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationNew]
114
+ def initialize(other_diagnosis_code_qualifier:, other_diagnosis:, present_on_admission_indicator: OMIT,
115
+ code_list_qualifier: OMIT, 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)
116
+ @other_diagnosis_code_qualifier = other_diagnosis_code_qualifier
117
+ @other_diagnosis = other_diagnosis
118
+ @present_on_admission_indicator = present_on_admission_indicator if present_on_admission_indicator != OMIT
119
+ @code_list_qualifier = code_list_qualifier if code_list_qualifier != OMIT
120
+ @industry_code_1 = industry_code_1 if industry_code_1 != OMIT
121
+ @industry_code_2 = industry_code_2 if industry_code_2 != OMIT
122
+ @industry_code_3 = industry_code_3 if industry_code_3 != OMIT
123
+ @industry_code_4 = industry_code_4 if industry_code_4 != OMIT
124
+ if date_time_period_format_qualifier != OMIT
125
+ @date_time_period_format_qualifier = date_time_period_format_qualifier
126
+ end
127
+ @date_time_period = date_time_period if date_time_period != OMIT
128
+ @monetary_amount = monetary_amount if monetary_amount != OMIT
129
+ @quantity = quantity if quantity != OMIT
130
+ @additional_properties = additional_properties
131
+ @_field_set = {
132
+ "other_diagnosis_code_qualifier": other_diagnosis_code_qualifier,
133
+ "other_diagnosis": other_diagnosis,
134
+ "present_on_admission_indicator": present_on_admission_indicator,
135
+ "code_list_qualifier": code_list_qualifier,
136
+ "industry_code_1": industry_code_1,
137
+ "industry_code_2": industry_code_2,
138
+ "industry_code_3": industry_code_3,
139
+ "industry_code_4": industry_code_4,
140
+ "date_time_period_format_qualifier": date_time_period_format_qualifier,
141
+ "date_time_period": date_time_period,
142
+ "monetary_amount": monetary_amount,
143
+ "quantity": quantity
144
+ }.reject do |_k, v|
145
+ v == OMIT
146
+ end
147
+ end
148
+
149
+ # Deserialize a JSON object to an instance of OtherDiagnosisInformationNew
150
+ #
151
+ # @param json_object [String]
152
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationNew]
153
+ def self.from_json(json_object:)
154
+ struct = JSON.parse(json_object, object_class: OpenStruct)
155
+ other_diagnosis_code_qualifier = struct["other_diagnosis_code_qualifier"]
156
+ other_diagnosis = struct["other_diagnosis"]
157
+ present_on_admission_indicator = struct["present_on_admission_indicator"]
158
+ code_list_qualifier = struct["code_list_qualifier"]
159
+ industry_code_1 = struct["industry_code_1"]
160
+ industry_code_2 = struct["industry_code_2"]
161
+ industry_code_3 = struct["industry_code_3"]
162
+ industry_code_4 = struct["industry_code_4"]
163
+ date_time_period_format_qualifier = struct["date_time_period_format_qualifier"]
164
+ date_time_period = struct["date_time_period"]
165
+ monetary_amount = struct["monetary_amount"]
166
+ quantity = struct["quantity"]
167
+ new(
168
+ other_diagnosis_code_qualifier: other_diagnosis_code_qualifier,
169
+ other_diagnosis: other_diagnosis,
170
+ present_on_admission_indicator: present_on_admission_indicator,
171
+ code_list_qualifier: code_list_qualifier,
172
+ industry_code_1: industry_code_1,
173
+ industry_code_2: industry_code_2,
174
+ industry_code_3: industry_code_3,
175
+ industry_code_4: industry_code_4,
176
+ date_time_period_format_qualifier: date_time_period_format_qualifier,
177
+ date_time_period: date_time_period,
178
+ monetary_amount: monetary_amount,
179
+ quantity: quantity,
180
+ additional_properties: struct
181
+ )
182
+ end
183
+
184
+ # Serialize an instance of OtherDiagnosisInformationNew to a JSON object
185
+ #
186
+ # @return [String]
187
+ def to_json(*_args)
188
+ @_field_set&.to_json
189
+ end
190
+
191
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
192
+ # hash and check each fields type against the current object's property
193
+ # definitions.
194
+ #
195
+ # @param obj [Object]
196
+ # @return [Void]
197
+ def self.validate_raw(obj:)
198
+ obj.other_diagnosis_code_qualifier.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::OtherDiagnosisInformationCodeQualifier) != false || raise("Passed value for field obj.other_diagnosis_code_qualifier is not the expected type, validation failed.")
199
+ obj.other_diagnosis.is_a?(String) != false || raise("Passed value for field obj.other_diagnosis is not the expected type, validation failed.")
200
+ obj.present_on_admission_indicator&.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::PresentOnAdmissionIndicatorCode) != false || raise("Passed value for field obj.present_on_admission_indicator is not the expected type, validation failed.")
201
+ 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.")
202
+ obj.industry_code_1&.is_a?(String) != false || raise("Passed value for field obj.industry_code_1 is not the expected type, validation failed.")
203
+ obj.industry_code_2&.is_a?(String) != false || raise("Passed value for field obj.industry_code_2 is not the expected type, validation failed.")
204
+ obj.industry_code_3&.is_a?(String) != false || raise("Passed value for field obj.industry_code_3 is not the expected type, validation failed.")
205
+ obj.industry_code_4&.is_a?(String) != false || raise("Passed value for field obj.industry_code_4 is not the expected type, validation failed.")
206
+ 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.")
207
+ obj.date_time_period&.is_a?(String) != false || raise("Passed value for field obj.date_time_period is not the expected type, validation failed.")
208
+ obj.monetary_amount&.is_a?(String) != false || raise("Passed value for field obj.monetary_amount is not the expected type, validation failed.")
209
+ obj.quantity&.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end