Class: Candid::PatientPayments::V4::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/candid/patient_payments/v_4/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Candid::PatientPayments::V4::Client



8
9
10
# File 'lib/candid/patient_payments/v_4/client.rb', line 8

def initialize(client:)
  @client = client
end

Instance Method Details

#create(request_options: {}, **params) ⇒ Candid::PatientPayments::V4::Types::PatientPayment

Creates a new patient payment record and returns the newly created PatientPayment object. The allocations can describe whether the payment is being applied toward a specific service line, claim, or billing provider.



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/candid/patient_payments/v_4/client.rb', line 71

def create(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "POST",
    path: "/api/patient-payments/v4",
    body: params
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PatientPayments::V4::Types::PatientPayment.load(_response.body)
  else
    error_class = Candid::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end

#delete(request_options: {}, **params) ⇒ untyped

Deletes the patient payment record matching the provided patient_payment_id.

Returns:

  • (untyped)

Raises:

  • (error_class)


121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/candid/patient_payments/v_4/client.rb', line 121

def delete(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "DELETE",
    path: "/api/patient-payments/v4/#{params[:patient_payment_id]}"
  )
  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

#get(request_options: {}, **params) ⇒ Candid::PatientPayments::V4::Types::PatientPayment

Retrieves a previously created patient payment by its ‘patient_payment_id`.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/candid/patient_payments/v_4/client.rb', line 46

def get(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "GET",
    path: "/api/patient-payments/v4/#{params[:patient_payment_id]}"
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PatientPayments::V4::Types::PatientPayment.load(_response.body)
  else
    error_class = Candid::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end

#get_multi(request_options: {}, **params) ⇒ Candid::PatientPayments::V4::Types::PatientPaymentsPage

Returns all patient payments satisfying the search criteria AND whose organization_id matches the current organization_id of the authenticated user.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/candid/patient_payments/v_4/client.rb', line 16

def get_multi(request_options: {}, **params)
  params = Candid::Internal::Types::Utils.symbolize_keys(params)
  _query_param_names = i[limit patient_external_id claim_id service_line_id billing_provider_id unattributed
                          invoice_id sources sort sort_direction page_token]
  _query = params.slice(*_query_param_names)
  params.except(*_query_param_names)

  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "GET",
    path: "/api/patient-payments/v4",
    query: _query
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PatientPayments::V4::Types::PatientPaymentsPage.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::PatientPayments::V4::Types::PatientPayment

Updates the patient payment record matching the provided patient_payment_id.



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/candid/patient_payments/v_4/client.rb', line 95

def update(request_options: {}, **params)
  _path_param_names = ["patient_payment_id"]

  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "PATCH",
    path: "/api/patient-payments/v4/#{params[:patient_payment_id]}",
    body: params.except(*_path_param_names)
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PatientPayments::V4::Types::PatientPayment.load(_response.body)
  else
    error_class = Candid::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end