candidhealth 1.8.1 → 1.9.1

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/auth/default/client.rb +0 -74
  3. data/lib/candidhealth/diagnoses/client.rb +2 -2
  4. data/lib/candidhealth/encounters/v_4/client.rb +479 -2522
  5. data/lib/candidhealth/encounters/v_4/types/encounter_submission_expectation.rb +3 -6
  6. data/lib/candidhealth/guarantor/v_1/types/guarantor.rb +4 -4
  7. data/lib/candidhealth/health_care_code_information/v_1/client.rb +2 -74
  8. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis.rb +2 -130
  9. data/lib/candidhealth/health_care_code_information/v_1/types/condition_code.rb +100 -1
  10. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information.rb +2 -130
  11. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group.rb +2 -130
  12. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury.rb +2 -130
  13. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information.rb +2 -134
  14. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_get_all_response.rb +34 -34
  15. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_new.rb +4 -139
  16. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_update.rb +138 -38
  17. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_code.rb +1 -0
  18. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information.rb +10 -132
  19. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_code.rb +6 -1
  20. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information.rb +2 -130
  21. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information.rb +2 -130
  22. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information.rb +10 -132
  23. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit.rb +2 -130
  24. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis.rb +2 -130
  25. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information.rb +10 -132
  26. data/lib/candidhealth/health_care_code_information/v_1/types/rd_8_date.rb +16 -4
  27. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information.rb +2 -130
  28. data/lib/candidhealth/health_care_code_information/v_1/types/value_information.rb +2 -130
  29. data/lib/candidhealth/individual/types/patient.rb +4 -4
  30. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +2 -0
  31. data/lib/candidhealth/organization_service_facilities/v_2/client.rb +77 -4
  32. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility.rb +21 -2
  33. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility_create.rb +21 -2
  34. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility_update.rb +21 -2
  35. data/lib/candidhealth/payers/v_4/types/payer.rb +10 -2
  36. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +8 -2
  37. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +13 -1
  38. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +13 -1
  39. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +13 -1
  40. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient_service_facility.rb +63 -0
  41. data/lib/candidhealth/service_lines/v_2/client.rb +2 -2
  42. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +8 -8
  43. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base.rb +8 -8
  44. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb +8 -8
  45. data/lib/requests.rb +2 -2
  46. data/lib/types_export.rb +1 -21
  47. metadata +3 -23
  48. data/lib/candidhealth/encounters_universal/types/universal_encounter_create.rb +0 -944
  49. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter.rb +0 -791
  50. data/lib/candidhealth/encounters_universal/types/universal_encounter_update.rb +0 -872
  51. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_new.rb +0 -206
  52. data/lib/candidhealth/health_care_code_information/v_1/types/code_list_qualifier_code.rb +0 -1068
  53. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_new.rb +0 -207
  54. data/lib/candidhealth/health_care_code_information/v_1/types/date_time_period_format_qualifier.rb +0 -54
  55. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_new.rb +0 -206
  56. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_new.rb +0 -245
  57. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_create.rb +0 -225
  58. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_new.rb +0 -219
  59. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information_new.rb +0 -222
  60. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_new.rb +0 -215
  61. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_new.rb +0 -218
  62. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_new.rb +0 -206
  63. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_new.rb +0 -215
  64. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_new.rb +0 -216
  65. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information_new.rb +0 -206
  66. data/lib/candidhealth/health_care_code_information/v_1/types/value_information_new.rb +0 -215
  67. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create.rb +0 -271
  68. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_update.rb +0 -112
