candidhealth 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/auth/default/client.rb +74 -0
  3. data/lib/candidhealth/charge_capture/v_1/client.rb +48 -48
  4. data/lib/candidhealth/charge_capture/v_1/types/charge_capture_data.rb +70 -56
  5. data/lib/candidhealth/commons/types/clearinghouse.rb +18 -0
  6. data/lib/candidhealth/commons/types/procedure_modifier.rb +11 -0
  7. data/lib/candidhealth/credentialing/v_2/client.rb +342 -8
  8. data/lib/candidhealth/credentialing/v_2/types/base_credentialing_span.rb +143 -0
  9. data/lib/candidhealth/credentialing/v_2/types/facility_credentialing_span.rb +165 -0
  10. data/lib/candidhealth/credentialing/v_2/types/facility_credentialing_span_page.rb +88 -0
  11. data/lib/candidhealth/credentialing/v_2/types/provider_credentialing_span.rb +34 -34
  12. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider.rb +1 -1
  13. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update.rb +1 -1
  14. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update_with_optional_address.rb +1 -1
  15. data/lib/candidhealth/encounters/v_4/client.rb +3253 -2040
  16. data/lib/candidhealth/encounters/v_4/types/encounter.rb +111 -86
  17. data/lib/candidhealth/encounters/v_4/types/encounter_base.rb +39 -33
  18. data/lib/candidhealth/encounters/v_4/types/encounter_create.rb +796 -0
  19. data/lib/candidhealth/encounters/v_4/types/encounter_create_from_pre_encounter.rb +131 -117
  20. data/lib/candidhealth/encounters/v_4/types/encounter_deep_optional.rb +70 -56
  21. data/lib/candidhealth/encounters/v_4/types/encounter_optional.rb +29 -39
  22. data/lib/candidhealth/encounters/v_4/types/encounter_rendering_or_attending_provider_required_error.rb +55 -0
  23. data/lib/candidhealth/encounters/v_4/types/encounter_update.rb +736 -0
  24. data/lib/candidhealth/encounters_universal/types/universal_encounter_create.rb +944 -0
  25. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_base.rb +691 -0
  26. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter.rb +791 -0
  27. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter_base.rb +572 -0
  28. data/lib/candidhealth/encounters_universal/types/universal_encounter_update.rb +872 -0
  29. data/lib/candidhealth/encounters_universal/types/universal_encounter_update_base.rb +700 -0
  30. data/lib/candidhealth/fee_schedules/v_3/client.rb +57 -0
  31. data/lib/candidhealth/fee_schedules/v_3/types/validation_error.rb +12 -0
  32. data/lib/candidhealth/financials/types/patient_transaction_source.rb +1 -0
  33. data/lib/candidhealth/health_care_code_information/client.rb +30 -0
  34. data/lib/candidhealth/health_care_code_information/v_1/client.rb +268 -0
  35. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis.rb +236 -0
  36. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_code_qualifier.rb +14 -0
  37. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_new.rb +206 -0
  38. data/lib/candidhealth/health_care_code_information/v_1/types/code_list_qualifier_code.rb +1068 -0
  39. data/lib/candidhealth/health_care_code_information/v_1/types/condition_code.rb +71 -0
  40. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information.rb +237 -0
  41. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_code_qualifier.rb +13 -0
  42. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_new.rb +207 -0
  43. data/lib/candidhealth/health_care_code_information/v_1/types/date_time_period_format_qualifier.rb +54 -0
  44. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group.rb +236 -0
  45. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_code_qualifier.rb +13 -0
  46. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_new.rb +206 -0
  47. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury.rb +245 -0
  48. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_code_qualifier.rb +14 -0
  49. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_new.rb +245 -0
  50. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information.rb +218 -0
  51. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_create.rb +225 -0
  52. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_get_all_response.rb +227 -0
  53. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_new.rb +188 -0
  54. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_update.rb +225 -0
  55. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_code.rb +71 -0
  56. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information.rb +249 -0
  57. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_code_qualifier.rb +13 -0
  58. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_new.rb +219 -0
  59. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_code.rb +25 -0
  60. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_code_qualifier.rb +13 -0
  61. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information.rb +252 -0
  62. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information_new.rb +222 -0
  63. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information.rb +245 -0
  64. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_code_qualifier.rb +14 -0
  65. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_new.rb +215 -0
  66. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information.rb +248 -0
  67. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_code_qualifier.rb +14 -0
  68. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_new.rb +218 -0
  69. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit.rb +236 -0
  70. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_code_qualifier.rb +14 -0
  71. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_new.rb +206 -0
  72. data/lib/candidhealth/health_care_code_information/v_1/types/present_on_admission_indicator_code.rb +17 -0
  73. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis.rb +245 -0
  74. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_code_qualifier.rb +14 -0
  75. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_new.rb +215 -0
  76. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information.rb +246 -0
  77. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_code_qualifier.rb +15 -0
  78. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_new.rb +216 -0
  79. data/lib/candidhealth/health_care_code_information/v_1/types/rd_8_date.rb +72 -0
  80. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_admitting_diagnosis.rb +69 -0
  81. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_diagnosis_related_group.rb +69 -0
  82. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_principal_diagnosis.rb +69 -0
  83. data/lib/candidhealth/health_care_code_information/v_1/types/set_or_clear_principal_procedure_information.rb +71 -0
  84. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information.rb +236 -0
  85. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information_new.rb +206 -0
  86. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_qualifier.rb +13 -0
  87. data/lib/candidhealth/health_care_code_information/v_1/types/value_code.rb +119 -0
  88. data/lib/candidhealth/health_care_code_information/v_1/types/value_code_qualifier.rb +13 -0
  89. data/lib/candidhealth/health_care_code_information/v_1/types/value_information.rb +245 -0
  90. data/lib/candidhealth/health_care_code_information/v_1/types/value_information_new.rb +215 -0
  91. data/lib/candidhealth/individual/types/patient.rb +6 -6
  92. data/lib/candidhealth/individual/types/patient_base.rb +6 -6
  93. data/lib/candidhealth/individual/types/patient_create.rb +6 -6
  94. data/lib/candidhealth/individual/types/patient_update.rb +6 -6
  95. data/lib/candidhealth/individual/types/patient_update_with_optional_address.rb +6 -6
  96. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +2 -0
  97. data/lib/candidhealth/patient_ar/client.rb +30 -0
  98. data/lib/candidhealth/patient_ar/v_1/client.rb +161 -0
  99. data/lib/candidhealth/patient_ar/v_1/types/insurance_adjustment_info.rb +60 -0
  100. data/lib/candidhealth/patient_ar/v_1/types/insurance_payment_info.rb +60 -0
  101. data/lib/candidhealth/patient_ar/v_1/types/invalid_filters_error_type.rb +60 -0
  102. data/lib/candidhealth/patient_ar/v_1/types/inventory_record.rb +101 -0
  103. data/lib/candidhealth/patient_ar/v_1/types/invoice_itemization_response.rb +103 -0
  104. data/lib/candidhealth/patient_ar/v_1/types/list_inventory_paged_response.rb +77 -0
  105. data/lib/candidhealth/patient_ar/v_1/types/non_insurance_adjustment_info.rb +60 -0
  106. data/lib/candidhealth/patient_ar/v_1/types/non_insurance_payment_info.rb +60 -0
  107. data/lib/candidhealth/patient_ar/v_1/types/patient_adjustment_info.rb +60 -0
  108. data/lib/candidhealth/patient_ar/v_1/types/patient_ar_status.rb +14 -0
  109. data/lib/candidhealth/patient_ar/v_1/types/patient_payment_allocation.rb +76 -0
  110. data/lib/candidhealth/patient_ar/v_1/types/patient_payment_info.rb +75 -0
  111. data/lib/candidhealth/patient_ar/v_1/types/service_line_itemization.rb +210 -0
  112. data/lib/candidhealth/payers/client.rb +7 -0
  113. data/lib/candidhealth/payers/v_4/client.rb +137 -0
  114. data/lib/candidhealth/payers/v_4/types/clearinghouse_payer_info.rb +93 -0
  115. data/lib/candidhealth/payers/v_4/types/payer.rb +116 -0
  116. data/lib/candidhealth/payers/v_4/types/payer_ids.rb +107 -0
  117. data/lib/candidhealth/payers/v_4/types/payer_page.rb +88 -0
  118. data/lib/candidhealth/payers/v_4/types/support_state.rb +15 -0
  119. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +4 -4
  120. data/lib/candidhealth/pre_encounter/coverages/v_1/types/subscriber.rb +3 -3
  121. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +204 -6
  122. data/lib/candidhealth/pre_encounter/patients/v_1/types/guarantor.rb +3 -3
  123. data/lib/candidhealth/pre_encounter/patients/v_1/types/inferred_patient_metadata.rb +80 -0
  124. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +33 -5
  125. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +33 -5
  126. data/lib/candidhealth/pre_encounter/patients/v_1/types/origination_detail.rb +104 -0
  127. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +32 -4
  128. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_source.rb +18 -0
  129. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_type.rb +17 -0
  130. data/lib/candidhealth/pre_encounter/patients/v_1/types/specialization_category.rb +42 -0
  131. data/lib/candidhealth/service_lines/v_2/client.rb +252 -10
  132. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +28 -10
  133. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +52 -40
  134. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base.rb +251 -0
  135. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb +243 -0
  136. data/lib/candidhealth/service_lines/v_2/types/service_line_create_optional.rb +48 -24
  137. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb +58 -46
  138. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base.rb +273 -0
  139. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base_base.rb +265 -0
  140. data/lib/candidhealth/service_lines/v_2/types/service_line_update.rb +64 -54
  141. data/lib/candidhealth/service_lines/v_2/types/service_line_update_base.rb +263 -0
  142. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create.rb +271 -0
  143. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create_standalone.rb +317 -0
  144. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_update.rb +307 -0
  145. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite.rb +2 -2
  146. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_base.rb +90 -0
  147. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_update.rb +112 -0
  148. data/lib/candidhealth.rb +21 -7
  149. data/lib/requests.rb +2 -2
  150. data/lib/types_export.rb +116 -13
  151. metadata +109 -2
@@ -3,6 +3,8 @@
3
3
  require_relative "../../../requests"
4
4
  require_relative "types/service_line_create_standalone"
5
5
  require_relative "types/service_line"
6
+ require_relative "types/universal_service_line_create_standalone"
7
+ require_relative "types/universal_service_line_update"
6
8
  require_relative "types/service_line_update"
7
9
  require "async"
8
10
 
@@ -20,16 +22,16 @@ module CandidApiClient
20
22
  end
21
23
 
22
24
  # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateStandalone, as a Hash
23
- # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
24
- # * :charge_amount_cents (Integer)
25
25
  # * :diagnosis_id_zero (String)
26
26
  # * :diagnosis_id_one (String)
27
27
  # * :diagnosis_id_two (String)
28
28
  # * :diagnosis_id_three (String)
29
+ # * :procedure_code (String)
30
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
31
+ # * :charge_amount_cents (Integer)
29
32
  # * :denial_reason (Hash)
30
33
  # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
31
34
  # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
32
- # * :procedure_code (String)
33
35
  # * :quantity (String)
34
36
  # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
35
37
  # * :claim_id (String)
@@ -66,7 +68,7 @@ module CandidApiClient
66
68
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
67
69
  # @example
68
70
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
69
- # api.service_lines.v_2.create(request: { procedure_code: "procedure_code", quantity: "quantity", units: MJ, claim_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" })
71
+ # api.service_lines.v_2.create(request: { quantity: "quantity", units: MJ, claim_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", procedure_code: "procedure_code" })
70
72
  def create(request:, request_options: nil)
