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,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require "date"
5
+ require_relative "types/get_exports_response"
6
+ require "async"
7
+
8
+ module CandidApiClient
9
+ module Exports
10
+ module V3
11
+ class V3Client
12
+ attr_reader :request_client
13
+
14
+ # @param request_client [RequestClient]
15
+ # @return [Exports::V3::V3Client]
16
+ def initialize(request_client:)
17
+ # @type [RequestClient]
18
+ @request_client = request_client
19
+ end
20
+
21
+ # Retrieve CSV-formatted reports on claim submissions and outcomes. This endpoint returns Export objects that contain an
22
+ # authenticated URL to a customer's reports with a 2min TTL. The schema for the CSV export can be found [here](https://app.joincandidhealth.com/files/exports_schema.csv).
23
+ #
24
+ # **Schema changes:** Changing column order, removing columns, or changing the name of a column is considered a
25
+ # [Breaking Change](../../../api-principles/breaking-changes). Adding new columns to the end of the Exports file is not considered a
26
+ # Breaking Change and happens periodically. For this reason, it is important that any downstream automation or processes built on top
27
+ # of Candid Health's export files be resilient to the addition of new columns at the end of the file.
28
+ #
29
+ # **SLA guarantees:** Files for a given date are guaranteed to be available after 3 business days. For example, Friday's file will be
30
+ # available by Wednesday at the latest. If file generation is still in progress upon request before 3 business days have passed, the
31
+ # caller will receive a 422 response. If the file has already been generated, it will be served. Please email
32
+ # our [Support team](mailto:support@joincandidhealth.com) with any data requests outside of these stated guarantees.
33
+ #
34
+ # @param start_date [Date] Beginning date of claim versions returned in the export, ISO 8601 date e.g. 2019-08-24.
35
+ # Must be at least 1 calendar day in the past. Cannot be earlier than 2022-10-07.
36
+ # @param end_date [Date] Ending date of claim versions returned in the export, ISO 8601 date; e.g. 2019-08-24.
37
+ # Must be within 30 days of start_date.
38
+ # @param request_options [RequestOptions]
39
+ # @return [Exports::V3::GetExportsResponse]
40
+ def get_exports(start_date:, end_date:, request_options: nil)
41
+ response = @request_client.conn.get("/api/exports/v3") do |req|
42
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
43
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
44
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
45
+ req.params = {
46
+ **(request_options&.additional_query_parameters || {}),
47
+ "start_date": start_date,
48
+ "end_date": end_date
49
+ }.compact
50
+ end
51
+ Exports::V3::GetExportsResponse.from_json(json_object: response.body)
52
+ end
53
+ end
54
+
55
+ class AsyncV3Client
56
+ attr_reader :request_client
57
+
58
+ # @param request_client [AsyncRequestClient]
59
+ # @return [Exports::V3::AsyncV3Client]
60
+ def initialize(request_client:)
61
+ # @type [AsyncRequestClient]
62
+ @request_client = request_client
63
+ end
64
+
65
+ # Retrieve CSV-formatted reports on claim submissions and outcomes. This endpoint returns Export objects that contain an
66
+ # authenticated URL to a customer's reports with a 2min TTL. The schema for the CSV export can be found [here](https://app.joincandidhealth.com/files/exports_schema.csv).
67
+ #
68
+ # **Schema changes:** Changing column order, removing columns, or changing the name of a column is considered a
69
+ # [Breaking Change](../../../api-principles/breaking-changes). Adding new columns to the end of the Exports file is not considered a
70
+ # Breaking Change and happens periodically. For this reason, it is important that any downstream automation or processes built on top
71
+ # of Candid Health's export files be resilient to the addition of new columns at the end of the file.
72
+ #
73
+ # **SLA guarantees:** Files for a given date are guaranteed to be available after 3 business days. For example, Friday's file will be
74
+ # available by Wednesday at the latest. If file generation is still in progress upon request before 3 business days have passed, the
75
+ # caller will receive a 422 response. If the file has already been generated, it will be served. Please email
76
+ # our [Support team](mailto:support@joincandidhealth.com) with any data requests outside of these stated guarantees.
77
+ #
78
+ # @param start_date [Date] Beginning date of claim versions returned in the export, ISO 8601 date e.g. 2019-08-24.
79
+ # Must be at least 1 calendar day in the past. Cannot be earlier than 2022-10-07.
80
+ # @param end_date [Date] Ending date of claim versions returned in the export, ISO 8601 date; e.g. 2019-08-24.
81
+ # Must be within 30 days of start_date.
82
+ # @param request_options [RequestOptions]
83
+ # @return [Exports::V3::GetExportsResponse]
84
+ def get_exports(start_date:, end_date:, request_options: nil)
85
+ Async do
86
+ response = @request_client.conn.get("/api/exports/v3") do |req|
87
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
88
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
89
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
90
+ req.params = {
91
+ **(request_options&.additional_query_parameters || {}),
92
+ "start_date": start_date,
93
+ "end_date": end_date
94
+ }.compact
95
+ end
96
+ Exports::V3::GetExportsResponse.from_json(json_object: response.body)
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module Exports
8
+ module V3
9
+ class GetExportsResponse
10
+ attr_reader :name, :created_at, :authenticated_download_url, :authenticated_download_url_expiration,
11
+ :additional_properties
12
+
13
+ # @param name [String] Report name; contains date strings representing the start and end date of the export.
14
+ # @param created_at [DateTime]
15
+ # @param authenticated_download_url [String] Authenticated URL where a customer's report can be retrieved.
16
+ # @param authenticated_download_url_expiration [DateTime] Expiration datetime of the authenticated URL. URLs expire after 2 minutes.
17
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
18
+ # @return [Exports::V3::GetExportsResponse]
19
+ def initialize(name:, created_at:, authenticated_download_url:, authenticated_download_url_expiration:,
20
+ additional_properties: nil)
21
+ # @type [String] Report name; contains date strings representing the start and end date of the export.
22
+ @name = name
23
+ # @type [DateTime]
24
+ @created_at = created_at
25
+ # @type [String] Authenticated URL where a customer's report can be retrieved.
26
+ @authenticated_download_url = authenticated_download_url
27
+ # @type [DateTime] Expiration datetime of the authenticated URL. URLs expire after 2 minutes.
28
+ @authenticated_download_url_expiration = authenticated_download_url_expiration
29
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
30
+ @additional_properties = additional_properties
31
+ end
32
+
33
+ # Deserialize a JSON object to an instance of GetExportsResponse
34
+ #
35
+ # @param json_object [JSON]
36
+ # @return [Exports::V3::GetExportsResponse]
37
+ def self.from_json(json_object:)
38
+ struct = JSON.parse(json_object, object_class: OpenStruct)
39
+ parsed_json = JSON.parse(json_object)
40
+ name = struct.name
41
+ created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?)
42
+ authenticated_download_url = struct.authenticated_download_url
43
+ authenticated_download_url_expiration = unless parsed_json["authenticated_download_url_expiration"].nil?
44
+ DateTime.parse(parsed_json["authenticated_download_url_expiration"])
45
+ end
46
+ new(name: name, created_at: created_at, authenticated_download_url: authenticated_download_url,
47
+ authenticated_download_url_expiration: authenticated_download_url_expiration, additional_properties: struct)
48
+ end
49
+
50
+ # Serialize an instance of GetExportsResponse to a JSON object
51
+ #
52
+ # @return [JSON]
53
+ def to_json(*_args)
54
+ {
55
+ "name": @name,
56
+ "created_at": @created_at,
57
+ "authenticated_download_url": @authenticated_download_url,
58
+ "authenticated_download_url_expiration": @authenticated_download_url_expiration
59
+ }.to_json
60
+ end
61
+
62
+ # 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.
63
+ #
64
+ # @param obj [Object]
65
+ # @return [Void]
66
+ def self.validate_raw(obj:)
67
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
68
+ obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
69
+ obj.authenticated_download_url.is_a?(String) != false || raise("Passed value for field obj.authenticated_download_url is not the expected type, validation failed.")
70
+ obj.authenticated_download_url_expiration.is_a?(DateTime) != false || raise("Passed value for field obj.authenticated_download_url_expiration is not the expected type, validation failed.")
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ class Financials
5
+ class AccountType
6
+ PATIENT = "PATIENT"
7
+ INSURANCE = "INSURANCE"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "allocation_target"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ class Financials
8
+ class Allocation
9
+ attr_reader :amount_cents, :target, :additional_properties
10
+
11
+ # @param amount_cents [Integer]
12
+ # @param target [Financials::AllocationTarget]
13
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
14
+ # @return [Financials::Allocation]
15
+ def initialize(amount_cents:, target:, additional_properties: nil)
16
+ # @type [Integer]
17
+ @amount_cents = amount_cents
18
+ # @type [Financials::AllocationTarget]
19
+ @target = target
20
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
21
+ @additional_properties = additional_properties
22
+ end
23
+
24
+ # Deserialize a JSON object to an instance of Allocation
25
+ #
26
+ # @param json_object [JSON]
27
+ # @return [Financials::Allocation]
28
+ def self.from_json(json_object:)
29
+ struct = JSON.parse(json_object, object_class: OpenStruct)
30
+ parsed_json = JSON.parse(json_object)
31
+ amount_cents = struct.amount_cents
32
+ if parsed_json["target"].nil?
33
+ target = nil
34
+ else
35
+ target = parsed_json["target"].to_json
36
+ target = Financials::AllocationTarget.from_json(json_object: target)
37
+ end
38
+ new(amount_cents: amount_cents, target: target, additional_properties: struct)
39
+ end
40
+
41
+ # Serialize an instance of Allocation to a JSON object
42
+ #
43
+ # @return [JSON]
44
+ def to_json(*_args)
45
+ { "amount_cents": @amount_cents, "target": @target }.to_json
46
+ end
47
+
48
+ # 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.
49
+ #
50
+ # @param obj [Object]
51
+ # @return [Void]
52
+ def self.validate_raw(obj:)
53
+ obj.amount_cents.is_a?(Integer) != false || raise("Passed value for field obj.amount_cents is not the expected type, validation failed.")
54
+ Financials::AllocationTarget.validate_raw(obj: obj.target)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "allocation_target_create"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ class Financials
8
+ # Allocations are portions of payments that are applied to specific resources, known as targets. Each allocation has
9
+ # and amount, defined in cents, and a target.
10
+ class AllocationCreate
11
+ attr_reader :amount_cents, :target, :additional_properties
12
+
13
+ # @param amount_cents [Integer]
14
+ # @param target [Financials::AllocationTargetCreate]
15
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
16
+ # @return [Financials::AllocationCreate]
17
+ def initialize(amount_cents:, target:, additional_properties: nil)
18
+ # @type [Integer]
19
+ @amount_cents = amount_cents
20
+ # @type [Financials::AllocationTargetCreate]
21
+ @target = target
22
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
23
+ @additional_properties = additional_properties
24
+ end
25
+
26
+ # Deserialize a JSON object to an instance of AllocationCreate
27
+ #
28
+ # @param json_object [JSON]
29
+ # @return [Financials::AllocationCreate]
30
+ def self.from_json(json_object:)
31
+ struct = JSON.parse(json_object, object_class: OpenStruct)
32
+ parsed_json = JSON.parse(json_object)
33
+ amount_cents = struct.amount_cents
34
+ if parsed_json["target"].nil?
35
+ target = nil
36
+ else
37
+ target = parsed_json["target"].to_json
38
+ target = Financials::AllocationTargetCreate.from_json(json_object: target)
39
+ end
40
+ new(amount_cents: amount_cents, target: target, additional_properties: struct)
41
+ end
42
+
43
+ # Serialize an instance of AllocationCreate to a JSON object
44
+ #
45
+ # @return [JSON]
46
+ def to_json(*_args)
47
+ { "amount_cents": @amount_cents, "target": @target }.to_json
48
+ end
49
+
50
+ # 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.
51
+ #
52
+ # @param obj [Object]
53
+ # @return [Void]
54
+ def self.validate_raw(obj:)
55
+ obj.amount_cents.is_a?(Integer) != false || raise("Passed value for field obj.amount_cents is not the expected type, validation failed.")
56
+ Financials::AllocationTargetCreate.validate_raw(obj: obj.target)
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "service_line_allocation_target"
5
+ require_relative "claim_allocation_target"
6
+ require_relative "billing_provider_allocation_target"
7
+
8
+ module CandidApiClient
9
+ class Financials
10
+ # Allocation targets describe whether the portion of a payment is being applied toward a specific service line,
11
+ # claim, billing provider, or is unallocated.
12
+ class AllocationTarget
13
+ attr_reader :member, :discriminant
14
+
15
+ private_class_method :new
16
+ alias kind_of? is_a?
17
+ # @param member [Object]
18
+ # @param discriminant [String]
19
+ # @return [Financials::AllocationTarget]
20
+ def initialize(member:, discriminant:)
21
+ # @type [Object]
22
+ @member = member
23
+ # @type [String]
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of AllocationTarget
28
+ #
29
+ # @param json_object [JSON]
30
+ # @return [Financials::AllocationTarget]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ member = case struct.type
34
+ when "service_line"
35
+ Financials::ServiceLineAllocationTarget.from_json(json_object: json_object)
36
+ when "claim"
37
+ Financials::ClaimAllocationTarget.from_json(json_object: json_object)
38
+ when "billing_provider_id"
39
+ Financials::BillingProviderAllocationTarget.from_json(json_object: json_object)
40
+ when "unattributed"
41
+ nil
42
+ else
43
+ Financials::ServiceLineAllocationTarget.from_json(json_object: json_object)
44
+ end
45
+ new(member: member, discriminant: struct.type)
46
+ end
47
+
48
+ # For Union Types, to_json functionality is delegated to the wrapped member.
49
+ #
50
+ # @return [JSON]
51
+ def to_json(*_args)
52
+ case @discriminant
53
+ when "service_line"
54
+ { **@member.to_json, type: @discriminant }.to_json
55
+ when "claim"
56
+ { **@member.to_json, type: @discriminant }.to_json
57
+ when "billing_provider_id"
58
+ { **@member.to_json, type: @discriminant }.to_json
59
+ when "unattributed"
60
+ { type: @discriminant }.to_json
61
+ else
62
+ { "type": @discriminant, value: @member }.to_json
63
+ end
64
+ @member.to_json
65
+ end
66
+
67
+ # 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.
68
+ #
69
+ # @param obj [Object]
70
+ # @return [Void]
71
+ def self.validate_raw(obj:)
72
+ case obj.type
73
+ when "service_line"
74
+ Financials::ServiceLineAllocationTarget.validate_raw(obj: obj)
75
+ when "claim"
76
+ Financials::ClaimAllocationTarget.validate_raw(obj: obj)
77
+ when "billing_provider_id"
78
+ Financials::BillingProviderAllocationTarget.validate_raw(obj: obj)
79
+ when "unattributed"
80
+ # noop
81
+ else
82
+ raise("Passed value matched no type within the union, validation failed.")
83
+ end
84
+ end
85
+
86
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
87
+ #
88
+ # @param obj [Object]
89
+ # @return [Boolean]
90
+ def is_a?(obj)
91
+ @member.is_a?(obj)
92
+ end
93
+
94
+ # @param member [Financials::ServiceLineAllocationTarget]
95
+ # @return [Financials::AllocationTarget]
96
+ def self.service_line(member:)
97
+ new(member: member, discriminant: "service_line")
98
+ end
99
+
100
+ # @param member [Financials::ClaimAllocationTarget]
101
+ # @return [Financials::AllocationTarget]
102
+ def self.claim(member:)
103
+ new(member: member, discriminant: "claim")
104
+ end
105
+
106
+ # @param member [Financials::BillingProviderAllocationTarget]
107
+ # @return [Financials::AllocationTarget]
108
+ def self.billing_provider_id(member:)
109
+ new(member: member, discriminant: "billing_provider_id")
110
+ end
111
+
112
+ # @return [Financials::AllocationTarget]
113
+ def self.unattributed
114
+ new(member: nil, discriminant: "unattributed")
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,118 @@
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
+ class Financials
10
+ # Allocation targets describe whether the portion of a payment is being applied toward a specific service line,
11
+ # claim, billing provider, or is unallocated.
12
+ class AllocationTargetCreate
13
+ attr_reader :member, :discriminant
14
+
15
+ private_class_method :new
16
+ alias kind_of? is_a?
17
+ # @param member [Object]
18
+ # @param discriminant [String]
19
+ # @return [Financials::AllocationTargetCreate]
20
+ def initialize(member:, discriminant:)
21
+ # @type [Object]
22
+ @member = member
23
+ # @type [String]
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of AllocationTargetCreate
28
+ #
29
+ # @param json_object [JSON]
30
+ # @return [Financials::AllocationTargetCreate]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ member = case struct.type
34
+ when "service_line_by_id"
35
+ json_object.value
36
+ when "claim_by_id"
37
+ json_object.value
38
+ when "billing_provider_by_id"
39
+ json_object.value
40
+ when "unattributed"
41
+ nil
42
+ else
43
+ json_object
44
+ end
45
+ new(member: member, discriminant: struct.type)
46
+ end
47
+
48
+ # For Union Types, to_json functionality is delegated to the wrapped member.
49
+ #
50
+ # @return [JSON]
51
+ def to_json(*_args)
52
+ case @discriminant
53
+ when "service_line_by_id"
54
+ { "type": @discriminant, "value": @member }.to_json
55
+ when "claim_by_id"
56
+ { "type": @discriminant, "value": @member }.to_json
57
+ when "billing_provider_by_id"
58
+ { "type": @discriminant, "value": @member }.to_json
59
+ when "unattributed"
60
+ { type: @discriminant }.to_json
61
+ else
62
+ { "type": @discriminant, value: @member }.to_json
63
+ end
64
+ @member.to_json
65
+ end
66
+
67
+ # 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.
68
+ #
69
+ # @param obj [Object]
70
+ # @return [Void]
71
+ def self.validate_raw(obj:)
72
+ case obj.type
73
+ when "service_line_by_id"
74
+ obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
75
+ when "claim_by_id"
76
+ obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
77
+ when "billing_provider_by_id"
78
+ obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
79
+ when "unattributed"
80
+ # noop
81
+ else
82
+ raise("Passed value matched no type within the union, validation failed.")
83
+ end
84
+ end
85
+
86
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
87
+ #
88
+ # @param obj [Object]
89
+ # @return [Boolean]
90
+ def is_a?(obj)
91
+ @member.is_a?(obj)
92
+ end
93
+
94
+ # @param member [Commons::SERVICE_LINE_ID]
95
+ # @return [Financials::AllocationTargetCreate]
96
+ def self.service_line_by_id(member:)
97
+ new(member: member, discriminant: "service_line_by_id")
98
+ end
99
+
100
+ # @param member [Commons::CLAIM_ID]
101
+ # @return [Financials::AllocationTargetCreate]
102
+ def self.claim_by_id(member:)
103
+ new(member: member, discriminant: "claim_by_id")
104
+ end
105
+
106
+ # @param member [Commons::PROVIDER_ID]
107
+ # @return [Financials::AllocationTargetCreate]
108
+ def self.billing_provider_by_id(member:)
109
+ new(member: member, discriminant: "billing_provider_by_id")
110
+ end
111
+
112
+ # @return [Financials::AllocationTargetCreate]
113
+ def self.unattributed
114
+ new(member: nil, discriminant: "unattributed")
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../commons/types/provider_id"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ class Financials
8
+ class BillingProviderAllocationTarget
9
+ attr_reader :billing_provider_id, :additional_properties
10
+
11
+ # @param billing_provider_id [Commons::PROVIDER_ID]
12
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
13
+ # @return [Financials::BillingProviderAllocationTarget]
14
+ def initialize(billing_provider_id:, additional_properties: nil)
15
+ # @type [Commons::PROVIDER_ID]
16
+ @billing_provider_id = billing_provider_id
17
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
18
+ @additional_properties = additional_properties
19
+ end
20
+
21
+ # Deserialize a JSON object to an instance of BillingProviderAllocationTarget
22
+ #
23
+ # @param json_object [JSON]
24
+ # @return [Financials::BillingProviderAllocationTarget]
25
+ def self.from_json(json_object:)
26
+ struct = JSON.parse(json_object, object_class: OpenStruct)
27
+ JSON.parse(json_object)
28
+ billing_provider_id = struct.billing_provider_id
29
+ new(billing_provider_id: billing_provider_id, additional_properties: struct)
30
+ end
31
+
32
+ # Serialize an instance of BillingProviderAllocationTarget to a JSON object
33
+ #
34
+ # @return [JSON]
35
+ def to_json(*_args)
36
+ { "billing_provider_id": @billing_provider_id }.to_json
37
+ end
38
+
39
+ # 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.
40
+ #
41
+ # @param obj [Object]
42
+ # @return [Void]
43
+ def self.validate_raw(obj:)
44
+ obj.billing_provider_id.is_a?(String) != false || raise("Passed value for field obj.billing_provider_id is not the expected type, validation failed.")
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../commons/types/claim_id"
4
+ require_relative "../../commons/types/encounter_id"
5
+ require "json"
6
+
7
+ module CandidApiClient
8
+ class Financials
9
+ class ClaimAllocationTarget
10
+ attr_reader :claim_id, :encounter_id, :additional_properties
11
+
12
+ # @param claim_id [Commons::CLAIM_ID]
13
+ # @param encounter_id [Commons::ENCOUNTER_ID]
14
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
15
+ # @return [Financials::ClaimAllocationTarget]
16
+ def initialize(claim_id:, encounter_id:, additional_properties: nil)
17
+ # @type [Commons::CLAIM_ID]
18
+ @claim_id = claim_id
19
+ # @type [Commons::ENCOUNTER_ID]
20
+ @encounter_id = encounter_id
21
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
22
+ @additional_properties = additional_properties
23
+ end
24
+
25
+ # Deserialize a JSON object to an instance of ClaimAllocationTarget
26
+ #
27
+ # @param json_object [JSON]
28
+ # @return [Financials::ClaimAllocationTarget]
29
+ def self.from_json(json_object:)
30
+ struct = JSON.parse(json_object, object_class: OpenStruct)
31
+ JSON.parse(json_object)
32
+ claim_id = struct.claim_id
33
+ encounter_id = struct.encounter_id
34
+ new(claim_id: claim_id, encounter_id: encounter_id, additional_properties: struct)
35
+ end
36
+
37
+ # Serialize an instance of ClaimAllocationTarget to a JSON object
38
+ #
39
+ # @return [JSON]
40
+ def to_json(*_args)
41
+ { "claim_id": @claim_id, "encounter_id": @encounter_id }.to_json
42
+ end
43
+
44
+ # 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.
45
+ #
46
+ # @param obj [Object]
47
+ # @return [Void]
48
+ def self.validate_raw(obj:)
49
+ obj.claim_id.is_a?(String) != false || raise("Passed value for field obj.claim_id is not the expected type, validation failed.")
50
+ obj.encounter_id.is_a?(String) != false || raise("Passed value for field obj.encounter_id is not the expected type, validation failed.")
51
+ end
52
+ end
53
+ end
54
+ end