candidhealth 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/auth/default/client.rb +34 -6
  3. data/lib/candidhealth/charge_capture/v_1/client.rb +48 -48
  4. data/lib/candidhealth/charge_capture/v_1/types/charge_capture_data.rb +70 -56
  5. data/lib/candidhealth/commons/types/clearinghouse.rb +18 -0
  6. data/lib/candidhealth/commons/types/procedure_modifier.rb +11 -0
  7. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider.rb +1 -1
  8. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update.rb +1 -1
  9. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update_with_optional_address.rb +1 -1
  10. data/lib/candidhealth/encounters/v_4/client.rb +3253 -2040
  11. data/lib/candidhealth/encounters/v_4/types/encounter.rb +111 -86
  12. data/lib/candidhealth/encounters/v_4/types/encounter_base.rb +39 -33
  13. data/lib/candidhealth/encounters/v_4/types/encounter_create.rb +796 -0
  14. data/lib/candidhealth/encounters/v_4/types/encounter_create_from_pre_encounter.rb +131 -117
  15. data/lib/candidhealth/encounters/v_4/types/encounter_deep_optional.rb +70 -56
  16. data/lib/candidhealth/encounters/v_4/types/encounter_optional.rb +29 -39
  17. data/lib/candidhealth/encounters/v_4/types/encounter_rendering_or_attending_provider_required_error.rb +55 -0
  18. data/lib/candidhealth/encounters/v_4/types/encounter_update.rb +736 -0
  19. data/lib/candidhealth/encounters_universal/types/universal_encounter_create.rb +944 -0
  20. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_base.rb +691 -0
  21. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter.rb +791 -0
  22. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter_base.rb +572 -0
  23. data/lib/candidhealth/encounters_universal/types/universal_encounter_update.rb +872 -0
  24. data/lib/candidhealth/encounters_universal/types/universal_encounter_update_base.rb +700 -0
  25. data/lib/candidhealth/fee_schedules/v_3/client.rb +57 -0
  26. data/lib/candidhealth/fee_schedules/v_3/types/validation_error.rb +12 -0
  27. data/lib/candidhealth/financials/types/patient_transaction_source.rb +1 -0
  28. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_new.rb +206 -0
  29. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_new.rb +207 -0
  30. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_new.rb +206 -0
  31. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_new.rb +245 -0
  32. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_create.rb +225 -0
  33. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_new.rb +219 -0
  34. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information_new.rb +222 -0
  35. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_new.rb +215 -0
  36. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_new.rb +218 -0
  37. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_new.rb +206 -0
  38. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_new.rb +215 -0
  39. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_new.rb +216 -0
  40. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information_new.rb +206 -0
  41. data/lib/candidhealth/health_care_code_information/v_1/types/value_information_new.rb +215 -0
  42. data/lib/candidhealth/individual/types/patient.rb +6 -6
  43. data/lib/candidhealth/individual/types/patient_base.rb +6 -6
  44. data/lib/candidhealth/individual/types/patient_create.rb +6 -6
  45. data/lib/candidhealth/individual/types/patient_update.rb +6 -6
  46. data/lib/candidhealth/individual/types/patient_update_with_optional_address.rb +6 -6
  47. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +2 -0
  48. data/lib/candidhealth/payers/client.rb +7 -0
  49. data/lib/candidhealth/payers/v_4/client.rb +137 -0
  50. data/lib/candidhealth/payers/v_4/types/clearinghouse_payer_info.rb +93 -0
  51. data/lib/candidhealth/payers/v_4/types/payer.rb +116 -0
  52. data/lib/candidhealth/payers/v_4/types/payer_ids.rb +107 -0
  53. data/lib/candidhealth/payers/v_4/types/payer_page.rb +88 -0
  54. data/lib/candidhealth/payers/v_4/types/support_state.rb +15 -0
  55. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +4 -4
  56. data/lib/candidhealth/pre_encounter/coverages/v_1/types/subscriber.rb +3 -3
  57. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +72 -6
  58. data/lib/candidhealth/pre_encounter/patients/v_1/types/guarantor.rb +3 -3
  59. data/lib/candidhealth/pre_encounter/patients/v_1/types/inferred_patient_metadata.rb +80 -0
  60. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +19 -5
  61. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +19 -5
  62. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +18 -4
  63. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_type.rb +1 -0
  64. data/lib/candidhealth/service_lines/v_2/client.rb +252 -10
  65. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +28 -10
  66. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +52 -40
  67. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base.rb +251 -0
  68. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb +243 -0
  69. data/lib/candidhealth/service_lines/v_2/types/service_line_create_optional.rb +48 -24
  70. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb +58 -46
  71. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base.rb +273 -0
  72. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base_base.rb +265 -0
  73. data/lib/candidhealth/service_lines/v_2/types/service_line_update.rb +64 -54
  74. data/lib/candidhealth/service_lines/v_2/types/service_line_update_base.rb +263 -0
  75. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create.rb +271 -0
  76. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create_standalone.rb +317 -0
  77. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_update.rb +307 -0
  78. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite.rb +2 -2
  79. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_base.rb +90 -0
  80. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_update.rb +112 -0
  81. data/lib/requests.rb +2 -2
  82. data/lib/types_export.rb +44 -4
  83. metadata +43 -2
