candidhealth 1.3.1 → 1.5.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/charge_capture/v_1/client.rb +885 -235
  3. data/lib/candidhealth/claim_submission/v_1/types/claim_submission_record_create.rb +4 -4
  4. data/lib/candidhealth/claim_submission/v_1/types/claim_submission_record_create_optional.rb +4 -4
  5. data/lib/candidhealth/contracts/v_2/client.rb +4 -4
  6. data/lib/candidhealth/diagnoses/types/disallow_multiple_primary_diagnosis_error.rb +80 -0
  7. data/lib/candidhealth/diagnoses/types/service_lines_must_have_at_least_one_diagnosis_error.rb +77 -0
  8. data/lib/candidhealth/encounters/v_4/types/encounter.rb +151 -2
  9. data/lib/candidhealth/encounters/v_4/types/encounter_submission_expectation.rb +23 -0
  10. data/lib/candidhealth/exports/v_3/client.rb +16 -10
  11. data/lib/candidhealth/fee_schedules/v_3/client.rb +82 -0
  12. data/lib/candidhealth/individual/types/subscriber_create.rb +6 -2
  13. data/lib/candidhealth/individual/types/subscriber_create_optional.rb +6 -2
  14. data/lib/candidhealth/non_insurance_payers/v_1/client.rb +95 -6
  15. data/lib/candidhealth/non_insurance_payers/v_1/types/non_insurance_payer_categories_page.rb +83 -0
  16. data/lib/candidhealth/organization_providers/v_3/client.rb +8 -4
  17. data/lib/candidhealth/organization_service_facilities/v_2/client.rb +8 -2
  18. data/lib/candidhealth/pre_encounter/appointments/v_1/client.rb +12 -4
  19. data/lib/candidhealth/pre_encounter/appointments/v_1/types/appointment.rb +11 -3
  20. data/lib/candidhealth/pre_encounter/appointments/v_1/types/mutable_appointment.rb +9 -1
  21. data/lib/candidhealth/pre_encounter/appointments/v_1/types/visit.rb +24 -2
  22. data/lib/candidhealth/pre_encounter/common/types/base_model.rb +2 -2
  23. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +8 -4
  24. data/lib/candidhealth/pre_encounter/coverages/v_1/types/coverage.rb +6 -4
  25. data/lib/candidhealth/pre_encounter/coverages/v_1/types/mutable_coverage.rb +4 -2
  26. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/client.rb +205 -16
  27. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/coordination_of_benefits_recommendation.rb +63 -0
  28. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/eligibility_recommendation.rb +144 -0
  29. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/eligibility_recommendation_patient_info.rb +124 -0
  30. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/eligibility_recommendation_payload.rb +102 -0
  31. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/medicare_advantage_recommendation.rb +70 -0
  32. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/medicare_advantage_recommendation_payload.rb +96 -0
  33. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/payer_search_response.rb +107 -0
  34. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/post_eligibility_recommendation_request.rb +96 -0
  35. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/stedi_payer.rb +144 -0
  36. data/lib/candidhealth/pre_encounter/eligibility_checks/v_1/types/stedi_payer_item.rb +79 -0
  37. data/lib/candidhealth/pre_encounter/images/v_1/types/image.rb +2 -2
  38. data/lib/candidhealth/pre_encounter/lists/v_1/types/patient_list_item.rb +28 -1
  39. data/lib/candidhealth/pre_encounter/notes/v_1/types/note.rb +2 -2
  40. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +8 -4
  41. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +2 -2
  42. data/lib/candidhealth/pre_encounter/tags/v_1/client.rb +8 -0
  43. data/lib/candidhealth/pre_encounter/tags/v_1/types/mutable_tag.rb +22 -3
  44. data/lib/candidhealth/pre_encounter/tags/v_1/types/tag.rb +23 -5
  45. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +9 -1
  46. data/lib/candidhealth/x_12/v_1/types/patient_discharge_status_code.rb +52 -0
  47. data/lib/candidhealth/x_12/v_1/types/point_of_origin_for_admission_or_visit_code.rb +23 -0
  48. data/lib/candidhealth/x_12/v_1/types/type_of_admission_or_visit_code.rb +18 -0
  49. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite.rb +98 -0
  50. data/lib/candidhealth/x_12/v_1/types/type_of_bill_frequency_code.rb +39 -0
  51. data/lib/candidhealth/x_12/v_1/types/type_of_care_code.rb +21 -0
  52. data/lib/candidhealth/x_12/v_1/types/type_of_facility_code.rb +19 -0
  53. data/lib/requests.rb +2 -2
  54. data/lib/types_export.rb +21 -1
  55. metadata +23 -3
  56. data/lib/candidhealth/claim_submission/v_1/types/claim_frequency_type_code.rb +0 -15
@@ -17,6 +17,7 @@ require "json"
17
17
  require_relative "types/rate_upload"
18
18
  require_relative "types/payer_threshold"
19
19
  require_relative "types/payer_thresholds_page"