71
73
  response = @request_client.conn.post do |req|
72
74
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -83,15 +85,133 @@ module CandidApiClient
83
85
  CandidApiClient::ServiceLines::V2::Types::ServiceLine.from_json(json_object: response.body)
84
86
  end
85
87
 
88
+ # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreateStandalone, as a Hash
89
+ # * :diagnosis_id_zero (String)
90
+ # * :diagnosis_id_one (String)
91
+ # * :diagnosis_id_two (String)
92
+ # * :diagnosis_id_three (String)
93
+ # * :revenue_code (String)
94
+ # * :procedure_code (String)
95
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
96
+ # * :charge_amount_cents (Integer)
97
+ # * :denial_reason (Hash)
98
+ # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
99
+ # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
100
+ # * :quantity (String)
101
+ # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
102
+ # * :claim_id (String)
103
+ # * :description (String)
104
+ # * :date_of_service (Date)
105
+ # * :end_date_of_service (Date)
106
+ # * :drug_identification (Hash)
107
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
108
+ # * :national_drug_code (String)
109
+ # * :national_drug_unit_count (String)
110
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
111
+ # * :link_sequence_number (String)
112
+ # * :pharmacy_prescription_number (String)
113
+ # * :conversion_formula (String)
114
+ # * :drug_description (String)
115
+ # * :ordering_provider (Hash)
116
+ # * :npi (String)
117
+ # * :taxonomy_code (String)
118
+ # * :address (Hash)
119
+ # * :zip_plus_four_code (String)
120
+ # * :address_1 (String)
121
+ # * :address_2 (String)
122
+ # * :city (String)
123
+ # * :state (CandidApiClient::Commons::Types::State)
124
+ # * :zip_code (String)
125
+ # * :first_name (String)
126
+ # * :last_name (String)
127
+ # * :organization_name (String)
128
+ # * :test_results (Array<CandidApiClient::ServiceLines::V2::Types::TestResult>)
129
+ # * :has_epsdt_indicator (Boolean)
130
+ # * :has_family_planning_indicator (Boolean)
131
+ # * :note (String)
132
+ # @param request_options [CandidApiClient::RequestOptions]
133
+ # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
134
+ # @example
135
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
136
+ # api.service_lines.v_2.create_universal(request: { quantity: "quantity", units: MJ, claim_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" })
137
+ def create_universal(request:, request_options: nil)
138
+ response = @request_client.conn.post do |req|
139
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
140
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
141
+ req.headers = {
142
+ **(req.headers || {}),
143
+ **@request_client.get_headers,
144
+ **(request_options&.additional_headers || {})
145
+ }.compact
146
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
147
+ req.url "#{@request_client.get_url(environment: CandidApi,
148
+ request_options: request_options)}/api/service-lines/v2/universal"
149
+ end
150
+ CandidApiClient::ServiceLines::V2::Types::ServiceLine.from_json(json_object: response.body)
151
+ end
152
+
86
153
  # @param service_line_id [String]
87
- # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::ServiceLineUpdate, as a Hash
154
+ # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineUpdate, as a Hash
155
+ # * :revenue_code (String)
156
+ # * :diagnosis_id_zero (String)
157
+ # * :diagnosis_id_one (String)
158
+ # * :diagnosis_id_two (String)
159
+ # * :diagnosis_id_three (String)
88
160
  # * :edit_reason (String)
89
161
  # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
90
162
  # * :charge_amount_cents (Integer)
163
+ # * :drug_identification (Hash)
164
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
165
+ # * :national_drug_code (String)
166
+ # * :national_drug_unit_count (String)
167
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
168
+ # * :link_sequence_number (String)
169
+ # * :pharmacy_prescription_number (String)
170
+ # * :conversion_formula (String)
171
+ # * :drug_description (String)
172
+ # * :denial_reason (Hash)
173
+ # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
174
+ # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
175
+ # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
176
+ # * :procedure_code (String)
177
+ # * :quantity (String)
178
+ # * :description (String)
179
+ # * :date_of_service (Date)
180
+ # * :end_date_of_service (Date)
181
+ # * :test_results (Array<CandidApiClient::ServiceLines::V2::Types::TestResult>)
182
+ # * :has_epsdt_indicator (Boolean)
183
+ # * :has_family_planning_indicator (Boolean)
184
+ # * :note (String)
185
+ # @param request_options [CandidApiClient::RequestOptions]
186
+ # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
187
+ # @example
188
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
189
+ # api.service_lines.v_2.update_universal(service_line_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", request: { })
190
+ def update_universal(service_line_id:, request:, request_options: nil)
191
+ response = @request_client.conn.patch do |req|
192
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
193
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
194
+ req.headers = {
195
+ **(req.headers || {}),
196
+ **@request_client.get_headers,
197
+ **(request_options&.additional_headers || {})
198
+ }.compact
199
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
200
+ req.url "#{@request_client.get_url(environment: CandidApi,
201
+ request_options: request_options)}/api/service-lines/v2/#{service_line_id}/universal"
202
+ end
203
+ CandidApiClient::ServiceLines::V2::Types::ServiceLine.from_json(json_object: response.body)
204
+ end
205
+
206
+ # @param service_line_id [String]
207
+ # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::ServiceLineUpdate, as a Hash
91
208
  # * :diagnosis_id_zero (String)