@@ -1,215 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "value_code_qualifier"
4
- require_relative "value_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 the BE code qualifier value.
15
- class ValueInformationNew
16
- # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::ValueCodeQualifier]
17
- attr_reader :value_code_qualifier
18
- # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::ValueCode]
19
- attr_reader :value_code
20
- # @return [String]
21
- attr_reader :value_code_amount
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 value_code_qualifier [CandidApiClient::HealthCareCodeInformation::V1::Types::ValueCodeQualifier]
75
- # @param value_code [CandidApiClient::HealthCareCodeInformation::V1::Types::ValueCode]
76
- # @param value_code_amount [String]
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::ValueInformationNew]
114
- def initialize(value_code_qualifier:, value_code:, value_code_amount:, code_list_qualifier: OMIT,
115
- 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
- @value_code_qualifier = value_code_qualifier
117
- @value_code = value_code
118
- @value_code_amount = value_code_amount
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
- "value_code_qualifier": value_code_qualifier,
133
- "value_code": value_code,
134
- "value_code_amount": value_code_amount,
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 ValueInformationNew
150
- #
151
- # @param json_object [String]
152
- # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::ValueInformationNew]
153
- def self.from_json(json_object:)
154
- struct = JSON.parse(json_object, object_class: OpenStruct)
155
- value_code_qualifier = struct["value_code_qualifier"]
156
- value_code = struct["value_code"]
157
- value_code_amount = struct["value_code_amount"]
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
- value_code_qualifier: value_code_qualifier,
169
- value_code: value_code,
170
- value_code_amount: value_code_amount,
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 ValueInformationNew 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.value_code_qualifier.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::ValueCodeQualifier) != false || raise("Passed value for field obj.value_code_qualifier is not the expected type, validation failed.")
199
- obj.value_code.is_a?(CandidApiClient::HealthCareCodeInformation::V1::Types::ValueCode) != false || raise("Passed value for field obj.value_code is not the expected type, validation failed.")
200
- obj.value_code_amount.is_a?(String) != false || raise("Passed value for field obj.value_code_amount 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
@@ -1,271 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../../commons/types/procedure_modifier"
4
- require_relative "../../../commons/types/service_line_units"
5
- require_relative "drug_identification"
6
- require_relative "../../../commons/types/facility_type_code"
7
- require "date"
8
- require_relative "../../../encounter_providers/v_2/types/ordering_provider"
9
- require_relative "test_result"
10
- require "ostruct"
11
- require "json"
12
-
13
- module CandidApiClient
14
- module ServiceLines
15
- module V2
16
- module Types
17
- class UniversalServiceLineCreate
18
- # @return [Array<Integer>] Indices (zero-indexed) of all the diagnoses this service line references
19
- attr_reader :diagnosis_pointers
20
- # @return [String] A 4 digit code that specifies facility department or type of service arrangement
21
- # for institutional service line items (837i). This code is not required for
22
- # professional claim billing (837p).
23
- attr_reader :revenue_code
24
- # @return [String]
25
- attr_reader :procedure_code
26
- # @return [Array<CandidApiClient::Commons::Types::ProcedureModifier>]
27
- attr_reader :modifiers
28
- # @return [Boolean] Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500.
29
- # If the value is true, the box will be populated with "Y". Otherwise, the box
30
- # will not be populated.
31
- attr_reader :has_epsdt_indicator
32
- # @return [Boolean] Maps to SV1-12 on the 837-P and Box 24I on the CMS-1500.
33
- # If the value is true, the box will be populated with "Y". Otherwise, the box
34
- # will not be populated.
35
- attr_reader :has_family_planning_indicator
36
- # @return [String] String representation of a Decimal that can be parsed by most libraries.
37
- # For professional claims, a ServiceLine quantity cannot contain more than one
38
- # digit of precision
39
- # (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine
40
- # quantity cannot contain
41
- # more than three decimal digits of precision.
42
- attr_reader :quantity
43
- # @return [CandidApiClient::Commons::Types::ServiceLineUnits]
44
- attr_reader :units
45
- # @return [Integer] The total amount charged for this service line, factoring in quantity. If
46
- # procedure_code is updated and this is not, the system will attempt to set it
47
- # based on chargemasters entries and the service line’s quantity. For example, if
48
- # a single unit has an entry of 100 cents and 2 units were rendered, the
49
- # charge_amount_cents will be set to 200, if there is no chargemaster entry, it
50
- # will default to the amount set in this field.
51
- attr_reader :charge_amount_cents
52
- # @return [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
53
- attr_reader :drug_identification
54
- # @return [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. This enum is not used or required for institutional
55
- # claims. If your organization does not intend to submit claims with a different
56
- # place of service at the service line level, this field should not be populated.
57
- # 02 for telemedicine, 11 for in-person. Full list
58
- # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
59
- attr_reader :place_of_service_code
60
- # @return [String] A free-form description to clarify the related data elements and their content.
61
- # Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.
62
- attr_reader :description
63
- # @return [Date]
64
- attr_reader :date_of_service
65
- # @return [Date]
66
- attr_reader :end_date_of_service
67
- # @return [CandidApiClient::EncounterProviders::V2::Types::OrderingProvider] Required when the service or supply was ordered by a provider who is different
68
- # than the rendering provider for this service line.
69
- # If not required by this implementation guide, do not send.
70
- attr_reader :ordering_provider
71
- # @return [Array<CandidApiClient::ServiceLines::V2::Types::TestResult>] Contains a list of test results. Test result types may map to MEA-02 on the
72
- # 837-P (ex: Hemoglobin, Hematocrit).
73
- # This is unused by 837-i and ignored for institutional service lines.
74
- # No more than 5 MEA-02 test results may be submitted per service line.
75
- attr_reader :test_results
76
- # @return [String] Maps to NTE02 loop 2400 on the EDI 837.
77
- attr_reader :note
78
- # @return [OpenStruct] Additional properties unmapped to the current class definition
79
- attr_reader :additional_properties
80
- # @return [Object]
81
- attr_reader :_field_set
82
- protected :_field_set
83
-
84
- OMIT = Object.new
85
-
86
- # @param diagnosis_pointers [Array<Integer>] Indices (zero-indexed) of all the diagnoses this service line references
87
- # @param revenue_code [String] A 4 digit code that specifies facility department or type of service arrangement
88
- # for institutional service line items (837i). This code is not required for
89
- # professional claim billing (837p).
90
- # @param procedure_code [String]
91
- # @param modifiers [Array<CandidApiClient::Commons::Types::ProcedureModifier>]
92
- # @param has_epsdt_indicator [Boolean] Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500.
93
- # If the value is true, the box will be populated with "Y". Otherwise, the box
94
- # will not be populated.
95
- # @param has_family_planning_indicator [Boolean] Maps to SV1-12 on the 837-P and Box 24I on the CMS-1500.
96
- # If the value is true, the box will be populated with "Y". Otherwise, the box
97
- # will not be populated.
98
- # @param quantity [String] String representation of a Decimal that can be parsed by most libraries.
99
- # For professional claims, a ServiceLine quantity cannot contain more than one
100
- # digit of precision
101
- # (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine
102
- # quantity cannot contain
103
- # more than three decimal digits of precision.
104
- # @param units [CandidApiClient::Commons::Types::ServiceLineUnits]
105
- # @param charge_amount_cents [Integer] The total amount charged for this service line, factoring in quantity. If
106
- # procedure_code is updated and this is not, the system will attempt to set it
107
- # based on chargemasters entries and the service line’s quantity. For example, if
108
- # a single unit has an entry of 100 cents and 2 units were rendered, the
109
- # charge_amount_cents will be set to 200, if there is no chargemaster entry, it
110
- # will default to the amount set in this field.
111
- # @param drug_identification [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
112
- # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. This enum is not used or required for institutional
113
- # claims. If your organization does not intend to submit claims with a different
114
- # place of service at the service line level, this field should not be populated.
115
- # 02 for telemedicine, 11 for in-person. Full list
116
- # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
117
- # @param description [String] A free-form description to clarify the related data elements and their content.
118
- # Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.
119
- # @param date_of_service [Date]
120
- # @param end_date_of_service [Date]
121
- # @param ordering_provider [CandidApiClient::EncounterProviders::V2::Types::OrderingProvider] Required when the service or supply was ordered by a provider who is different
122
- # than the rendering provider for this service line.
123
- # If not required by this implementation guide, do not send.
124
- # @param test_results [Array<CandidApiClient::ServiceLines::V2::Types::TestResult>] Contains a list of test results. Test result types may map to MEA-02 on the
125
- # 837-P (ex: Hemoglobin, Hematocrit).
126
- # This is unused by 837-i and ignored for institutional service lines.
127
- # No more than 5 MEA-02 test results may be submitted per service line.
128
- # @param note [String] Maps to NTE02 loop 2400 on the EDI 837.
129
- # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
130
- # @return [CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreate]
131
- def initialize(quantity:, units:, diagnosis_pointers: OMIT, revenue_code: OMIT, procedure_code: OMIT, modifiers: OMIT,
132
- has_epsdt_indicator: OMIT, has_family_planning_indicator: OMIT, charge_amount_cents: OMIT, drug_identification: OMIT, place_of_service_code: OMIT, description: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, ordering_provider: OMIT, test_results: OMIT, note: OMIT, additional_properties: nil)
133
- @diagnosis_pointers = diagnosis_pointers if diagnosis_pointers != OMIT
134
- @revenue_code = revenue_code if revenue_code != OMIT
135
- @procedure_code = procedure_code if procedure_code != OMIT
136
- @modifiers = modifiers if modifiers != OMIT
137
- @has_epsdt_indicator = has_epsdt_indicator if has_epsdt_indicator != OMIT
138
- @has_family_planning_indicator = has_family_planning_indicator if has_family_planning_indicator != OMIT
139
- @quantity = quantity
140
- @units = units
141
- @charge_amount_cents = charge_amount_cents if charge_amount_cents != OMIT
142
- @drug_identification = drug_identification if drug_identification != OMIT
143
- @place_of_service_code = place_of_service_code if place_of_service_code != OMIT
144
- @description = description if description != OMIT
145
- @date_of_service = date_of_service if date_of_service != OMIT
146
- @end_date_of_service = end_date_of_service if end_date_of_service != OMIT
147
- @ordering_provider = ordering_provider if ordering_provider != OMIT
148
- @test_results = test_results if test_results != OMIT
149
- @note = note if note != OMIT
150
- @additional_properties = additional_properties
151
- @_field_set = {
152
- "diagnosis_pointers": diagnosis_pointers,
153
- "revenue_code": revenue_code,
154
- "procedure_code": procedure_code,
155
- "modifiers": modifiers,
156
- "has_epsdt_indicator": has_epsdt_indicator,
157
- "has_family_planning_indicator": has_family_planning_indicator,
158
- "quantity": quantity,
159
- "units": units,
160
- "charge_amount_cents": charge_amount_cents,
161
- "drug_identification": drug_identification,
162
- "place_of_service_code": place_of_service_code,
163
- "description": description,
164
- "date_of_service": date_of_service,
165
- "end_date_of_service": end_date_of_service,
166
- "ordering_provider": ordering_provider,
167
- "test_results": test_results,
168
- "note": note
169
- }.reject do |_k, v|
170
- v == OMIT
171
- end
172
- end
173
-
174
- # Deserialize a JSON object to an instance of UniversalServiceLineCreate
175
- #
176
- # @param json_object [String]
177
- # @return [CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreate]
178
- def self.from_json(json_object:)
179
- struct = JSON.parse(json_object, object_class: OpenStruct)
180
- parsed_json = JSON.parse(json_object)
181
- diagnosis_pointers = struct["diagnosis_pointers"]
182
- revenue_code = struct["revenue_code"]
183
- procedure_code = struct["procedure_code"]
184
- modifiers = struct["modifiers"]
185
- has_epsdt_indicator = struct["has_epsdt_indicator"]
186
- has_family_planning_indicator = struct["has_family_planning_indicator"]
187
- quantity = struct["quantity"]
188
- units = struct["units"]
189
- charge_amount_cents = struct["charge_amount_cents"]
190
- if parsed_json["drug_identification"].nil?
191
- drug_identification = nil
192
- else
193
- drug_identification = parsed_json["drug_identification"].to_json
194
- drug_identification = CandidApiClient::ServiceLines::V2::Types::DrugIdentification.from_json(json_object: drug_identification)
195
- end
196
- place_of_service_code = struct["place_of_service_code"]
197
- description = struct["description"]
198
- date_of_service = (Date.parse(parsed_json["date_of_service"]) unless parsed_json["date_of_service"].nil?)
199
- end_date_of_service = unless parsed_json["end_date_of_service"].nil?
200
- Date.parse(parsed_json["end_date_of_service"])
201
- end
202
- if parsed_json["ordering_provider"].nil?
203
- ordering_provider = nil
204
- else
205
- ordering_provider = parsed_json["ordering_provider"].to_json
206
- ordering_provider = CandidApiClient::EncounterProviders::V2::Types::OrderingProvider.from_json(json_object: ordering_provider)
207
- end
208
- test_results = parsed_json["test_results"]&.map do |item|
209
- item = item.to_json
210
- CandidApiClient::ServiceLines::V2::Types::TestResult.from_json(json_object: item)
211
- end
212
- note = struct["note"]
213
- new(
214
- diagnosis_pointers: diagnosis_pointers,
215
- revenue_code: revenue_code,
216
- procedure_code: procedure_code,
217
- modifiers: modifiers,
218
- has_epsdt_indicator: has_epsdt_indicator,
219
- has_family_planning_indicator: has_family_planning_indicator,
220
- quantity: quantity,
221
- units: units,
222
- charge_amount_cents: charge_amount_cents,
223
- drug_identification: drug_identification,
224
- place_of_service_code: place_of_service_code,
225
- description: description,
226
- date_of_service: date_of_service,
227
- end_date_of_service: end_date_of_service,
228
- ordering_provider: ordering_provider,
229
- test_results: test_results,
230
- note: note,
231
- additional_properties: struct
232
- )
233
- end
234
-
235
- # Serialize an instance of UniversalServiceLineCreate to a JSON object
236
- #
237
- # @return [String]
238
- def to_json(*_args)
239
- @_field_set&.to_json
240
- end
241
-
242
- # Leveraged for Union-type generation, validate_raw attempts to parse the given
243
- # hash and check each fields type against the current object's property
244
- # definitions.
245
- #
246
- # @param obj [Object]
247
- # @return [Void]
248
- def self.validate_raw(obj:)
249
- obj.diagnosis_pointers&.is_a?(Array) != false || raise("Passed value for field obj.diagnosis_pointers is not the expected type, validation failed.")
250
- obj.revenue_code&.is_a?(String) != false || raise("Passed value for field obj.revenue_code is not the expected type, validation failed.")
251
- obj.procedure_code&.is_a?(String) != false || raise("Passed value for field obj.procedure_code is not the expected type, validation failed.")
252
- obj.modifiers&.is_a?(Array) != false || raise("Passed value for field obj.modifiers is not the expected type, validation failed.")
253
- obj.has_epsdt_indicator&.is_a?(Boolean) != false || raise("Passed value for field obj.has_epsdt_indicator is not the expected type, validation failed.")
254
- obj.has_family_planning_indicator&.is_a?(Boolean) != false || raise("Passed value for field obj.has_family_planning_indicator is not the expected type, validation failed.")
255
- obj.quantity.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
256
- obj.units.is_a?(CandidApiClient::Commons::Types::ServiceLineUnits) != false || raise("Passed value for field obj.units is not the expected type, validation failed.")
257
- obj.charge_amount_cents&.is_a?(Integer) != false || raise("Passed value for field obj.charge_amount_cents is not the expected type, validation failed.")
258
- obj.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
259
- obj.place_of_service_code&.is_a?(CandidApiClient::Commons::Types::FacilityTypeCode) != false || raise("Passed value for field obj.place_of_service_code is not the expected type, validation failed.")
260
- obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
261
- obj.date_of_service&.is_a?(Date) != false || raise("Passed value for field obj.date_of_service is not the expected type, validation failed.")
262
- obj.end_date_of_service&.is_a?(Date) != false || raise("Passed value for field obj.end_date_of_service is not the expected type, validation failed.")
263
- obj.ordering_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::OrderingProvider.validate_raw(obj: obj.ordering_provider)
264
- obj.test_results&.is_a?(Array) != false || raise("Passed value for field obj.test_results is not the expected type, validation failed.")
265
- obj.note&.is_a?(String) != false || raise("Passed value for field obj.note is not the expected type, validation failed.")
266
- end
267
- end
268
- end
269
- end
270
- end
271
- end
@@ -1,112 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "json"
4
- require_relative "type_of_bill_composite_base"
5
-
6
- module CandidApiClient
7
- module X12
8
- module V1
9
- module Types
10
- # A type of bill can either be seen as a compositio of structured parts, or as a
11
- # literal string.
12
- # This union represents the potential to express a type of bill either as one of
13
- # those two shapes.
14
- # Passing a string, this update will be seen as a complete 4 digit code, along
15
- # with a padding code 0, that
16
- # should match a valid composition.
17
- # Passing as a structure, the update will be seen as three parts and will be
18
- # joined together by the server
19
- # to represent a valid composition for you.
20
- # Which you use depends upon whether you are "passing through" coded information
21
- # or making a decision about its
22
- # structure explicitly.
23
- class TypeOfBillCompositeUpdate
24
- # @return [Object]
25
- attr_reader :member
26
- # @return [String]
27
- attr_reader :discriminant
28
-
29
- private_class_method :new
30
- alias kind_of? is_a?
31
-
32
- # @param member [Object]
33
- # @param discriminant [String]
34
- # @return [CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate]
35
- def initialize(member:, discriminant:)
36
- @member = member
37
- @discriminant = discriminant
38
- end
39
-
40
- # Deserialize a JSON object to an instance of TypeOfBillCompositeUpdate
41
- #
42
- # @param json_object [String]
43
- # @return [CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate]
44
- def self.from_json(json_object:)
45
- struct = JSON.parse(json_object, object_class: OpenStruct)
46
- member = case struct.type
47
- when "raw_code"
48
- json_object.value
49
- when "composite_codes"
50
- CandidApiClient::X12::V1::Types::TypeOfBillCompositeBase.from_json(json_object: json_object)
51
- else
52
- json_object
53
- end
54
- new(member: member, discriminant: struct.type)
55
- end
56
-
57
- # For Union Types, to_json functionality is delegated to the wrapped member.
58
- #
59
- # @return [String]
60
- def to_json(*_args)
61
- case @discriminant
62
- when "raw_code"
63
- { "type": @discriminant, "value": @member }.to_json
64
- when "composite_codes"
65
- { **@member.to_json, type: @discriminant }.to_json
66
- else
67
- { "type": @discriminant, value: @member }.to_json
68
- end
69
- @member.to_json
70
- end
71
-
72
- # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
- # hash and check each fields type against the current object's property
74
- # definitions.
75
- #
76
- # @param obj [Object]
77
- # @return [Void]
78
- def self.validate_raw(obj:)
79
- case obj.type
80
- when "raw_code"
81
- obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
82
- when "composite_codes"
83
- CandidApiClient::X12::V1::Types::TypeOfBillCompositeBase.validate_raw(obj: obj)
84
- else
85
- raise("Passed value matched no type within the union, validation failed.")
86
- end
87
- end
88
-
89
- # For Union Types, is_a? functionality is delegated to the wrapped member.
90
- #
91
- # @param obj [Object]
92
- # @return [Boolean]
93
- def is_a?(obj)
94
- @member.is_a?(obj)
95
- end
96
-
97
- # @param member [String]
98
- # @return [CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate]
99
- def self.raw_code(member:)
100
- new(member: member, discriminant: "raw_code")
101
- end
102
-
103
- # @param member [CandidApiClient::X12::V1::Types::TypeOfBillCompositeBase]
104
- # @return [CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate]
105
- def self.composite_codes(member:)
106
- new(member: member, discriminant: "composite_codes")
107
- end
108
- end
109
- end
110
- end
111
- end
112
- end