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,316 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../commons/types/patient_external_id"
5
+ require_relative "../../commons/types/claim_id"
6
+ require_relative "../../commons/types/service_line_id"
7
+ require_relative "../../commons/types/provider_id"
8
+ require_relative "../../commons/types/invoice_id"
9
+ require_relative "../../financials/types/patient_transaction_source"
10
+ require_relative "types/patient_refund_sort_field"
11
+ require_relative "../../commons/types/sort_direction"
12
+ require_relative "../../commons/types/page_token"
13
+ require_relative "types/patient_refunds_page"
14
+ require_relative "types/patient_refund_id"
15
+ require_relative "types/patient_refund"
16
+ require "date"
17
+ require_relative "../../financials/types/allocation_create"
18
+ require_relative "../../financials/types/refund_reason"
19
+ require_relative "../../financials/types/note_update"
20
+ require_relative "../../financials/types/invoice_update"
21
+ require_relative "../../financials/types/refund_reason_update"
22
+ require "async"
23
+
24
+ module CandidApiClient
25
+ module PatientRefunds
26
+ module V1
27
+ class V1Client
28
+ attr_reader :request_client
29
+
30
+ # @param request_client [RequestClient]
31
+ # @return [PatientRefunds::V1::V1Client]
32
+ def initialize(request_client:)
33
+ # @type [RequestClient]
34
+ @request_client = request_client
35
+ end
36
+
37
+ # Returns all patient refunds satisfying the search criteria AND whose organization_id matches
38
+ # the current organization_id of the authenticated user.
39
+ #
40
+ # @param limit [Integer] Defaults to 100. The value must be greater than 0 and less than 1000.
41
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
42
+ # @param claim_id [Commons::CLAIM_ID]
43
+ # @param service_line_id [Commons::SERVICE_LINE_ID]
44
+ # @param billing_provider_id [Commons::PROVIDER_ID]
45
+ # @param unattributed [Boolean] returns payments with unattributed allocations if set to true
46
+ # @param invoice_id [Commons::INVOICE_ID]
47
+ # @param sources [Financials::PatientTransactionSource]
48
+ # @param sort [PatientRefunds::V1::PatientRefundSortField] Defaults to refund_timestamp
49
+ # @param sort_direction [Commons::SortDirection] Sort direction. Defaults to descending order if not provided.
50
+ # @param page_token [Commons::PAGE_TOKEN]
51
+ # @param request_options [RequestOptions]
52
+ # @return [PatientRefunds::V1::PatientRefundsPage]
53
+ def get_multi(limit: nil, patient_external_id: nil, claim_id: nil, service_line_id: nil,
54
+ billing_provider_id: nil, unattributed: nil, invoice_id: nil, sources: nil, sort: nil, sort_direction: nil, page_token: nil, request_options: nil)
55
+ response = @request_client.conn.get("/api/patient-refunds/v1") do |req|
56
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
57
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
58
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
59
+ req.params = {
60
+ **(request_options&.additional_query_parameters || {}),
61
+ "limit": limit,
62
+ "patient_external_id": patient_external_id,
63
+ "claim_id": claim_id,
64
+ "service_line_id": service_line_id,
65
+ "billing_provider_id": billing_provider_id,
66
+ "unattributed": unattributed,
67
+ "invoice_id": invoice_id,
68
+ "sources": sources,
69
+ "sort": sort,
70
+ "sort_direction": sort_direction,
71
+ "page_token": page_token
72
+ }.compact
73
+ end
74
+ PatientRefunds::V1::PatientRefundsPage.from_json(json_object: response.body)
75
+ end
76
+
77
+ # Retrieves a previously created patient refund by its `patient_refund_id`.
78
+ #
79
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
80
+ # @param request_options [RequestOptions]
81
+ # @return [PatientRefunds::V1::PatientRefund]
82
+ def get(patient_refund_id:, request_options: nil)
83
+ response = @request_client.conn.get("/api/patient-refunds/v1/#{patient_refund_id}") do |req|
84
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
85
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
86
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
87
+ end
88
+ PatientRefunds::V1::PatientRefund.from_json(json_object: response.body)
89
+ end
90
+
91
+ # Creates a new patient refund record and returns the newly created PatientRefund object.
92
+ # The allocations can describe whether the refund is being applied toward a specific service line,
93
+ # claim, or billing provider.
94
+ #
95
+ # @param amount_cents [Integer]
96
+ # @param refund_timestamp [DateTime]
97
+ # @param refund_note [String]
98
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
99
+ # @param allocations [Array<Hash>] Request of type Array<Financials::AllocationCreate>, as a Hash
100
+ # * :amount_cents (Integer)
101
+ # * :target (Hash)
102
+ # @param invoice [Commons::INVOICE_ID]
103
+ # @param refund_reason [Financials::RefundReason]
104
+ # @param request_options [RequestOptions]
105
+ # @return [PatientRefunds::V1::PatientRefund]
106
+ def create(amount_cents:, patient_external_id:, allocations:, refund_timestamp: nil, refund_note: nil,
107
+ invoice: nil, refund_reason: nil, request_options: nil)
108
+ response = @request_client.conn.post("/api/patient-refunds/v1") do |req|
109
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
110
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
111
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
112
+ req.body = {
113
+ **(request_options&.additional_body_parameters || {}),
114
+ amount_cents: amount_cents,
115
+ refund_timestamp: refund_timestamp,
116
+ refund_note: refund_note,
117
+ patient_external_id: patient_external_id,
118
+ allocations: allocations,
119
+ invoice: invoice,
120
+ refund_reason: refund_reason
121
+ }.compact
122
+ end
123
+ PatientRefunds::V1::PatientRefund.from_json(json_object: response.body)
124
+ end
125
+
126
+ # Updates the patient refund record matching the provided patient_refund_id.
127
+ #
128
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
129
+ # @param refund_timestamp [DateTime]
130
+ # @param refund_note [Financials::NoteUpdate]
131
+ # @param invoice [Financials::InvoiceUpdate]
132
+ # @param refund_reason [Financials::RefundReasonUpdate]
133
+ # @param request_options [RequestOptions]
134
+ # @return [PatientRefunds::V1::PatientRefund]
135
+ def update(patient_refund_id:, refund_timestamp: nil, refund_note: nil, invoice: nil, refund_reason: nil,
136
+ request_options: nil)
137
+ response = @request_client.conn.patch("/api/patient-refunds/v1/#{patient_refund_id}") do |req|
138
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
139
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
140
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
141
+ req.body = {
142
+ **(request_options&.additional_body_parameters || {}),
143
+ refund_timestamp: refund_timestamp,
144
+ refund_note: refund_note,
145
+ invoice: invoice,
146
+ refund_reason: refund_reason
147
+ }.compact
148
+ end
149
+ PatientRefunds::V1::PatientRefund.from_json(json_object: response.body)
150
+ end
151
+
152
+ # Deletes the patient refund record matching the provided patient_refund_id.
153
+ #
154
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
155
+ # @param request_options [RequestOptions]
156
+ # @return [Void]
157
+ def delete(patient_refund_id:, request_options: nil)
158
+ @request_client.conn.delete("/api/patient-refunds/v1/#{patient_refund_id}") do |req|
159
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
160
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
161
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
162
+ end
163
+ end
164
+ end
165
+
166
+ class AsyncV1Client
167
+ attr_reader :request_client
168
+
169
+ # @param request_client [AsyncRequestClient]
170
+ # @return [PatientRefunds::V1::AsyncV1Client]
171
+ def initialize(request_client:)
172
+ # @type [AsyncRequestClient]
173
+ @request_client = request_client
174
+ end
175
+
176
+ # Returns all patient refunds satisfying the search criteria AND whose organization_id matches
177
+ # the current organization_id of the authenticated user.
178
+ #
179
+ # @param limit [Integer] Defaults to 100. The value must be greater than 0 and less than 1000.
180
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
181
+ # @param claim_id [Commons::CLAIM_ID]
182
+ # @param service_line_id [Commons::SERVICE_LINE_ID]
183
+ # @param billing_provider_id [Commons::PROVIDER_ID]
184
+ # @param unattributed [Boolean] returns payments with unattributed allocations if set to true
185
+ # @param invoice_id [Commons::INVOICE_ID]
186
+ # @param sources [Financials::PatientTransactionSource]
187
+ # @param sort [PatientRefunds::V1::PatientRefundSortField] Defaults to refund_timestamp
188
+ # @param sort_direction [Commons::SortDirection] Sort direction. Defaults to descending order if not provided.
189
+ # @param page_token [Commons::PAGE_TOKEN]
190
+ # @param request_options [RequestOptions]
191
+ # @return [PatientRefunds::V1::PatientRefundsPage]
192
+ def get_multi(limit: nil, patient_external_id: nil, claim_id: nil, service_line_id: nil,
193
+ billing_provider_id: nil, unattributed: nil, invoice_id: nil, sources: nil, sort: nil, sort_direction: nil, page_token: nil, request_options: nil)
194
+ Async do
195
+ response = @request_client.conn.get("/api/patient-refunds/v1") do |req|
196
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
197
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
198
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
199
+ req.params = {
200
+ **(request_options&.additional_query_parameters || {}),
201
+ "limit": limit,
202
+ "patient_external_id": patient_external_id,
203
+ "claim_id": claim_id,
204
+ "service_line_id": service_line_id,
205
+ "billing_provider_id": billing_provider_id,
206
+ "unattributed": unattributed,
207
+ "invoice_id": invoice_id,
208
+ "sources": sources,
209
+ "sort": sort,
210
+ "sort_direction": sort_direction,
211
+ "page_token": page_token
212
+ }.compact
213
+ end
214
+ PatientRefunds::V1::PatientRefundsPage.from_json(json_object: response.body)
215
+ end
216
+ end
217
+
218
+ # Retrieves a previously created patient refund by its `patient_refund_id`.
219
+ #
220
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
221
+ # @param request_options [RequestOptions]
222
+ # @return [PatientRefunds::V1::PatientRefund]
223
+ def get(patient_refund_id:, request_options: nil)
224
+ Async do
225
+ response = @request_client.conn.get("/api/patient-refunds/v1/#{patient_refund_id}") do |req|
226
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
227
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
228
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
229
+ end
230
+ PatientRefunds::V1::PatientRefund.from_json(json_object: response.body)
231
+ end
232
+ end
233
+
234
+ # Creates a new patient refund record and returns the newly created PatientRefund object.
235
+ # The allocations can describe whether the refund is being applied toward a specific service line,
236
+ # claim, or billing provider.
237
+ #
238
+ # @param amount_cents [Integer]
239
+ # @param refund_timestamp [DateTime]
240
+ # @param refund_note [String]
241
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
242
+ # @param allocations [Array<Hash>] Request of type Array<Financials::AllocationCreate>, as a Hash
243
+ # * :amount_cents (Integer)
244
+ # * :target (Hash)
245
+ # @param invoice [Commons::INVOICE_ID]
246
+ # @param refund_reason [Financials::RefundReason]
247
+ # @param request_options [RequestOptions]
248
+ # @return [PatientRefunds::V1::PatientRefund]
249
+ def create(amount_cents:, patient_external_id:, allocations:, refund_timestamp: nil, refund_note: nil,
250
+ invoice: nil, refund_reason: nil, request_options: nil)
251
+ Async do
252
+ response = @request_client.conn.post("/api/patient-refunds/v1") do |req|
253
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
254
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
255
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
256
+ req.body = {
257
+ **(request_options&.additional_body_parameters || {}),
258
+ amount_cents: amount_cents,
259
+ refund_timestamp: refund_timestamp,
260
+ refund_note: refund_note,
261
+ patient_external_id: patient_external_id,
262
+ allocations: allocations,
263
+ invoice: invoice,
264
+ refund_reason: refund_reason
265
+ }.compact
266
+ end
267
+ PatientRefunds::V1::PatientRefund.from_json(json_object: response.body)
268
+ end
269
+ end
270
+
271
+ # Updates the patient refund record matching the provided patient_refund_id.
272
+ #
273
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
274
+ # @param refund_timestamp [DateTime]
275
+ # @param refund_note [Financials::NoteUpdate]
276
+ # @param invoice [Financials::InvoiceUpdate]
277
+ # @param refund_reason [Financials::RefundReasonUpdate]
278
+ # @param request_options [RequestOptions]
279
+ # @return [PatientRefunds::V1::PatientRefund]
280
+ def update(patient_refund_id:, refund_timestamp: nil, refund_note: nil, invoice: nil, refund_reason: nil,
281
+ request_options: nil)
282
+ Async do
283
+ response = @request_client.conn.patch("/api/patient-refunds/v1/#{patient_refund_id}") do |req|
284
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
285
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
286
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
287
+ req.body = {
288
+ **(request_options&.additional_body_parameters || {}),
289
+ refund_timestamp: refund_timestamp,
290
+ refund_note: refund_note,
291
+ invoice: invoice,
292
+ refund_reason: refund_reason
293
+ }.compact
294
+ end
295
+ PatientRefunds::V1::PatientRefund.from_json(json_object: response.body)
296
+ end
297
+ end
298
+
299
+ # Deletes the patient refund record matching the provided patient_refund_id.
300
+ #
301
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
302
+ # @param request_options [RequestOptions]
303
+ # @return [Void]
304
+ def delete(patient_refund_id:, request_options: nil)
305
+ Async do
306
+ @request_client.conn.delete("/api/patient-refunds/v1/#{patient_refund_id}") do |req|
307
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
308
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
309
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
310
+ end
311
+ end
312
+ end
313
+ end
314
+ end
315
+ end
316
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "patient_refund_id"
4
+ require_relative "../../../commons/types/organization_id"
5
+ require_relative "../../../financials/types/patient_transaction_source"
6
+ require_relative "../../../commons/types/patient_external_id"
7
+ require "date"
8
+ require_relative "../../../financials/types/allocation"
9
+ require_relative "../../../commons/types/invoice_id"
10
+ require_relative "../../../financials/types/refund_reason"
11
+ require "json"
12
+
13
+ module CandidApiClient
14
+ module PatientRefunds
15
+ module V1
16
+ class PatientRefund
17
+ attr_reader :patient_refund_id, :organization_id, :source_internal_id, :refund_source, :amount_cents,
18
+ :patient_external_id, :refund_timestamp, :refund_note, :allocations, :invoice, :refund_reason, :additional_properties
19
+
20
+ # @param patient_refund_id [PatientRefunds::V1::PATIENT_REFUND_ID]
21
+ # @param organization_id [Commons::ORGANIZATION_ID]
22
+ # @param source_internal_id [String]
23
+ # @param refund_source [Financials::PatientTransactionSource]
24
+ # @param amount_cents [Integer]
25
+ # @param patient_external_id [Commons::PATIENT_EXTERNAL_ID]
26
+ # @param refund_timestamp [DateTime]
27
+ # @param refund_note [String]
28
+ # @param allocations [Array<Financials::Allocation>]
29
+ # @param invoice [Commons::INVOICE_ID]
30
+ # @param refund_reason [Financials::RefundReason]
31
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
32
+ # @return [PatientRefunds::V1::PatientRefund]
33
+ def initialize(patient_refund_id:, organization_id:, refund_source:, amount_cents:, patient_external_id:,
34
+ allocations:, source_internal_id: nil, refund_timestamp: nil, refund_note: nil, invoice: nil, refund_reason: nil, additional_properties: nil)
35
+ # @type [PatientRefunds::V1::PATIENT_REFUND_ID]
36
+ @patient_refund_id = patient_refund_id
37
+ # @type [Commons::ORGANIZATION_ID]
38
+ @organization_id = organization_id
39
+ # @type [String]
40
+ @source_internal_id = source_internal_id
41
+ # @type [Financials::PatientTransactionSource]
42
+ @refund_source = refund_source
43
+ # @type [Integer]
44
+ @amount_cents = amount_cents
45
+ # @type [Commons::PATIENT_EXTERNAL_ID]
46
+ @patient_external_id = patient_external_id
47
+ # @type [DateTime]
48
+ @refund_timestamp = refund_timestamp
49
+ # @type [String]
50
+ @refund_note = refund_note
51
+ # @type [Array<Financials::Allocation>]
52
+ @allocations = allocations
53
+ # @type [Commons::INVOICE_ID]
54
+ @invoice = invoice
55
+ # @type [Financials::RefundReason]
56
+ @refund_reason = refund_reason
57
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
58
+ @additional_properties = additional_properties
59
+ end
60
+
61
+ # Deserialize a JSON object to an instance of PatientRefund
62
+ #
63
+ # @param json_object [JSON]
64
+ # @return [PatientRefunds::V1::PatientRefund]
65
+ def self.from_json(json_object:)
66
+ struct = JSON.parse(json_object, object_class: OpenStruct)
67
+ parsed_json = JSON.parse(json_object)
68
+ patient_refund_id = struct.patient_refund_id
69
+ organization_id = struct.organization_id
70
+ source_internal_id = struct.source_internal_id
71
+ refund_source = struct.refund_source
72
+ amount_cents = struct.amount_cents
73
+ patient_external_id = struct.patient_external_id
74
+ refund_timestamp = unless parsed_json["refund_timestamp"].nil?
75
+ DateTime.parse(parsed_json["refund_timestamp"])
76
+ end
77
+ refund_note = struct.refund_note
78
+ allocations = parsed_json["allocations"]&.map do |v|
79
+ v = v.to_json
80
+ Financials::Allocation.from_json(json_object: v)
81
+ end
82
+ invoice = struct.invoice
83
+ refund_reason = struct.refund_reason
84
+ new(patient_refund_id: patient_refund_id, organization_id: organization_id,
85
+ source_internal_id: source_internal_id, refund_source: refund_source, amount_cents: amount_cents, patient_external_id: patient_external_id, refund_timestamp: refund_timestamp, refund_note: refund_note, allocations: allocations, invoice: invoice, refund_reason: refund_reason, additional_properties: struct)
86
+ end
87
+
88
+ # Serialize an instance of PatientRefund to a JSON object
89
+ #
90
+ # @return [JSON]
91
+ def to_json(*_args)
92
+ {
93
+ "patient_refund_id": @patient_refund_id,
94
+ "organization_id": @organization_id,
95
+ "source_internal_id": @source_internal_id,
96
+ "refund_source": @refund_source,
97
+ "amount_cents": @amount_cents,
98
+ "patient_external_id": @patient_external_id,
99
+ "refund_timestamp": @refund_timestamp,
100
+ "refund_note": @refund_note,
101
+ "allocations": @allocations,
102
+ "invoice": @invoice,
103
+ "refund_reason": @refund_reason
104
+ }.to_json
105
+ end
106
+
107
+ # 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.
108
+ #
109
+ # @param obj [Object]
110
+ # @return [Void]
111
+ def self.validate_raw(obj:)
112
+ obj.patient_refund_id.is_a?(String) != false || raise("Passed value for field obj.patient_refund_id is not the expected type, validation failed.")
113
+ obj.organization_id.is_a?(String) != false || raise("Passed value for field obj.organization_id is not the expected type, validation failed.")
114
+ obj.source_internal_id&.is_a?(String) != false || raise("Passed value for field obj.source_internal_id is not the expected type, validation failed.")
115
+ obj.refund_source.is_a?(Financials::PatientTransactionSource) != false || raise("Passed value for field obj.refund_source is not the expected type, validation failed.")
116
+ obj.amount_cents.is_a?(Integer) != false || raise("Passed value for field obj.amount_cents is not the expected type, validation failed.")
117
+ obj.patient_external_id.is_a?(String) != false || raise("Passed value for field obj.patient_external_id is not the expected type, validation failed.")
118
+ obj.refund_timestamp&.is_a?(DateTime) != false || raise("Passed value for field obj.refund_timestamp is not the expected type, validation failed.")
119
+ obj.refund_note&.is_a?(String) != false || raise("Passed value for field obj.refund_note is not the expected type, validation failed.")
120
+ obj.allocations.is_a?(Array) != false || raise("Passed value for field obj.allocations is not the expected type, validation failed.")
121
+ obj.invoice&.is_a?(String) != false || raise("Passed value for field obj.invoice is not the expected type, validation failed.")
122
+ obj.refund_reason&.is_a?(Financials::RefundReason) != false || raise("Passed value for field obj.refund_reason is not the expected type, validation failed.")
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ module PatientRefunds
5
+ module V1
6
+ PATIENT_REFUND_ID = String
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ module PatientRefunds
5
+ module V1
6
+ class PatientRefundSortField
7
+ REFUND_SOURCE = "refund_source"
8
+ AMOUNT_CENTS = "amount_cents"
9
+ REFUND_TIMESTAMP = "refund_timestamp"
10
+ REFUND_REASON = "refund_reason"
11
+ REFUND_NOTE = "refund_note"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "patient_refund"
4
+ require_relative "../../../commons/types/page_token"
5
+ require "json"
6
+
7
+ module CandidApiClient
8
+ module PatientRefunds
9
+ module V1
10
+ class PatientRefundsPage
11
+ attr_reader :items, :prev_page_token, :next_page_token, :additional_properties
12
+
13
+ # @param items [Array<PatientRefunds::V1::PatientRefund>]
14
+ # @param prev_page_token [Commons::PAGE_TOKEN]
15
+ # @param next_page_token [Commons::PAGE_TOKEN]
16
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
17
+ # @return [PatientRefunds::V1::PatientRefundsPage]
18
+ def initialize(items:, prev_page_token: nil, next_page_token: nil, additional_properties: nil)
19
+ # @type [Array<PatientRefunds::V1::PatientRefund>]
20
+ @items = items
21
+ # @type [Commons::PAGE_TOKEN]
22
+ @prev_page_token = prev_page_token
23
+ # @type [Commons::PAGE_TOKEN]
24
+ @next_page_token = next_page_token
25
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
26
+ @additional_properties = additional_properties
27
+ end
28
+
29
+ # Deserialize a JSON object to an instance of PatientRefundsPage
30
+ #
31
+ # @param json_object [JSON]
32
+ # @return [PatientRefunds::V1::PatientRefundsPage]
33
+ def self.from_json(json_object:)
34
+ struct = JSON.parse(json_object, object_class: OpenStruct)
35
+ parsed_json = JSON.parse(json_object)
36
+ items = parsed_json["items"]&.map do |v|
37
+ v = v.to_json
38
+ PatientRefunds::V1::PatientRefund.from_json(json_object: v)
39
+ end
40
+ prev_page_token = struct.prev_page_token
41
+ next_page_token = struct.next_page_token
42
+ new(items: items, prev_page_token: prev_page_token, next_page_token: next_page_token,
43
+ additional_properties: struct)
44
+ end
45
+
46
+ # Serialize an instance of PatientRefundsPage to a JSON object
47
+ #
48
+ # @return [JSON]
49
+ def to_json(*_args)
50
+ { "items": @items, "prev_page_token": @prev_page_token, "next_page_token": @next_page_token }.to_json
51
+ end
52
+
53
+ # 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.
54
+ #
55
+ # @param obj [Object]
56
+ # @return [Void]
57
+ def self.validate_raw(obj:)
58
+ obj.items.is_a?(Array) != false || raise("Passed value for field obj.items is not the expected type, validation failed.")
59
+ obj.prev_page_token&.is_a?(String) != false || raise("Passed value for field obj.prev_page_token is not the expected type, validation failed.")
60
+ obj.next_page_token&.is_a?(String) != false || raise("Passed value for field obj.next_page_token is not the expected type, validation failed.")
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "v_3/client"
5
+
6
+ module CandidApiClient
7
+ module Payers
8
+ class Client
9
+ attr_reader :v_3
10
+
11
+ # @param request_client [RequestClient]
12
+ # @return [Payers::Client]
13
+ def initialize(request_client:)
14
+ @v_3 = Payers::V3::V3Client.new(request_client: request_client)
15
+ end
16
+ end
17
+
18
+ class AsyncClient
19
+ attr_reader :v_3
20
+
21
+ # @param request_client [RequestClient]
22
+ # @return [Payers::AsyncClient]
23
+ def initialize(request_client:)
24
+ @v_3 = Payers::V3::AsyncV3Client.new(request_client: request_client)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "types/payer_uuid"
5
+ require_relative "types/payer"
6
+ require_relative "../../commons/types/page_token"
7
+ require_relative "types/payer_page"
8
+ require "async"
9
+
10
+ module CandidApiClient
11
+ module Payers
12
+ module V3
13
+ class V3Client
14
+ attr_reader :request_client
15
+
16
+ # @param request_client [RequestClient]
17
+ # @return [Payers::V3::V3Client]
18
+ def initialize(request_client:)
19
+ # @type [RequestClient]
20
+ @request_client = request_client
21
+ end
22
+
23
+ # @param payer_uuid [Payers::V3::PAYER_String]
24
+ # @param request_options [RequestOptions]
25
+ # @return [Payers::V3::Payer]
26
+ def get(payer_uuid:, request_options: nil)
27
+ response = @request_client.conn.get("/api/payers/v3/#{payer_uuid}") do |req|
28
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
29
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
30
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
31
+ end
32
+ Payers::V3::Payer.from_json(json_object: response.body)
33
+ end
34
+
35
+ # @param limit [Integer] Maximum number of entities per page, defaults to 100.
36
+ # @param search_term [String]
37
+ # @param page_token [Commons::PAGE_TOKEN]
38
+ # @param request_options [RequestOptions]
39
+ # @return [Payers::V3::PayerPage]
40
+ def get_all(limit: nil, search_term: nil, page_token: nil, request_options: nil)
41
+ response = @request_client.conn.get("/api/payers/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
+ "limit": limit,
48
+ "search_term": search_term,
49
+ "page_token": page_token
50
+ }.compact
51
+ end
52
+ Payers::V3::PayerPage.from_json(json_object: response.body)
53
+ end
54
+ end
55
+
56
+ class AsyncV3Client
57
+ attr_reader :request_client
58
+
59
+ # @param request_client [AsyncRequestClient]
60
+ # @return [Payers::V3::AsyncV3Client]
61
+ def initialize(request_client:)
62
+ # @type [AsyncRequestClient]
63
+ @request_client = request_client
64
+ end
65
+
66
+ # @param payer_uuid [Payers::V3::PAYER_String]
67
+ # @param request_options [RequestOptions]
68
+ # @return [Payers::V3::Payer]
69
+ def get(payer_uuid:, request_options: nil)
70
+ Async do
71
+ response = @request_client.conn.get("/api/payers/v3/#{payer_uuid}") do |req|
72
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
73
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
74
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
75
+ end
76
+ Payers::V3::Payer.from_json(json_object: response.body)
77
+ end
78
+ end
79
+
80
+ # @param limit [Integer] Maximum number of entities per page, defaults to 100.
81
+ # @param search_term [String]
82
+ # @param page_token [Commons::PAGE_TOKEN]
83
+ # @param request_options [RequestOptions]
84
+ # @return [Payers::V3::PayerPage]
85
+ def get_all(limit: nil, search_term: nil, page_token: nil, request_options: nil)
86
+ Async do
87
+ response = @request_client.conn.get("/api/payers/v3") do |req|
88
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
89
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
90
+ req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
91
+ req.params = {
92
+ **(request_options&.additional_query_parameters || {}),
93
+ "limit": limit,
94
+ "search_term": search_term,
95
+ "page_token": page_token
96
+ }.compact
97
+ end
98
+ Payers::V3::PayerPage.from_json(json_object: response.body)
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end