20
+ require_relative "types/optional_dimensions"
20
21
  require "async"
21
22
 
22
23
  module CandidApiClient
@@ -345,6 +346,45 @@ module CandidApiClient
345
346
  end
346
347
  CandidApiClient::FeeSchedules::V3::Types::PayerThreshold.from_json(json_object: response.body)
347
348
  end
349
+
350
+ # Hard deletes rates from the system that match the provided dimensions. This is
351
+ # a destructive operation and cannot be undone. If an empty dimensions object is
352
+ # provided, all rates will be hard deleted. The maximum number of rates this API
353
+ # will delete at a time is 10000. Returns the number of rates deleted and if that
354
+ # number is the maximum, the caller should call this API again to continue
355
+ # deleting rates.
356
+ #
357
+ # @param request [Hash] Request of type CandidApiClient::FeeSchedules::V3::Types::OptionalDimensions, as a Hash
358
+ # * :payer_uuid (String)
359
+ # * :organization_billing_provider_id (String)
360
+ # * :states (Set<CandidApiClient::Commons::Types::State>)
361
+ # * :zip_codes (Set<String>)
362
+ # * :license_types (Set<CandidApiClient::OrganizationProviders::V2::Types::LicenseType>)
363
+ # * :facility_type_codes (Set<CandidApiClient::Commons::Types::FacilityTypeCode>)
364
+ # * :network_types (Set<CandidApiClient::Commons::Types::NetworkType>)
365
+ # * :payer_plan_group_ids (Set<String>)
366
+ # * :cpt_code (String)
367
+ # * :modifiers (Set<CandidApiClient::Commons::Types::ProcedureModifier>)
368
+ # @param request_options [CandidApiClient::RequestOptions]
369
+ # @return [Integer]
370
+ # @example
371
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
372
+ # api.fee_schedules.v_3.hard_delete_rates(request: { states: Set[AA], zip_codes: Set["zip_codes"], license_types: Set[MD], facility_type_codes: Set[PHARMACY], network_types: Set[PPO], payer_plan_group_ids: Set["d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32"], modifiers: Set[AV] })
373
+ def hard_delete_rates(request:, request_options: nil)
374
+ response = @request_client.conn.post do |req|
375
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
376
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
377
+ req.headers = {
378
+ **(req.headers || {}),
379
+ **@request_client.get_headers,
380
+ **(request_options&.additional_headers || {})
381
+ }.compact
382
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
383
+ req.url "#{@request_client.get_url(environment: CandidApi,
384
+ request_options: request_options)}/api/fee-schedules/v3/hard-delete"
385
+ end
386
+ JSON.parse(response.body)
387
+ end
348
388
  end
349
389
 
350
390
  class AsyncV3Client
@@ -697,6 +737,48 @@ module CandidApiClient
697
737
  CandidApiClient::FeeSchedules::V3::Types::PayerThreshold.from_json(json_object: response.body)
698
738
  end
699
739
  end
740
+
741
+ # Hard deletes rates from the system that match the provided dimensions. This is
742
+ # a destructive operation and cannot be undone. If an empty dimensions object is
743
+ # provided, all rates will be hard deleted. The maximum number of rates this API
744
+ # will delete at a time is 10000. Returns the number of rates deleted and if that
745
+ # number is the maximum, the caller should call this API again to continue
746
+ # deleting rates.
747
+ #
748
+ # @param request [Hash] Request of type CandidApiClient::FeeSchedules::V3::Types::OptionalDimensions, as a Hash
749
+ # * :payer_uuid (String)
750
+ # * :organization_billing_provider_id (String)
751
+ # * :states (Set<CandidApiClient::Commons::Types::State>)
752
+ # * :zip_codes (Set<String>)
753
+ # * :license_types (Set<CandidApiClient::OrganizationProviders::V2::Types::LicenseType>)
754
+ # * :facility_type_codes (Set<CandidApiClient::Commons::Types::FacilityTypeCode>)
755
+ # * :network_types (Set<CandidApiClient::Commons::Types::NetworkType>)
756
+ # * :payer_plan_group_ids (Set<String>)
757
+ # * :cpt_code (String)
758
+ # * :modifiers (Set<CandidApiClient::Commons::Types::ProcedureModifier>)
759
+ # @param request_options [CandidApiClient::RequestOptions]
760
+ # @return [Integer]
761
+ # @example
762
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
763
+ # api.fee_schedules.v_3.hard_delete_rates(request: { states: Set[AA], zip_codes: Set["zip_codes"], license_types: Set[MD], facility_type_codes: Set[PHARMACY], network_types: Set[PPO], payer_plan_group_ids: Set["d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32"], modifiers: Set[AV] })
764
+ def hard_delete_rates(request:, request_options: nil)
765
+ Async do
766
+ response = @request_client.conn.post do |req|
767
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
768
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
769
+ req.headers = {
770
+ **(req.headers || {}),
771
+ **@request_client.get_headers,
772
+ **(request_options&.additional_headers || {})
773
+ }.compact
774
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
775
+ req.url "#{@request_client.get_url(environment: CandidApi,
776
+ request_options: request_options)}/api/fee-schedules/v3/hard-delete"
777
+ end
778
+ parsed_json = JSON.parse(response.body)
779
+ parsed_json
780
+ end
781
+ end
700
782
  end
701
783
  end
702
784
  end
@@ -12,7 +12,9 @@ module CandidApiClient
12
12
  module Individual
13
13
  module Types
14
14
  class SubscriberCreate
15
- # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreate]
15
+ # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreate] Please reference our [Payer
16
+ # Information](https://docs.joincandidhealth.com/introduction/payer-information)
17
+ # documentation for more details on how to populate the `insurance_card` fields.
16
18
  attr_reader :insurance_card
17
19
  # @return [CandidApiClient::Commons::Types::PatientRelationshipToInsuredCodeAll]
18
20
  attr_reader :patient_relationship_to_subscriber_code
@@ -34,7 +36,9 @@ module CandidApiClient
34
36
 
35
37
  OMIT = Object.new
36
38
 
37
- # @param insurance_card [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreate]
39
+ # @param insurance_card [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreate] Please reference our [Payer
40
+ # Information](https://docs.joincandidhealth.com/introduction/payer-information)
41
+ # documentation for more details on how to populate the `insurance_card` fields.
38
42
  # @param patient_relationship_to_subscriber_code [CandidApiClient::Commons::Types::PatientRelationshipToInsuredCodeAll]
39
43
  # @param date_of_birth [Date]
40
44
  # @param address [CandidApiClient::Commons::Types::StreetAddressShortZip]
@@ -12,7 +12,9 @@ module CandidApiClient
12
12
  module Individual
13
13
  module Types
14
14
  class SubscriberCreateOptional
15
- # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreateOptional]
15
+ # @return [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreateOptional] Please reference our [Payer
16
+ # Information](https://docs.joincandidhealth.com/introduction/payer-information)
17
+ # documentation for more details on how to populate the `insurance_card` fields.
16
18
  attr_reader :insurance_card
17
19
  # @return [CandidApiClient::Commons::Types::PatientRelationshipToInsuredCodeAll]
18
20
  attr_reader :patient_relationship_to_subscriber_code
@@ -34,7 +36,9 @@ module CandidApiClient
34
36
 
35
37
  OMIT = Object.new
36
38
 
37
- # @param insurance_card [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreateOptional]
39
+ # @param insurance_card [CandidApiClient::InsuranceCards::V2::Types::InsuranceCardCreateOptional] Please reference our [Payer
40
+ # Information](https://docs.joincandidhealth.com/introduction/payer-information)
41
+ # documentation for more details on how to populate the `insurance_card` fields.
38
42
  # @param patient_relationship_to_subscriber_code [CandidApiClient::Commons::Types::PatientRelationshipToInsuredCodeAll]
39
43
  # @param date_of_birth [Date]
40
44
  # @param address [CandidApiClient::Commons::Types::StreetAddressShortZipOptional]
@@ -7,6 +7,7 @@ require_relative "types/toggle_non_insurance_payer_enablement_request"
7
7
  require_relative "types/non_insurance_payer_sort_field"
8
8
  require_relative "../../commons/types/sort_direction"
9
9
  require_relative "types/non_insurance_payer_page"
10
+ require_relative "types/non_insurance_payer_categories_page"
10
11
  require_relative "types/non_insurance_payer_update_request"
11
12
  require "async"
12
13
 
@@ -81,7 +82,13 @@ module CandidApiClient
81
82
  end
82
83
 
83
84
  # @param name [String]
84
- # @param category [String]
85
+ # @param category [String] Fuzzy-match category names of non-insurance payers.
86
+ # @param categories_exact [String] Filter by one or more categories by name.
87
+ # When multiple are present, non-insurance payers with any of the specified
88
+ # categories will be matched.
89
+ # @param clinical_trial_ids [String] Filter by one or more clinical trials by their `clinical_trial_id`.
90
+ # When multiple are present, non-insurance payers with any of the specified
91
+ # clinical trials will be matched.
85
92
  # @param enabled [Boolean]
86
93
  # @param sort [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerSortField]
87
94
  # @param sort_direction [CandidApiClient::Commons::Types::SortDirection]
@@ -92,8 +99,8 @@ module CandidApiClient
92
99
  # @example
93
100
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
94
101
  # api.non_insurance_payers.v_1.get_multi
95
- def get_multi(name: nil, category: nil, enabled: nil, sort: nil, sort_direction: nil, limit: nil,
96
- page_token: nil, request_options: nil)
102
+ def get_multi(name: nil, category: nil, categories_exact: nil, clinical_trial_ids: nil, enabled: nil,
103
+ sort: nil, sort_direction: nil, limit: nil, page_token: nil, request_options: nil)
97
104
  response = @request_client.conn.get do |req|
98
105
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
99
106
  req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
@@ -106,6 +113,8 @@ module CandidApiClient
106
113
  **(request_options&.additional_query_parameters || {}),
107
114
  "name": name,
108
115
  "category": category,
116
+ "categories_exact": categories_exact,
117
+ "clinical_trial_ids": clinical_trial_ids,
109
118
  "enabled": enabled,
110
119
  "sort": sort,
111
120
  "sort_direction": sort_direction,
@@ -118,6 +127,41 @@ module CandidApiClient
118
127
  CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerPage.from_json(json_object: response.body)
119
128
  end
120
129
 
130
+ # Returns a paginated list of all non-insurance payer categories.
131
+ # Non-insurance payer categories are simply strings and are not stored as a
132
+ # separate object in Candid. They are created when added to at least one
133
+ # non-insurance payer's `category` field and are deleted when there are no
134
+ # longer any non-insurance payers that contain them.
135
+ #
136
+ # @param search_term [String] Filters categories by fuzzy matching on name.
137
+ # @param limit [Integer] Limits the maximum number of categories that will be returned. Defaults to 100.
138
+ # @param page_token [String] The page token to continue paging through a previous request.
139
+ # @param request_options [CandidApiClient::RequestOptions]
140
+ # @return [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerCategoriesPage]
141
+ # @example
142
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
143
+ # api.non_insurance_payers.v_1.get_categories
144
+ def get_categories(search_term: nil, limit: nil, page_token: nil, request_options: nil)
145
+ response = @request_client.conn.get do |req|
146
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
147
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
148
+ req.headers = {
149
+ **(req.headers || {}),
150
+ **@request_client.get_headers,
151
+ **(request_options&.additional_headers || {})
152
+ }.compact
153
+ req.params = {
154
+ **(request_options&.additional_query_parameters || {}),
155
+ "search_term": search_term,
156
+ "limit": limit,
157
+ "page_token": page_token
158
+ }.compact
159
+ req.url "#{@request_client.get_url(environment: CandidApi,
160
+ request_options: request_options)}/api/non-insurance-payers/v1/categories"
161
+ end
162
+ CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerCategoriesPage.from_json(json_object: response.body)
163
+ end
164
+
121
165
  # @param non_insurance_payer_id [String]
122
166
  # @param request_options [CandidApiClient::RequestOptions]
123
167
  # @return [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayer]
@@ -259,7 +303,13 @@ module CandidApiClient
259
303
  end
260
304
 
261
305
  # @param name [String]
262
- # @param category [String]
306
+ # @param category [String] Fuzzy-match category names of non-insurance payers.
307
+ # @param categories_exact [String] Filter by one or more categories by name.
308
+ # When multiple are present, non-insurance payers with any of the specified
309
+ # categories will be matched.
310
+ # @param clinical_trial_ids [String] Filter by one or more clinical trials by their `clinical_trial_id`.
311
+ # When multiple are present, non-insurance payers with any of the specified
312
+ # clinical trials will be matched.
263
313
  # @param enabled [Boolean]
264
314
  # @param sort [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerSortField]
265
315
  # @param sort_direction [CandidApiClient::Commons::Types::SortDirection]
@@ -270,8 +320,8 @@ module CandidApiClient
270
320
  # @example
271
321
  # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
272
322
  # api.non_insurance_payers.v_1.get_multi
273
- def get_multi(name: nil, category: nil, enabled: nil, sort: nil, sort_direction: nil, limit: nil,
274
- page_token: nil, request_options: nil)
323
+ def get_multi(name: nil, category: nil, categories_exact: nil, clinical_trial_ids: nil, enabled: nil,
324
+ sort: nil, sort_direction: nil, limit: nil, page_token: nil, request_options: nil)
275
325
  Async do
276
326
  response = @request_client.conn.get do |req|
277
327
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -285,6 +335,8 @@ module CandidApiClient
285
335
  **(request_options&.additional_query_parameters || {}),
286
336
  "name": name,
287
337
  "category": category,
338
+ "categories_exact": categories_exact,
339
+ "clinical_trial_ids": clinical_trial_ids,
288
340
  "enabled": enabled,
289
341
  "sort": sort,
290
342
  "sort_direction": sort_direction,
@@ -298,6 +350,43 @@ module CandidApiClient
298
350
  end
299
351
  end
300
352
 
353
+ # Returns a paginated list of all non-insurance payer categories.
354
+ # Non-insurance payer categories are simply strings and are not stored as a
355
+ # separate object in Candid. They are created when added to at least one
356
+ # non-insurance payer's `category` field and are deleted when there are no
357
+ # longer any non-insurance payers that contain them.
358
+ #
359
+ # @param search_term [String] Filters categories by fuzzy matching on name.
360
+ # @param limit [Integer] Limits the maximum number of categories that will be returned. Defaults to 100.
361
+ # @param page_token [String] The page token to continue paging through a previous request.
362
+ # @param request_options [CandidApiClient::RequestOptions]
363
+ # @return [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerCategoriesPage]
364
+ # @example
365
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
366
+ # api.non_insurance_payers.v_1.get_categories
367
+ def get_categories(search_term: nil, limit: nil, page_token: nil, request_options: nil)
368
+ Async do
369
+ response = @request_client.conn.get 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.params = {
378
+ **(request_options&.additional_query_parameters || {}),
379
+ "search_term": search_term,
380
+ "limit": limit,
381
+ "page_token": page_token
382
+ }.compact
383
+ req.url "#{@request_client.get_url(environment: CandidApi,
384
+ request_options: request_options)}/api/non-insurance-payers/v1/categories"
385
+ end
386
+ CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerCategoriesPage.from_json(json_object: response.body)
387
+ end
388
+ end
389
+
301
390
  # @param non_insurance_payer_id [String]
302
391
  # @param request_options [CandidApiClient::RequestOptions]
303
392
  # @return [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayer]
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module NonInsurancePayers
8
+ module V1
9
+ module Types
10
+ class NonInsurancePayerCategoriesPage
11
+ # @return [Array<String>]
12
+ attr_reader :items
13
+ # @return [String]
14
+ attr_reader :prev_page_token
15
+ # @return [String]
16
+ attr_reader :next_page_token
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param items [Array<String>]
26
+ # @param prev_page_token [String]
27
+ # @param next_page_token [String]
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerCategoriesPage]
30
+ def initialize(items:, prev_page_token: OMIT, next_page_token: OMIT, additional_properties: nil)
31
+ @items = items
32
+ @prev_page_token = prev_page_token if prev_page_token != OMIT
33
+ @next_page_token = next_page_token if next_page_token != OMIT
34
+ @additional_properties = additional_properties
35
+ @_field_set = {
36
+ "items": items,
37
+ "prev_page_token": prev_page_token,
38
+ "next_page_token": next_page_token
39
+ }.reject do |_k, v|
40
+ v == OMIT
41
+ end
42
+ end
43
+
44
+ # Deserialize a JSON object to an instance of NonInsurancePayerCategoriesPage
45
+ #
46
+ # @param json_object [String]
47
+ # @return [CandidApiClient::NonInsurancePayers::V1::Types::NonInsurancePayerCategoriesPage]
48
+ def self.from_json(json_object:)
49
+ struct = JSON.parse(json_object, object_class: OpenStruct)
50
+ items = struct["items"]
51
+ prev_page_token = struct["prev_page_token"]
52
+ next_page_token = struct["next_page_token"]
53
+ new(
54
+ items: items,
55
+ prev_page_token: prev_page_token,
56
+ next_page_token: next_page_token,
57
+ additional_properties: struct
58
+ )
59
+ end
60
+
61
+ # Serialize an instance of NonInsurancePayerCategoriesPage to a JSON object
62
+ #
63
+ # @return [String]
64
+ def to_json(*_args)
65
+ @_field_set&.to_json
66
+ end
67
+
68
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
69
+ # hash and check each fields type against the current object's property
70
+ # definitions.
71
+ #
72
+ # @param obj [Object]
73
+ # @return [Void]
74
+ def self.validate_raw(obj:)
75
+ obj.items.is_a?(Array) != false || raise("Passed value for field obj.items is not the expected type, validation failed.")
76
+ obj.prev_page_token&.is_a?(String) != false || raise("Passed value for field obj.prev_page_token is not the expected type, validation failed.")
77
+ obj.next_page_token&.is_a?(String) != false || raise("Passed value for field obj.next_page_token is not the expected type, validation failed.")
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -47,6 +47,7 @@ module CandidApiClient
47
47
  # @param npi [String] Filter to a specific NPI.
48
48
  # @param is_rendering [Boolean] Filter to only rendering providers.
49
49
  # @param is_billing [Boolean] Filter to only billing providers.
50
+ # @param organization_provider_ids [String] Filter to the provided organization provider IDs.
50
51
  # @param page_token [String] The page token to continue paging through a previous request.
51
52
  # @param sort [CandidApiClient::OrganizationProviders::V2::Types::OrganizationProviderSortOptions] Defaults to PROVIDER_NAME_ASC.
52
53
  # @param request_options [CandidApiClient::RequestOptions]
@@ -62,8 +63,8 @@ module CandidApiClient
62
63
  # page_token: "eyJ0b2tlbiI6IjEiLCJwYWdlX3Rva2VuIjoiMiJ9",
63
64
  # sort: PROVIDER_NAME_ASC
64
65
  # )
65
- def get_multi(limit: nil, search_term: nil, npi: nil, is_rendering: nil, is_billing: nil, page_token: nil,
66
- sort: nil, request_options: nil)
66
+ def get_multi(limit: nil, search_term: nil, npi: nil, is_rendering: nil, is_billing: nil,
67
+ organization_provider_ids: nil, page_token: nil, sort: nil, request_options: nil)
67
68
  response = @request_client.conn.get do |req|
68
69
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
69
70
  req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