92
209
  # * :diagnosis_id_one (String)
93
210
  # * :diagnosis_id_two (String)
94
211
  # * :diagnosis_id_three (String)
212
+ # * :edit_reason (String)
213
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
214
+ # * :charge_amount_cents (Integer)
95
215
  # * :drug_identification (Hash)
96
216
  # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
97
217
  # * :national_drug_code (String)
@@ -167,16 +287,16 @@ module CandidApiClient
167
287
  end
168
288
 
169
289
  # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::ServiceLineCreateStandalone, as a Hash
170
- # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
171
- # * :charge_amount_cents (Integer)
172
290
  # * :diagnosis_id_zero (String)
173
291
  # * :diagnosis_id_one (String)
174
292
  # * :diagnosis_id_two (String)
175
293
  # * :diagnosis_id_three (String)
294
+ # * :procedure_code (String)
295
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
296
+ # * :charge_amount_cents (Integer)
176
297
  # * :denial_reason (Hash)
177
298
  # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
178
299
  # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
179
- # * :procedure_code (String)
180
300
  # * :quantity (String)
181
301
  # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
182
302
  # * :claim_id (String)
@@ -213,7 +333,7 @@ module CandidApiClient
213
333
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
214
334
  # @example
215
335
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
216
- # api.service_lines.v_2.create(request: { procedure_code: "procedure_code", quantity: "quantity", units: MJ, claim_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" })
336
+ # api.service_lines.v_2.create(request: { quantity: "quantity", units: MJ, claim_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", procedure_code: "procedure_code" })
217
337
  def create(request:, request_options: nil)
218
338
  Async do
219
339
  response = @request_client.conn.post do |req|
@@ -232,15 +352,137 @@ module CandidApiClient
232
352
  end
233
353
  end
234
354
 
355
+ # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreateStandalone, as a Hash
356
+ # * :diagnosis_id_zero (String)
357
+ # * :diagnosis_id_one (String)
358
+ # * :diagnosis_id_two (String)
359
+ # * :diagnosis_id_three (String)
360
+ # * :revenue_code (String)
361
+ # * :procedure_code (String)
362
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
363
+ # * :charge_amount_cents (Integer)
364
+ # * :denial_reason (Hash)
365
+ # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
366
+ # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
367
+ # * :quantity (String)
368
+ # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
369
+ # * :claim_id (String)
370
+ # * :description (String)
371
+ # * :date_of_service (Date)
372
+ # * :end_date_of_service (Date)
373
+ # * :drug_identification (Hash)
374
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
375
+ # * :national_drug_code (String)
376
+ # * :national_drug_unit_count (String)
377
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
378
+ # * :link_sequence_number (String)
379
+ # * :pharmacy_prescription_number (String)
380
+ # * :conversion_formula (String)
381
+ # * :drug_description (String)
382
+ # * :ordering_provider (Hash)
383
+ # * :npi (String)
384
+ # * :taxonomy_code (String)
385
+ # * :address (Hash)
386
+ # * :zip_plus_four_code (String)
387
+ # * :address_1 (String)
388
+ # * :address_2 (String)
389
+ # * :city (String)
390
+ # * :state (CandidApiClient::Commons::Types::State)
391
+ # * :zip_code (String)
392
+ # * :first_name (String)
393
+ # * :last_name (String)
394
+ # * :organization_name (String)
395
+ # * :test_results (Array<CandidApiClient::ServiceLines::V2::Types::TestResult>)
396
+ # * :has_epsdt_indicator (Boolean)
397
+ # * :has_family_planning_indicator (Boolean)
398
+ # * :note (String)
399
+ # @param request_options [CandidApiClient::RequestOptions]
400
+ # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
401
+ # @example
402
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
403
+ # api.service_lines.v_2.create_universal(request: { quantity: "quantity", units: MJ, claim_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" })
404
+ def create_universal(request:, request_options: nil)
405
+ Async do
406
+ response = @request_client.conn.post do |req|
407
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
408
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
409
+ req.headers = {
410
+ **(req.headers || {}),
411
+ **@request_client.get_headers,
412
+ **(request_options&.additional_headers || {})
413
+ }.compact
414
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
415
+ req.url "#{@request_client.get_url(environment: CandidApi,
416
+ request_options: request_options)}/api/service-lines/v2/universal"
417
+ end
418
+ CandidApiClient::ServiceLines::V2::Types::ServiceLine.from_json(json_object: response.body)
419
+ end
420
+ end
421
+
235
422
  # @param service_line_id [String]
