candidhealth 0.27.0 → 0.28.0
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.
- checksums.yaml +4 -4
- data/lib/candidhealth/pre_encounter/appointments/client.rb +32 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/client.rb +607 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment.rb +257 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_reason.rb +19 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_sort_field.rb +16 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_type.rb +17 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment_work_queue.rb +17 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/mutable_appointment.rb +203 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/service.rb +82 -0
- data/lib/candidhealth/pre_encounter/appointments/v_1/types/universal_service_identifier.rb +18 -0
- data/lib/candidhealth/pre_encounter/common/types/external_provider.rb +11 -2
- data/lib/candidhealth/pre_encounter/common/types/external_provider_type.rb +1 -0
- data/lib/candidhealth/pre_encounter/common/types/resource_page.rb +72 -0
- data/lib/candidhealth/pre_encounter/common/types/sort_direction.rb +14 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +267 -8
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage.rb +31 -3
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_benefits.rb +88 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_eligibility_check_response.rb +94 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage_value.rb +74 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/eligibility_check.rb +62 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/eligibility_check_metadata.rb +103 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/eligibility_check_status.rb +19 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/insurance_type_code.rb +0 -1
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/mutable_coverage.rb +31 -3
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/plan_coverage.rb +86 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/plan_coverage_details.rb +124 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/service_coverage.rb +98 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/service_coverage_details.rb +124 -0
- data/lib/candidhealth/pre_encounter/coverages/v_1/types/service_type_code.rb +203 -0
- data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +108 -24
- data/lib/candidhealth/pre_encounter/patients/v_1/types/contact.rb +11 -2
- data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +4 -2
- data/lib/candidhealth/pre_encounter/patients/v_1/types/patient_page.rb +90 -0
- data/lib/requests.rb +2 -2
- data/lib/types_export.rb +22 -0
- metadata +26 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7050d2d13615c9d9359a7e99965bf683e999493aadf70fa3e5ca21f1b6391429
|
4
|
+
data.tar.gz: 611a6f45a868541ed4ce357362d1de00e80a4874f2ad48a308e4b4085730e427
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba37abbdb804ffd7677de1e6afab36a66da7189682e234fbb4c8fdc4978c95fe1ba5a485a48bc216aad7bdd10230fdc31c4e959f0d1483592b50034b55cb8aeb
|
7
|
+
data.tar.gz: e0bd6410a9c80169d683d5d8409101b0107b0578527d2e2927b38a628ff9689eae7d51d580f65904bcfc61e3ef358031baf395c90dc8f0e0cc51f467578232e8
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../requests"
|
4
|
+
require_relative "v_1/client"
|
5
|
+
|
6
|
+
module CandidApiClient
|
7
|
+
module PreEncounter
|
8
|
+
module Appointments
|
9
|
+
class Client
|
10
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::V1Client]
|
11
|
+
attr_reader :v_1
|
12
|
+
|
13
|
+
# @param request_client [CandidApiClient::RequestClient]
|
14
|
+
# @return [CandidApiClient::PreEncounter::Appointments::Client]
|
15
|
+
def initialize(request_client:)
|
16
|
+
@v_1 = CandidApiClient::PreEncounter::Appointments::V1::V1Client.new(request_client: request_client)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class AsyncClient
|
21
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::AsyncV1Client]
|
22
|
+
attr_reader :v_1
|
23
|
+
|
24
|
+
# @param request_client [CandidApiClient::AsyncRequestClient]
|
25
|
+
# @return [CandidApiClient::PreEncounter::Appointments::AsyncClient]
|
26
|
+
def initialize(request_client:)
|
27
|
+
@v_1 = CandidApiClient::PreEncounter::Appointments::V1::AsyncV1Client.new(request_client: request_client)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,607 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../../../../requests"
|
4
|
+
require_relative "types/mutable_appointment"
|
5
|
+
require_relative "types/appointment"
|
6
|
+
require "json"
|
7
|
+
require "date"
|
8
|
+
require_relative "types/appointment_work_queue"
|
9
|
+
require_relative "types/appointment_sort_field"
|
10
|
+
require_relative "../../common/types/sort_direction"
|
11
|
+
require "async"
|
12
|
+
|
13
|
+
module CandidApiClient
|
14
|
+
module PreEncounter
|
15
|
+
module Appointments
|
16
|
+
module V1
|
17
|
+
class V1Client
|
18
|
+
# @return [CandidApiClient::RequestClient]
|
19
|
+
attr_reader :request_client
|
20
|
+
|
21
|
+
# @param request_client [CandidApiClient::RequestClient]
|
22
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::V1Client]
|
23
|
+
def initialize(request_client:)
|
24
|
+
@request_client = request_client
|
25
|
+
end
|
26
|
+
|
27
|
+
# Adds an appointment. VersionConflictError is returned when the
|
28
|
+
# placer_appointment_id is already in use.
|
29
|
+
#
|
30
|
+
# @param request [Hash] Request of type CandidApiClient::PreEncounter::Appointments::V1::Types::MutableAppointment, as a Hash
|
31
|
+
# * :patient_id (String)
|
32
|
+
# * :checked_in (Boolean)
|
33
|
+
# * :assigned_patient_location (String)
|
34
|
+
# * :attending_doctor (Hash)
|
35
|
+
# * :name (Hash)
|
36
|
+
# * :family (String)
|
37
|
+
# * :given (Array<String>)
|
38
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
39
|
+
# * :period (Hash)
|
40
|
+
# * :start (Date)
|
41
|
+
# * :end_ (Date)
|
42
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
43
|
+
# * :npi (String)
|
44
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
45
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
46
|
+
# * :period (Hash)
|
47
|
+
# * :start (Date)
|
48
|
+
# * :end_ (Date)
|
49
|
+
# * :canonical_id (String)
|
50
|
+
# * :referring_doctor (Hash)
|
51
|
+
# * :name (Hash)
|
52
|
+
# * :family (String)
|
53
|
+
# * :given (Array<String>)
|
54
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
55
|
+
# * :period (Hash)
|
56
|
+
# * :start (Date)
|
57
|
+
# * :end_ (Date)
|
58
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
59
|
+
# * :npi (String)
|
60
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
61
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
62
|
+
# * :period (Hash)
|
63
|
+
# * :start (Date)
|
64
|
+
# * :end_ (Date)
|
65
|
+
# * :canonical_id (String)
|
66
|
+
# * :start_timestamp (DateTime)
|
67
|
+
# * :service_duration (Integer)
|
68
|
+
# * :services (Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Service>)
|
69
|
+
# * :placer_appointment_id (String)
|
70
|
+
# * :appointment_reason (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentReason)
|
71
|
+
# * :appointment_type (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentType)
|
72
|
+
# * :location_resource_id (String)
|
73
|
+
# * :work_queue (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue)
|
74
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
75
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
|
76
|
+
# @example
|
77
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
78
|
+
# api.pre_encounter.appointments.v_1.create(request: { patient_id: "string", checked_in: true, assigned_patient_location: "string", attending_doctor: { }, referring_doctor: { }, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", appointment_reason: CHECKUP, appointment_type: COMPLETE, location_resource_id: "string", work_queue: EMERGENT_ISSUE })
|
79
|
+
def create(request:, request_options: nil)
|
80
|
+
response = @request_client.conn.post do |req|
|
81
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
82
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
83
|
+
req.headers = {
|
84
|
+
**(req.headers || {}),
|
85
|
+
**@request_client.get_headers,
|
86
|
+
**(request_options&.additional_headers || {})
|
87
|
+
}.compact
|
88
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
89
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
90
|
+
request_options: request_options)}/appointments/v1"
|
91
|
+
end
|
92
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Gets an appointment.
|
96
|
+
#
|
97
|
+
# @param id [String]
|
98
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
99
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
|
100
|
+
# @example
|
101
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
102
|
+
# api.pre_encounter.appointments.v_1.get(id: "string")
|
103
|
+
def get(id:, request_options: nil)
|
104
|
+
response = @request_client.conn.get do |req|
|
105
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
106
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
107
|
+
req.headers = {
|
108
|
+
**(req.headers || {}),
|
109
|
+
**@request_client.get_headers,
|
110
|
+
**(request_options&.additional_headers || {})
|
111
|
+
}.compact
|
112
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
113
|
+
request_options: request_options)}/appointments/v1/#{id}"
|
114
|
+
end
|
115
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
|
116
|
+
end
|
117
|
+
|
118
|
+
# Gets an appointment along with it's full history. The return list is ordered by
|
119
|
+
# version ascending.
|
120
|
+
#
|
121
|
+
# @param id [String]
|
122
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
123
|
+
# @return [Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment>]
|
124
|
+
# @example
|
125
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
126
|
+
# api.pre_encounter.appointments.v_1.get_history(id: "string")
|
127
|
+
def get_history(id:, request_options: nil)
|
128
|
+
response = @request_client.conn.get do |req|
|
129
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
130
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
131
|
+
req.headers = {
|
132
|
+
**(req.headers || {}),
|
133
|
+
**@request_client.get_headers,
|
134
|
+
**(request_options&.additional_headers || {})
|
135
|
+
}.compact
|
136
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
137
|
+
request_options: request_options)}/appointments/v1/#{id}/history"
|
138
|
+
end
|
139
|
+
parsed_json = JSON.parse(response.body)
|
140
|
+
parsed_json&.map do |item|
|
141
|
+
item = item.to_json
|
142
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: item)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
# Updates an appointment. The path must contain the most recent version to prevent
|
147
|
+
# race conditions. Updating historic versions is not supported.
|
148
|
+
#
|
149
|
+
# @param id [String]
|
150
|
+
# @param version [String]
|
151
|
+
# @param request [Hash] Request of type CandidApiClient::PreEncounter::Appointments::V1::Types::MutableAppointment, as a Hash
|
152
|
+
# * :patient_id (String)
|
153
|
+
# * :checked_in (Boolean)
|
154
|
+
# * :assigned_patient_location (String)
|
155
|
+
# * :attending_doctor (Hash)
|
156
|
+
# * :name (Hash)
|
157
|
+
# * :family (String)
|
158
|
+
# * :given (Array<String>)
|
159
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
160
|
+
# * :period (Hash)
|
161
|
+
# * :start (Date)
|
162
|
+
# * :end_ (Date)
|
163
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
164
|
+
# * :npi (String)
|
165
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
166
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
167
|
+
# * :period (Hash)
|
168
|
+
# * :start (Date)
|
169
|
+
# * :end_ (Date)
|
170
|
+
# * :canonical_id (String)
|
171
|
+
# * :referring_doctor (Hash)
|
172
|
+
# * :name (Hash)
|
173
|
+
# * :family (String)
|
174
|
+
# * :given (Array<String>)
|
175
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
176
|
+
# * :period (Hash)
|
177
|
+
# * :start (Date)
|
178
|
+
# * :end_ (Date)
|
179
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
180
|
+
# * :npi (String)
|
181
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
182
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
183
|
+
# * :period (Hash)
|
184
|
+
# * :start (Date)
|
185
|
+
# * :end_ (Date)
|
186
|
+
# * :canonical_id (String)
|
187
|
+
# * :start_timestamp (DateTime)
|
188
|
+
# * :service_duration (Integer)
|
189
|
+
# * :services (Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Service>)
|
190
|
+
# * :placer_appointment_id (String)
|
191
|
+
# * :appointment_reason (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentReason)
|
192
|
+
# * :appointment_type (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentType)
|
193
|
+
# * :location_resource_id (String)
|
194
|
+
# * :work_queue (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue)
|
195
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
196
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
|
197
|
+
# @example
|
198
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
199
|
+
# api.pre_encounter.appointments.v_1.update(
|
200
|
+
# id: "string",
|
201
|
+
# version: "string",
|
202
|
+
# request: { patient_id: "string", checked_in: true, assigned_patient_location: "string", attending_doctor: { }, referring_doctor: { }, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", appointment_reason: CHECKUP, appointment_type: COMPLETE, location_resource_id: "string", work_queue: EMERGENT_ISSUE }
|
203
|
+
# )
|
204
|
+
def update(id:, version:, request:, request_options: nil)
|
205
|
+
response = @request_client.conn.put do |req|
|
206
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
207
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
208
|
+
req.headers = {
|
209
|
+
**(req.headers || {}),
|
210
|
+
**@request_client.get_headers,
|
211
|
+
**(request_options&.additional_headers || {})
|
212
|
+
}.compact
|
213
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
214
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
215
|
+
request_options: request_options)}/appointments/v1/#{id}/#{version}"
|
216
|
+
end
|
217
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
|
218
|
+
end
|
219
|
+
|
220
|
+
# Sets an appointment as deactivated. The path must contain the most recent
|
221
|
+
# version to prevent race conditions. Deactivating historic versions is not
|
222
|
+
# supported. Subsequent updates via PUT to the appointment will "reactivate" the
|
223
|
+
# appointment and set the deactivated flag to false.
|
224
|
+
#
|
225
|
+
# @param id [String]
|
226
|
+
# @param version [String]
|
227
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
228
|
+
# @return [Void]
|
229
|
+
# @example
|
230
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
231
|
+
# api.pre_encounter.appointments.v_1.deactivate(id: "string", version: "string")
|
232
|
+
def deactivate(id:, version:, request_options: nil)
|
233
|
+
@request_client.conn.delete do |req|
|
234
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
235
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
236
|
+
req.headers = {
|
237
|
+
**(req.headers || {}),
|
238
|
+
**@request_client.get_headers,
|
239
|
+
**(request_options&.additional_headers || {})
|
240
|
+
}.compact
|
241
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
242
|
+
request_options: request_options)}/appointments/v1/#{id}/#{version}"
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
# Searches for appointments that match the query parameters.
|
247
|
+
#
|
248
|
+
# @param checked_in [Boolean]
|
249
|
+
# @param patient_id [String]
|
250
|
+
# @param min_start_timestamp [DateTime]
|
251
|
+
# @param max_start_timestamp [DateTime]
|
252
|
+
# @param placer_appointment_id [String]
|
253
|
+
# @param work_queue [CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue]
|
254
|
+
# @param sort_field [CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentSortField] Defaults to start_timestamp.
|
255
|
+
# @param sort_direction [CandidApiClient::PreEncounter::Common::Types::SortDirection] Defaults to asc.
|
256
|
+
# @param limit [Integer] Defaults to 1000.
|
257
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
258
|
+
# @return [Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment>]
|
259
|
+
# @example
|
260
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
261
|
+
# api.pre_encounter.appointments.v_1.get_multi(
|
262
|
+
# checked_in: true,
|
263
|
+
# patient_id: "string",
|
264
|
+
# min_start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z),
|
265
|
+
# max_start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z),
|
266
|
+
# placer_appointment_id: "string",
|
267
|
+
# work_queue: EMERGENT_ISSUE,
|
268
|
+
# sort_field: START_TIMESTAMP,
|
269
|
+
# sort_direction: ASC,
|
270
|
+
# limit: 1
|
271
|
+
# )
|
272
|
+
def get_multi(checked_in: nil, patient_id: nil, min_start_timestamp: nil, max_start_timestamp: nil,
|
273
|
+
placer_appointment_id: nil, work_queue: nil, sort_field: nil, sort_direction: nil, limit: nil, request_options: nil)
|
274
|
+
response = @request_client.conn.get do |req|
|
275
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
276
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
277
|
+
req.headers = {
|
278
|
+
**(req.headers || {}),
|
279
|
+
**@request_client.get_headers,
|
280
|
+
**(request_options&.additional_headers || {})
|
281
|
+
}.compact
|
282
|
+
req.params = {
|
283
|
+
**(request_options&.additional_query_parameters || {}),
|
284
|
+
"checked_in": checked_in,
|
285
|
+
"patient_id": patient_id,
|
286
|
+
"min_start_timestamp": min_start_timestamp,
|
287
|
+
"max_start_timestamp": max_start_timestamp,
|
288
|
+
"placer_appointment_id": placer_appointment_id,
|
289
|
+
"work_queue": work_queue,
|
290
|
+
"sort_field": sort_field,
|
291
|
+
"sort_direction": sort_direction,
|
292
|
+
"limit": limit
|
293
|
+
}.compact
|
294
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
295
|
+
request_options: request_options)}/appointments/v1"
|
296
|
+
end
|
297
|
+
parsed_json = JSON.parse(response.body)
|
298
|
+
parsed_json&.map do |item|
|
299
|
+
item = item.to_json
|
300
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: item)
|
301
|
+
end
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
305
|
+
class AsyncV1Client
|
306
|
+
# @return [CandidApiClient::AsyncRequestClient]
|
307
|
+
attr_reader :request_client
|
308
|
+
|
309
|
+
# @param request_client [CandidApiClient::AsyncRequestClient]
|
310
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::AsyncV1Client]
|
311
|
+
def initialize(request_client:)
|
312
|
+
@request_client = request_client
|
313
|
+
end
|
314
|
+
|
315
|
+
# Adds an appointment. VersionConflictError is returned when the
|
316
|
+
# placer_appointment_id is already in use.
|
317
|
+
#
|
318
|
+
# @param request [Hash] Request of type CandidApiClient::PreEncounter::Appointments::V1::Types::MutableAppointment, as a Hash
|
319
|
+
# * :patient_id (String)
|
320
|
+
# * :checked_in (Boolean)
|
321
|
+
# * :assigned_patient_location (String)
|
322
|
+
# * :attending_doctor (Hash)
|
323
|
+
# * :name (Hash)
|
324
|
+
# * :family (String)
|
325
|
+
# * :given (Array<String>)
|
326
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
327
|
+
# * :period (Hash)
|
328
|
+
# * :start (Date)
|
329
|
+
# * :end_ (Date)
|
330
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
331
|
+
# * :npi (String)
|
332
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
333
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
334
|
+
# * :period (Hash)
|
335
|
+
# * :start (Date)
|
336
|
+
# * :end_ (Date)
|
337
|
+
# * :canonical_id (String)
|
338
|
+
# * :referring_doctor (Hash)
|
339
|
+
# * :name (Hash)
|
340
|
+
# * :family (String)
|
341
|
+
# * :given (Array<String>)
|
342
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
343
|
+
# * :period (Hash)
|
344
|
+
# * :start (Date)
|
345
|
+
# * :end_ (Date)
|
346
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
347
|
+
# * :npi (String)
|
348
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
349
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
350
|
+
# * :period (Hash)
|
351
|
+
# * :start (Date)
|
352
|
+
# * :end_ (Date)
|
353
|
+
# * :canonical_id (String)
|
354
|
+
# * :start_timestamp (DateTime)
|
355
|
+
# * :service_duration (Integer)
|
356
|
+
# * :services (Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Service>)
|
357
|
+
# * :placer_appointment_id (String)
|
358
|
+
# * :appointment_reason (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentReason)
|
359
|
+
# * :appointment_type (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentType)
|
360
|
+
# * :location_resource_id (String)
|
361
|
+
# * :work_queue (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue)
|
362
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
363
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
|
364
|
+
# @example
|
365
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
366
|
+
# api.pre_encounter.appointments.v_1.create(request: { patient_id: "string", checked_in: true, assigned_patient_location: "string", attending_doctor: { }, referring_doctor: { }, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", appointment_reason: CHECKUP, appointment_type: COMPLETE, location_resource_id: "string", work_queue: EMERGENT_ISSUE })
|
367
|
+
def create(request:, request_options: nil)
|
368
|
+
Async do
|
369
|
+
response = @request_client.conn.post do |req|
|
370
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
371
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
372
|
+
req.headers = {
|
373
|
+
**(req.headers || {}),
|
374
|
+
**@request_client.get_headers,
|
375
|
+
**(request_options&.additional_headers || {})
|
376
|
+
}.compact
|
377
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
378
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
379
|
+
request_options: request_options)}/appointments/v1"
|
380
|
+
end
|
381
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
|
382
|
+
end
|
383
|
+
end
|
384
|
+
|
385
|
+
# Gets an appointment.
|
386
|
+
#
|
387
|
+
# @param id [String]
|
388
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
389
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
|
390
|
+
# @example
|
391
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
392
|
+
# api.pre_encounter.appointments.v_1.get(id: "string")
|
393
|
+
def get(id:, request_options: nil)
|
394
|
+
Async do
|
395
|
+
response = @request_client.conn.get do |req|
|
396
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
397
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
398
|
+
req.headers = {
|
399
|
+
**(req.headers || {}),
|
400
|
+
**@request_client.get_headers,
|
401
|
+
**(request_options&.additional_headers || {})
|
402
|
+
}.compact
|
403
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
404
|
+
request_options: request_options)}/appointments/v1/#{id}"
|
405
|
+
end
|
406
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|
410
|
+
# Gets an appointment along with it's full history. The return list is ordered by
|
411
|
+
# version ascending.
|
412
|
+
#
|
413
|
+
# @param id [String]
|
414
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
415
|
+
# @return [Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment>]
|
416
|
+
# @example
|
417
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
418
|
+
# api.pre_encounter.appointments.v_1.get_history(id: "string")
|
419
|
+
def get_history(id:, request_options: nil)
|
420
|
+
Async do
|
421
|
+
response = @request_client.conn.get do |req|
|
422
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
423
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
424
|
+
req.headers = {
|
425
|
+
**(req.headers || {}),
|
426
|
+
**@request_client.get_headers,
|
427
|
+
**(request_options&.additional_headers || {})
|
428
|
+
}.compact
|
429
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
430
|
+
request_options: request_options)}/appointments/v1/#{id}/history"
|
431
|
+
end
|
432
|
+
parsed_json = JSON.parse(response.body)
|
433
|
+
parsed_json&.map do |item|
|
434
|
+
item = item.to_json
|
435
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: item)
|
436
|
+
end
|
437
|
+
end
|
438
|
+
end
|
439
|
+
|
440
|
+
# Updates an appointment. The path must contain the most recent version to prevent
|
441
|
+
# race conditions. Updating historic versions is not supported.
|
442
|
+
#
|
443
|
+
# @param id [String]
|
444
|
+
# @param version [String]
|
445
|
+
# @param request [Hash] Request of type CandidApiClient::PreEncounter::Appointments::V1::Types::MutableAppointment, as a Hash
|
446
|
+
# * :patient_id (String)
|
447
|
+
# * :checked_in (Boolean)
|
448
|
+
# * :assigned_patient_location (String)
|
449
|
+
# * :attending_doctor (Hash)
|
450
|
+
# * :name (Hash)
|
451
|
+
# * :family (String)
|
452
|
+
# * :given (Array<String>)
|
453
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
454
|
+
# * :period (Hash)
|
455
|
+
# * :start (Date)
|
456
|
+
# * :end_ (Date)
|
457
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
458
|
+
# * :npi (String)
|
459
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
460
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
461
|
+
# * :period (Hash)
|
462
|
+
# * :start (Date)
|
463
|
+
# * :end_ (Date)
|
464
|
+
# * :canonical_id (String)
|
465
|
+
# * :referring_doctor (Hash)
|
466
|
+
# * :name (Hash)
|
467
|
+
# * :family (String)
|
468
|
+
# * :given (Array<String>)
|
469
|
+
# * :use (CandidApiClient::PreEncounter::Common::Types::NameUse)
|
470
|
+
# * :period (Hash)
|
471
|
+
# * :start (Date)
|
472
|
+
# * :end_ (Date)
|
473
|
+
# * :type (CandidApiClient::PreEncounter::Common::Types::ExternalProviderType)
|
474
|
+
# * :npi (String)
|
475
|
+
# * :telecoms (Array<CandidApiClient::PreEncounter::Common::Types::ContactPoint>)
|
476
|
+
# * :addresses (Array<CandidApiClient::PreEncounter::Common::Types::Address>)
|
477
|
+
# * :period (Hash)
|
478
|
+
# * :start (Date)
|
479
|
+
# * :end_ (Date)
|
480
|
+
# * :canonical_id (String)
|
481
|
+
# * :start_timestamp (DateTime)
|
482
|
+
# * :service_duration (Integer)
|
483
|
+
# * :services (Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Service>)
|
484
|
+
# * :placer_appointment_id (String)
|
485
|
+
# * :appointment_reason (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentReason)
|
486
|
+
# * :appointment_type (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentType)
|
487
|
+
# * :location_resource_id (String)
|
488
|
+
# * :work_queue (CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue)
|
489
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
490
|
+
# @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
|
491
|
+
# @example
|
492
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
493
|
+
# api.pre_encounter.appointments.v_1.update(
|
494
|
+
# id: "string",
|
495
|
+
# version: "string",
|
496
|
+
# request: { patient_id: "string", checked_in: true, assigned_patient_location: "string", attending_doctor: { }, referring_doctor: { }, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z), service_duration: 1, services: [{ universal_service_identifier: MD_VISIT, start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z) }], placer_appointment_id: "string", appointment_reason: CHECKUP, appointment_type: COMPLETE, location_resource_id: "string", work_queue: EMERGENT_ISSUE }
|
497
|
+
# )
|
498
|
+
def update(id:, version:, request:, request_options: nil)
|
499
|
+
Async do
|
500
|
+
response = @request_client.conn.put do |req|
|
501
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
502
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
503
|
+
req.headers = {
|
504
|
+
**(req.headers || {}),
|
505
|
+
**@request_client.get_headers,
|
506
|
+
**(request_options&.additional_headers || {})
|
507
|
+
}.compact
|
508
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
509
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
510
|
+
request_options: request_options)}/appointments/v1/#{id}/#{version}"
|
511
|
+
end
|
512
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: response.body)
|
513
|
+
end
|
514
|
+
end
|
515
|
+
|
516
|
+
# Sets an appointment as deactivated. The path must contain the most recent
|
517
|
+
# version to prevent race conditions. Deactivating historic versions is not
|
518
|
+
# supported. Subsequent updates via PUT to the appointment will "reactivate" the
|
519
|
+
# appointment and set the deactivated flag to false.
|
520
|
+
#
|
521
|
+
# @param id [String]
|
522
|
+
# @param version [String]
|
523
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
524
|
+
# @return [Void]
|
525
|
+
# @example
|
526
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
527
|
+
# api.pre_encounter.appointments.v_1.deactivate(id: "string", version: "string")
|
528
|
+
def deactivate(id:, version:, request_options: nil)
|
529
|
+
Async do
|
530
|
+
@request_client.conn.delete do |req|
|
531
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
532
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
533
|
+
req.headers = {
|
534
|
+
**(req.headers || {}),
|
535
|
+
**@request_client.get_headers,
|
536
|
+
**(request_options&.additional_headers || {})
|
537
|
+
}.compact
|
538
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
539
|
+
request_options: request_options)}/appointments/v1/#{id}/#{version}"
|
540
|
+
end
|
541
|
+
end
|
542
|
+
end
|
543
|
+
|
544
|
+
# Searches for appointments that match the query parameters.
|
545
|
+
#
|
546
|
+
# @param checked_in [Boolean]
|
547
|
+
# @param patient_id [String]
|
548
|
+
# @param min_start_timestamp [DateTime]
|
549
|
+
# @param max_start_timestamp [DateTime]
|
550
|
+
# @param placer_appointment_id [String]
|
551
|
+
# @param work_queue [CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentWorkQueue]
|
552
|
+
# @param sort_field [CandidApiClient::PreEncounter::Appointments::V1::Types::AppointmentSortField] Defaults to start_timestamp.
|
553
|
+
# @param sort_direction [CandidApiClient::PreEncounter::Common::Types::SortDirection] Defaults to asc.
|
554
|
+
# @param limit [Integer] Defaults to 1000.
|
555
|
+
# @param request_options [CandidApiClient::RequestOptions]
|
556
|
+
# @return [Array<CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment>]
|
557
|
+
# @example
|
558
|
+
# api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
|
559
|
+
# api.pre_encounter.appointments.v_1.get_multi(
|
560
|
+
# checked_in: true,
|
561
|
+
# patient_id: "string",
|
562
|
+
# min_start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z),
|
563
|
+
# max_start_timestamp: DateTime.parse(2024-01-15T09:30:00.000Z),
|
564
|
+
# placer_appointment_id: "string",
|
565
|
+
# work_queue: EMERGENT_ISSUE,
|
566
|
+
# sort_field: START_TIMESTAMP,
|
567
|
+
# sort_direction: ASC,
|
568
|
+
# limit: 1
|
569
|
+
# )
|
570
|
+
def get_multi(checked_in: nil, patient_id: nil, min_start_timestamp: nil, max_start_timestamp: nil,
|
571
|
+
placer_appointment_id: nil, work_queue: nil, sort_field: nil, sort_direction: nil, limit: nil, request_options: nil)
|
572
|
+
Async do
|
573
|
+
response = @request_client.conn.get do |req|
|
574
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
575
|
+
req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
|
576
|
+
req.headers = {
|
577
|
+
**(req.headers || {}),
|
578
|
+
**@request_client.get_headers,
|
579
|
+
**(request_options&.additional_headers || {})
|
580
|
+
}.compact
|
581
|
+
req.params = {
|
582
|
+
**(request_options&.additional_query_parameters || {}),
|
583
|
+
"checked_in": checked_in,
|
584
|
+
"patient_id": patient_id,
|
585
|
+
"min_start_timestamp": min_start_timestamp,
|
586
|
+
"max_start_timestamp": max_start_timestamp,
|
587
|
+
"placer_appointment_id": placer_appointment_id,
|
588
|
+
"work_queue": work_queue,
|
589
|
+
"sort_field": sort_field,
|
590
|
+
"sort_direction": sort_direction,
|
591
|
+
"limit": limit
|
592
|
+
}.compact
|
593
|
+
req.url "#{@request_client.get_url(environment: PreEncounter,
|
594
|
+
request_options: request_options)}/appointments/v1"
|
595
|
+
end
|
596
|
+
parsed_json = JSON.parse(response.body)
|
597
|
+
parsed_json&.map do |item|
|
598
|
+
item = item.to_json
|
599
|
+
CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment.from_json(json_object: item)
|
600
|
+
end
|
601
|
+
end
|
602
|
+
end
|
603
|
+
end
|
604
|
+
end
|
605
|
+
end
|
606
|
+
end
|
607
|
+
end
|