candidhealth 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. checksums.yaml +7 -0
  2. data/lib/candidhealth/auth/client.rb +28 -0
  3. data/lib/candidhealth/auth/v_2/client.rb +90 -0
  4. data/lib/candidhealth/auth/v_2/types/auth_get_token_request.rb +54 -0
  5. data/lib/candidhealth/auth/v_2/types/auth_get_token_response.rb +59 -0
  6. data/lib/candidhealth/auth/v_2/types/too_many_requests_error_type.rb +49 -0
  7. data/lib/candidhealth/billing_notes/client.rb +28 -0
  8. data/lib/candidhealth/billing_notes/v_2/client.rb +76 -0
  9. data/lib/candidhealth/billing_notes/v_2/types/billing_note.rb +89 -0
  10. data/lib/candidhealth/billing_notes/v_2/types/billing_note_base.rb +49 -0
  11. data/lib/candidhealth/billing_notes/v_2/types/billing_note_id.rb +9 -0
  12. data/lib/candidhealth/claim_submission/v_1/types/claim_frequency_type_code.rb +14 -0
  13. data/lib/candidhealth/claim_submission/v_1/types/claim_submission_record_create.rb +68 -0
  14. data/lib/candidhealth/claim_submission/v_1/types/external_claim_submission_create.rb +75 -0
  15. data/lib/candidhealth/claims/types/claim.rb +98 -0
  16. data/lib/candidhealth/claims/types/claim_status.rb +23 -0
  17. data/lib/candidhealth/commons/types/claim_adjustment_group_codes.rb +17 -0
  18. data/lib/candidhealth/commons/types/claim_id.rb +7 -0
  19. data/lib/candidhealth/commons/types/claim_submission_payer_responsibility_type.rb +10 -0
  20. data/lib/candidhealth/commons/types/date.rb +7 -0
  21. data/lib/candidhealth/commons/types/date_range_optional_end.rb +53 -0
  22. data/lib/candidhealth/commons/types/decimal.rb +7 -0
  23. data/lib/candidhealth/commons/types/delay_reason_code.rb +23 -0
  24. data/lib/candidhealth/commons/types/email.rb +7 -0
  25. data/lib/candidhealth/commons/types/emr_payer_crosswalk.rb +10 -0
  26. data/lib/candidhealth/commons/types/encounter_external_id.rb +7 -0
  27. data/lib/candidhealth/commons/types/encounter_id.rb +7 -0
  28. data/lib/candidhealth/commons/types/entity_not_found_error_message.rb +47 -0
  29. data/lib/candidhealth/commons/types/error_message.rb +7 -0
  30. data/lib/candidhealth/commons/types/facility_type_code.rb +61 -0
  31. data/lib/candidhealth/commons/types/http_service_unavailable_error_message.rb +47 -0
  32. data/lib/candidhealth/commons/types/insurance_type_code.rb +79 -0
  33. data/lib/candidhealth/commons/types/invoice_id.rb +7 -0
  34. data/lib/candidhealth/commons/types/link_url.rb +7 -0
  35. data/lib/candidhealth/commons/types/npi.rb +7 -0
  36. data/lib/candidhealth/commons/types/organization_id.rb +7 -0
  37. data/lib/candidhealth/commons/types/organization_not_authorized_error_message.rb +47 -0
  38. data/lib/candidhealth/commons/types/page_token.rb +7 -0
  39. data/lib/candidhealth/commons/types/patient_external_id.rb +7 -0
  40. data/lib/candidhealth/commons/types/patient_relationship_to_insured_code_all.rb +32 -0
  41. data/lib/candidhealth/commons/types/phone_number.rb +53 -0
  42. data/lib/candidhealth/commons/types/phone_number_type.rb +11 -0
  43. data/lib/candidhealth/commons/types/procedure_modifier.rb +395 -0
  44. data/lib/candidhealth/commons/types/provider_id.rb +7 -0
  45. data/lib/candidhealth/commons/types/region_national.rb +41 -0
  46. data/lib/candidhealth/commons/types/region_states.rb +48 -0
  47. data/lib/candidhealth/commons/types/regions.rb +92 -0
  48. data/lib/candidhealth/commons/types/removable_date_range_optional_end.rb +90 -0
  49. data/lib/candidhealth/commons/types/request_validation_error.rb +52 -0
  50. data/lib/candidhealth/commons/types/resource_page.rb +53 -0
  51. data/lib/candidhealth/commons/types/service_line_id.rb +7 -0
  52. data/lib/candidhealth/commons/types/service_line_units.rb +10 -0
  53. data/lib/candidhealth/commons/types/sort_direction.rb +10 -0
  54. data/lib/candidhealth/commons/types/source_of_payment_code.rb +31 -0
  55. data/lib/candidhealth/commons/types/state.rb +70 -0
  56. data/lib/candidhealth/commons/types/street_address_base.rb +75 -0
  57. data/lib/candidhealth/commons/types/street_address_long_zip.rb +82 -0
  58. data/lib/candidhealth/commons/types/street_address_short_zip.rb +82 -0
  59. data/lib/candidhealth/commons/types/task_assignment_id.rb +7 -0
  60. data/lib/candidhealth/commons/types/task_id.rb +7 -0
  61. data/lib/candidhealth/commons/types/task_note_id.rb +7 -0
  62. data/lib/candidhealth/commons/types/tax_id.rb +7 -0
  63. data/lib/candidhealth/commons/types/unauthorized_error_message.rb +47 -0
  64. data/lib/candidhealth/commons/types/unprocessable_entity_error_message.rb +47 -0
  65. data/lib/candidhealth/commons/types/updates_disabled_due_to_external_system_integration_error_message.rb +47 -0
  66. data/lib/candidhealth/commons/types/user_id.rb +7 -0
  67. data/lib/candidhealth/commons/types/work_queue_id.rb +7 -0
  68. data/lib/candidhealth/contracts/client.rb +28 -0
  69. data/lib/candidhealth/contracts/v_2/client.rb +336 -0
  70. data/lib/candidhealth/contracts/v_2/types/authorized_signatory.rb +83 -0
  71. data/lib/candidhealth/contracts/v_2/types/authorized_signatory_update.rb +92 -0
  72. data/lib/candidhealth/contracts/v_2/types/contract.rb +165 -0
  73. data/lib/candidhealth/contracts/v_2/types/contract_base.rb +128 -0
  74. data/lib/candidhealth/contracts/v_2/types/contract_id.rb +9 -0
  75. data/lib/candidhealth/contracts/v_2/types/contract_is_linked_to_fee_schedule_error.rb +49 -0
  76. data/lib/candidhealth/contracts/v_2/types/contract_status.rb +13 -0
  77. data/lib/candidhealth/contracts/v_2/types/contract_with_providers.rb +177 -0
  78. data/lib/candidhealth/contracts/v_2/types/contracting_provider_id.rb +9 -0
  79. data/lib/candidhealth/contracts/v_2/types/contracts_page.rb +65 -0
  80. data/lib/candidhealth/contracts/v_2/types/date_update.rb +92 -0
  81. data/lib/candidhealth/contracts/v_2/types/insurance_types.rb +103 -0
  82. data/lib/candidhealth/contracts/v_2/types/regions_update.rb +92 -0
  83. data/lib/candidhealth/contracts/v_2/types/rendering_providerid.rb +9 -0
  84. data/lib/candidhealth/diagnoses/types/diagnosis.rb +106 -0
  85. data/lib/candidhealth/diagnoses/types/diagnosis_create.rb +72 -0
  86. data/lib/candidhealth/diagnoses/types/diagnosis_id.rb +7 -0
  87. data/lib/candidhealth/diagnoses/types/diagnosis_type_code.rb +18 -0
  88. data/lib/candidhealth/diagnoses/types/standalone_diagnosis_create.rb +78 -0
  89. data/lib/candidhealth/eligibility/client.rb +28 -0
  90. data/lib/candidhealth/eligibility/v_2/client.rb +136 -0
  91. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider.rb +104 -0
  92. data/lib/candidhealth/encounter_providers/v_2/types/encounter_provider.rb +103 -0
  93. data/lib/candidhealth/encounter_providers/v_2/types/encounter_provider_base.rb +60 -0
  94. data/lib/candidhealth/encounter_providers/v_2/types/provider_id.rb +9 -0
  95. data/lib/candidhealth/encounter_providers/v_2/types/referring_provider.rb +91 -0
  96. data/lib/candidhealth/encounter_providers/v_2/types/rendering_provider.rb +91 -0
  97. data/lib/candidhealth/encounters/client.rb +28 -0
  98. data/lib/candidhealth/encounters/v_4/client.rb +1125 -0
  99. data/lib/candidhealth/encounters/v_4/types/billable_status_type.rb +12 -0
  100. data/lib/candidhealth/encounters/v_4/types/cash_pay_payer_error_message.rb +49 -0
  101. data/lib/candidhealth/encounters/v_4/types/clinical_note.rb +67 -0
  102. data/lib/candidhealth/encounters/v_4/types/clinical_note_category.rb +64 -0
  103. data/lib/candidhealth/encounters/v_4/types/clinical_note_category_create.rb +59 -0
  104. data/lib/candidhealth/encounters/v_4/types/coding_attribution_type.rb +14 -0
  105. data/lib/candidhealth/encounters/v_4/types/encounter.rb +515 -0
  106. data/lib/candidhealth/encounters/v_4/types/encounter_base.rb +274 -0
  107. data/lib/candidhealth/encounters/v_4/types/encounter_external_id_uniqueness_error_type.rb +50 -0
  108. data/lib/candidhealth/encounters/v_4/types/encounter_guarantor_missing_contact_info_error_type.rb +49 -0
  109. data/lib/candidhealth/encounters/v_4/types/encounter_owner_of_next_action_type.rb +14 -0
  110. data/lib/candidhealth/encounters/v_4/types/encounter_page.rb +65 -0
  111. data/lib/candidhealth/encounters/v_4/types/encounter_patient_control_number_uniqueness_error_type.rb +49 -0
  112. data/lib/candidhealth/encounters/v_4/types/encounter_sort_options.rb +14 -0
  113. data/lib/candidhealth/encounters/v_4/types/encounter_submission_origin_type.rb +12 -0
  114. data/lib/candidhealth/encounters/v_4/types/intake_follow_up.rb +60 -0
  115. data/lib/candidhealth/encounters/v_4/types/intake_follow_up_id.rb +9 -0
  116. data/lib/candidhealth/encounters/v_4/types/intake_question.rb +64 -0
  117. data/lib/candidhealth/encounters/v_4/types/intake_question_id.rb +9 -0
  118. data/lib/candidhealth/encounters/v_4/types/intake_response_and_follow_ups.rb +58 -0
  119. data/lib/candidhealth/encounters/v_4/types/intervention.rb +87 -0
  120. data/lib/candidhealth/encounters/v_4/types/intervention_category.rb +14 -0
  121. data/lib/candidhealth/encounters/v_4/types/lab.rb +60 -0
  122. data/lib/candidhealth/encounters/v_4/types/lab_code_type.rb +12 -0
  123. data/lib/candidhealth/encounters/v_4/types/medication.rb +84 -0
  124. data/lib/candidhealth/encounters/v_4/types/note_category.rb +24 -0
  125. data/lib/candidhealth/encounters/v_4/types/patient_history_category.rb +59 -0
  126. data/lib/candidhealth/encounters/v_4/types/patient_history_category_enum.rb +14 -0
  127. data/lib/candidhealth/encounters/v_4/types/prior_authorization_number.rb +9 -0
  128. data/lib/candidhealth/encounters/v_4/types/responsible_party_type.rb +13 -0
  129. data/lib/candidhealth/encounters/v_4/types/rx_cui.rb +9 -0
  130. data/lib/candidhealth/encounters/v_4/types/service_authorization_exception_code.rb +19 -0
  131. data/lib/candidhealth/encounters/v_4/types/synchronicity_type.rb +12 -0
  132. data/lib/candidhealth/encounters/v_4/types/vitals.rb +78 -0
  133. data/lib/candidhealth/era/types/era.rb +59 -0
  134. data/lib/candidhealth/era/types/era_base.rb +53 -0
  135. data/lib/candidhealth/era/types/era_id.rb +7 -0
  136. data/lib/candidhealth/era/types/era_not_fully_processed_error_message.rb +53 -0
  137. data/lib/candidhealth/era_commons/types/claim_status_code_create.rb +18 -0
  138. data/lib/candidhealth/expected_network_status/client.rb +31 -0
  139. data/lib/candidhealth/expected_network_status/v_1/client.rb +112 -0
  140. data/lib/candidhealth/expected_network_status/v_1/types/expected_network_status.rb +13 -0
  141. data/lib/candidhealth/expected_network_status/v_1/types/expected_network_status_response.rb +66 -0
  142. data/lib/candidhealth/expected_network_status/v_2/client.rb +183 -0
  143. data/lib/candidhealth/expected_network_status/v_2/types/compute_all_in_network_providers_request.rb +119 -0
  144. data/lib/candidhealth/expected_network_status/v_2/types/compute_all_in_network_providers_response.rb +65 -0
  145. data/lib/candidhealth/expected_network_status/v_2/types/compute_all_in_network_rendering_providers_result.rb +107 -0
  146. data/lib/candidhealth/expected_network_status/v_2/types/expected_network_status_check_error_message.rb +49 -0
  147. data/lib/candidhealth/expected_network_status/v_2/types/expected_network_status_request_v_2.rb +119 -0
  148. data/lib/candidhealth/expected_network_status/v_2/types/expected_network_status_response_v_2.rb +62 -0
  149. data/lib/candidhealth/expected_network_status/v_2/types/expected_network_status_subscriber_information.rb +67 -0
  150. data/lib/candidhealth/expected_network_status/v_2/types/expected_network_status_v_2.rb +107 -0
  151. data/lib/candidhealth/expected_network_status/v_2/types/explanation.rb +18 -0
  152. data/lib/candidhealth/expected_network_status/v_2/types/in_network_rendering_providers_detail.rb +67 -0
  153. data/lib/candidhealth/expected_network_status/v_2/types/in_network_status.rb +57 -0
  154. data/lib/candidhealth/expected_network_status/v_2/types/indeterminate_network_status.rb +74 -0
  155. data/lib/candidhealth/expected_network_status/v_2/types/insurance_type.rb +62 -0
  156. data/lib/candidhealth/expected_network_status/v_2/types/insurance_type_codes.rb +103 -0
  157. data/lib/candidhealth/expected_network_status/v_2/types/line_of_business.rb +13 -0
  158. data/lib/candidhealth/expected_network_status/v_2/types/network_status_check_id.rb +9 -0
  159. data/lib/candidhealth/expected_network_status/v_2/types/out_of_network_status.rb +67 -0
  160. data/lib/candidhealth/expected_network_status/v_2/types/service_type.rb +51 -0
  161. data/lib/candidhealth/exports/client.rb +28 -0
  162. data/lib/candidhealth/exports/v_3/client.rb +102 -0
  163. data/lib/candidhealth/exports/v_3/types/get_exports_response.rb +75 -0
  164. data/lib/candidhealth/financials/types/account_type.rb +10 -0
  165. data/lib/candidhealth/financials/types/allocation.rb +58 -0
  166. data/lib/candidhealth/financials/types/allocation_create.rb +60 -0
  167. data/lib/candidhealth/financials/types/allocation_target.rb +118 -0
  168. data/lib/candidhealth/financials/types/allocation_target_create.rb +118 -0
  169. data/lib/candidhealth/financials/types/billing_provider_allocation_target.rb +48 -0
  170. data/lib/candidhealth/financials/types/claim_allocation_target.rb +54 -0
  171. data/lib/candidhealth/financials/types/invoice_update.rb +90 -0
  172. data/lib/candidhealth/financials/types/note_update.rb +89 -0
  173. data/lib/candidhealth/financials/types/patient_transaction_source.rb +15 -0
  174. data/lib/candidhealth/financials/types/refund_reason.rb +9 -0
  175. data/lib/candidhealth/financials/types/refund_reason_update.rb +90 -0
  176. data/lib/candidhealth/financials/types/service_line_allocation_target.rb +61 -0
  177. data/lib/candidhealth/guarantor/client.rb +28 -0
  178. data/lib/candidhealth/guarantor/v_1/client.rb +224 -0
  179. data/lib/candidhealth/guarantor/v_1/types/encounter_has_existing_guarantor_error_type.rb +49 -0
  180. data/lib/candidhealth/guarantor/v_1/types/guarantor.rb +121 -0
  181. data/lib/candidhealth/guarantor/v_1/types/guarantor_base.rb +84 -0
  182. data/lib/candidhealth/guarantor/v_1/types/guarantor_create.rb +114 -0
  183. data/lib/candidhealth/guarantor/v_1/types/guarantor_id.rb +9 -0
  184. data/lib/candidhealth/identifiers/types/identifier.rb +82 -0
  185. data/lib/candidhealth/identifiers/types/identifier_base.rb +71 -0
  186. data/lib/candidhealth/identifiers/types/identifier_code.rb +10 -0
  187. data/lib/candidhealth/identifiers/types/identifier_create.rb +71 -0
  188. data/lib/candidhealth/identifiers/types/identifier_id.rb +7 -0
  189. data/lib/candidhealth/identifiers/types/identifier_update.rb +83 -0
  190. data/lib/candidhealth/identifiers/types/identifier_value.rb +92 -0
  191. data/lib/candidhealth/identifiers/types/medicaid_provider_identifier.rb +53 -0
  192. data/lib/candidhealth/identifiers/types/medicare_provider_identifier.rb +53 -0
  193. data/lib/candidhealth/identifiers/types/updatable_identifier.rb +105 -0
  194. data/lib/candidhealth/individual/types/gender.rb +13 -0
  195. data/lib/candidhealth/individual/types/individual_base.rb +58 -0
  196. data/lib/candidhealth/individual/types/individual_id.rb +7 -0
  197. data/lib/candidhealth/individual/types/patient.rb +126 -0
  198. data/lib/candidhealth/individual/types/patient_base.rb +89 -0
  199. data/lib/candidhealth/individual/types/patient_create.rb +119 -0
  200. data/lib/candidhealth/individual/types/subscriber.rb +110 -0
  201. data/lib/candidhealth/individual/types/subscriber_base.rb +91 -0
  202. data/lib/candidhealth/individual/types/subscriber_create.rb +103 -0
  203. data/lib/candidhealth/insurance_adjudications/client.rb +28 -0
  204. data/lib/candidhealth/insurance_adjudications/v_1/client.rb +143 -0
  205. data/lib/candidhealth/insurance_adjudications/v_1/types/claim_adjudication.rb +101 -0
  206. data/lib/candidhealth/insurance_adjudications/v_1/types/claim_adjudication_create.rb +95 -0
  207. data/lib/candidhealth/insurance_adjudications/v_1/types/insurance_adjudication.rb +99 -0
  208. data/lib/candidhealth/insurance_adjudications/v_1/types/insurance_adjudication_create.rb +109 -0
  209. data/lib/candidhealth/insurance_adjudications/v_1/types/insurance_adjudication_id.rb +9 -0
  210. data/lib/candidhealth/insurance_adjudications/v_1/types/service_line_adjudication.rb +112 -0
  211. data/lib/candidhealth/insurance_adjudications/v_1/types/service_line_adjudication_create.rb +105 -0
  212. data/lib/candidhealth/insurance_adjudications/v_1/types/service_line_adjudication_id.rb +9 -0
  213. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card.rb +123 -0
  214. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card_base.rb +73 -0
  215. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card_create.rb +123 -0
  216. data/lib/candidhealth/insurance_cards/v_2/types/insurance_card_id.rb +9 -0
  217. data/lib/candidhealth/insurance_payments/client.rb +28 -0
  218. data/lib/candidhealth/insurance_payments/v_1/client.rb +269 -0
  219. data/lib/candidhealth/insurance_payments/v_1/types/insurance_payment.rb +98 -0
  220. data/lib/candidhealth/insurance_payments/v_1/types/insurance_payment_create.rb +91 -0
  221. data/lib/candidhealth/insurance_payments/v_1/types/insurance_payment_id.rb +9 -0
  222. data/lib/candidhealth/insurance_payments/v_1/types/insurance_payment_sort_field.rb +13 -0
  223. data/lib/candidhealth/insurance_payments/v_1/types/insurance_payments_page.rb +65 -0
  224. data/lib/candidhealth/insurance_refunds/client.rb +28 -0
  225. data/lib/candidhealth/insurance_refunds/v_1/client.rb +280 -0
  226. data/lib/candidhealth/insurance_refunds/v_1/types/insurance_refund.rb +105 -0
  227. data/lib/candidhealth/insurance_refunds/v_1/types/insurance_refund_create.rb +98 -0
  228. data/lib/candidhealth/insurance_refunds/v_1/types/insurance_refund_id.rb +9 -0
  229. data/lib/candidhealth/insurance_refunds/v_1/types/insurance_refund_sort_field.rb +14 -0
  230. data/lib/candidhealth/insurance_refunds/v_1/types/insurance_refunds_page.rb +65 -0
  231. data/lib/candidhealth/invoices/types/invoice.rb +134 -0
  232. data/lib/candidhealth/invoices/types/invoice_item.rb +53 -0
  233. data/lib/candidhealth/invoices/types/invoice_status.rb +13 -0
  234. data/lib/candidhealth/organization_providers/client.rb +28 -0
  235. data/lib/candidhealth/organization_providers/v_2/types/address_type.rb +11 -0
  236. data/lib/candidhealth/organization_providers/v_2/types/employment_status.rb +12 -0
  237. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +78 -0
  238. data/lib/candidhealth/organization_providers/v_2/types/organization_provider.rb +159 -0
  239. data/lib/candidhealth/organization_providers/v_2/types/organization_provider_address.rb +61 -0
  240. data/lib/candidhealth/organization_providers/v_2/types/organization_provider_base.rb +132 -0
  241. data/lib/candidhealth/organization_providers/v_2/types/organization_provider_id.rb +9 -0
  242. data/lib/candidhealth/organization_providers/v_2/types/organization_provider_sort_options.rb +14 -0
  243. data/lib/candidhealth/organization_providers/v_2/types/provider_type.rb +12 -0
  244. data/lib/candidhealth/organization_providers/v_3/client.rb +239 -0
  245. data/lib/candidhealth/organization_providers/v_3/types/organization_provider_create_v_2.rb +147 -0
  246. data/lib/candidhealth/organization_providers/v_3/types/organization_provider_page_v_2.rb +65 -0
  247. data/lib/candidhealth/organization_providers/v_3/types/organization_provider_update_v_2.rb +143 -0
  248. data/lib/candidhealth/organization_providers/v_3/types/organization_provider_v_2.rb +154 -0
  249. data/lib/candidhealth/organization_service_facilities/client.rb +28 -0
  250. data/lib/candidhealth/organization_service_facilities/v_2/client.rb +256 -0
  251. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility.rb +134 -0
  252. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility_create.rb +127 -0
  253. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility_id.rb +9 -0
  254. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility_page.rb +65 -0
  255. data/lib/candidhealth/organization_service_facilities/v_2/types/organization_service_facility_update.rb +127 -0
  256. data/lib/candidhealth/organization_service_facilities/v_2/types/service_facility_mode.rb +12 -0
  257. data/lib/candidhealth/organization_service_facilities/v_2/types/service_facility_operational_status.rb +16 -0
  258. data/lib/candidhealth/organization_service_facilities/v_2/types/service_facility_physical_type.rb +24 -0
  259. data/lib/candidhealth/organization_service_facilities/v_2/types/service_facility_status.rb +13 -0
  260. data/lib/candidhealth/organization_service_facilities/v_2/types/service_facility_type.rb +133 -0
  261. data/lib/candidhealth/patient_payments/client.rb +28 -0
  262. data/lib/candidhealth/patient_payments/v_3/types/patient_payment.rb +130 -0
  263. data/lib/candidhealth/patient_payments/v_3/types/patient_payment_id.rb +9 -0
  264. data/lib/candidhealth/patient_payments/v_3/types/patient_payment_source.rb +19 -0
  265. data/lib/candidhealth/patient_payments/v_3/types/patient_payment_status.rb +21 -0
  266. data/lib/candidhealth/patient_payments/v_4/client.rb +304 -0
  267. data/lib/candidhealth/patient_payments/v_4/types/patient_payment.rb +120 -0
  268. data/lib/candidhealth/patient_payments/v_4/types/patient_payment_id.rb +9 -0
  269. data/lib/candidhealth/patient_payments/v_4/types/patient_payment_sort_field.rb +14 -0
  270. data/lib/candidhealth/patient_payments/v_4/types/patient_payments_page.rb +65 -0
  271. data/lib/candidhealth/patient_refunds/client.rb +28 -0
  272. data/lib/candidhealth/patient_refunds/v_1/client.rb +316 -0
  273. data/lib/candidhealth/patient_refunds/v_1/types/patient_refund.rb +127 -0
  274. data/lib/candidhealth/patient_refunds/v_1/types/patient_refund_id.rb +9 -0
  275. data/lib/candidhealth/patient_refunds/v_1/types/patient_refund_sort_field.rb +15 -0
  276. data/lib/candidhealth/patient_refunds/v_1/types/patient_refunds_page.rb +65 -0
  277. data/lib/candidhealth/payers/client.rb +28 -0
  278. data/lib/candidhealth/payers/v_3/client.rb +104 -0
  279. data/lib/candidhealth/payers/v_3/types/payer.rb +60 -0
  280. data/lib/candidhealth/payers/v_3/types/payer_id.rb +9 -0
  281. data/lib/candidhealth/payers/v_3/types/payer_identifier.rb +94 -0
  282. data/lib/candidhealth/payers/v_3/types/payer_info.rb +56 -0
  283. data/lib/candidhealth/payers/v_3/types/payer_name.rb +9 -0
  284. data/lib/candidhealth/payers/v_3/types/payer_page.rb +65 -0
  285. data/lib/candidhealth/payers/v_3/types/payer_uuid.rb +9 -0
  286. data/lib/candidhealth/remits/v_1/types/payee.rb +60 -0
  287. data/lib/candidhealth/remits/v_1/types/payee_identifier.rb +102 -0
  288. data/lib/candidhealth/service_facility/client.rb +89 -0
  289. data/lib/candidhealth/service_facility/types/encounter_service_facility.rb +77 -0
  290. data/lib/candidhealth/service_facility/types/encounter_service_facility_base.rb +72 -0
  291. data/lib/candidhealth/service_facility/types/service_facility_id.rb +7 -0
  292. data/lib/candidhealth/service_lines/v_2/types/denial_reason_content.rb +40 -0
  293. data/lib/candidhealth/service_lines/v_2/types/drug_identification.rb +86 -0
  294. data/lib/candidhealth/service_lines/v_2/types/measurement_unit_code.rb +15 -0
  295. data/lib/candidhealth/service_lines/v_2/types/service_id_qualifier.rb +17 -0
  296. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +225 -0
  297. data/lib/candidhealth/service_lines/v_2/types/service_line_adjustment.rb +79 -0
  298. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +120 -0
  299. data/lib/candidhealth/service_lines/v_2/types/service_line_denial_reason.rb +52 -0
  300. data/lib/candidhealth/service_lines/v_2/types/service_line_era_data.rb +62 -0
  301. data/lib/candidhealth/tags/types/tag.rb +65 -0
  302. data/lib/candidhealth/tags/types/tag_color_enum.rb +18 -0
  303. data/lib/candidhealth/tags/types/tag_create.rb +59 -0
  304. data/lib/candidhealth/tags/types/tag_id.rb +7 -0
  305. data/lib/candidhealth/tasks/client.rb +28 -0
  306. data/lib/candidhealth/tasks/commons/types/task_category.rb +50 -0
  307. data/lib/candidhealth/tasks/commons/types/task_status.rb +17 -0
  308. data/lib/candidhealth/tasks/commons/types/task_type.rb +22 -0
  309. data/lib/candidhealth/tasks/v_3/client.rb +259 -0
  310. data/lib/candidhealth/tasks/v_3/types/task.rb +170 -0
  311. data/lib/candidhealth/tasks/v_3/types/task_action.rb +66 -0
  312. data/lib/candidhealth/tasks/v_3/types/task_action_execution_method.rb +79 -0
  313. data/lib/candidhealth/tasks/v_3/types/task_action_type.rb +12 -0
  314. data/lib/candidhealth/tasks/v_3/types/task_actions.rb +53 -0
  315. data/lib/candidhealth/tasks/v_3/types/task_assignment.rb +56 -0
  316. data/lib/candidhealth/tasks/v_3/types/task_create_v_3.rb +95 -0
  317. data/lib/candidhealth/tasks/v_3/types/task_note.rb +79 -0
  318. data/lib/candidhealth/tasks/v_3/types/task_page.rb +65 -0
  319. data/lib/candidhealth/tasks/v_3/types/task_sort_options.rb +32 -0
  320. data/lib/candidhealth/tasks/v_3/types/task_update_v_3.rb +66 -0
  321. data/lib/candidhealth/tasks/v_3/types/task_updated_to_deprecated_status_error_type.rb +50 -0
  322. data/lib/candidhealth/write_offs/client.rb +28 -0
  323. data/lib/candidhealth/write_offs/v_1/client.rb +218 -0
  324. data/lib/candidhealth/write_offs/v_1/types/create_write_offs_response.rb +53 -0
  325. data/lib/candidhealth/write_offs/v_1/types/insurance_write_off.rb +119 -0
  326. data/lib/candidhealth/write_offs/v_1/types/insurance_write_off_create.rb +100 -0
  327. data/lib/candidhealth/write_offs/v_1/types/insurance_write_off_reason.rb +25 -0
  328. data/lib/candidhealth/write_offs/v_1/types/insurance_write_off_target.rb +103 -0
  329. data/lib/candidhealth/write_offs/v_1/types/patient_write_off.rb +102 -0
  330. data/lib/candidhealth/write_offs/v_1/types/patient_write_off_create.rb +83 -0
  331. data/lib/candidhealth/write_offs/v_1/types/patient_write_off_reason.rb +19 -0
  332. data/lib/candidhealth/write_offs/v_1/types/write_off.rb +94 -0
  333. data/lib/candidhealth/write_offs/v_1/types/write_off_create.rb +94 -0
  334. data/lib/candidhealth/write_offs/v_1/types/write_off_id.rb +9 -0
  335. data/lib/candidhealth/write_offs/v_1/types/write_off_sort_field.rb +13 -0
  336. data/lib/candidhealth/write_offs/v_1/types/write_offs_page.rb +65 -0
  337. data/lib/candidhealth/x_12/v_1/types/carc.rb +412 -0
  338. data/lib/candidhealth/x_12/v_1/types/claim_adjustment_reason_code.rb +62 -0
  339. data/lib/candidhealth/x_12/v_1/types/rarc.rb +1070 -0
  340. data/lib/candidhealth/x_12/v_1/types/remittance_advice_remark_code.rb +50 -0
  341. data/lib/candidhealth.rb +129 -0
  342. data/lib/environment.rb +8 -0
  343. data/lib/gemconfig.rb +14 -0
  344. data/lib/requests.rb +113 -0
  345. data/lib/types_export.rb +303 -0
  346. metadata +468 -0