236
- # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::ServiceLineUpdate, as a Hash
423
+ # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineUpdate, as a Hash
424
+ # * :revenue_code (String)
425
+ # * :diagnosis_id_zero (String)
426
+ # * :diagnosis_id_one (String)
427
+ # * :diagnosis_id_two (String)
428
+ # * :diagnosis_id_three (String)
237
429
  # * :edit_reason (String)
238
430
  # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
239
431
  # * :charge_amount_cents (Integer)
432
+ # * :drug_identification (Hash)
433
+ # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
434
+ # * :national_drug_code (String)
435
+ # * :national_drug_unit_count (String)
436
+ # * :measurement_unit_code (CandidApiClient::ServiceLines::V2::Types::MeasurementUnitCode)
437
+ # * :link_sequence_number (String)
438
+ # * :pharmacy_prescription_number (String)
439
+ # * :conversion_formula (String)
440
+ # * :drug_description (String)
441
+ # * :denial_reason (Hash)
442
+ # * :reason (CandidApiClient::ServiceLines::V2::Types::DenialReasonContent)
443
+ # * :place_of_service_code (CandidApiClient::Commons::Types::FacilityTypeCode)
444
+ # * :units (CandidApiClient::Commons::Types::ServiceLineUnits)
445
+ # * :procedure_code (String)
446
+ # * :quantity (String)
447
+ # * :description (String)
448
+ # * :date_of_service (Date)
449
+ # * :end_date_of_service (Date)
450
+ # * :test_results (Array<CandidApiClient::ServiceLines::V2::Types::TestResult>)
451
+ # * :has_epsdt_indicator (Boolean)
452
+ # * :has_family_planning_indicator (Boolean)
453
+ # * :note (String)
454
+ # @param request_options [CandidApiClient::RequestOptions]
455
+ # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLine]
456
+ # @example
457
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
458
+ # api.service_lines.v_2.update_universal(service_line_id: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", request: { })
459
+ def update_universal(service_line_id:, request:, request_options: nil)
460
+ Async do
461
+ response = @request_client.conn.patch do |req|
462
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
463
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
464
+ req.headers = {
465
+ **(req.headers || {}),
466
+ **@request_client.get_headers,
467
+ **(request_options&.additional_headers || {})
468
+ }.compact
469
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
470
+ req.url "#{@request_client.get_url(environment: CandidApi,
471
+ request_options: request_options)}/api/service-lines/v2/#{service_line_id}/universal"
472
+ end
473
+ CandidApiClient::ServiceLines::V2::Types::ServiceLine.from_json(json_object: response.body)
474
+ end
475
+ end
476
+
477
+ # @param service_line_id [String]
478
+ # @param request [Hash] Request of type CandidApiClient::ServiceLines::V2::Types::ServiceLineUpdate, as a Hash
240
479
  # * :diagnosis_id_zero (String)
241
480
  # * :diagnosis_id_one (String)
242
481
  # * :diagnosis_id_two (String)
243
482
  # * :diagnosis_id_three (String)
483
+ # * :edit_reason (String)
484
+ # * :modifiers (Array<CandidApiClient::Commons::Types::ProcedureModifier>)
485
+ # * :charge_amount_cents (Integer)
244
486
  # * :drug_identification (Hash)
245
487
  # * :service_id_qualifier (CandidApiClient::ServiceLines::V2::Types::ServiceIdQualifier)
246
488
  # * :national_drug_code (String)
@@ -69,7 +69,10 @@ module CandidApiClient
69
69
  attr_reader :related_invoice_info
70
70
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason]
71
71
  attr_reader :denial_reason
72
- # @return [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. 02 for telemedicine, 11 for in-person. Full list
72
+ # @return [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. This enum is not used or required in 837i claims. If your
73
+ # organization does not intend to submit claims with a different place of service
74
+ # at the service line level, this field should not be populated. 02 for
75
+ # telemedicine, 11 for in-person. Full list
73
76
  # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
74
77
  attr_reader :place_of_service_code
75
78
  # @return [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. 02 for telemedicine, 11 for in-person. Full list
@@ -81,11 +84,16 @@ module CandidApiClient
81
84
  attr_reader :procedure_code
82
85
  # @return [CandidApiClient::EncounterProviders::V2::Types::EncounterProvider]
83
86
  attr_reader :ordering_provider
84
- # @return [String]
87
+ # @return [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).
85
90
  attr_reader :revenue_code
86
91
  # @return [String] String representation of a Decimal that can be parsed by most libraries.
87
- # A ServiceLine quantity cannot contain more than one digit of precision.
88
- # Example: 1.1 is valid, 1.11 is not.
92
+ # For professional claims, a ServiceLine quantity cannot contain more than one
93
+ # digit of precision
94
+ # (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine
95
+ # quantity cannot contain
96
+ # more than three decimal digits of precision.
89
97
  attr_reader :quantity
90
98
  # @return [CandidApiClient::Commons::Types::ServiceLineUnits]
91
99
  attr_reader :units
@@ -96,7 +104,7 @@ module CandidApiClient
96
104
  # will be empty.
97
105
  attr_reader :date_of_service_range
98
106
  # @return [String] A free-form description to clarify the related data elements and their content.
99
- # Maps to SV1-01, C003-07 on the 837-P.
107
+ # Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.
100
108
  attr_reader :description
101
109
  # @return [Date]
102
110
  attr_reader :date_of_service
@@ -104,6 +112,7 @@ module CandidApiClient
104
112
  attr_reader :end_date_of_service
105
113
  # @return [Array<CandidApiClient::ServiceLines::V2::Types::TestResult>] Contains a list of test results. Test result types may map to MEA-02 on the