@@ -22,6 +22,7 @@ require_relative "authorization"
22
22
  require_relative "referral"
23
23
  require_relative "do_not_invoice_reason"
24
24
  require_relative "origination_detail"
25
+ require_relative "inferred_patient_metadata"
25
26
  require "ostruct"
26
27
  require "json"
27
28
 
@@ -113,6 +114,8 @@ module CandidApiClient
113
114
  attr_reader :tag_ids
114
115
  # @return [CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail] Information about the patient source, if applicable.
115
116
  attr_reader :origination_detail
117
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata] Metadata for the patient used for patient inference from encounters.
118
+ attr_reader :inferred_patient_metadata
116
119
  # @return [OpenStruct] Additional properties unmapped to the current class definition
117
120
  attr_reader :additional_properties
118
121
  # @return [Object]
@@ -164,10 +167,11 @@ module CandidApiClient
164
167
  # @param note_ids [Array<String>]
165
168
  # @param tag_ids [Array<String>]
166
169
  # @param origination_detail [CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail] Information about the patient source, if applicable.
170
+ # @param inferred_patient_metadata [CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata] Metadata for the patient used for patient inference from encounters.
167
171
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
168
172
  # @return [CandidApiClient::PreEncounter::Patients::V1::Types::MutablePatientWithMrn]
169
- def initialize(mrn:, name:, other_names:, birth_date:, biological_sex:, primary_address:, other_addresses:, primary_telecom:, other_telecoms:, contacts:, general_practitioners:, filing_order:, other_identifiers: OMIT, gender: OMIT,
170
- social_security_number: OMIT, sexual_orientation: OMIT, pronouns: OMIT, race: OMIT, ethnicity: OMIT, disability_status: OMIT, marital_status: OMIT, deceased: OMIT, multiple_birth: OMIT, email: OMIT, electronic_communication_opt_in: OMIT, photo: OMIT, language: OMIT, external_provenance: OMIT, non_insurance_payers: OMIT, non_insurance_payer_associations: OMIT, guarantor: OMIT, self_pay: OMIT, authorizations: OMIT, referrals: OMIT, primary_service_facility_id: OMIT, do_not_invoice_reason: OMIT, note_ids: OMIT, tag_ids: OMIT, origination_detail: OMIT, additional_properties: nil)
173
+ def initialize(mrn:, name:, other_names:, birth_date:, biological_sex:, primary_address:, other_addresses:, other_telecoms:, contacts:, general_practitioners:, filing_order:, other_identifiers: OMIT, gender: OMIT,
174
+ social_security_number: OMIT, sexual_orientation: OMIT, pronouns: OMIT, race: OMIT, ethnicity: OMIT, disability_status: OMIT, marital_status: OMIT, deceased: OMIT, multiple_birth: OMIT, primary_telecom: OMIT, email: OMIT, electronic_communication_opt_in: OMIT, photo: OMIT, language: OMIT, external_provenance: OMIT, non_insurance_payers: OMIT, non_insurance_payer_associations: OMIT, guarantor: OMIT, self_pay: OMIT, authorizations: OMIT, referrals: OMIT, primary_service_facility_id: OMIT, do_not_invoice_reason: OMIT, note_ids: OMIT, tag_ids: OMIT, origination_detail: OMIT, inferred_patient_metadata: OMIT, additional_properties: nil)
171
175
  @mrn = mrn
172
176
  @name = name
173
177
  @other_names = other_names
@@ -186,7 +190,7 @@ module CandidApiClient
186
190
  @multiple_birth = multiple_birth if multiple_birth != OMIT
187
191
  @primary_address = primary_address
188
192
  @other_addresses = other_addresses
189
- @primary_telecom = primary_telecom
193
+ @primary_telecom = primary_telecom if primary_telecom != OMIT
190
194
  @other_telecoms = other_telecoms
191
195
  @email = email if email != OMIT
192
196
  if electronic_communication_opt_in != OMIT
@@ -211,6 +215,7 @@ module CandidApiClient
211
215
  @note_ids = note_ids if note_ids != OMIT
212
216
  @tag_ids = tag_ids if tag_ids != OMIT
213
217
  @origination_detail = origination_detail if origination_detail != OMIT
218
+ @inferred_patient_metadata = inferred_patient_metadata if inferred_patient_metadata != OMIT
214
219
  @additional_properties = additional_properties
215
220
  @_field_set = {
216
221
  "mrn": mrn,
@@ -251,7 +256,8 @@ module CandidApiClient
251
256
  "do_not_invoice_reason": do_not_invoice_reason,
252
257
  "note_ids": note_ids,
253
258
  "tag_ids": tag_ids,
254
- "origination_detail": origination_detail
259
+ "origination_detail": origination_detail,
260
+ "inferred_patient_metadata": inferred_patient_metadata
255
261
  }.reject do |_k, v|
256
262
  v == OMIT
257
263
  end
@@ -365,6 +371,12 @@ module CandidApiClient
365
371
  origination_detail = parsed_json["origination_detail"].to_json
366
372
  origination_detail = CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail.from_json(json_object: origination_detail)
367
373
  end
374
+ if parsed_json["inferred_patient_metadata"].nil?
375
+ inferred_patient_metadata = nil
376
+ else
377
+ inferred_patient_metadata = parsed_json["inferred_patient_metadata"].to_json
378
+ inferred_patient_metadata = CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata.from_json(json_object: inferred_patient_metadata)
379
+ end
368
380
  new(
369
381
  mrn: mrn,
370
382
  name: name,
@@ -405,6 +417,7 @@ module CandidApiClient
405
417
  note_ids: note_ids,
406
418
  tag_ids: tag_ids,
407
419
  origination_detail: origination_detail,
420
+ inferred_patient_metadata: inferred_patient_metadata,
408
421
  additional_properties: struct
409
422
  )
410
423
  end
@@ -441,7 +454,7 @@ module CandidApiClient
441
454
  obj.multiple_birth&.is_a?(Integer) != false || raise("Passed value for field obj.multiple_birth is not the expected type, validation failed.")
442
455
  CandidApiClient::PreEncounter::Common::Types::Address.validate_raw(obj: obj.primary_address)
443
456
  obj.other_addresses.is_a?(Array) != false || raise("Passed value for field obj.other_addresses is not the expected type, validation failed.")
444
- CandidApiClient::PreEncounter::Common::Types::ContactPoint.validate_raw(obj: obj.primary_telecom)
457
+ obj.primary_telecom.nil? || CandidApiClient::PreEncounter::Common::Types::ContactPoint.validate_raw(obj: obj.primary_telecom)
445
458
  obj.other_telecoms.is_a?(Array) != false || raise("Passed value for field obj.other_telecoms is not the expected type, validation failed.")
446
459
  obj.email&.is_a?(String) != false || raise("Passed value for field obj.email is not the expected type, validation failed.")
447
460
  obj.electronic_communication_opt_in&.is_a?(Boolean) != false || raise("Passed value for field obj.electronic_communication_opt_in is not the expected type, validation failed.")
@@ -462,6 +475,7 @@ module CandidApiClient
462
475
  obj.note_ids&.is_a?(Array) != false || raise("Passed value for field obj.note_ids is not the expected type, validation failed.")
463
476
  obj.tag_ids&.is_a?(Array) != false || raise("Passed value for field obj.tag_ids is not the expected type, validation failed.")
464
477
  obj.origination_detail.nil? || CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail.validate_raw(obj: obj.origination_detail)
478
+ obj.inferred_patient_metadata.nil? || CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata.validate_raw(obj: obj.inferred_patient_metadata)
465
479
  end
466
480
  end
467
481
  end
@@ -22,6 +22,7 @@ require_relative "authorization"
22
22
  require_relative "referral"
23
23
  require_relative "do_not_invoice_reason"
24
24
  require_relative "origination_detail"
25
+ require_relative "inferred_patient_metadata"
25
26
  require "ostruct"
26
27
  require "json"
27
28
 
@@ -131,6 +132,8 @@ module CandidApiClient
131
132
  attr_reader :tag_ids
132
133
  # @return [CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail] Information about the patient source, if applicable.
133
134
  attr_reader :origination_detail
135
+ # @return [CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata] Metadata for the patient used for patient inference from encounters.
136
+ attr_reader :inferred_patient_metadata
134
137
  # @return [OpenStruct] Additional properties unmapped to the current class definition
135
138
  attr_reader :additional_properties
136
139
  # @return [Object]
@@ -193,10 +196,11 @@ module CandidApiClient
193
196
  # @param note_ids [Array<String>]
194
197
  # @param tag_ids [Array<String>]
195
198
  # @param origination_detail [CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail] Information about the patient source, if applicable.
199
+ # @param inferred_patient_metadata [CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata] Metadata for the patient used for patient inference from encounters.
196
200
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
197
201
  # @return [CandidApiClient::PreEncounter::Patients::V1::Types::Patient]
198
202
  def initialize(id:, mrn:, organization_id:, deactivated:, version:, updated_at:, updating_user_id:, name:,
199
- other_names:, birth_date:, biological_sex:, primary_address:, other_addresses:, primary_telecom:, other_telecoms:, contacts:, general_practitioners:, filing_order:, other_identifiers: OMIT, gender: OMIT, social_security_number: OMIT, sexual_orientation: OMIT, pronouns: OMIT, race: OMIT, ethnicity: OMIT, disability_status: OMIT, marital_status: OMIT, deceased: OMIT, multiple_birth: OMIT, email: OMIT, electronic_communication_opt_in: OMIT, photo: OMIT, language: OMIT, external_provenance: OMIT, non_insurance_payers: OMIT, non_insurance_payer_associations: OMIT, guarantor: OMIT, self_pay: OMIT, authorizations: OMIT, referrals: OMIT, primary_service_facility_id: OMIT, do_not_invoice_reason: OMIT, note_ids: OMIT, tag_ids: OMIT, origination_detail: OMIT, additional_properties: nil)
203
+ other_names:, birth_date:, biological_sex:, primary_address:, other_addresses:, other_telecoms:, contacts:, general_practitioners:, filing_order:, other_identifiers: OMIT, gender: OMIT, social_security_number: OMIT, sexual_orientation: OMIT, pronouns: OMIT, race: OMIT, ethnicity: OMIT, disability_status: OMIT, marital_status: OMIT, deceased: OMIT, multiple_birth: OMIT, primary_telecom: OMIT, email: OMIT, electronic_communication_opt_in: OMIT, photo: OMIT, language: OMIT, external_provenance: OMIT, non_insurance_payers: OMIT, non_insurance_payer_associations: OMIT, guarantor: OMIT, self_pay: OMIT, authorizations: OMIT, referrals: OMIT, primary_service_facility_id: OMIT, do_not_invoice_reason: OMIT, note_ids: OMIT, tag_ids: OMIT, origination_detail: OMIT, inferred_patient_metadata: OMIT, additional_properties: nil)
200
204
  @id = id
201
205
  @mrn = mrn
202
206
  @organization_id = organization_id
@@ -221,7 +225,7 @@ module CandidApiClient
221
225
  @multiple_birth = multiple_birth if multiple_birth != OMIT
222
226
  @primary_address = primary_address
223
227
  @other_addresses = other_addresses
224
- @primary_telecom = primary_telecom
228
+ @primary_telecom = primary_telecom if primary_telecom != OMIT
225
229
  @other_telecoms = other_telecoms
226
230
  @email = email if email != OMIT
227
231
  if electronic_communication_opt_in != OMIT
