Class: Candid::ChargeCapture::V1::Client
- Inherits:
-
Object
- Object
- Candid::ChargeCapture::V1::Client
- Defined in:
- lib/candid/charge_capture/v_1/client.rb
Instance Method Summary collapse
- #create(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
-
#create_from_pre_encounter_patient(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
Create a Charge Capture from a pre-encounter patient and appointment.
- #find_by_metadata(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapturePage
- #get(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
- #get_all(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapturePage
- #initialize(client:, base_url: nil, environment: nil) ⇒ void constructor
- #update(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
- #update_post_billed_changes(request_options: {}, **params) ⇒ Array[Candid::ChargeCapture::V1::Types::ChargeCapturePostBilledChange]
Constructor Details
#initialize(client:, base_url: nil, environment: nil) ⇒ void
12 13 14 15 16 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 12 def initialize(client:, base_url: nil, environment: nil) @client = client @base_url = base_url @environment = environment end |
Instance Method Details
#create(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 27 def create(request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "POST", path: "/api/charge_captures/v1", body: Candid::ChargeCapture::V1::Types::CreateChargeCaptureRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Candid::ChargeCapture::V1::Types::ChargeCapture.load(response.body) else error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#create_from_pre_encounter_patient(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
Create a Charge Capture from a pre-encounter patient and appointment. This endpoint is intended to be used by consumers who are managing patients and appointments in the pre-encounter service and is currently under development. Consumers who are not taking advantage of the pre-encounter service should use the standard create endpoint.
At encounter creation time, information from the provided patient and appointment objects will be populated where applicable. In particular, the following fields are populated from the patient and appointment objects:
- Patient
- Referring Provider
- Subscriber Primary
- Subscriber Secondary
- Referral Number
- Responsible Party
- Guarantor
Note that these fields should not be populated in the ChargeCaptureData property of this endpoint, as they will be overwritten at encounter creation time.
Utilizing this endpoint opts you into automatic updating of the encounter when the patient or appointment is updated, assuming the encounter has not already been submitted or adjudicated.
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 82 def create_from_pre_encounter_patient(request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "POST", path: "/api/charge_captures/v1/create-from-pre-encounter", body: Candid::ChargeCapture::V1::Types::CreateChargeCaptureFromPreEncounterRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Candid::ChargeCapture::V1::Types::ChargeCapture.load(response.body) else error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#find_by_metadata(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapturePage
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 339 def (request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "POST", path: "/api/charge_captures/v1/find-by-metadata", body: Candid::ChargeCapture::V1::Types::FindByMetadataRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Candid::ChargeCapture::V1::Types::ChargeCapturePage.load(response.body) else error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 182 def get(request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "GET", path: "/api/charge_captures/v1/#{params[:charge_capture_id]}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Candid::ChargeCapture::V1::Types::ChargeCapture.load(response.body) else error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#get_all(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapturePage
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 258 def get_all(request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) query_param_names = %i[limit sort sort_direction page_token patient_external_id status charge_external_id date_of_service_min date_of_service_max claim_ids claim_creation_ids billing_provider_npis service_facility_name primary_payer_ids rendering_provider_npis rendering_provider_names supervising_provider_npis supervising_provider_names claim_creation_category tags primary_payer_names patient_names exclude_charges_linked_to_claims patient_external_id_ranked_sort status_ranked_sort charge_external_id_ranked_sort date_of_service_min_ranked_sort date_of_service_max_ranked_sort search_term billable_status responsible_party claim_ids_ranked_sort claim_creation_ids_ranked_sort billing_provider_npis_ranked_sort service_facility_name_ranked_sort primary_payer_ids_ranked_sort rendering_provider_npis_ranked_sort rendering_provider_names_ranked_sort supervising_provider_npis_ranked_sort supervising_provider_names_ranked_sort claim_status claim_creation_category_ranked_sort tags_ranked_sort primary_payer_names_ranked_sort patient_names_ranked_sort] query_params = {} query_params["limit"] = params[:limit] if params.key?(:limit) query_params["sort"] = params[:sort] if params.key?(:sort) query_params["sort_direction"] = params[:sort_direction] if params.key?(:sort_direction) query_params["page_token"] = params[:page_token] if params.key?(:page_token) query_params["patient_external_id"] = params[:patient_external_id] if params.key?(:patient_external_id) query_params["status"] = params[:status] if params.key?(:status) query_params["charge_external_id"] = params[:charge_external_id] if params.key?(:charge_external_id) query_params["date_of_service_min"] = params[:date_of_service_min] if params.key?(:date_of_service_min) query_params["date_of_service_max"] = params[:date_of_service_max] if params.key?(:date_of_service_max) query_params["claim_ids"] = params[:claim_ids] if params.key?(:claim_ids) query_params["claim_creation_ids"] = params[:claim_creation_ids] if params.key?(:claim_creation_ids) query_params["billing_provider_npis"] = params[:billing_provider_npis] if params.key?(:billing_provider_npis) query_params["service_facility_name"] = params[:service_facility_name] if params.key?(:service_facility_name) query_params["primary_payer_ids"] = params[:primary_payer_ids] if params.key?(:primary_payer_ids) query_params["rendering_provider_npis"] = params[:rendering_provider_npis] if params.key?(:rendering_provider_npis) query_params["rendering_provider_names"] = params[:rendering_provider_names] if params.key?(:rendering_provider_names) query_params["supervising_provider_npis"] = params[:supervising_provider_npis] if params.key?(:supervising_provider_npis) query_params["supervising_provider_names"] = params[:supervising_provider_names] if params.key?(:supervising_provider_names) query_params["claim_creation_category"] = params[:claim_creation_category] if params.key?(:claim_creation_category) query_params["tags"] = params[:tags] if params.key?(:tags) query_params["primary_payer_names"] = params[:primary_payer_names] if params.key?(:primary_payer_names) query_params["patient_names"] = params[:patient_names] if params.key?(:patient_names) query_params["exclude_charges_linked_to_claims"] = params[:exclude_charges_linked_to_claims] if params.key?(:exclude_charges_linked_to_claims) query_params["patient_external_id_ranked_sort"] = params[:patient_external_id_ranked_sort] if params.key?(:patient_external_id_ranked_sort) query_params["status_ranked_sort"] = params[:status_ranked_sort] if params.key?(:status_ranked_sort) query_params["charge_external_id_ranked_sort"] = params[:charge_external_id_ranked_sort] if params.key?(:charge_external_id_ranked_sort) query_params["date_of_service_min_ranked_sort"] = params[:date_of_service_min_ranked_sort] if params.key?(:date_of_service_min_ranked_sort) query_params["date_of_service_max_ranked_sort"] = params[:date_of_service_max_ranked_sort] if params.key?(:date_of_service_max_ranked_sort) query_params["search_term"] = params[:search_term] if params.key?(:search_term) query_params["billable_status"] = params[:billable_status] if params.key?(:billable_status) query_params["responsible_party"] = params[:responsible_party] if params.key?(:responsible_party) query_params["claim_ids_ranked_sort"] = params[:claim_ids_ranked_sort] if params.key?(:claim_ids_ranked_sort) query_params["claim_creation_ids_ranked_sort"] = params[:claim_creation_ids_ranked_sort] if params.key?(:claim_creation_ids_ranked_sort) query_params["billing_provider_npis_ranked_sort"] = params[:billing_provider_npis_ranked_sort] if params.key?(:billing_provider_npis_ranked_sort) query_params["service_facility_name_ranked_sort"] = params[:service_facility_name_ranked_sort] if params.key?(:service_facility_name_ranked_sort) query_params["primary_payer_ids_ranked_sort"] = params[:primary_payer_ids_ranked_sort] if params.key?(:primary_payer_ids_ranked_sort) query_params["rendering_provider_npis_ranked_sort"] = params[:rendering_provider_npis_ranked_sort] if params.key?(:rendering_provider_npis_ranked_sort) query_params["rendering_provider_names_ranked_sort"] = params[:rendering_provider_names_ranked_sort] if params.key?(:rendering_provider_names_ranked_sort) query_params["supervising_provider_npis_ranked_sort"] = params[:supervising_provider_npis_ranked_sort] if params.key?(:supervising_provider_npis_ranked_sort) query_params["supervising_provider_names_ranked_sort"] = params[:supervising_provider_names_ranked_sort] if params.key?(:supervising_provider_names_ranked_sort) query_params["claim_status"] = params[:claim_status] if params.key?(:claim_status) query_params["claim_creation_category_ranked_sort"] = params[:claim_creation_category_ranked_sort] if params.key?(:claim_creation_category_ranked_sort) query_params["tags_ranked_sort"] = params[:tags_ranked_sort] if params.key?(:tags_ranked_sort) query_params["primary_payer_names_ranked_sort"] = params[:primary_payer_names_ranked_sort] if params.key?(:primary_payer_names_ranked_sort) query_params["patient_names_ranked_sort"] = params[:patient_names_ranked_sort] if params.key?(:patient_names_ranked_sort) params.except(*query_param_names) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "GET", path: "/api/charge_captures/v1", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Candid::ChargeCapture::V1::Types::ChargeCapturePage.load(response.body) else error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#update(request_options: {}, **params) ⇒ Candid::ChargeCapture::V1::Types::ChargeCapture
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 145 def update(request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) request_data = Candid::ChargeCapture::V1::Types::ChargeCaptureUpdate.new(params).to_h non_body_param_names = ["charge_capture_id"] body = request_data.except(*non_body_param_names) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "PATCH", path: "/api/charge_captures/v1/#{params[:charge_capture_id]}", body: body, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Candid::ChargeCapture::V1::Types::ChargeCapture.load(response.body) else error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#update_post_billed_changes(request_options: {}, **params) ⇒ Array[Candid::ChargeCapture::V1::Types::ChargeCapturePostBilledChange]
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/candid/charge_capture/v_1/client.rb', line 114 def update_post_billed_changes(request_options: {}, **params) params = Candid::Internal::Types::Utils.normalize_keys(params) request = Candid::Internal::JSON::Request.new( base_url: [:base_url] || @base_url || @environment&.dig(:candid_api), method: "PATCH", path: "/api/charge_captures/v1/changes", body: Candid::ChargeCapture::V1::Types::ChargeCapturePostBilledChangeUpdate.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Candid::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Candid::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |