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
@@ -0,0 +1,791 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../encounters/v_4/types/encounter_submission_expectation"
4
+ require_relative "../../encounter_providers/v_2/types/rendering_provider"
5
+ require_relative "../../health_care_code_information/v_1/types/health_care_code_information_create"
6
+ require_relative "../../commons/types/facility_type_code"
7
+ require_relative "../../service_lines/v_2/types/universal_service_line_create"
8
+ require_relative "../../x_12/v_1/types/type_of_admission_or_visit_code"
9
+ require_relative "../../x_12/v_1/types/point_of_origin_for_admission_or_visit_code"
10
+ require_relative "../../x_12/v_1/types/patient_discharge_status_code"
11
+ require_relative "../../x_12/v_1/types/type_of_bill_composite_update"
12
+ require_relative "../../commons/types/state"
13
+ require_relative "../../encounter_providers/v_2/types/billing_provider"
14
+ require_relative "../../encounter_providers/v_2/types/initial_referring_provider"
15
+ require_relative "../../encounter_providers/v_2/types/supervising_provider"
16
+ require_relative "../../service_facility/types/encounter_service_facility_base"
17
+ require_relative "../../encounters/v_4/types/clinical_note_category_create"
18
+ require_relative "../../billing_notes/v_2/types/billing_note_base"
19
+ require_relative "../../encounters/v_4/types/patient_history_category"
20
+ require_relative "../../claim_submission/v_1/types/external_claim_submission_create"
21
+ require_relative "../../custom_schemas/v_1/types/schema_instance"
22
+ require "date"
23
+ require_relative "../../encounters/v_4/types/medication"
24
+ require_relative "../../encounters/v_4/types/intervention"
25
+ require_relative "../../commons/types/street_address_long_zip"
26
+ require_relative "../../encounters/v_4/types/synchronicity_type"
27
+ require_relative "../../encounters/v_4/types/vitals"
28
+ require_relative "../../encounters/v_4/types/billable_status_type"
29
+ require_relative "../../encounters/v_4/types/service_authorization_exception_code"
30
+ require_relative "../../commons/types/delay_reason_code"
31
+ require "ostruct"
32
+ require "json"
33
+
34
+ module CandidApiClient
35
+ module EncountersUniversal
36
+ module Types
37
+ class UniversalEncounterCreateFromPreEncounter
38
+ # @return [CandidApiClient::Encounters::V4::Types::EncounterSubmissionExpectation] Describes the currently expected target form for this encounter. This effects
39
+ # what validations and queues the form is processed under.
40
+ attr_reader :submission_expectation
41
+ # @return [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] The rendering provider is the practitioner -- physician, nurse practitioner,
42
+ # etc. -- performing the service.
43
+ # For telehealth services, the rendering provider performs the visit, asynchronous
44
+ # communication, or other service. The rendering provider address should generally
45
+ # be the same as the service facility address.
46
+ attr_reader :rendering_provider
47
+ # @return [CandidApiClient::HealthCareCodeInformation::V1::Types::HealthCareCodeInformationCreate] The health care code information associated with this encounter, which includes
48
+ # things such as diagnoses, vitals, procedures, occurrences, reason for visit, and
49
+ # numerous other code related fields.
50
+ attr_reader :health_care_code_information
51
+ # @return [CandidApiClient::Commons::Types::FacilityTypeCode] Box 24B on the CMS-1500 claim form. 837p Loop2300, CLM-05-1. This box is not
52
+ # used on a UB-04 or 837i claim form. 02 for telemedicine, 11 for in-person. Full
53
+ # list
54
+ # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
55
+ attr_reader :place_of_service_code
56
+ # @return [Array<CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreate>]
57
+ attr_reader :service_lines
58
+ # @return [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] 837i NM1 2500 variant for Loop ID-2310. Used to indicate the individual whom
59
+ # has overall responsibility for the patient in institutional claims processing.
60
+ attr_reader :attending_provider
61
+ # @return [Integer] 837i Loop 2300 DTP-03
62
+ # Extension of the admission date with hour (0-23 integer) details.
63
+ attr_reader :admission_hour
64
+ # @return [CandidApiClient::X12::V1::Types::TypeOfAdmissionOrVisitCode] 837i Loop 2300 CL1-01 Code used to indicate the priority of an admission or
65
+ # visit. Equivalent to Form Locator 14 Priority of Admission on a UB-04 claim, not
66
+ # used on CMS-1500 claim forms.
67
+ attr_reader :admission_type_code
68
+ # @return [CandidApiClient::X12::V1::Types::PointOfOriginForAdmissionOrVisitCode] 837i Loop 2300 CLI1-02 Code used to indicate the conditions under which an
69
+ # admission occurs. Equivalent to Form Locator 15 Point of Origin on a UB-04
70
+ # claim, not used on CMS-1500 claim forms.
71
+ attr_reader :admission_source_code
72
+ # @return [Integer] 837i Loop 2300 DTP-03
73
+ # Extension of the discharge date with hour (0-23 integer) details.
74
+ attr_reader :discharge_hour
75
+ # @return [CandidApiClient::X12::V1::Types::PatientDischargeStatusCode] 837i CL1-03 or Form Locator 17 on a UB-04 claim form. This is a required field
76
+ # on UB-04 claims.
77
+ # Code indicating patient status as of the "statement covers through date" .
78
+ attr_reader :discharge_status
79
+ # @return [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] 837i NM1 2500 variant for Loop ID-2310. Used to indicate the individual whom
80
+ # has primary responsibility for surgical procedures in institutional claims
81
+ # processing.
82
+ attr_reader :operating_provider
83
+ # @return [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] 837i NM1 2500 variant for Loop ID-2310. Used to indicate the individual whom
84
+ # has secondary responsibility for surgical procedures in institutional claims
85
+ # processing. Only used when operating_provider is also set.
86
+ attr_reader :other_operating_provider
87
+ # @return [CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate] Four digit code used in institutional forms to indicate the type of bill (e.g.,
88
+ # hospital inpatient, hospital outpatient). First digit is a leading 0, followed
89
+ # by the type_of_facility, type_of_care, then frequency_code. Professional forms
90
+ # are not required to submit this attribute. You may send the 4 digit code via
91
+ # raw_code, or each individual digit separately via composite_codes.
92
+ attr_reader :type_of_bill
93
+ # @return [CandidApiClient::Commons::Types::State] 837i-REF1000 -- an optional state indicating where an accident related to the
94
+ # encounter occurred.
95
+ attr_reader :accident_state_or_province_code
96
+ # @return [String]
97
+ attr_reader :pre_encounter_patient_id
98
+ # @return [Array<String>]
99
+ attr_reader :pre_encounter_appointment_ids
100
+ # @return [CandidApiClient::EncounterProviders::V2::Types::BillingProvider] The billing provider is the provider or business entity submitting the claim.
101
+ # Billing provider may be, but is not necessarily, the same person/NPI as the
102
+ # rendering provider. From a payer's perspective, this represents the person or
103
+ # entity being reimbursed. When a contract exists with the target payer, the
104
+ # billing provider should be the entity contracted with the payer. In some
105
+ # circumstances, this will be an individual provider. In that case, submit that
106
+ # provider's NPI and the tax ID (TIN) that the provider gave to the payer during
107
+ # contracting. In other cases, the billing entity will be a medical group. If so,
108
+ # submit the group NPI and the group's tax ID. Box 33 on the CMS-1500 claim or
109
+ # Form Locator 1 on a UB-04 claim form.
110
+ attr_reader :billing_provider
111
+ # @return [CandidApiClient::EncounterProviders::V2::Types::InitialReferringProvider] The second iteration of Loop ID-2310 on an 837P form. Use code "P3 - Primary
112
+ # Care Provider" in this loop to
113
+ # indicate the initial referral from the primary care provider or whatever
114
+ # provider wrote the initial referral for this patient's episode of care being
115
+ # billed/reported in this transaction.
116
+ # Not used in an 837i claim
117
+ attr_reader :initial_referring_provider
118
+ # @return [CandidApiClient::EncounterProviders::V2::Types::SupervisingProvider] Required when the rendering provider is supervised by a physician. If not
119
+ # required by this implementation guide, do not send.
120
+ attr_reader :supervising_provider
121
+ # @return [CandidApiClient::ServiceFacility::Types::EncounterServiceFacilityBase] Encounter Service facility is typically the location a medical service was
122
+ # rendered, such as a provider office or hospital. For telehealth, service
123
+ # facility can represent the provider's location when the service was delivered
124
+ # (e.g., home), or the location where an in-person visit would have taken place,
125
+ # whichever is easier to identify. If the provider is in-network, service facility
126
+ # may be defined in payer contracts. Box 32 on the CMS-1500 claim form. There is
127
+ # no equivalent on the paper UB-04 claim form, but this field is equivalent to
128
+ # Loop 2310E Service Facility Location details on an 837i form, and is used when
129
+ # this is different to the entity identified as the Billing Provider. Note that
130
+ # for an in-network claim to be successfully adjudicated, the service facility
131
+ # address listed
132
+ attr_reader :service_facility
133
+ # @return [Array<CandidApiClient::Encounters::V4::Types::ClinicalNoteCategoryCreate>] Holds a collection of clinical observations made by healthcare providers during
134
+ # patient encounters. Please note that medical records for appeals should be sent
135
+ # using the Encounter Attachments API.
136
+ attr_reader :clinical_notes
137
+ # @return [Array<CandidApiClient::BillingNotes::V2::Types::BillingNoteBase>] Spot to store misc, human-readable, notes about this encounter to be used
138
+ # in the billing process.
139
+ attr_reader :billing_notes
140
+ # @return [Array<CandidApiClient::Encounters::V4::Types::PatientHistoryCategory>]
141
+ attr_reader :patient_histories
142
+ # @return [CandidApiClient::ClaimSubmission::V1::Types::ExternalClaimSubmissionCreate] To be included for claims that have been submitted outside of Candid.
143
+ # Candid supports posting remits and payments to these claims and working them
144
+ # in-platform (e.g. editing, resubmitting).
145
+ attr_reader :external_claim_submission
146
+ # @return [Array<String>] Names of tags that should be on the encounter.
147
+ attr_reader :tag_ids
148
+ # @return [Array<CandidApiClient::CustomSchemas::V1::Types::SchemaInstance>] Key-value pairs that must adhere to a schema created via the Custom Schema API.
149
+ # Multiple schema
150
+ # instances cannot be created for the same schema on an encounter.
151
+ attr_reader :schema_instances
152
+ # @return [String] A client-specified unique ID to associate with this encounter;
153
+ # for example, your internal encounter ID or a Dr. Chrono encounter ID.
154
+ # This field should not contain PHI.
155
+ attr_reader :external_id
156
+ # @return [Date] Date formatted as YYYY-MM-DD; eg: 2019-08-24.
157
+ # This date must be the local date in the timezone where the service occurred.
158
+ # Box 24a on the CMS-1500 claim form or Form Locator 45 on the UB-04 claim form.
159
+ # If service occurred over a range of dates, this should be the start date.
160
+ # date_of_service must be defined on either the encounter or the service lines but
161
+ # not both.
162
+ # If there are greater than zero service lines, it is recommended to specify
163
+ # date_of_service on the service_line instead of on the encounter to prepare for
164
+ # future API versions.
165
+ attr_reader :date_of_service
166
+ # @return [Date] Date formatted as YYYY-MM-DD; eg: 2019-08-25.
167
+ # This date must be the local date in the timezone where the service occurred.
168
+ # If omitted, the Encounter is assumed to be for a single day.
169
+ # Must not be temporally before the date_of_service field.
170
+ # If there are greater than zero service lines, it is recommended to specify
171
+ # end_date_of_service on the service_line instead of on the encounter to prepare
172
+ # for future API versions.
173
+ attr_reader :end_date_of_service
174
+ # @return [Boolean] Whether this patient has authorized the release of medical information
175
+ # for billing purpose.
176
+ # Box 12 on the CMS-1500 claim form or Form Locator 52 on a UB-04 claim form.
177
+ attr_reader :patient_authorized_release
178
+ # @return [Boolean] Whether this patient has authorized insurance payments to be made to you,
179
+ # not them. If false, patient may receive reimbursement.
180
+ # Box 13 on the CMS-1500 claim form or Form Locator 53 on a UB-04 claim form.
181
+ attr_reader :benefits_assigned_to_provider
182
+ # @return [Boolean] Whether you have accepted the patient's authorization for insurance payments
183
+ # to be made to you, not them.
184
+ # Box 27 on the CMS-1500 claim form. There is no exact equivalent of this field on
185
+ # a UB-04 claim, however contributes to the concept of Form Locator 53.
186
+ attr_reader :provider_accepts_assignment
187
+ # @return [String] Human-readable description of the appointment type (ex: "Acupuncture -
188
+ # Headaches").
189
+ attr_reader :appointment_type
190
+ # @return [Array<CandidApiClient::Encounters::V4::Types::Medication>]
191
+ attr_reader :existing_medications
192
+ # @return [Array<CandidApiClient::Encounters::V4::Types::Intervention>]
193
+ attr_reader :interventions
194
+ # @return [CandidApiClient::Commons::Types::StreetAddressLongZip] Specifies the address to which payments for the claim should be sent.
195
+ attr_reader :pay_to_address
196
+ # @return [CandidApiClient::Encounters::V4::Types::SynchronicityType] Whether or not this was a synchronous or asynchronous encounter.
197
+ # Asynchronous encounters occur when providers and patients communicate online
198
+ # using
199
+ # forms, instant messaging, or other pre-recorded digital mediums.
200
+ # Synchronous encounters occur in live, real-time settings where the patient
201
+ # interacts
202
+ # directly with the provider, such as over video or a phone call.
203
+ attr_reader :synchronicity
204
+ # @return [CandidApiClient::Encounters::V4::Types::Vitals]
205
+ attr_reader :vitals
206
+ # @return [CandidApiClient::Encounters::V4::Types::BillableStatusType] Defines if the Encounter is to be billed by Candid to the responsible_party.
207
+ # Examples for when this should be set to NOT_BILLABLE include
208
+ # if the Encounter has not occurred yet or if there is no intention of ever
209
+ # billing the responsible_party.
210
+ attr_reader :billable_status
211
+ # @return [String] Defines additional information on the claim needed by the payer.
212
+ # Box 19 on the CMS-1500 claim form or Form Locator 80 on a UB-04 claim form.
213
+ attr_reader :additional_information
214
+ # @return [CandidApiClient::Encounters::V4::Types::ServiceAuthorizationExceptionCode] 837p Loop2300 REF*4N
215
+ # Required when mandated by government law or regulation to obtain authorization
216
+ # for specific service(s) but, for the
217
+ # reasons listed in one of the enum values of ServiceAuthorizationExceptionCode,
218
+ # the service was performed without
219
+ # obtaining the authorization.
220
+ attr_reader :service_authorization_exception_code
221
+ # @return [Date] 837p Loop2300 DTP*435, CMS-1500 Box 18 or UB-04 Form Locator 12.
222
+ # Required on all ambulance claims when the patient was known to be admitted to
223
+ # the hospital.
224
+ # OR
225
+ # Required on all claims involving inpatient medical visits.
226
+ attr_reader :admission_date
227
+ # @return [Date] 837p Loop2300 DTP*096, CMS-1500 Box 18 Required for inpatient claims when the
228
+ # patient was discharged from the facility and the discharge date is known. Not
229
+ # used on an institutional claim.
230
+ attr_reader :discharge_date
231
+ # @return [Date] 837p Loop2300 DTP*431, CMS-1500 Box 14
232
+ # Required for the initial medical service or visit performed in response to a
233
+ # medical emergency when the date is available and is different than the date of
234
+ # service.
235
+ # OR
236
+ # This date is the onset of acute symptoms for the current illness or condition.
237
+ # For UB-04 claims, this is populated separately via occurrence codes.
238
+ attr_reader :onset_of_current_illness_or_symptom_date
239
+ # @return [Date] 837p Loop2300 DTP*484, CMS-1500 Box 14
240
+ # Required when, in the judgment of the provider, the services on this claim are
241
+ # related to the patient's pregnancy.
242
+ # This field is populated separately via occurrence codes for UB-04 claim forms.
243
+ attr_reader :last_menstrual_period_date
244
+ # @return [CandidApiClient::Commons::Types::DelayReasonCode] 837i Loop2300, CLM-1300 Box 20
245
+ # Code indicating the reason why a request was delayed
246
+ attr_reader :delay_reason_code
247
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
248
+ attr_reader :additional_properties
249
+ # @return [Object]
250
+ attr_reader :_field_set
251
+ protected :_field_set
252
+
253
+ OMIT = Object.new
254
+
255
+ # @param submission_expectation [CandidApiClient::Encounters::V4::Types::EncounterSubmissionExpectation] Describes the currently expected target form for this encounter. This effects
256
+ # what validations and queues the form is processed under.
257
+ # @param rendering_provider [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] The rendering provider is the practitioner -- physician, nurse practitioner,
258
+ # etc. -- performing the service.
259
+ # For telehealth services, the rendering provider performs the visit, asynchronous
260
+ # communication, or other service. The rendering provider address should generally
261
+ # be the same as the service facility address.
262
+ # @param health_care_code_information [CandidApiClient::HealthCareCodeInformation::V1::Types::HealthCareCodeInformationCreate] The health care code information associated with this encounter, which includes
263
+ # things such as diagnoses, vitals, procedures, occurrences, reason for visit, and
264
+ # numerous other code related fields.
265
+ # @param place_of_service_code [CandidApiClient::Commons::Types::FacilityTypeCode] Box 24B on the CMS-1500 claim form. 837p Loop2300, CLM-05-1. This box is not
266
+ # used on a UB-04 or 837i claim form. 02 for telemedicine, 11 for in-person. Full
267
+ # list
268
+ # //www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set).
269
+ # @param service_lines [Array<CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreate>]
270
+ # @param attending_provider [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] 837i NM1 2500 variant for Loop ID-2310. Used to indicate the individual whom
271
+ # has overall responsibility for the patient in institutional claims processing.
272
+ # @param admission_hour [Integer] 837i Loop 2300 DTP-03
273
+ # Extension of the admission date with hour (0-23 integer) details.
274
+ # @param admission_type_code [CandidApiClient::X12::V1::Types::TypeOfAdmissionOrVisitCode] 837i Loop 2300 CL1-01 Code used to indicate the priority of an admission or
275
+ # visit. Equivalent to Form Locator 14 Priority of Admission on a UB-04 claim, not
276
+ # used on CMS-1500 claim forms.
277
+ # @param admission_source_code [CandidApiClient::X12::V1::Types::PointOfOriginForAdmissionOrVisitCode] 837i Loop 2300 CLI1-02 Code used to indicate the conditions under which an
278
+ # admission occurs. Equivalent to Form Locator 15 Point of Origin on a UB-04
279
+ # claim, not used on CMS-1500 claim forms.
280
+ # @param discharge_hour [Integer] 837i Loop 2300 DTP-03
281
+ # Extension of the discharge date with hour (0-23 integer) details.
282
+ # @param discharge_status [CandidApiClient::X12::V1::Types::PatientDischargeStatusCode] 837i CL1-03 or Form Locator 17 on a UB-04 claim form. This is a required field
283
+ # on UB-04 claims.
284
+ # Code indicating patient status as of the "statement covers through date" .
285
+ # @param operating_provider [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] 837i NM1 2500 variant for Loop ID-2310. Used to indicate the individual whom
286
+ # has primary responsibility for surgical procedures in institutional claims
287
+ # processing.
288
+ # @param other_operating_provider [CandidApiClient::EncounterProviders::V2::Types::RenderingProvider] 837i NM1 2500 variant for Loop ID-2310. Used to indicate the individual whom
289
+ # has secondary responsibility for surgical procedures in institutional claims
290
+ # processing. Only used when operating_provider is also set.
291
+ # @param type_of_bill [CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate] Four digit code used in institutional forms to indicate the type of bill (e.g.,
292
+ # hospital inpatient, hospital outpatient). First digit is a leading 0, followed
293
+ # by the type_of_facility, type_of_care, then frequency_code. Professional forms
294
+ # are not required to submit this attribute. You may send the 4 digit code via
295
+ # raw_code, or each individual digit separately via composite_codes.
296
+ # @param accident_state_or_province_code [CandidApiClient::Commons::Types::State] 837i-REF1000 -- an optional state indicating where an accident related to the
297
+ # encounter occurred.
298
+ # @param pre_encounter_patient_id [String]
299
+ # @param pre_encounter_appointment_ids [Array<String>]
300
+ # @param billing_provider [CandidApiClient::EncounterProviders::V2::Types::BillingProvider] The billing provider is the provider or business entity submitting the claim.
301
+ # Billing provider may be, but is not necessarily, the same person/NPI as the
302
+ # rendering provider. From a payer's perspective, this represents the person or
303
+ # entity being reimbursed. When a contract exists with the target payer, the
304
+ # billing provider should be the entity contracted with the payer. In some
305
+ # circumstances, this will be an individual provider. In that case, submit that
306
+ # provider's NPI and the tax ID (TIN) that the provider gave to the payer during
307
+ # contracting. In other cases, the billing entity will be a medical group. If so,
308
+ # submit the group NPI and the group's tax ID. Box 33 on the CMS-1500 claim or
309
+ # Form Locator 1 on a UB-04 claim form.
310
+ # @param initial_referring_provider [CandidApiClient::EncounterProviders::V2::Types::InitialReferringProvider] The second iteration of Loop ID-2310 on an 837P form. Use code "P3 - Primary
311
+ # Care Provider" in this loop to
312
+ # indicate the initial referral from the primary care provider or whatever
313
+ # provider wrote the initial referral for this patient's episode of care being
314
+ # billed/reported in this transaction.
315
+ # Not used in an 837i claim
316
+ # @param supervising_provider [CandidApiClient::EncounterProviders::V2::Types::SupervisingProvider] Required when the rendering provider is supervised by a physician. If not
317
+ # required by this implementation guide, do not send.
318
+ # @param service_facility [CandidApiClient::ServiceFacility::Types::EncounterServiceFacilityBase] Encounter Service facility is typically the location a medical service was
319
+ # rendered, such as a provider office or hospital. For telehealth, service
320
+ # facility can represent the provider's location when the service was delivered
321
+ # (e.g., home), or the location where an in-person visit would have taken place,
322
+ # whichever is easier to identify. If the provider is in-network, service facility
323
+ # may be defined in payer contracts. Box 32 on the CMS-1500 claim form. There is
324
+ # no equivalent on the paper UB-04 claim form, but this field is equivalent to
325
+ # Loop 2310E Service Facility Location details on an 837i form, and is used when
326
+ # this is different to the entity identified as the Billing Provider. Note that
327
+ # for an in-network claim to be successfully adjudicated, the service facility
328
+ # address listed
329
+ # @param clinical_notes [Array<CandidApiClient::Encounters::V4::Types::ClinicalNoteCategoryCreate>] Holds a collection of clinical observations made by healthcare providers during
330
+ # patient encounters. Please note that medical records for appeals should be sent
331
+ # using the Encounter Attachments API.
332
+ # @param billing_notes [Array<CandidApiClient::BillingNotes::V2::Types::BillingNoteBase>] Spot to store misc, human-readable, notes about this encounter to be used
333
+ # in the billing process.
334
+ # @param patient_histories [Array<CandidApiClient::Encounters::V4::Types::PatientHistoryCategory>]
335
+ # @param external_claim_submission [CandidApiClient::ClaimSubmission::V1::Types::ExternalClaimSubmissionCreate] To be included for claims that have been submitted outside of Candid.
336
+ # Candid supports posting remits and payments to these claims and working them
337
+ # in-platform (e.g. editing, resubmitting).
338
+ # @param tag_ids [Array<String>] Names of tags that should be on the encounter.
339
+ # @param schema_instances [Array<CandidApiClient::CustomSchemas::V1::Types::SchemaInstance>] Key-value pairs that must adhere to a schema created via the Custom Schema API.
340
+ # Multiple schema
341
+ # instances cannot be created for the same schema on an encounter.
342
+ # @param external_id [String] A client-specified unique ID to associate with this encounter;
343
+ # for example, your internal encounter ID or a Dr. Chrono encounter ID.
344
+ # This field should not contain PHI.
345
+ # @param date_of_service [Date] Date formatted as YYYY-MM-DD; eg: 2019-08-24.
346
+ # This date must be the local date in the timezone where the service occurred.
347
+ # Box 24a on the CMS-1500 claim form or Form Locator 45 on the UB-04 claim form.
348
+ # If service occurred over a range of dates, this should be the start date.
349
+ # date_of_service must be defined on either the encounter or the service lines but
350
+ # not both.
351
+ # If there are greater than zero service lines, it is recommended to specify
352
+ # date_of_service on the service_line instead of on the encounter to prepare for
353
+ # future API versions.
354
+ # @param end_date_of_service [Date] Date formatted as YYYY-MM-DD; eg: 2019-08-25.
355
+ # This date must be the local date in the timezone where the service occurred.
356
+ # If omitted, the Encounter is assumed to be for a single day.
357
+ # Must not be temporally before the date_of_service field.
358
+ # If there are greater than zero service lines, it is recommended to specify
359
+ # end_date_of_service on the service_line instead of on the encounter to prepare
360
+ # for future API versions.
361
+ # @param patient_authorized_release [Boolean] Whether this patient has authorized the release of medical information
362
+ # for billing purpose.
363
+ # Box 12 on the CMS-1500 claim form or Form Locator 52 on a UB-04 claim form.
364
+ # @param benefits_assigned_to_provider [Boolean] Whether this patient has authorized insurance payments to be made to you,
365
+ # not them. If false, patient may receive reimbursement.
366
+ # Box 13 on the CMS-1500 claim form or Form Locator 53 on a UB-04 claim form.
367
+ # @param provider_accepts_assignment [Boolean] Whether you have accepted the patient's authorization for insurance payments
368
+ # to be made to you, not them.
369
+ # Box 27 on the CMS-1500 claim form. There is no exact equivalent of this field on
370
+ # a UB-04 claim, however contributes to the concept of Form Locator 53.
371
+ # @param appointment_type [String] Human-readable description of the appointment type (ex: "Acupuncture -
372
+ # Headaches").
373
+ # @param existing_medications [Array<CandidApiClient::Encounters::V4::Types::Medication>]
374
+ # @param interventions [Array<CandidApiClient::Encounters::V4::Types::Intervention>]
375
+ # @param pay_to_address [CandidApiClient::Commons::Types::StreetAddressLongZip] Specifies the address to which payments for the claim should be sent.
376
+ # @param synchronicity [CandidApiClient::Encounters::V4::Types::SynchronicityType] Whether or not this was a synchronous or asynchronous encounter.
377
+ # Asynchronous encounters occur when providers and patients communicate online
378
+ # using
379
+ # forms, instant messaging, or other pre-recorded digital mediums.
380
+ # Synchronous encounters occur in live, real-time settings where the patient
381
+ # interacts
382
+ # directly with the provider, such as over video or a phone call.
383
+ # @param vitals [CandidApiClient::Encounters::V4::Types::Vitals]
384
+ # @param billable_status [CandidApiClient::Encounters::V4::Types::BillableStatusType] Defines if the Encounter is to be billed by Candid to the responsible_party.
385
+ # Examples for when this should be set to NOT_BILLABLE include
386
+ # if the Encounter has not occurred yet or if there is no intention of ever
387
+ # billing the responsible_party.
388
+ # @param additional_information [String] Defines additional information on the claim needed by the payer.
389
+ # Box 19 on the CMS-1500 claim form or Form Locator 80 on a UB-04 claim form.
390
+ # @param service_authorization_exception_code [CandidApiClient::Encounters::V4::Types::ServiceAuthorizationExceptionCode] 837p Loop2300 REF*4N
391
+ # Required when mandated by government law or regulation to obtain authorization
392
+ # for specific service(s) but, for the
393
+ # reasons listed in one of the enum values of ServiceAuthorizationExceptionCode,
394
+ # the service was performed without
395
+ # obtaining the authorization.
396
+ # @param admission_date [Date] 837p Loop2300 DTP*435, CMS-1500 Box 18 or UB-04 Form Locator 12.
397
+ # Required on all ambulance claims when the patient was known to be admitted to
398
+ # the hospital.
399
+ # OR
400
+ # Required on all claims involving inpatient medical visits.
401
+ # @param discharge_date [Date] 837p Loop2300 DTP*096, CMS-1500 Box 18 Required for inpatient claims when the
402
+ # patient was discharged from the facility and the discharge date is known. Not
403
+ # used on an institutional claim.
404
+ # @param onset_of_current_illness_or_symptom_date [Date] 837p Loop2300 DTP*431, CMS-1500 Box 14
405
+ # Required for the initial medical service or visit performed in response to a
406
+ # medical emergency when the date is available and is different than the date of
407
+ # service.
408
+ # OR
409
+ # This date is the onset of acute symptoms for the current illness or condition.
410
+ # For UB-04 claims, this is populated separately via occurrence codes.
411
+ # @param last_menstrual_period_date [Date] 837p Loop2300 DTP*484, CMS-1500 Box 14
412
+ # Required when, in the judgment of the provider, the services on this claim are
413
+ # related to the patient's pregnancy.
414
+ # This field is populated separately via occurrence codes for UB-04 claim forms.
415
+ # @param delay_reason_code [CandidApiClient::Commons::Types::DelayReasonCode] 837i Loop2300, CLM-1300 Box 20
416
+ # Code indicating the reason why a request was delayed
417
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
418
+ # @return [CandidApiClient::EncountersUniversal::Types::UniversalEncounterCreateFromPreEncounter]
419
+ def initialize(submission_expectation:, pre_encounter_patient_id:, pre_encounter_appointment_ids:, billing_provider:, external_id:, patient_authorized_release:, benefits_assigned_to_provider:, provider_accepts_assignment:, billable_status:, rendering_provider: OMIT, health_care_code_information: OMIT,
420
+ place_of_service_code: OMIT, service_lines: OMIT, attending_provider: OMIT, admission_hour: OMIT, admission_type_code: OMIT, admission_source_code: OMIT, discharge_hour: OMIT, discharge_status: OMIT, operating_provider: OMIT, other_operating_provider: OMIT, type_of_bill: OMIT, accident_state_or_province_code: OMIT, initial_referring_provider: OMIT, supervising_provider: OMIT, service_facility: OMIT, clinical_notes: OMIT, billing_notes: OMIT, patient_histories: OMIT, external_claim_submission: OMIT, tag_ids: OMIT, schema_instances: OMIT, date_of_service: OMIT, end_date_of_service: OMIT, appointment_type: OMIT, existing_medications: OMIT, interventions: OMIT, pay_to_address: OMIT, synchronicity: OMIT, vitals: OMIT, additional_information: OMIT, service_authorization_exception_code: OMIT, admission_date: OMIT, discharge_date: OMIT, onset_of_current_illness_or_symptom_date: OMIT, last_menstrual_period_date: OMIT, delay_reason_code: OMIT, additional_properties: nil)
421
+ @submission_expectation = submission_expectation
422
+ @rendering_provider = rendering_provider if rendering_provider != OMIT
423
+ @health_care_code_information = health_care_code_information if health_care_code_information != OMIT
424
+ @place_of_service_code = place_of_service_code if place_of_service_code != OMIT
425
+ @service_lines = service_lines if service_lines != OMIT
426
+ @attending_provider = attending_provider if attending_provider != OMIT
427
+ @admission_hour = admission_hour if admission_hour != OMIT
428
+ @admission_type_code = admission_type_code if admission_type_code != OMIT
429
+ @admission_source_code = admission_source_code if admission_source_code != OMIT
430
+ @discharge_hour = discharge_hour if discharge_hour != OMIT
431
+ @discharge_status = discharge_status if discharge_status != OMIT
432
+ @operating_provider = operating_provider if operating_provider != OMIT
433
+ @other_operating_provider = other_operating_provider if other_operating_provider != OMIT
434
+ @type_of_bill = type_of_bill if type_of_bill != OMIT
435
+ @accident_state_or_province_code = accident_state_or_province_code if accident_state_or_province_code != OMIT
436
+ @pre_encounter_patient_id = pre_encounter_patient_id
437
+ @pre_encounter_appointment_ids = pre_encounter_appointment_ids
438
+ @billing_provider = billing_provider
439
+ @initial_referring_provider = initial_referring_provider if initial_referring_provider != OMIT
440
+ @supervising_provider = supervising_provider if supervising_provider != OMIT
441
+ @service_facility = service_facility if service_facility != OMIT
442
+ @clinical_notes = clinical_notes if clinical_notes != OMIT
443
+ @billing_notes = billing_notes if billing_notes != OMIT
444
+ @patient_histories = patient_histories if patient_histories != OMIT
445
+ @external_claim_submission = external_claim_submission if external_claim_submission != OMIT
446
+ @tag_ids = tag_ids if tag_ids != OMIT
447
+ @schema_instances = schema_instances if schema_instances != OMIT
448
+ @external_id = external_id
449
+ @date_of_service = date_of_service if date_of_service != OMIT
450
+ @end_date_of_service = end_date_of_service if end_date_of_service != OMIT
451
+ @patient_authorized_release = patient_authorized_release
452
+ @benefits_assigned_to_provider = benefits_assigned_to_provider
453
+ @provider_accepts_assignment = provider_accepts_assignment
454
+ @appointment_type = appointment_type if appointment_type != OMIT
455
+ @existing_medications = existing_medications if existing_medications != OMIT
456
+ @interventions = interventions if interventions != OMIT
457
+ @pay_to_address = pay_to_address if pay_to_address != OMIT
458
+ @synchronicity = synchronicity if synchronicity != OMIT
459
+ @vitals = vitals if vitals != OMIT
460
+ @billable_status = billable_status
461
+ @additional_information = additional_information if additional_information != OMIT
462
+ if service_authorization_exception_code != OMIT
463
+ @service_authorization_exception_code = service_authorization_exception_code
464
+ end
465
+ @admission_date = admission_date if admission_date != OMIT
466
+ @discharge_date = discharge_date if discharge_date != OMIT
467
+ if onset_of_current_illness_or_symptom_date != OMIT
468
+ @onset_of_current_illness_or_symptom_date = onset_of_current_illness_or_symptom_date
469
+ end
470
+ @last_menstrual_period_date = last_menstrual_period_date if last_menstrual_period_date != OMIT
471
+ @delay_reason_code = delay_reason_code if delay_reason_code != OMIT
472
+ @additional_properties = additional_properties
473
+ @_field_set = {
474
+ "submission_expectation": submission_expectation,
475
+ "rendering_provider": rendering_provider,
476
+ "health_care_code_information": health_care_code_information,
477
+ "place_of_service_code": place_of_service_code,
478
+ "service_lines": service_lines,
479
+ "attending_provider": attending_provider,
480
+ "admission_hour": admission_hour,
481
+ "admission_type_code": admission_type_code,
482
+ "admission_source_code": admission_source_code,
483
+ "discharge_hour": discharge_hour,
484
+ "discharge_status": discharge_status,
485
+ "operating_provider": operating_provider,
486
+ "other_operating_provider": other_operating_provider,
487
+ "type_of_bill": type_of_bill,
488
+ "accident_state_or_province_code": accident_state_or_province_code,
489
+ "pre_encounter_patient_id": pre_encounter_patient_id,
490
+ "pre_encounter_appointment_ids": pre_encounter_appointment_ids,
491
+ "billing_provider": billing_provider,
492
+ "initial_referring_provider": initial_referring_provider,
493
+ "supervising_provider": supervising_provider,
494
+ "service_facility": service_facility,
495
+ "clinical_notes": clinical_notes,
496
+ "billing_notes": billing_notes,
497
+ "patient_histories": patient_histories,
498
+ "external_claim_submission": external_claim_submission,
499
+ "tag_ids": tag_ids,
500
+ "schema_instances": schema_instances,
501
+ "external_id": external_id,
502
+ "date_of_service": date_of_service,
503
+ "end_date_of_service": end_date_of_service,
504
+ "patient_authorized_release": patient_authorized_release,
505
+ "benefits_assigned_to_provider": benefits_assigned_to_provider,
506
+ "provider_accepts_assignment": provider_accepts_assignment,
507
+ "appointment_type": appointment_type,
508
+ "existing_medications": existing_medications,
509
+ "interventions": interventions,
510
+ "pay_to_address": pay_to_address,
511
+ "synchronicity": synchronicity,
512
+ "vitals": vitals,
513
+ "billable_status": billable_status,
514
+ "additional_information": additional_information,
515
+ "service_authorization_exception_code": service_authorization_exception_code,
516
+ "admission_date": admission_date,
517
+ "discharge_date": discharge_date,
518
+ "onset_of_current_illness_or_symptom_date": onset_of_current_illness_or_symptom_date,
519
+ "last_menstrual_period_date": last_menstrual_period_date,
520
+ "delay_reason_code": delay_reason_code
521
+ }.reject do |_k, v|
522
+ v == OMIT
523
+ end
524
+ end
525
+
526
+ # Deserialize a JSON object to an instance of
527
+ # UniversalEncounterCreateFromPreEncounter
528
+ #
529
+ # @param json_object [String]
530
+ # @return [CandidApiClient::EncountersUniversal::Types::UniversalEncounterCreateFromPreEncounter]
531
+ def self.from_json(json_object:)
532
+ struct = JSON.parse(json_object, object_class: OpenStruct)
533
+ parsed_json = JSON.parse(json_object)
534
+ submission_expectation = struct["submission_expectation"]
535
+ if parsed_json["rendering_provider"].nil?
536
+ rendering_provider = nil
537
+ else
538
+ rendering_provider = parsed_json["rendering_provider"].to_json
539
+ rendering_provider = CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.from_json(json_object: rendering_provider)
540
+ end
541
+ if parsed_json["health_care_code_information"].nil?
542
+ health_care_code_information = nil
543
+ else
544
+ health_care_code_information = parsed_json["health_care_code_information"].to_json
545
+ health_care_code_information = CandidApiClient::HealthCareCodeInformation::V1::Types::HealthCareCodeInformationCreate.from_json(json_object: health_care_code_information)
546
+ end
547
+ place_of_service_code = struct["place_of_service_code"]
548
+ service_lines = parsed_json["service_lines"]&.map do |item|
549
+ item = item.to_json
550
+ CandidApiClient::ServiceLines::V2::Types::UniversalServiceLineCreate.from_json(json_object: item)
551
+ end
552
+ if parsed_json["attending_provider"].nil?
553
+ attending_provider = nil
554
+ else
555
+ attending_provider = parsed_json["attending_provider"].to_json
556
+ attending_provider = CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.from_json(json_object: attending_provider)
557
+ end
558
+ admission_hour = struct["admission_hour"]
559
+ admission_type_code = struct["admission_type_code"]
560
+ admission_source_code = struct["admission_source_code"]
561
+ discharge_hour = struct["discharge_hour"]
562
+ discharge_status = struct["discharge_status"]
563
+ if parsed_json["operating_provider"].nil?
564
+ operating_provider = nil
565
+ else
566
+ operating_provider = parsed_json["operating_provider"].to_json
567
+ operating_provider = CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.from_json(json_object: operating_provider)
568
+ end
569
+ if parsed_json["other_operating_provider"].nil?
570
+ other_operating_provider = nil
571
+ else
572
+ other_operating_provider = parsed_json["other_operating_provider"].to_json
573
+ other_operating_provider = CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.from_json(json_object: other_operating_provider)
574
+ end
575
+ if parsed_json["type_of_bill"].nil?
576
+ type_of_bill = nil
577
+ else
578
+ type_of_bill = parsed_json["type_of_bill"].to_json
579
+ type_of_bill = CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate.from_json(json_object: type_of_bill)
580
+ end
581
+ accident_state_or_province_code = struct["accident_state_or_province_code"]
582
+ pre_encounter_patient_id = struct["pre_encounter_patient_id"]
583
+ pre_encounter_appointment_ids = struct["pre_encounter_appointment_ids"]
584
+ if parsed_json["billing_provider"].nil?
585
+ billing_provider = nil
586
+ else
587
+ billing_provider = parsed_json["billing_provider"].to_json
588
+ billing_provider = CandidApiClient::EncounterProviders::V2::Types::BillingProvider.from_json(json_object: billing_provider)
589
+ end
590
+ if parsed_json["initial_referring_provider"].nil?
591
+ initial_referring_provider = nil
592
+ else
593
+ initial_referring_provider = parsed_json["initial_referring_provider"].to_json
594
+ initial_referring_provider = CandidApiClient::EncounterProviders::V2::Types::InitialReferringProvider.from_json(json_object: initial_referring_provider)
595
+ end
596
+ if parsed_json["supervising_provider"].nil?
597
+ supervising_provider = nil
598
+ else
599
+ supervising_provider = parsed_json["supervising_provider"].to_json
600
+ supervising_provider = CandidApiClient::EncounterProviders::V2::Types::SupervisingProvider.from_json(json_object: supervising_provider)
601
+ end
602
+ if parsed_json["service_facility"].nil?
603
+ service_facility = nil
604
+ else
605
+ service_facility = parsed_json["service_facility"].to_json
606
+ service_facility = CandidApiClient::ServiceFacility::Types::EncounterServiceFacilityBase.from_json(json_object: service_facility)
607
+ end
608
+ clinical_notes = parsed_json["clinical_notes"]&.map do |item|
609
+ item = item.to_json
610
+ CandidApiClient::Encounters::V4::Types::ClinicalNoteCategoryCreate.from_json(json_object: item)
611
+ end
612
+ billing_notes = parsed_json["billing_notes"]&.map do |item|
613
+ item = item.to_json
614
+ CandidApiClient::BillingNotes::V2::Types::BillingNoteBase.from_json(json_object: item)
615
+ end
616
+ patient_histories = parsed_json["patient_histories"]&.map do |item|
617
+ item = item.to_json
618
+ CandidApiClient::Encounters::V4::Types::PatientHistoryCategory.from_json(json_object: item)
619
+ end
620
+ if parsed_json["external_claim_submission"].nil?
621
+ external_claim_submission = nil
622
+ else
623
+ external_claim_submission = parsed_json["external_claim_submission"].to_json
624
+ external_claim_submission = CandidApiClient::ClaimSubmission::V1::Types::ExternalClaimSubmissionCreate.from_json(json_object: external_claim_submission)
625
+ end
626
+ tag_ids = struct["tag_ids"]
627
+ schema_instances = parsed_json["schema_instances"]&.map do |item|
628
+ item = item.to_json
629
+ CandidApiClient::CustomSchemas::V1::Types::SchemaInstance.from_json(json_object: item)
630
+ end
631
+ external_id = struct["external_id"]
632
+ date_of_service = (Date.parse(parsed_json["date_of_service"]) unless parsed_json["date_of_service"].nil?)
633
+ end_date_of_service = unless parsed_json["end_date_of_service"].nil?
634
+ Date.parse(parsed_json["end_date_of_service"])
635
+ end
636
+ patient_authorized_release = struct["patient_authorized_release"]
637
+ benefits_assigned_to_provider = struct["benefits_assigned_to_provider"]
638
+ provider_accepts_assignment = struct["provider_accepts_assignment"]
639
+ appointment_type = struct["appointment_type"]
640
+ existing_medications = parsed_json["existing_medications"]&.map do |item|
641
+ item = item.to_json
642
+ CandidApiClient::Encounters::V4::Types::Medication.from_json(json_object: item)
643
+ end
644
+ interventions = parsed_json["interventions"]&.map do |item|
645
+ item = item.to_json
646
+ CandidApiClient::Encounters::V4::Types::Intervention.from_json(json_object: item)
647
+ end
648
+ if parsed_json["pay_to_address"].nil?
649
+ pay_to_address = nil
650
+ else
651
+ pay_to_address = parsed_json["pay_to_address"].to_json
652
+ pay_to_address = CandidApiClient::Commons::Types::StreetAddressLongZip.from_json(json_object: pay_to_address)
653
+ end
654
+ synchronicity = struct["synchronicity"]
655
+ if parsed_json["vitals"].nil?
656
+ vitals = nil
657
+ else
658
+ vitals = parsed_json["vitals"].to_json
659
+ vitals = CandidApiClient::Encounters::V4::Types::Vitals.from_json(json_object: vitals)
660
+ end
661
+ billable_status = struct["billable_status"]
662
+ additional_information = struct["additional_information"]
663
+ service_authorization_exception_code = struct["service_authorization_exception_code"]
664
+ admission_date = (Date.parse(parsed_json["admission_date"]) unless parsed_json["admission_date"].nil?)
665
+ discharge_date = (Date.parse(parsed_json["discharge_date"]) unless parsed_json["discharge_date"].nil?)
666
+ onset_of_current_illness_or_symptom_date = unless parsed_json["onset_of_current_illness_or_symptom_date"].nil?
667
+ Date.parse(parsed_json["onset_of_current_illness_or_symptom_date"])
668
+ end
669
+ last_menstrual_period_date = unless parsed_json["last_menstrual_period_date"].nil?
670
+ Date.parse(parsed_json["last_menstrual_period_date"])
671
+ end
672
+ delay_reason_code = struct["delay_reason_code"]
673
+ new(
674
+ submission_expectation: submission_expectation,
675
+ rendering_provider: rendering_provider,
676
+ health_care_code_information: health_care_code_information,
677
+ place_of_service_code: place_of_service_code,
678
+ service_lines: service_lines,
679
+ attending_provider: attending_provider,
680
+ admission_hour: admission_hour,
681
+ admission_type_code: admission_type_code,
682
+ admission_source_code: admission_source_code,
683
+ discharge_hour: discharge_hour,
684
+ discharge_status: discharge_status,
685
+ operating_provider: operating_provider,
686
+ other_operating_provider: other_operating_provider,
687
+ type_of_bill: type_of_bill,
688
+ accident_state_or_province_code: accident_state_or_province_code,
689
+ pre_encounter_patient_id: pre_encounter_patient_id,
690
+ pre_encounter_appointment_ids: pre_encounter_appointment_ids,
691
+ billing_provider: billing_provider,
692
+ initial_referring_provider: initial_referring_provider,
693
+ supervising_provider: supervising_provider,
694
+ service_facility: service_facility,
695
+ clinical_notes: clinical_notes,
696
+ billing_notes: billing_notes,
697
+ patient_histories: patient_histories,
698
+ external_claim_submission: external_claim_submission,
699
+ tag_ids: tag_ids,
700
+ schema_instances: schema_instances,
701
+ external_id: external_id,
702
+ date_of_service: date_of_service,
703
+ end_date_of_service: end_date_of_service,
704
+ patient_authorized_release: patient_authorized_release,
705
+ benefits_assigned_to_provider: benefits_assigned_to_provider,
706
+ provider_accepts_assignment: provider_accepts_assignment,
707
+ appointment_type: appointment_type,
708
+ existing_medications: existing_medications,
709
+ interventions: interventions,
710
+ pay_to_address: pay_to_address,
711
+ synchronicity: synchronicity,
712
+ vitals: vitals,
713
+ billable_status: billable_status,
714
+ additional_information: additional_information,
715
+ service_authorization_exception_code: service_authorization_exception_code,
716
+ admission_date: admission_date,
717
+ discharge_date: discharge_date,
718
+ onset_of_current_illness_or_symptom_date: onset_of_current_illness_or_symptom_date,
719
+ last_menstrual_period_date: last_menstrual_period_date,
720
+ delay_reason_code: delay_reason_code,
721
+ additional_properties: struct
722
+ )
723
+ end
724
+
725
+ # Serialize an instance of UniversalEncounterCreateFromPreEncounter to a JSON
726
+ # object
727
+ #
728
+ # @return [String]
729
+ def to_json(*_args)
730
+ @_field_set&.to_json
731
+ end
732
+
733
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
734
+ # hash and check each fields type against the current object's property
735
+ # definitions.
736
+ #
737
+ # @param obj [Object]
738
+ # @return [Void]
739
+ def self.validate_raw(obj:)
740
+ obj.submission_expectation.is_a?(CandidApiClient::Encounters::V4::Types::EncounterSubmissionExpectation) != false || raise("Passed value for field obj.submission_expectation is not the expected type, validation failed.")
741
+ obj.rendering_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.validate_raw(obj: obj.rendering_provider)
742
+ obj.health_care_code_information.nil? || CandidApiClient::HealthCareCodeInformation::V1::Types::HealthCareCodeInformationCreate.validate_raw(obj: obj.health_care_code_information)
743
+ 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.")
744
+ obj.service_lines&.is_a?(Array) != false || raise("Passed value for field obj.service_lines is not the expected type, validation failed.")
745
+ obj.attending_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.validate_raw(obj: obj.attending_provider)
746
+ obj.admission_hour&.is_a?(Integer) != false || raise("Passed value for field obj.admission_hour is not the expected type, validation failed.")
747
+ obj.admission_type_code&.is_a?(CandidApiClient::X12::V1::Types::TypeOfAdmissionOrVisitCode) != false || raise("Passed value for field obj.admission_type_code is not the expected type, validation failed.")
748
+ obj.admission_source_code&.is_a?(CandidApiClient::X12::V1::Types::PointOfOriginForAdmissionOrVisitCode) != false || raise("Passed value for field obj.admission_source_code is not the expected type, validation failed.")
749
+ obj.discharge_hour&.is_a?(Integer) != false || raise("Passed value for field obj.discharge_hour is not the expected type, validation failed.")
750
+ obj.discharge_status&.is_a?(CandidApiClient::X12::V1::Types::PatientDischargeStatusCode) != false || raise("Passed value for field obj.discharge_status is not the expected type, validation failed.")
751
+ obj.operating_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.validate_raw(obj: obj.operating_provider)
752
+ obj.other_operating_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::RenderingProvider.validate_raw(obj: obj.other_operating_provider)
753
+ obj.type_of_bill.nil? || CandidApiClient::X12::V1::Types::TypeOfBillCompositeUpdate.validate_raw(obj: obj.type_of_bill)
754
+ obj.accident_state_or_province_code&.is_a?(CandidApiClient::Commons::Types::State) != false || raise("Passed value for field obj.accident_state_or_province_code is not the expected type, validation failed.")
755
+ obj.pre_encounter_patient_id.is_a?(String) != false || raise("Passed value for field obj.pre_encounter_patient_id is not the expected type, validation failed.")
756
+ obj.pre_encounter_appointment_ids.is_a?(Array) != false || raise("Passed value for field obj.pre_encounter_appointment_ids is not the expected type, validation failed.")
757
+ CandidApiClient::EncounterProviders::V2::Types::BillingProvider.validate_raw(obj: obj.billing_provider)
758
+ obj.initial_referring_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::InitialReferringProvider.validate_raw(obj: obj.initial_referring_provider)
759
+ obj.supervising_provider.nil? || CandidApiClient::EncounterProviders::V2::Types::SupervisingProvider.validate_raw(obj: obj.supervising_provider)
760
+ obj.service_facility.nil? || CandidApiClient::ServiceFacility::Types::EncounterServiceFacilityBase.validate_raw(obj: obj.service_facility)
761
+ obj.clinical_notes&.is_a?(Array) != false || raise("Passed value for field obj.clinical_notes is not the expected type, validation failed.")
762
+ obj.billing_notes&.is_a?(Array) != false || raise("Passed value for field obj.billing_notes is not the expected type, validation failed.")
763
+ obj.patient_histories&.is_a?(Array) != false || raise("Passed value for field obj.patient_histories is not the expected type, validation failed.")
764
+ obj.external_claim_submission.nil? || CandidApiClient::ClaimSubmission::V1::Types::ExternalClaimSubmissionCreate.validate_raw(obj: obj.external_claim_submission)
765
+ obj.tag_ids&.is_a?(Array) != false || raise("Passed value for field obj.tag_ids is not the expected type, validation failed.")
766
+ obj.schema_instances&.is_a?(Array) != false || raise("Passed value for field obj.schema_instances is not the expected type, validation failed.")
767
+ obj.external_id.is_a?(String) != false || raise("Passed value for field obj.external_id is not the expected type, validation failed.")
768
+ obj.date_of_service&.is_a?(Date) != false || raise("Passed value for field obj.date_of_service is not the expected type, validation failed.")
769
+ obj.end_date_of_service&.is_a?(Date) != false || raise("Passed value for field obj.end_date_of_service is not the expected type, validation failed.")
770
+ obj.patient_authorized_release.is_a?(Boolean) != false || raise("Passed value for field obj.patient_authorized_release is not the expected type, validation failed.")
771
+ obj.benefits_assigned_to_provider.is_a?(Boolean) != false || raise("Passed value for field obj.benefits_assigned_to_provider is not the expected type, validation failed.")
772
+ obj.provider_accepts_assignment.is_a?(Boolean) != false || raise("Passed value for field obj.provider_accepts_assignment is not the expected type, validation failed.")
773
+ obj.appointment_type&.is_a?(String) != false || raise("Passed value for field obj.appointment_type is not the expected type, validation failed.")
774
+ obj.existing_medications&.is_a?(Array) != false || raise("Passed value for field obj.existing_medications is not the expected type, validation failed.")
775
+ obj.interventions&.is_a?(Array) != false || raise("Passed value for field obj.interventions is not the expected type, validation failed.")
776
+ obj.pay_to_address.nil? || CandidApiClient::Commons::Types::StreetAddressLongZip.validate_raw(obj: obj.pay_to_address)
777
+ obj.synchronicity&.is_a?(CandidApiClient::Encounters::V4::Types::SynchronicityType) != false || raise("Passed value for field obj.synchronicity is not the expected type, validation failed.")
778
+ obj.vitals.nil? || CandidApiClient::Encounters::V4::Types::Vitals.validate_raw(obj: obj.vitals)
779
+ obj.billable_status.is_a?(CandidApiClient::Encounters::V4::Types::BillableStatusType) != false || raise("Passed value for field obj.billable_status is not the expected type, validation failed.")
780
+ obj.additional_information&.is_a?(String) != false || raise("Passed value for field obj.additional_information is not the expected type, validation failed.")
781
+ obj.service_authorization_exception_code&.is_a?(CandidApiClient::Encounters::V4::Types::ServiceAuthorizationExceptionCode) != false || raise("Passed value for field obj.service_authorization_exception_code is not the expected type, validation failed.")
782
+ obj.admission_date&.is_a?(Date) != false || raise("Passed value for field obj.admission_date is not the expected type, validation failed.")
783
+ obj.discharge_date&.is_a?(Date) != false || raise("Passed value for field obj.discharge_date is not the expected type, validation failed.")
784
+ obj.onset_of_current_illness_or_symptom_date&.is_a?(Date) != false || raise("Passed value for field obj.onset_of_current_illness_or_symptom_date is not the expected type, validation failed.")
785
+ obj.last_menstrual_period_date&.is_a?(Date) != false || raise("Passed value for field obj.last_menstrual_period_date is not the expected type, validation failed.")
786
+ obj.delay_reason_code&.is_a?(CandidApiClient::Commons::Types::DelayReasonCode) != false || raise("Passed value for field obj.delay_reason_code is not the expected type, validation failed.")
787
+ end
788
+ end
789
+ end
790
+ end
791
+ end