@@ -79,6 +80,7 @@ module CandidApiClient
79
80
  "npi": npi,
80
81
  "is_rendering": is_rendering,
81
82
  "is_billing": is_billing,
83
+ "organization_provider_ids": organization_provider_ids,
82
84
  "page_token": page_token,
83
85
  "sort": sort
84
86
  }.compact
@@ -200,6 +202,7 @@ module CandidApiClient
200
202
  # @param npi [String] Filter to a specific NPI.
201
203
  # @param is_rendering [Boolean] Filter to only rendering providers.
202
204
  # @param is_billing [Boolean] Filter to only billing providers.
205
+ # @param organization_provider_ids [String] Filter to the provided organization provider IDs.
203
206
  # @param page_token [String] The page token to continue paging through a previous request.
204
207
  # @param sort [CandidApiClient::OrganizationProviders::V2::Types::OrganizationProviderSortOptions] Defaults to PROVIDER_NAME_ASC.
205
208
  # @param request_options [CandidApiClient::RequestOptions]
@@ -215,8 +218,8 @@ module CandidApiClient
215
218
  # page_token: "eyJ0b2tlbiI6IjEiLCJwYWdlX3Rva2VuIjoiMiJ9",
216
219
  # sort: PROVIDER_NAME_ASC
217
220
  # )
218
- def get_multi(limit: nil, search_term: nil, npi: nil, is_rendering: nil, is_billing: nil, page_token: nil,
219
- sort: nil, request_options: nil)
221
+ def get_multi(limit: nil, search_term: nil, npi: nil, is_rendering: nil, is_billing: nil,
222
+ organization_provider_ids: nil, page_token: nil, sort: nil, request_options: nil)
220
223
  Async do
221
224
  response = @request_client.conn.get do |req|
222
225
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -233,6 +236,7 @@ module CandidApiClient
233
236
  "npi": npi,
234
237
  "is_rendering": is_rendering,
235
238
  "is_billing": is_billing,
239
+ "organization_provider_ids": organization_provider_ids,
236
240
  "page_token": page_token,
237
241
  "sort": sort
238
242
  }.compact
@@ -43,6 +43,7 @@ module CandidApiClient
43
43
 
44
44
  # @param limit [Integer] Limit the number of results returned. Defaults to 100.
45
45
  # @param name [String] Filter to a name or a part of a name.
46
+ # @param organization_service_facility_ids [String] Filter to the provided organization service facility IDs.
46
47
  # @param page_token [String] The page token to continue paging through a previous request.
47
48
  # @param request_options [CandidApiClient::RequestOptions]
48
49
  # @return [CandidApiClient::OrganizationServiceFacilities::V2::Types::OrganizationServiceFacilityPage]
@@ -53,7 +54,8 @@ module CandidApiClient
53
54
  # name: "Test Service Facility",
54
55
  # page_token: "eyJ0b2tlbiI6IjEiLCJwYWdlX3Rva2VuIjoiMiJ9"
55
56
  # )
56
- def get_multi(limit: nil, name: nil, page_token: nil, request_options: nil)
57
+ def get_multi(limit: nil, name: nil, organization_service_facility_ids: nil, page_token: nil,
58
+ request_options: nil)
57
59
  response = @request_client.conn.get do |req|
58
60
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
59
61
  req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
@@ -66,6 +68,7 @@ module CandidApiClient
66
68
  **(request_options&.additional_query_parameters || {}),
67
69
  "limit": limit,
68
70
  "name": name,
71
+ "organization_service_facility_ids": organization_service_facility_ids,
69
72
  "page_token": page_token
70
73
  }.compact
71
74
  req.url "#{@request_client.get_url(environment: CandidApi,
@@ -209,6 +212,7 @@ module CandidApiClient
209
212
 
210
213
  # @param limit [Integer] Limit the number of results returned. Defaults to 100.
211
214
  # @param name [String] Filter to a name or a part of a name.
215
+ # @param organization_service_facility_ids [String] Filter to the provided organization service facility IDs.
212
216
  # @param page_token [String] The page token to continue paging through a previous request.
213
217
  # @param request_options [CandidApiClient::RequestOptions]
214
218
  # @return [CandidApiClient::OrganizationServiceFacilities::V2::Types::OrganizationServiceFacilityPage]
@@ -219,7 +223,8 @@ module CandidApiClient
219
223
  # name: "Test Service Facility",
220
224
  # page_token: "eyJ0b2tlbiI6IjEiLCJwYWdlX3Rva2VuIjoiMiJ9"
221
225
  # )
222
- def get_multi(limit: nil, name: nil, page_token: nil, request_options: nil)
226
+ def get_multi(limit: nil, name: nil, organization_service_facility_ids: nil, page_token: nil,
227
+ request_options: nil)
223
228
  Async do
224
229
  response = @request_client.conn.get do |req|
225
230
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -233,6 +238,7 @@ module CandidApiClient
233
238
  **(request_options&.additional_query_parameters || {}),
234
239
  "limit": limit,
235
240
  "name": name,
241
+ "organization_service_facility_ids": organization_service_facility_ids,
236
242
  "page_token": page_token
237
243
  }.compact
238
244
  req.url "#{@request_client.get_url(environment: CandidApi,
@@ -54,6 +54,7 @@ module CandidApiClient
54
54
  # * :estimated_copay_cents (Integer)
55
55
  # * :estimated_patient_responsibility_cents (Integer)
56
56
  # * :patient_deposit_cents (Integer)
57
+ # * :appointment_details (String)
57
58
  # * :checked_in_timestamp (DateTime)
58
59
  # * :notes (String)
59
60
  # * :location_resource_id (String)
@@ -168,8 +169,10 @@ module CandidApiClient
168
169
  end
169
170
  end
170
171
 
171
- # Updates an appointment. The path must contain the most recent version to
172
- # prevent race conditions. Updating historic versions is not supported.
172
+ # Updates an appointment. The path must contain the next version number to prevent
173
+ # race conditions. For example, if the current version of the appointment is n,
174
+ # you will need to send a request to this endpoint with `/{id}/n+1` to update the
175
+ # appointment. Updating historic versions is not supported.
173
176
  #
174
177
  # @param id [String]
175
178
  # @param version [String]
@@ -201,6 +204,7 @@ module CandidApiClient
201
204
  # * :estimated_copay_cents (Integer)
202
205
  # * :estimated_patient_responsibility_cents (Integer)
203
206
  # * :patient_deposit_cents (Integer)
207
+ # * :appointment_details (String)
204
208
  # * :checked_in_timestamp (DateTime)
205
209
  # * :notes (String)
206
210
  # * :location_resource_id (String)
@@ -328,6 +332,7 @@ module CandidApiClient
328
332
  # * :estimated_copay_cents (Integer)
329
333
  # * :estimated_patient_responsibility_cents (Integer)
330
334
  # * :patient_deposit_cents (Integer)
335
+ # * :appointment_details (String)
331
336
  # * :checked_in_timestamp (DateTime)
332
337
  # * :notes (String)
333
338
  # * :location_resource_id (String)
@@ -450,8 +455,10 @@ module CandidApiClient
450
455
  end
451
456
  end
452
457
 
453
- # Updates an appointment. The path must contain the most recent version to
454
- # prevent race conditions. Updating historic versions is not supported.
458
+ # Updates an appointment. The path must contain the next version number to prevent
459
+ # race conditions. For example, if the current version of the appointment is n,
460
+ # you will need to send a request to this endpoint with `/{id}/n+1` to update the
461
+ # appointment. Updating historic versions is not supported.
455
462
  #
456
463
  # @param id [String]
457
464
  # @param version [String]
@@ -483,6 +490,7 @@ module CandidApiClient
483
490
  # * :estimated_copay_cents (Integer)
484
491
  # * :estimated_patient_responsibility_cents (Integer)
485
492
  # * :patient_deposit_cents (Integer)
493
+ # * :appointment_details (String)
486
494
  # * :checked_in_timestamp (DateTime)
487
495
  # * :notes (String)
488
496
  # * :location_resource_id (String)
@@ -22,7 +22,7 @@ module CandidApiClient
22
22
  # @return [Boolean] True if the object is deactivated. Deactivated objects are not returned in
23
23
  # search results but are returned in all other endpoints including scan.
24
24
  attr_reader :deactivated
25
- # @return [Integer] The version of the object. Any update to any property of an object object will
25
+ # @return [Integer] The version of the object. Any update to any property of an object object will
26
26
  # create a new version.
27
27
  attr_reader :version
28
28
  # @return [DateTime]
@@ -54,6 +54,8 @@ module CandidApiClient
54
54
  attr_reader :estimated_patient_responsibility_cents
55
55
  # @return [Integer]
56
56
  attr_reader :patient_deposit_cents
57
+ # @return [String]
58
+ attr_reader :appointment_details
57
59
  # @return [DateTime] The timestamp when the patient checked in for their appointment. If status is
58
60
  # CHECKED_IN, checked_in_timestamp must be set. If checked_in_timestamp is set,
59
61
  # status must be CHECKED_IN.
@@ -84,7 +86,7 @@ module CandidApiClient
84
86
  # @param organization_id [String] The organization that owns this object.
85
87
  # @param deactivated [Boolean] True if the object is deactivated. Deactivated objects are not returned in
86
88
  # search results but are returned in all other endpoints including scan.
87
- # @param version [Integer] The version of the object. Any update to any property of an object object will
89
+ # @param version [Integer] The version of the object. Any update to any property of an object object will
88
90
  # create a new version.
89
91
  # @param updated_at [DateTime]
90
92
  # @param updating_user_id [String] The user ID of the user who last updated the object.
@@ -103,6 +105,7 @@ module CandidApiClient
103
105
  # @param estimated_copay_cents [Integer]
104
106
  # @param estimated_patient_responsibility_cents [Integer]