@@ -0,0 +1,218 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../commons/types/patient_external_id"
5
+ require_relative "../../payers/v_3/types/payer_uuid"
6
+ require_relative "../../commons/types/service_line_id"
7
+ require_relative "../../commons/types/claim_id"
8
+ require_relative "../../commons/types/provider_id"
9
+ require_relative "types/write_off_sort_field"
10
+ require_relative "../../commons/types/sort_direction"
11
+ require_relative "../../commons/types/page_token"
12
+ require_relative "../../financials/types/account_type"
13
+ require_relative "types/write_offs_page"
14
+ require_relative "types/write_off_id"
15
+ require_relative "types/write_off"
16
+ require_relative "types/write_off_create"
17
+ require_relative "types/create_write_offs_response"
18
+ require "async"
19
+
20
+ module CandidApiClient
21
+ module WriteOffs
22
+ module V1
23
+ class V1Client
24
+ attr_reader :request_client
25
+
26
+ # @param request_client [RequestClient]
27
+ # @return [WriteOffs::V1::V1Client]
28
+ def initialize(request_client:)
29
+ # @type [RequestClient]
30
+ @request_client = request_client
31
+ end
32
+
33
+ # Returns all write-offs satisfying the search criteria.
34
+ #
35
+ # @param limit [Integer] Defaults to 100. The value must be greater than 0 and less than 1000.
36
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
37
+ # @param payer_uuid [Payers::V3::PAYER_String]
38
+ # @param service_line_id [Commons::SERVICE_LINE_ID]
39
+ # @param claim_id [Commons::CLAIM_ID]
40
+ # @param billing_provider_id [Commons::PROVIDER_ID]
41
+ # @param sort [WriteOffs::V1::WriteOffSortField] Defaults to write_off_timestamp
42
+ # @param sort_direction [Commons::SortDirection] Sort direction. Defaults to descending order if not provided.
43
+ # @param page_token [Commons::PAGE_TOKEN]
44
+ # @param account_types [Financials::AccountType] Filters the returned values to include only the provided account types.
45
+ # @param request_options [RequestOptions]
46
+ # @return [WriteOffs::V1::WriteOffsPage]
47
+ def get_multi(limit: nil, patient_external_id: nil, payer_uuid: nil, service_line_id: nil, claim_id: nil,
48
+ billing_provider_id: nil, sort: nil, sort_direction: nil, page_token: nil, account_types: nil, request_options: nil)
49
+ response = @request_client.conn.get("/api/write-offs/v1") do |req|
50
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
51
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
52
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
53
+ req.params = {
54
+ **(request_options&.additional_query_parameters || {}),
55
+ "limit": limit,
56
+ "patient_external_id": patient_external_id,
57
+ "payer_uuid": payer_uuid,
58
+ "service_line_id": service_line_id,
59
+ "claim_id": claim_id,
60
+ "billing_provider_id": billing_provider_id,
61
+ "sort": sort,
62
+ "sort_direction": sort_direction,
63
+ "page_token": page_token,
64
+ "account_types": account_types
65
+ }.compact
66
+ end
67
+ WriteOffs::V1::WriteOffsPage.from_json(json_object: response.body)
68
+ end
69
+
70
+ # Retrieves a previously created write off by its `write_off_id`.
71
+ #
72
+ # @param write_off_id [WriteOffs::V1::WRITE_OFF_ID]
73
+ # @param request_options [RequestOptions]
74
+ # @return [WriteOffs::V1::WriteOff]
75
+ def get(write_off_id:, request_options: nil)
76
+ response = @request_client.conn.get("/api/write-offs/v1/#{write_off_id}") do |req|
77
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
78
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
79
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
80
+ end
81
+ WriteOffs::V1::WriteOff.from_json(json_object: response.body)
82
+ end
83
+
84
+ # Creates one or many write-offs given a specific set of allocations.
85
+ # The allocations can describe whether the refund is being applied toward a specific service line,
86
+ # claim, or billing provider.
87
+ #
88
+ # @param write_offs [Array<Hash>] Request of type Array<WriteOffs::V1::WriteOffCreate>, as a Hash
89
+ # @param request_options [RequestOptions]
90
+ # @return [WriteOffs::V1::CreateWriteOffsResponse]
91
+ def create(write_offs:, request_options: nil)
92
+ response = @request_client.conn.post("/api/write-offs/v1") do |req|
93
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
94
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
95
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
96
+ req.body = { **(request_options&.additional_body_parameters || {}), write_offs: write_offs }.compact
97
+ end
98
+ WriteOffs::V1::CreateWriteOffsResponse.from_json(json_object: response.body)
99
+ end
100
+
101
+ # Reverts a write off given a `write_off_id`.
102
+ #
103
+ # @param write_off_id [WriteOffs::V1::WRITE_OFF_ID]
104
+ # @param request_options [RequestOptions]
105
+ # @return [WriteOffs::V1::WriteOff]
106
+ def revert(write_off_id:, request_options: nil)
107
+ response = @request_client.conn.post("/api/write-offs/v1/#{write_off_id}/revert") do |req|
108
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
109
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
110
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
111
+ end
112
+ WriteOffs::V1::WriteOff.from_json(json_object: response.body)
113
+ end
114
+ end
115
+
116
+ class AsyncV1Client
117
+ attr_reader :request_client
118
+
119
+ # @param request_client [AsyncRequestClient]
120
+ # @return [WriteOffs::V1::AsyncV1Client]
121
+ def initialize(request_client:)
122
+ # @type [AsyncRequestClient]
123
+ @request_client = request_client
124
+ end
125
+
126
+ # Returns all write-offs satisfying the search criteria.
127
+ #
128
+ # @param limit [Integer] Defaults to 100. The value must be greater than 0 and less than 1000.
129
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
130
+ # @param payer_uuid [Payers::V3::PAYER_String]
131
+ # @param service_line_id [Commons::SERVICE_LINE_ID]
132
+ # @param claim_id [Commons::CLAIM_ID]
133
+ # @param billing_provider_id [Commons::PROVIDER_ID]
134
+ # @param sort [WriteOffs::V1::WriteOffSortField] Defaults to write_off_timestamp
135
+ # @param sort_direction [Commons::SortDirection] Sort direction. Defaults to descending order if not provided.
136
+ # @param page_token [Commons::PAGE_TOKEN]
137
+ # @param account_types [Financials::AccountType] Filters the returned values to include only the provided account types.
138
+ # @param request_options [RequestOptions]
139
+ # @return [WriteOffs::V1::WriteOffsPage]
140
+ def get_multi(limit: nil, patient_external_id: nil, payer_uuid: nil, service_line_id: nil, claim_id: nil,
141
+ billing_provider_id: nil, sort: nil, sort_direction: nil, page_token: nil, account_types: nil, request_options: nil)
142
+ Async do
143
+ response = @request_client.conn.get("/api/write-offs/v1") do |req|
144
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
145
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
146
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
147
+ req.params = {
148
+ **(request_options&.additional_query_parameters || {}),
149
+ "limit": limit,
150
+ "patient_external_id": patient_external_id,
151
+ "payer_uuid": payer_uuid,
152
+ "service_line_id": service_line_id,
153
+ "claim_id": claim_id,
154
+ "billing_provider_id": billing_provider_id,
155
+ "sort": sort,
156
+ "sort_direction": sort_direction,
157
+ "page_token": page_token,
158
+ "account_types": account_types
159
+ }.compact
160
+ end
161
+ WriteOffs::V1::WriteOffsPage.from_json(json_object: response.body)
162
+ end
163
+ end
164
+
165
+ # Retrieves a previously created write off by its `write_off_id`.
166
+ #
167
+ # @param write_off_id [WriteOffs::V1::WRITE_OFF_ID]
168
+ # @param request_options [RequestOptions]
169
+ # @return [WriteOffs::V1::WriteOff]
170
+ def get(write_off_id:, request_options: nil)
171
+ Async do
172
+ response = @request_client.conn.get("/api/write-offs/v1/#{write_off_id}") do |req|
173
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
174
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
175
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
176
+ end
177
+ WriteOffs::V1::WriteOff.from_json(json_object: response.body)
178
+ end
179
+ end
180
+
181
+ # Creates one or many write-offs given a specific set of allocations.
182
+ # The allocations can describe whether the refund is being applied toward a specific service line,
183
+ # claim, or billing provider.
184
+ #
185
+ # @param write_offs [Array<Hash>] Request of type Array<WriteOffs::V1::WriteOffCreate>, as a Hash
186
+ # @param request_options [RequestOptions]
187
+ # @return [WriteOffs::V1::CreateWriteOffsResponse]
188
+ def create(write_offs:, request_options: nil)
189
+ Async do
190
+ response = @request_client.conn.post("/api/write-offs/v1") do |req|
191
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
192
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
193
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
194
+ req.body = { **(request_options&.additional_body_parameters || {}), write_offs: write_offs }.compact
195
+ end
196
+ WriteOffs::V1::CreateWriteOffsResponse.from_json(json_object: response.body)
197
+ end
198
+ end
199
+
200
+ # Reverts a write off given a `write_off_id`.
201
+ #
202
+ # @param write_off_id [WriteOffs::V1::WRITE_OFF_ID]
203
+ # @param request_options [RequestOptions]
204
+ # @return [WriteOffs::V1::WriteOff]
205
+ def revert(write_off_id:, request_options: nil)
206
+ Async do
207
+ response = @request_client.conn.post("/api/write-offs/v1/#{write_off_id}/revert") do |req|
208
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
209
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
210
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
211
+ end
212
+ WriteOffs::V1::WriteOff.from_json(json_object: response.body)
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
218
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "write_off"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module WriteOffs
8
+ module V1
9
+ class CreateWriteOffsResponse
10
+ attr_reader :write_offs, :additional_properties
11
+
12
+ # @param write_offs [Array<WriteOffs::V1::WriteOff>]
13
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
14
+ # @return [WriteOffs::V1::CreateWriteOffsResponse]
15
+ def initialize(write_offs:, additional_properties: nil)
16
+ # @type [Array<WriteOffs::V1::WriteOff>]
17
+ @write_offs = write_offs
18
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
19
+ @additional_properties = additional_properties
20
+ end
21
+
22
+ # Deserialize a JSON object to an instance of CreateWriteOffsResponse
23
+ #
24
+ # @param json_object [JSON]
25
+ # @return [WriteOffs::V1::CreateWriteOffsResponse]
26
+ def self.from_json(json_object:)
27
+ struct = JSON.parse(json_object, object_class: OpenStruct)
28
+ parsed_json = JSON.parse(json_object)
29
+ write_offs = parsed_json["write_offs"]&.map do |v|
30
+ v = v.to_json
31
+ WriteOffs::V1::WriteOff.from_json(json_object: v)
32
+ end
33
+ new(write_offs: write_offs, additional_properties: struct)
34
+ end
35
+
36
+ # Serialize an instance of CreateWriteOffsResponse to a JSON object
37
+ #
38
+ # @return [JSON]
39
+ def to_json(*_args)
40
+ { "write_offs": @write_offs }.to_json
41
+ end
42
+
43
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
44
+ #
45
+ # @param obj [Object]
46
+ # @return [Void]
47
+ def self.validate_raw(obj:)
48
+ obj.write_offs.is_a?(Array) != false || raise("Passed value for field obj.write_offs is not the expected type, validation failed.")
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,119 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "write_off_id"
4
+ require_relative "../../../payers/v_3/types/payer"
5
+ require_relative "insurance_write_off_target"
6
+ require "date"
7
+ require_relative "insurance_write_off_reason"
8
+ require "json"
9
+
10
+ module CandidApiClient
11
+ module WriteOffs
12
+ module V1
13
+ class InsuranceWriteOff
14
+ attr_reader :write_off_id, :payer, :write_off_target, :write_off_timestamp, :write_off_note, :write_off_reason,
15
+ :reverts_write_off_id, :reverted_by_write_off_id, :amount_cents, :additional_properties
16
+
17
+ # @param write_off_id [WriteOffs::V1::WRITE_OFF_ID]
18
+ # @param payer [Payers::V3::Payer]
19
+ # @param write_off_target [WriteOffs::V1::InsuranceWriteOffTarget]
20
+ # @param write_off_timestamp [DateTime]
21
+ # @param write_off_note [String]
22
+ # @param write_off_reason [WriteOffs::V1::InsuranceWriteOffReason]
23
+ # @param reverts_write_off_id [WriteOffs::V1::WRITE_OFF_ID]
24
+ # @param reverted_by_write_off_id [WriteOffs::V1::WRITE_OFF_ID]
25
+ # @param amount_cents [Integer]
26
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
27
+ # @return [WriteOffs::V1::InsuranceWriteOff]
28
+ def initialize(write_off_id:, payer:, write_off_target:, write_off_timestamp:, write_off_reason:,
29
+ amount_cents:, write_off_note: nil, reverts_write_off_id: nil, reverted_by_write_off_id: nil, additional_properties: nil)
30
+ # @type [WriteOffs::V1::WRITE_OFF_ID]
31
+ @write_off_id = write_off_id
32
+ # @type [Payers::V3::Payer]
33
+ @payer = payer
34
+ # @type [WriteOffs::V1::InsuranceWriteOffTarget]
35
+ @write_off_target = write_off_target
36
+ # @type [DateTime]
37
+ @write_off_timestamp = write_off_timestamp
38
+ # @type [String]
39
+ @write_off_note = write_off_note
40
+ # @type [WriteOffs::V1::InsuranceWriteOffReason]
41
+ @write_off_reason = write_off_reason
42
+ # @type [WriteOffs::V1::WRITE_OFF_ID]
43
+ @reverts_write_off_id = reverts_write_off_id
44
+ # @type [WriteOffs::V1::WRITE_OFF_ID]
45
+ @reverted_by_write_off_id = reverted_by_write_off_id
46
+ # @type [Integer]
47
+ @amount_cents = amount_cents
48
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
49
+ @additional_properties = additional_properties
50
+ end
51
+
52
+ # Deserialize a JSON object to an instance of InsuranceWriteOff
53
+ #
54
+ # @param json_object [JSON]
55
+ # @return [WriteOffs::V1::InsuranceWriteOff]
56
+ def self.from_json(json_object:)
57
+ struct = JSON.parse(json_object, object_class: OpenStruct)
58
+ parsed_json = JSON.parse(json_object)
59
+ write_off_id = struct.write_off_id
60
+ if parsed_json["payer"].nil?
61
+ payer = nil
62
+ else
63
+ payer = parsed_json["payer"].to_json
64
+ payer = Payers::V3::Payer.from_json(json_object: payer)
65
+ end
66
+ if parsed_json["write_off_target"].nil?
67
+ write_off_target = nil
68
+ else
69
+ write_off_target = parsed_json["write_off_target"].to_json
70
+ write_off_target = WriteOffs::V1::InsuranceWriteOffTarget.from_json(json_object: write_off_target)
71
+ end
72
+ write_off_timestamp = unless parsed_json["write_off_timestamp"].nil?
73
+ DateTime.parse(parsed_json["write_off_timestamp"])
74
+ end
75
+ write_off_note = struct.write_off_note
76
+ write_off_reason = struct.write_off_reason
77
+ reverts_write_off_id = struct.reverts_write_off_id
78
+ reverted_by_write_off_id = struct.reverted_by_write_off_id
79
+ amount_cents = struct.amount_cents
80
+ new(write_off_id: write_off_id, payer: payer, write_off_target: write_off_target,
81
+ write_off_timestamp: write_off_timestamp, write_off_note: write_off_note, write_off_reason: write_off_reason, reverts_write_off_id: reverts_write_off_id, reverted_by_write_off_id: reverted_by_write_off_id, amount_cents: amount_cents, additional_properties: struct)
82
+ end
83
+
84
+ # Serialize an instance of InsuranceWriteOff to a JSON object
85
+ #
86
+ # @return [JSON]
87
+ def to_json(*_args)
88
+ {
89
+ "write_off_id": @write_off_id,
90
+ "payer": @payer,
91
+ "write_off_target": @write_off_target,
92
+ "write_off_timestamp": @write_off_timestamp,
93
+ "write_off_note": @write_off_note,
94
+ "write_off_reason": @write_off_reason,
95
+ "reverts_write_off_id": @reverts_write_off_id,
96
+ "reverted_by_write_off_id": @reverted_by_write_off_id,
97
+ "amount_cents": @amount_cents
98
+ }.to_json
99
+ end
100
+
101
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
102
+ #
103
+ # @param obj [Object]
104
+ # @return [Void]
105
+ def self.validate_raw(obj:)
106
+ obj.write_off_id.is_a?(String) != false || raise("Passed value for field obj.write_off_id is not the expected type, validation failed.")
107
+ Payers::V3::Payer.validate_raw(obj: obj.payer)
108
+ WriteOffs::V1::InsuranceWriteOffTarget.validate_raw(obj: obj.write_off_target)
109
+ obj.write_off_timestamp.is_a?(DateTime) != false || raise("Passed value for field obj.write_off_timestamp is not the expected type, validation failed.")
110
+ obj.write_off_note&.is_a?(String) != false || raise("Passed value for field obj.write_off_note is not the expected type, validation failed.")
111
+ obj.write_off_reason.is_a?(WriteOffs::V1::InsuranceWriteOffReason) != false || raise("Passed value for field obj.write_off_reason is not the expected type, validation failed.")
112
+ obj.reverts_write_off_id&.is_a?(String) != false || raise("Passed value for field obj.reverts_write_off_id is not the expected type, validation failed.")
113
+ obj.reverted_by_write_off_id&.is_a?(String) != false || raise("Passed value for field obj.reverted_by_write_off_id is not the expected type, validation failed.")
114
+ obj.amount_cents.is_a?(Integer) != false || raise("Passed value for field obj.amount_cents is not the expected type, validation failed.")
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,100 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../payers/v_3/types/payer_identifier"
4
+ require_relative "insurance_write_off_target"
5
+ require "date"
6
+ require_relative "insurance_write_off_reason"
7
+ require "json"
8
+
9
+ module CandidApiClient
10
+ module WriteOffs
11
+ module V1
12
+ class InsuranceWriteOffCreate
13
+ attr_reader :payer_identifier, :write_off_target, :write_off_timestamp, :write_off_note, :write_off_reason,
14
+ :amount_cents, :additional_properties
15
+
16
+ # @param payer_identifier [Payers::V3::PayerIdentifier]
17
+ # @param write_off_target [WriteOffs::V1::InsuranceWriteOffTarget]
18
+ # @param write_off_timestamp [DateTime]
19
+ # @param write_off_note [String]
20
+ # @param write_off_reason [WriteOffs::V1::InsuranceWriteOffReason]
21
+ # @param amount_cents [Integer]
22
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
23
+ # @return [WriteOffs::V1::InsuranceWriteOffCreate]
24
+ def initialize(payer_identifier:, write_off_target:, write_off_timestamp:, write_off_reason:, amount_cents:,
25
+ write_off_note: nil, additional_properties: nil)
26
+ # @type [Payers::V3::PayerIdentifier]
27
+ @payer_identifier = payer_identifier
28
+ # @type [WriteOffs::V1::InsuranceWriteOffTarget]
29
+ @write_off_target = write_off_target
30
+ # @type [DateTime]
31
+ @write_off_timestamp = write_off_timestamp
32
+ # @type [String]
33
+ @write_off_note = write_off_note
34
+ # @type [WriteOffs::V1::InsuranceWriteOffReason]
35
+ @write_off_reason = write_off_reason
36
+ # @type [Integer]
37
+ @amount_cents = amount_cents
38
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
39
+ @additional_properties = additional_properties
40
+ end
41
+
42
+ # Deserialize a JSON object to an instance of InsuranceWriteOffCreate
43
+ #
44
+ # @param json_object [JSON]
45
+ # @return [WriteOffs::V1::InsuranceWriteOffCreate]
46
+ def self.from_json(json_object:)
47
+ struct = JSON.parse(json_object, object_class: OpenStruct)
48
+ parsed_json = JSON.parse(json_object)
49
+ if parsed_json["payer_identifier"].nil?
50
+ payer_identifier = nil
51
+ else
52
+ payer_identifier = parsed_json["payer_identifier"].to_json
53
+ payer_identifier = Payers::V3::PayerIdentifier.from_json(json_object: payer_identifier)
54
+ end
55
+ if parsed_json["write_off_target"].nil?
56
+ write_off_target = nil
57
+ else
58
+ write_off_target = parsed_json["write_off_target"].to_json
59
+ write_off_target = WriteOffs::V1::InsuranceWriteOffTarget.from_json(json_object: write_off_target)
60
+ end
61
+ write_off_timestamp = unless parsed_json["write_off_timestamp"].nil?
62
+ DateTime.parse(parsed_json["write_off_timestamp"])
63
+ end
64
+ write_off_note = struct.write_off_note
65
+ write_off_reason = struct.write_off_reason
66
+ amount_cents = struct.amount_cents
67
+ new(payer_identifier: payer_identifier, write_off_target: write_off_target,
68
+ write_off_timestamp: write_off_timestamp, write_off_note: write_off_note, write_off_reason: write_off_reason, amount_cents: amount_cents, additional_properties: struct)
69
+ end
70
+
71
+ # Serialize an instance of InsuranceWriteOffCreate to a JSON object
72
+ #
73
+ # @return [JSON]
74
+ def to_json(*_args)
75
+ {
76
+ "payer_identifier": @payer_identifier,
77
+ "write_off_target": @write_off_target,
78
+ "write_off_timestamp": @write_off_timestamp,
79
+ "write_off_note": @write_off_note,
80
+ "write_off_reason": @write_off_reason,
81
+ "amount_cents": @amount_cents
82
+ }.to_json
83
+ end
84
+
85
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
86
+ #
87
+ # @param obj [Object]
88
+ # @return [Void]
89
+ def self.validate_raw(obj:)
90
+ Payers::V3::PayerIdentifier.validate_raw(obj: obj.payer_identifier)
91
+ WriteOffs::V1::InsuranceWriteOffTarget.validate_raw(obj: obj.write_off_target)
92
+ obj.write_off_timestamp.is_a?(DateTime) != false || raise("Passed value for field obj.write_off_timestamp is not the expected type, validation failed.")
93
+ obj.write_off_note&.is_a?(String) != false || raise("Passed value for field obj.write_off_note is not the expected type, validation failed.")
94
+ obj.write_off_reason.is_a?(WriteOffs::V1::InsuranceWriteOffReason) != false || raise("Passed value for field obj.write_off_reason is not the expected type, validation failed.")
95
+ obj.amount_cents.is_a?(Integer) != false || raise("Passed value for field obj.amount_cents is not the expected type, validation failed.")
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ module WriteOffs
5
+ module V1
6
+ class InsuranceWriteOffReason
7
+ SMALL_BALANCE = "SMALL_BALANCE"
8
+ NO_AUTHORIZATION_REFERRAL = "NO_AUTHORIZATION_REFERRAL"
9
+ TIMELY_FILING = "TIMELY_FILING"
10
+ STALE_DATE = "STALE_DATE"
11
+ TIMELY_FILING_LATE_ENCOUNTER = "TIMELY_FILING_LATE_ENCOUNTER"
12
+ CREDENTIALING_OR_CONTRACTING = "CREDENTIALING_OR_CONTRACTING"
13
+ NON_COVERED_MAX_BENEFIT = "NON_COVERED_MAX_BENEFIT"
14
+ NOT_MEDICALLY_NECESSARY = "NOT_MEDICALLY_NECESSARY"
15
+ BUNDLED_OR_INCLUSIVE = "BUNDLED_OR_INCLUSIVE"
16
+ UNCOLLECTIBLE_OR_NON_BILLABLE = "UNCOLLECTIBLE_OR_NON_BILLABLE"
17
+ EFFORTS_EXHAUSTED = "EFFORTS_EXHAUSTED"
18
+ ADMINISTRATIVE_WRITE_OFF = "ADMINISTRATIVE_WRITE_OFF"
19
+ CASE_RATE_OR_CAPITATED = "CASE_RATE_OR_CAPITATED"
20
+ OTHER = "OTHER"
21
+ UNKNOWN = "UNKNOWN"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../../commons/types/service_line_id"
5
+ require_relative "../../../commons/types/claim_id"
6
+ require_relative "../../../commons/types/provider_id"
7
+
8
+ module CandidApiClient
9
+ module WriteOffs
10
+ module V1
11
+ class InsuranceWriteOffTarget
12
+ attr_reader :member, :discriminant
13
+
14
+ private_class_method :new
15
+ alias kind_of? is_a?
16
+ # @param member [Object]
17
+ # @param discriminant [String]
18
+ # @return [WriteOffs::V1::InsuranceWriteOffTarget]
19
+ def initialize(member:, discriminant:)
20
+ # @type [Object]
21
+ @member = member
22
+ # @type [String]
23
+ @discriminant = discriminant
24
+ end
25
+
26
+ # Deserialize a JSON object to an instance of InsuranceWriteOffTarget
27
+ #
28
+ # @param json_object [JSON]
29
+ # @return [WriteOffs::V1::InsuranceWriteOffTarget]
30
+ def self.from_json(json_object:)
31
+ struct = JSON.parse(json_object, object_class: OpenStruct)
32
+ member = case struct.type
33
+ when "service_line_id"
34
+ json_object.value
35
+ when "claim_id"
36
+ json_object.value
37
+ when "billing_provider_id"
38
+ json_object.value
39
+ else
40
+ json_object
41
+ end
42
+ new(member: member, discriminant: struct.type)
43
+ end
44
+
45
+ # For Union Types, to_json functionality is delegated to the wrapped member.
46
+ #
47
+ # @return [JSON]
48
+ def to_json(*_args)
49
+ case @discriminant
50
+ when "service_line_id"
51
+ when "claim_id"
52
+ when "billing_provider_id"
53
+ end
54
+ { "type": @discriminant, "value": @member }.to_json
55
+ @member.to_json
56
+ end
57
+
58
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
59
+ #
60
+ # @param obj [Object]
61
+ # @return [Void]
62
+ def self.validate_raw(obj:)
63
+ case obj.type
64
+ when "service_line_id"
65
+ obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
66
+ when "claim_id"
67
+ obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
68
+ when "billing_provider_id"
69
+ obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
70
+ else
71
+ raise("Passed value matched no type within the union, validation failed.")
72
+ end
73
+ end
74
+
75
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
76
+ #
77
+ # @param obj [Object]
78
+ # @return [Boolean]
79
+ def is_a?(obj)
80
+ @member.is_a?(obj)
81
+ end
82
+
83
+ # @param member [Commons::SERVICE_LINE_ID]
84
+ # @return [WriteOffs::V1::InsuranceWriteOffTarget]
85
+ def self.service_line_id(member:)
86
+ new(member: member, discriminant: "service_line_id")
87
+ end
88
+
89
+ # @param member [Commons::CLAIM_ID]
90
+ # @return [WriteOffs::V1::InsuranceWriteOffTarget]
91
+ def self.claim_id(member:)
92
+ new(member: member, discriminant: "claim_id")
93
+ end
94
+
95
+ # @param member [Commons::PROVIDER_ID]
96
+ # @return [WriteOffs::V1::InsuranceWriteOffTarget]
97
+ def self.billing_provider_id(member:)
98
+ new(member: member, discriminant: "billing_provider_id")
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end