106
114
  # 837-P (ex: Hemoglobin, Hematocrit).
115
+ # This is unused by 837-i and ignored for institutional service lines.
107
116
  # No more than 5 MEA-02 test results may be submitted per service line.
108
117
  attr_reader :test_results
109
118
  # @return [Boolean] Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500.
@@ -148,28 +157,37 @@ module CandidApiClient
148
157
  # @param related_invoices [Array<CandidApiClient::Invoices::Types::Invoice>]
149
158
  # @param related_invoice_info [Array<CandidApiClient::Invoices::V2::Types::InvoiceInfo>]
150
159
  # @param denial_reason [CandidApiClient::ServiceLines::V2::Types::ServiceLineDenialReason]
151
- # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. 02 for telemedicine, 11 for in-person. Full list
160
+ # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. This enum is not used or required in 837i claims. If your
161
+ # organization does not intend to submit claims with a different place of service
162
+ # at the service line level, this field should not be populated. 02 for
163
+ # telemedicine, 11 for in-person. Full list
152
164
  # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
153
165
  # @param place_of_service_code_as_submitted [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. 02 for telemedicine, 11 for in-person. Full list
154
166
  # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
155
167
  # @param service_line_id [String]
156
168
  # @param procedure_code [String]
157
169
  # @param ordering_provider [CandidApiClient::EncounterProviders::V2::Types::EncounterProvider]
158
- # @param revenue_code [String]
170
+ # @param revenue_code [String] A 4 digit code that specifies facility department or type of service arrangement
171
+ # for institutional service line items (837i). This code is not required for
172
+ # professional claim billing (837p).
159
173
  # @param quantity [String] String representation of a Decimal that can be parsed by most libraries.
160
- # A ServiceLine quantity cannot contain more than one digit of precision.
161
- # Example: 1.1 is valid, 1.11 is not.
174
+ # For professional claims, a ServiceLine quantity cannot contain more than one
175
+ # digit of precision
176
+ # (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine
177
+ # quantity cannot contain
178
+ # more than three decimal digits of precision.
162
179
  # @param units [CandidApiClient::Commons::Types::ServiceLineUnits]
163
180
  # @param claim_id [String]
164
181
  # @param date_of_service_range [CandidApiClient::Commons::Types::DateRangeOptionalEnd] A range of dates of service for this service line. If the service line is for a
165
182
  # single date, the end date
166
183
  # will be empty.
167
184
  # @param description [String] A free-form description to clarify the related data elements and their content.
168
- # Maps to SV1-01, C003-07 on the 837-P.
185
+ # Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.
169
186
  # @param date_of_service [Date]
170
187
  # @param end_date_of_service [Date]
171
188
  # @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
172
189
  # 837-P (ex: Hemoglobin, Hematocrit).
190
+ # This is unused by 837-i and ignored for institutional service lines.
173
191
  # No more than 5 MEA-02 test results may be submitted per service line.
174
192
  # @param has_epsdt_indicator [Boolean] Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500.
175
193
  # If the value is true, the box will be populated with "Y". Otherwise, the box
@@ -15,6 +15,10 @@ module CandidApiClient
15
15
  module V2
16
16
  module Types
17
17
  class ServiceLineCreate
18
+ # @return [Array<Integer>] Indices (zero-indexed) of all the diagnoses this service line references
19
+ attr_reader :diagnosis_pointers
20
+ # @return [String]
21
+ attr_reader :procedure_code
18
22
  # @return [Array<CandidApiClient::Commons::Types::ProcedureModifier>]
19
23
  attr_reader :modifiers
20
24
  # @return [Boolean] Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500.
@@ -25,31 +29,32 @@ module CandidApiClient
25
29
  # If the value is true, the box will be populated with "Y". Otherwise, the box
26
30
  # will not be populated.
27
31
  attr_reader :has_family_planning_indicator
28
- # @return [String]
29
- attr_reader :procedure_code
30
32
  # @return [String] String representation of a Decimal that can be parsed by most libraries.
31
- # A ServiceLine quantity cannot contain more than one digit of precision.
32
- # Example: 1.1 is valid, 1.11 is not.
33
+ # For professional claims, a ServiceLine quantity cannot contain more than one
34
+ # digit of precision
35
+ # (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine
36
+ # quantity cannot contain
37
+ # more than three decimal digits of precision.
33
38
  attr_reader :quantity
34
39
  # @return [CandidApiClient::Commons::Types::ServiceLineUnits]
35
40
  attr_reader :units
36
- # @return [Integer] The total amount charged for this service line taking quantity into account. For
37
- # example, if a single unit
38
- # costs 100 cents and 2 units were rendered, the `charge_amount_cents` should be
39
- # 200. Should be greater than or
40
- # equal to 0.
41
+ # @return [Integer] The total amount charged for this service line, factoring in quantity. If
42
+ # procedure_code is updated and this is not, the system will attempt to set it
43
+ # based on chargemasters entries and the service line’s quantity. For example, if
44
+ # a single unit has an entry of 100 cents and 2 units were rendered, the
45
+ # charge_amount_cents will be set to 200, if there is no chargemaster entry, it
46
+ # will default to the amount set in this field.
41
47
  attr_reader :charge_amount_cents
42
- # @return [Array<Integer>] Indices (zero-indexed) of all the diagnoses this service line references
43
- attr_reader :diagnosis_pointers
44
48
  # @return [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