@@ -246,6 +250,7 @@ module CandidApiClient
246
250
  @note_ids = note_ids if note_ids != OMIT
247
251
  @tag_ids = tag_ids if tag_ids != OMIT
248
252
  @origination_detail = origination_detail if origination_detail != OMIT
253
+ @inferred_patient_metadata = inferred_patient_metadata if inferred_patient_metadata != OMIT
249
254
  @additional_properties = additional_properties
250
255
  @_field_set = {
251
256
  "id": id,
@@ -292,7 +297,8 @@ module CandidApiClient
292
297
  "do_not_invoice_reason": do_not_invoice_reason,
293
298
  "note_ids": note_ids,
294
299
  "tag_ids": tag_ids,
295
- "origination_detail": origination_detail
300
+ "origination_detail": origination_detail,
301
+ "inferred_patient_metadata": inferred_patient_metadata
296
302
  }.reject do |_k, v|
297
303
  v == OMIT
298
304
  end
@@ -412,6 +418,12 @@ module CandidApiClient
412
418
  origination_detail = parsed_json["origination_detail"].to_json
413
419
  origination_detail = CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail.from_json(json_object: origination_detail)
414
420
  end
421
+ if parsed_json["inferred_patient_metadata"].nil?
422
+ inferred_patient_metadata = nil
423
+ else
424
+ inferred_patient_metadata = parsed_json["inferred_patient_metadata"].to_json
425
+ inferred_patient_metadata = CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata.from_json(json_object: inferred_patient_metadata)
426
+ end
415
427
  new(
416
428
  id: id,
417
429
  mrn: mrn,
@@ -458,6 +470,7 @@ module CandidApiClient
458
470
  note_ids: note_ids,
459
471
  tag_ids: tag_ids,
460
472
  origination_detail: origination_detail,
473
+ inferred_patient_metadata: inferred_patient_metadata,
461
474
  additional_properties: struct
462
475
  )
463
476
  end
@@ -500,7 +513,7 @@ module CandidApiClient
500
513
  obj.multiple_birth&.is_a?(Integer) != false || raise("Passed value for field obj.multiple_birth is not the expected type, validation failed.")
501
514
  CandidApiClient::PreEncounter::Common::Types::Address.validate_raw(obj: obj.primary_address)
502
515
  obj.other_addresses.is_a?(Array) != false || raise("Passed value for field obj.other_addresses is not the expected type, validation failed.")
503
- CandidApiClient::PreEncounter::Common::Types::ContactPoint.validate_raw(obj: obj.primary_telecom)
516
+ obj.primary_telecom.nil? || CandidApiClient::PreEncounter::Common::Types::ContactPoint.validate_raw(obj: obj.primary_telecom)
504
517
  obj.other_telecoms.is_a?(Array) != false || raise("Passed value for field obj.other_telecoms is not the expected type, validation failed.")
505
518
  obj.email&.is_a?(String) != false || raise("Passed value for field obj.email is not the expected type, validation failed.")
506
519
  obj.electronic_communication_opt_in&.is_a?(Boolean) != false || raise("Passed value for field obj.electronic_communication_opt_in is not the expected type, validation failed.")
@@ -521,6 +534,7 @@ module CandidApiClient
521
534
  obj.note_ids&.is_a?(Array) != false || raise("Passed value for field obj.note_ids is not the expected type, validation failed.")
522
535
  obj.tag_ids&.is_a?(Array) != false || raise("Passed value for field obj.tag_ids is not the expected type, validation failed.")
523
536
  obj.origination_detail.nil? || CandidApiClient::PreEncounter::Patients::V1::Types::OriginationDetail.validate_raw(obj: obj.origination_detail)
537
+ obj.inferred_patient_metadata.nil? || CandidApiClient::PreEncounter::Patients::V1::Types::InferredPatientMetadata.validate_raw(obj: obj.inferred_patient_metadata)
524
538
  end
525
539
  end
526
540
  end
@@ -8,6 +8,7 @@ module CandidApiClient
8
8
  class ReferralType
9
9
  DIRECTED = "DIRECTED"
10
10
  ROTATION = "ROTATION"
11
+ OVERNIGHT = "OVERNIGHT"
11
12
  end
12
13
  end
13
14
  end
@@ -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