105
107
  # @param patient_deposit_cents [Integer]
108
+ # @param appointment_details [String]
106
109
  # @param checked_in_timestamp [DateTime] The timestamp when the patient checked in for their appointment. If status is
107
110
  # CHECKED_IN, checked_in_timestamp must be set. If checked_in_timestamp is set,
108
111
  # status must be CHECKED_IN.
@@ -119,7 +122,7 @@ module CandidApiClient
119
122
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
120
123
  # @return [CandidApiClient::PreEncounter::Appointments::V1::Types::Appointment]
121
124
  def initialize(id:, organization_id:, deactivated:, version:, updated_at:, updating_user_id:, patient_id:,
122
- start_timestamp:, service_duration:, services:, status: OMIT, placer_appointment_id: OMIT, attending_doctor: OMIT, estimated_copay_cents: OMIT, estimated_patient_responsibility_cents: OMIT, patient_deposit_cents: OMIT, checked_in_timestamp: OMIT, notes: OMIT, location_resource_id: OMIT, automated_eligibility_check_complete: OMIT, work_queue: OMIT, additional_properties: nil)
125
+ start_timestamp:, service_duration:, services:, status: OMIT, placer_appointment_id: OMIT, attending_doctor: OMIT, estimated_copay_cents: OMIT, estimated_patient_responsibility_cents: OMIT, patient_deposit_cents: OMIT, appointment_details: OMIT, checked_in_timestamp: OMIT, notes: OMIT, location_resource_id: OMIT, automated_eligibility_check_complete: OMIT, work_queue: OMIT, additional_properties: nil)
123
126
  @id = id
124
127
  @organization_id = organization_id
125
128
  @deactivated = deactivated
@@ -138,6 +141,7 @@ module CandidApiClient
138
141
  @estimated_patient_responsibility_cents = estimated_patient_responsibility_cents
139
142
  end
140
143
  @patient_deposit_cents = patient_deposit_cents if patient_deposit_cents != OMIT
144
+ @appointment_details = appointment_details if appointment_details != OMIT
141
145
  @checked_in_timestamp = checked_in_timestamp if checked_in_timestamp != OMIT
142
146
  @notes = notes if notes != OMIT
143
147
  @location_resource_id = location_resource_id if location_resource_id != OMIT
@@ -163,6 +167,7 @@ module CandidApiClient
163
167
  "estimated_copay_cents": estimated_copay_cents,
164
168
  "estimated_patient_responsibility_cents": estimated_patient_responsibility_cents,
165
169
  "patient_deposit_cents": patient_deposit_cents,
170
+ "appointment_details": appointment_details,
166
171
  "checked_in_timestamp": checked_in_timestamp,
167
172
  "notes": notes,
168
173
  "location_resource_id": location_resource_id,
@@ -206,6 +211,7 @@ module CandidApiClient
206
211
  estimated_copay_cents = struct["estimated_copay_cents"]
207
212
  estimated_patient_responsibility_cents = struct["estimated_patient_responsibility_cents"]
208
213
  patient_deposit_cents = struct["patient_deposit_cents"]
214
+ appointment_details = struct["appointment_details"]
209
215
  checked_in_timestamp = unless parsed_json["checked_in_timestamp"].nil?
210
216
  DateTime.parse(parsed_json["checked_in_timestamp"])
211
217
  end
@@ -230,6 +236,7 @@ module CandidApiClient
230
236
  estimated_copay_cents: estimated_copay_cents,
231
237
  estimated_patient_responsibility_cents: estimated_patient_responsibility_cents,
232
238
  patient_deposit_cents: patient_deposit_cents,
239
+ appointment_details: appointment_details,
233
240
  checked_in_timestamp: checked_in_timestamp,
234
241
  notes: notes,
235
242
  location_resource_id: location_resource_id,
@@ -269,6 +276,7 @@ module CandidApiClient
269
276
  obj.estimated_copay_cents&.is_a?(Integer) != false || raise("Passed value for field obj.estimated_copay_cents is not the expected type, validation failed.")
270
277
  obj.estimated_patient_responsibility_cents&.is_a?(Integer) != false || raise("Passed value for field obj.estimated_patient_responsibility_cents is not the expected type, validation failed.")
271
278
  obj.patient_deposit_cents&.is_a?(Integer) != false || raise("Passed value for field obj.patient_deposit_cents is not the expected type, validation failed.")
279
+ obj.appointment_details&.is_a?(String) != false || raise("Passed value for field obj.appointment_details is not the expected type, validation failed.")
272
280
  obj.checked_in_timestamp&.is_a?(DateTime) != false || raise("Passed value for field obj.checked_in_timestamp is not the expected type, validation failed.")
273
281
  obj.notes&.is_a?(String) != false || raise("Passed value for field obj.notes is not the expected type, validation failed.")
274
282
  obj.location_resource_id&.is_a?(String) != false || raise("Passed value for field obj.location_resource_id is not the expected type, validation failed.")