45
49
  attr_reader :drug_identification
46
- # @return [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. If your organization does not intend to submit claims with
47
- # a different place of service at the service line level, this field should not be
48
- # populated. 02 for telemedicine, 11 for in-person. Full list
50
+ # @return [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. This enum is not used or required for institutional
51
+ # claims. If your organization does not intend to submit claims with a different
52
+ # place of service at the service line level, this field should not be populated.
53
+ # 02 for telemedicine, 11 for in-person. Full list
49
54
  # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
50
55
  attr_reader :place_of_service_code
51
56
  # @return [String] A free-form description to clarify the related data elements and their content.
52
- # Maps to SV1-01, C003-07 on the 837-P.
57
+ # Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.
53
58
  attr_reader :description
54
59
  # @return [Date]
55
60
  attr_reader :date_of_service
@@ -61,6 +66,7 @@ module CandidApiClient
61
66
  attr_reader :ordering_provider
62
67
  # @return [Array<CandidApiClient::ServiceLines::V2::Types::TestResult>] Contains a list of test results. Test result types may map to MEA-02 on the
63
68
  # 837-P (ex: Hemoglobin, Hematocrit).
69
+ # This is unused by 837-i and ignored for institutional service lines.
64
70
  # No more than 5 MEA-02 test results may be submitted per service line.
65
71
  attr_reader :test_results
66
72
  # @return [String] Maps to NTE02 loop 2400 on the EDI 837.
@@ -73,6 +79,8 @@ module CandidApiClient
73
79
 
74
80
  OMIT = Object.new
75
81
 
82
+ # @param diagnosis_pointers [Array<Integer>] Indices (zero-indexed) of all the diagnoses this service line references
83
+ # @param procedure_code [String]
76
84
  # @param modifiers [Array<CandidApiClient::Commons::Types::ProcedureModifier>]
77
85
  # @param has_epsdt_indicator [Boolean] Maps to SV1-11 on the 837-P and Box 24H on the CMS-1500.
78
86
  # If the value is true, the box will be populated with "Y". Otherwise, the box
@@ -80,24 +88,27 @@ module CandidApiClient
80
88
  # @param has_family_planning_indicator [Boolean] Maps to SV1-12 on the 837-P and Box 24I on the CMS-1500.
81
89
  # If the value is true, the box will be populated with "Y". Otherwise, the box
82
90
  # will not be populated.
83
- # @param procedure_code [String]
84
91
  # @param quantity [String] String representation of a Decimal that can be parsed by most libraries.
85
- # A ServiceLine quantity cannot contain more than one digit of precision.
86
- # Example: 1.1 is valid, 1.11 is not.
92
+ # For professional claims, a ServiceLine quantity cannot contain more than one
93
+ # digit of precision
94
+ # (Example: 1.1 is valid, 1.11 is not). For institutional claims, a ServiceLine
95
+ # quantity cannot contain
96
+ # more than three decimal digits of precision.
87
97
  # @param units [CandidApiClient::Commons::Types::ServiceLineUnits]
88
- # @param charge_amount_cents [Integer] The total amount charged for this service line taking quantity into account. For
89
- # example, if a single unit
90
- # costs 100 cents and 2 units were rendered, the `charge_amount_cents` should be
91
- # 200. Should be greater than or
92
- # equal to 0.
93
- # @param diagnosis_pointers [Array<Integer>] Indices (zero-indexed) of all the diagnoses this service line references
98
+ # @param charge_amount_cents [Integer] The total amount charged for this service line, factoring in quantity. If
99
+ # procedure_code is updated and this is not, the system will attempt to set it
100
+ # based on chargemasters entries and the service line’s quantity. For example, if
101
+ # a single unit has an entry of 100 cents and 2 units were rendered, the
102
+ # charge_amount_cents will be set to 200, if there is no chargemaster entry, it
103
+ # will default to the amount set in this field.
94
104
  # @param drug_identification [CandidApiClient::ServiceLines::V2::Types::DrugIdentification]
95
- # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. If your organization does not intend to submit claims with
96
- # a different place of service at the service line level, this field should not be
97
- # populated. 02 for telemedicine, 11 for in-person. Full list
105
+ # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode] 837p Loop2300, SV105. This enum is not used or required for institutional
106
+ # claims. If your organization does not intend to submit claims with a different
107
+ # place of service at the service line level, this field should not be populated.
108
+ # 02 for telemedicine, 11 for in-person. Full list
98
109
  # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
99
110
  # @param description [String] A free-form description to clarify the related data elements and their content.
100
- # Maps to SV1-01, C003-07 on the 837-P.
111
+ # Maps to SV1-01, C003-07 on a 837-P and SV2-02, C003-07 on a 837-I form.
101
112
  # @param date_of_service [Date]
102
113
  # @param end_date_of_service [Date]
103
114
  # @param ordering_provider [CandidApiClient::EncounterProviders::V2::Types::OrderingProvider] Required when the service or supply was ordered by a provider who is different
@@ -105,20 +116,21 @@ module CandidApiClient
105
116
  # If not required by this implementation guide, do not send.
106
117
  # @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
107
118
  # 837-P (ex: Hemoglobin, Hematocrit).
119
+ # This is unused by 837-i and ignored for institutional service lines.
108
120
  # No more than 5 MEA-02 test results may be submitted per service line.
109
121
  # @param note [String] Maps to NTE02 loop 2400 on the EDI 837.
110
122
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
111
123
  # @return [CandidApiClient::ServiceLines::V2::Types::ServiceLineCreate]
112
- def initialize(procedure_code:, quantity:, units:, diagnosis_pointers:, modifiers: OMIT,
113
- 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)
124
+ def initialize(diagnosis_pointers:, procedure_code:, quantity:, units:, modifiers: OMIT, has_epsdt_indicator: OMIT,
125
+ 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)
126
+ @diagnosis_pointers = diagnosis_pointers
127
+ @procedure_code = procedure_code
114
128
  @modifiers = modifiers if modifiers != OMIT
115
129
  @has_epsdt_indicator = has_epsdt_indicator if has_epsdt_indicator != OMIT
116
130
  @has_family_planning_indicator = has_family_planning_indicator if has_family_planning_indicator != OMIT
117
- @procedure_code = procedure_code
118
131
  @quantity = quantity
119
132
  @units = units
120
133
  @charge_amount_cents = charge_amount_cents if charge_amount_cents != OMIT
121
- @diagnosis_pointers = diagnosis_pointers
122
134
  @drug_identification = drug_identification if drug_identification != OMIT
123
135
  @place_of_service_code = place_of_service_code if place_of_service_code != OMIT
124
136
  @description = description if description != OMIT
@@ -129,14 +141,14 @@ module CandidApiClient
129
141
  @note = note if note != OMIT
130
142
  @additional_properties = additional_properties
131
143
  @_field_set = {
144
+ "diagnosis_pointers": diagnosis_pointers,
145
+ "procedure_code": procedure_code,
132
146
  "modifiers": modifiers,
133
147
  "has_epsdt_indicator": has_epsdt_indicator,
134
148
  "has_family_planning_indicator": has_family_planning_indicator,
135
- "procedure_code": procedure_code,
136
149
  "quantity": quantity,
137
150
  "units": units,
138
151
  "charge_amount_cents": charge_amount_cents,
139
- "diagnosis_pointers": diagnosis_pointers,
140
152
  "drug_identification": drug_identification,
141
153
  "place_of_service_code": place_of_service_code,
142
154
  "description": description,
@@ -157,14 +169,14 @@ module CandidApiClient
157
169
  def self.from_json(json_object:)
158
170
  struct = JSON.parse(json_object, object_class: OpenStruct)
159
171
  parsed_json = JSON.parse(json_object)
172
+ diagnosis_pointers = struct["diagnosis_pointers"]
173
+ procedure_code = struct["procedure_code"]
160
174
  modifiers = struct["modifiers"]
161
175
  has_epsdt_indicator = struct["has_epsdt_indicator"]
162
176
  has_family_planning_indicator = struct["has_family_planning_indicator"]
163
- procedure_code = struct["procedure_code"]
164
177
  quantity = struct["quantity"]
165
178
  units = struct["units"]
166
179
  charge_amount_cents = struct["charge_amount_cents"]
167
- diagnosis_pointers = struct["diagnosis_pointers"]
168
180
  if parsed_json["drug_identification"].nil?
169
181
  drug_identification = nil
170
182
  else
@@ -189,14 +201,14 @@ module CandidApiClient
189
201
  end
190
202
  note = struct["note"]
191
203
  new(
204
+ diagnosis_pointers: diagnosis_pointers,
205
+ procedure_code: procedure_code,
192
206
  modifiers: modifiers,
193
207
  has_epsdt_indicator: has_epsdt_indicator,
194
208
  has_family_planning_indicator: has_family_planning_indicator,
195
- procedure_code: procedure_code,
196
209
  quantity: quantity,
197
210
  units: units,
198
211
  charge_amount_cents: charge_amount_cents,
199
- diagnosis_pointers: diagnosis_pointers,
200
212
  drug_identification: drug_identification,
201
213
  place_of_service_code: place_of_service_code,
202
214
  description: description,
@@ -223,14 +235,14 @@ module CandidApiClient
223
235
  # @param obj [Object]
224
236
  # @return [Void]
225
237
  def self.validate_raw(obj:)
238
+ obj.diagnosis_pointers.is_a?(Array) != false || raise("Passed value for field obj.diagnosis_pointers is not the expected type, validation failed.")
239
+ obj.procedure_code.is_a?(String) != false || raise("Passed value for field obj.procedure_code is not the expected type, validation failed.")
226
240
  obj.modifiers&.is_a?(Array) != false || raise("Passed value for field obj.modifiers is not the expected type, validation failed.")
227
241
  obj.has_epsdt_indicator&.is_a?(Boolean) != false || raise("Passed value for field obj.has_epsdt_indicator is not the expected type, validation failed.")
228
242
  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.")
229
- obj.procedure_code.is_a?(String) != false || raise("Passed value for field obj.procedure_code is not the expected type, validation failed.")
230
243
  obj.quantity.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
231
244
  obj.units.is_a?(CandidApiClient::Commons::Types::ServiceLineUnits) != false || raise("Passed value for field obj.units is not the expected type, validation failed.")
232
245
  obj.charge_amount_cents&.is_a?(Integer) != false || raise("Passed value for field obj.charge_amount_cents is not the expected type, validation failed.")
233
- obj.diagnosis_pointers.is_a?(Array) != false || raise("Passed value for field obj.diagnosis_pointers is not the expected type, validation failed.")
234
246
  obj.drug_identification.nil? || CandidApiClient::ServiceLines::V2::Types::DrugIdentification.validate_raw(obj: obj.drug_identification)
235
247
  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.")
236
248
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")