candidhealth 1.7.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/lib/candidhealth/auth/default/client.rb +34 -6
  3. data/lib/candidhealth/charge_capture/v_1/client.rb +119 -52
  4. data/lib/candidhealth/charge_capture/v_1/types/charge_capture_data.rb +70 -56
  5. data/lib/candidhealth/charge_capture_bundles/v_1/client.rb +33 -2
  6. data/lib/candidhealth/commons/types/clearinghouse.rb +18 -0
  7. data/lib/candidhealth/commons/types/procedure_modifier.rb +11 -0
  8. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider.rb +1 -1
  9. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update.rb +1 -1
  10. data/lib/candidhealth/encounter_providers/v_2/types/billing_provider_update_with_optional_address.rb +1 -1
  11. data/lib/candidhealth/encounters/v_4/client.rb +3269 -2040
  12. data/lib/candidhealth/encounters/v_4/types/encounter.rb +111 -86
  13. data/lib/candidhealth/encounters/v_4/types/encounter_base.rb +39 -33
  14. data/lib/candidhealth/encounters/v_4/types/encounter_create.rb +796 -0
  15. data/lib/candidhealth/encounters/v_4/types/encounter_create_from_pre_encounter.rb +131 -117
  16. data/lib/candidhealth/encounters/v_4/types/encounter_deep_optional.rb +70 -56
  17. data/lib/candidhealth/encounters/v_4/types/encounter_optional.rb +29 -39
  18. data/lib/candidhealth/encounters/v_4/types/encounter_rendering_or_attending_provider_required_error.rb +55 -0
  19. data/lib/candidhealth/encounters/v_4/types/encounter_update.rb +736 -0
  20. data/lib/candidhealth/encounters_universal/types/universal_encounter_create.rb +944 -0
  21. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_base.rb +691 -0
  22. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter.rb +791 -0
  23. data/lib/candidhealth/encounters_universal/types/universal_encounter_create_from_pre_encounter_base.rb +572 -0
  24. data/lib/candidhealth/encounters_universal/types/universal_encounter_update.rb +872 -0
  25. data/lib/candidhealth/encounters_universal/types/universal_encounter_update_base.rb +700 -0
  26. data/lib/candidhealth/fee_schedules/v_3/client.rb +57 -0
  27. data/lib/candidhealth/fee_schedules/v_3/types/validation_error.rb +12 -0
  28. data/lib/candidhealth/financials/types/patient_transaction_source.rb +1 -0
  29. data/lib/candidhealth/guarantor/v_1/client.rb +4 -0
  30. data/lib/candidhealth/guarantor/v_1/types/guarantor.rb +10 -2
  31. data/lib/candidhealth/guarantor/v_1/types/guarantor_create.rb +10 -2
  32. data/lib/candidhealth/guarantor/v_1/types/guarantor_optional.rb +10 -2
  33. data/lib/candidhealth/guarantor/v_1/types/guarantor_update.rb +10 -2
  34. data/lib/candidhealth/health_care_code_information/v_1/types/admitting_diagnosis_new.rb +206 -0
  35. data/lib/candidhealth/health_care_code_information/v_1/types/condition_information_new.rb +207 -0
  36. data/lib/candidhealth/health_care_code_information/v_1/types/diagnosis_related_group_new.rb +206 -0
  37. data/lib/candidhealth/health_care_code_information/v_1/types/external_cause_of_injury_new.rb +245 -0
  38. data/lib/candidhealth/health_care_code_information/v_1/types/health_care_code_information_create.rb +225 -0
  39. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_information_new.rb +219 -0
  40. data/lib/candidhealth/health_care_code_information/v_1/types/occurrence_span_information_new.rb +222 -0
  41. data/lib/candidhealth/health_care_code_information/v_1/types/other_diagnosis_information_new.rb +215 -0
  42. data/lib/candidhealth/health_care_code_information/v_1/types/other_procedure_information_new.rb +218 -0
  43. data/lib/candidhealth/health_care_code_information/v_1/types/patient_reason_for_visit_new.rb +206 -0
  44. data/lib/candidhealth/health_care_code_information/v_1/types/principal_diagnosis_new.rb +215 -0
  45. data/lib/candidhealth/health_care_code_information/v_1/types/principal_procedure_information_new.rb +216 -0
  46. data/lib/candidhealth/health_care_code_information/v_1/types/treatment_code_information_new.rb +206 -0
  47. data/lib/candidhealth/health_care_code_information/v_1/types/value_information_new.rb +215 -0
  48. data/lib/candidhealth/individual/types/patient.rb +16 -8
  49. data/lib/candidhealth/individual/types/patient_base.rb +6 -6
  50. data/lib/candidhealth/individual/types/patient_create.rb +15 -7
  51. data/lib/candidhealth/individual/types/patient_update.rb +15 -7
  52. data/lib/candidhealth/individual/types/patient_update_with_optional_address.rb +15 -7
  53. data/lib/candidhealth/organization_providers/v_2/types/license_type.rb +2 -0
  54. data/lib/candidhealth/payers/client.rb +7 -0
  55. data/lib/candidhealth/payers/v_4/client.rb +137 -0
  56. data/lib/candidhealth/payers/v_4/types/clearinghouse_payer_info.rb +127 -0
  57. data/lib/candidhealth/payers/v_4/types/payer.rb +116 -0
  58. data/lib/candidhealth/payers/v_4/types/payer_ids.rb +84 -0
  59. data/lib/candidhealth/payers/v_4/types/payer_page.rb +88 -0
  60. data/lib/candidhealth/payers/v_4/types/primary_payer_ids.rb +84 -0
  61. data/lib/candidhealth/payers/v_4/types/support_state.rb +15 -0
  62. data/lib/candidhealth/pre_encounter/coverages/v_1/client.rb +4 -4
  63. data/lib/candidhealth/pre_encounter/coverages/v_1/types/subscriber.rb +3 -3
  64. data/lib/candidhealth/pre_encounter/patients/v_1/client.rb +72 -6
  65. data/lib/candidhealth/pre_encounter/patients/v_1/types/guarantor.rb +3 -3
  66. data/lib/candidhealth/pre_encounter/patients/v_1/types/inferred_patient_metadata.rb +80 -0
  67. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient.rb +19 -5
  68. data/lib/candidhealth/pre_encounter/patients/v_1/types/mutable_patient_with_mrn.rb +19 -5
  69. data/lib/candidhealth/pre_encounter/patients/v_1/types/patient.rb +18 -4
  70. data/lib/candidhealth/pre_encounter/patients/v_1/types/referral_type.rb +1 -0
  71. data/lib/candidhealth/service_lines/v_2/client.rb +252 -10
  72. data/lib/candidhealth/service_lines/v_2/types/service_line.rb +28 -10
  73. data/lib/candidhealth/service_lines/v_2/types/service_line_create.rb +52 -40
  74. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base.rb +251 -0
  75. data/lib/candidhealth/service_lines/v_2/types/service_line_create_base_base.rb +243 -0
  76. data/lib/candidhealth/service_lines/v_2/types/service_line_create_optional.rb +48 -24
  77. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone.rb +58 -46
  78. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base.rb +273 -0
  79. data/lib/candidhealth/service_lines/v_2/types/service_line_create_standalone_base_base.rb +265 -0
  80. data/lib/candidhealth/service_lines/v_2/types/service_line_update.rb +64 -54
  81. data/lib/candidhealth/service_lines/v_2/types/service_line_update_base.rb +263 -0
  82. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create.rb +271 -0
  83. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_create_standalone.rb +317 -0
  84. data/lib/candidhealth/service_lines/v_2/types/universal_service_line_update.rb +307 -0
  85. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite.rb +2 -2
  86. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_base.rb +90 -0
  87. data/lib/candidhealth/x_12/v_1/types/type_of_bill_composite_update.rb +112 -0
  88. data/lib/requests.rb +2 -2
  89. data/lib/types_export.rb +45 -4
  90. metadata +44 -2
@@ -0,0 +1,137 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "types/payer"
5
+ require_relative "types/payer_page"
6
+ require "async"
7
+
8
+ module CandidApiClient
9
+ module Payers
10
+ module V4
11
+ class V4Client
12
+ # @return [CandidApiClient::RequestClient]
13
+ attr_reader :request_client
14
+
15
+ # @param request_client [CandidApiClient::RequestClient]
16
+ # @return [CandidApiClient::Payers::V4::V4Client]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+
21
+ # @param payer_uuid [String]
22
+ # @param request_options [CandidApiClient::RequestOptions]
23
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
24
+ # @example
25
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
26
+ # api.payers.v_4.get(payer_uuid: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32")
27
+ def get(payer_uuid:, request_options: nil)
28
+ response = @request_client.conn.get do |req|
29
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
30
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
31
+ req.headers = {
32
+ **(req.headers || {}),
33
+ **@request_client.get_headers,
34
+ **(request_options&.additional_headers || {})
35
+ }.compact
36
+ req.url "#{@request_client.get_url(environment: CandidApi,
37
+ request_options: request_options)}/api/payers/v4/#{payer_uuid}"
38
+ end
39
+ CandidApiClient::Payers::V4::Types::Payer.from_json(json_object: response.body)
40
+ end
41
+
42
+ # @param limit [Integer] Maximum number of entities per page, defaults to 100.
43
+ # @param search_term [String]
44
+ # @param page_token [String]
45
+ # @param request_options [CandidApiClient::RequestOptions]
46
+ # @return [CandidApiClient::Payers::V4::Types::PayerPage]
47
+ # @example
48
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
49
+ # api.payers.v_4.get_all
50
+ def get_all(limit: nil, search_term: nil, page_token: nil, request_options: nil)
51
+ response = @request_client.conn.get do |req|
52
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
53
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
54
+ req.headers = {
55
+ **(req.headers || {}),
56
+ **@request_client.get_headers,
57
+ **(request_options&.additional_headers || {})
58
+ }.compact
59
+ req.params = {
60
+ **(request_options&.additional_query_parameters || {}),
61
+ "limit": limit,
62
+ "search_term": search_term,
63
+ "page_token": page_token
64
+ }.compact
65
+ req.url "#{@request_client.get_url(environment: CandidApi, request_options: request_options)}/api/payers/v4"
66
+ end
67
+ CandidApiClient::Payers::V4::Types::PayerPage.from_json(json_object: response.body)
68
+ end
69
+ end
70
+
71
+ class AsyncV4Client
72
+ # @return [CandidApiClient::AsyncRequestClient]
73
+ attr_reader :request_client
74
+
75
+ # @param request_client [CandidApiClient::AsyncRequestClient]
76
+ # @return [CandidApiClient::Payers::V4::AsyncV4Client]
77
+ def initialize(request_client:)
78
+ @request_client = request_client
79
+ end
80
+
81
+ # @param payer_uuid [String]
82
+ # @param request_options [CandidApiClient::RequestOptions]
83
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
84
+ # @example
85
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
86
+ # api.payers.v_4.get(payer_uuid: "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32")
87
+ def get(payer_uuid:, request_options: nil)
88
+ Async do
89
+ response = @request_client.conn.get do |req|
90
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
91
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
92
+ req.headers = {
93
+ **(req.headers || {}),
94
+ **@request_client.get_headers,
95
+ **(request_options&.additional_headers || {})
96
+ }.compact
97
+ req.url "#{@request_client.get_url(environment: CandidApi,
98
+ request_options: request_options)}/api/payers/v4/#{payer_uuid}"
99
+ end
100
+ CandidApiClient::Payers::V4::Types::Payer.from_json(json_object: response.body)
101
+ end
102
+ end
103
+
104
+ # @param limit [Integer] Maximum number of entities per page, defaults to 100.
105
+ # @param search_term [String]
106
+ # @param page_token [String]
107
+ # @param request_options [CandidApiClient::RequestOptions]
108
+ # @return [CandidApiClient::Payers::V4::Types::PayerPage]
109
+ # @example
110
+ # api = CandidApiClient::Client.new(base_url: "https://api.example.com", environment: CandidApiClient::Environment::PRODUCTION)
111
+ # api.payers.v_4.get_all
112
+ def get_all(limit: nil, search_term: nil, page_token: nil, request_options: nil)
113
+ Async do
114
+ response = @request_client.conn.get do |req|
115
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
116
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
117
+ req.headers = {
118
+ **(req.headers || {}),
119
+ **@request_client.get_headers,
120
+ **(request_options&.additional_headers || {})
121
+ }.compact
122
+ req.params = {
123
+ **(request_options&.additional_query_parameters || {}),
124
+ "limit": limit,
125
+ "search_term": search_term,
126
+ "page_token": page_token
127
+ }.compact
128
+ req.url "#{@request_client.get_url(environment: CandidApi,
129
+ request_options: request_options)}/api/payers/v4"
130
+ end
131
+ CandidApiClient::Payers::V4::Types::PayerPage.from_json(json_object: response.body)
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "payer_ids"
4
+ require_relative "support_state"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module CandidApiClient
9
+ module Payers
10
+ module V4
11
+ module Types
12
+ class ClearinghousePayerInfo
13
+ # @return [String] The clearinghouse display name of the payer.
14
+ attr_reader :payer_name
15
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for professional claims
16
+ attr_reader :professional_payer_ids
17
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for institutional claims
18
+ attr_reader :institutional_payer_ids
19
+ # @return [CandidApiClient::Payers::V4::Types::SupportState] The support state for claims submission
20
+ attr_reader :professional_claims_support
21
+ # @return [CandidApiClient::Payers::V4::Types::SupportState] The support state for institutional claims submission
22
+ attr_reader :institutional_claims_support
23
+ # @return [CandidApiClient::Payers::V4::Types::SupportState] The support state for eligibility
24
+ attr_reader :eligibility_support
25
+ # @return [CandidApiClient::Payers::V4::Types::SupportState] The support state for remittance
26
+ attr_reader :remittance_support
27
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
28
+ attr_reader :additional_properties
29
+ # @return [Object]
30
+ attr_reader :_field_set
31
+ protected :_field_set
32
+
33
+ OMIT = Object.new
34
+
35
+ # @param payer_name [String] The clearinghouse display name of the payer.
36
+ # @param professional_payer_ids [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for professional claims
37
+ # @param institutional_payer_ids [CandidApiClient::Payers::V4::Types::PayerIds] Payer IDs for institutional claims
38
+ # @param professional_claims_support [CandidApiClient::Payers::V4::Types::SupportState] The support state for claims submission
39
+ # @param institutional_claims_support [CandidApiClient::Payers::V4::Types::SupportState] The support state for institutional claims submission
40
+ # @param eligibility_support [CandidApiClient::Payers::V4::Types::SupportState] The support state for eligibility
41
+ # @param remittance_support [CandidApiClient::Payers::V4::Types::SupportState] The support state for remittance
42
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
43
+ # @return [CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo]
44
+ def initialize(payer_name:, professional_payer_ids:, institutional_payer_ids:, professional_claims_support:,
45
+ institutional_claims_support:, eligibility_support:, remittance_support:, additional_properties: nil)
46
+ @payer_name = payer_name
47
+ @professional_payer_ids = professional_payer_ids
48
+ @institutional_payer_ids = institutional_payer_ids
49
+ @professional_claims_support = professional_claims_support
50
+ @institutional_claims_support = institutional_claims_support
51
+ @eligibility_support = eligibility_support
52
+ @remittance_support = remittance_support
53
+ @additional_properties = additional_properties
54
+ @_field_set = {
55
+ "payer_name": payer_name,
56
+ "professional_payer_ids": professional_payer_ids,
57
+ "institutional_payer_ids": institutional_payer_ids,
58
+ "professional_claims_support": professional_claims_support,
59
+ "institutional_claims_support": institutional_claims_support,
60
+ "eligibility_support": eligibility_support,
61
+ "remittance_support": remittance_support
62
+ }
63
+ end
64
+
65
+ # Deserialize a JSON object to an instance of ClearinghousePayerInfo
66
+ #
67
+ # @param json_object [String]
68
+ # @return [CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo]
69
+ def self.from_json(json_object:)
70
+ struct = JSON.parse(json_object, object_class: OpenStruct)
71
+ parsed_json = JSON.parse(json_object)
72
+ payer_name = struct["payer_name"]
73
+ if parsed_json["professional_payer_ids"].nil?
74
+ professional_payer_ids = nil
75
+ else
76
+ professional_payer_ids = parsed_json["professional_payer_ids"].to_json
77
+ professional_payer_ids = CandidApiClient::Payers::V4::Types::PayerIds.from_json(json_object: professional_payer_ids)
78
+ end
79
+ if parsed_json["institutional_payer_ids"].nil?
80
+ institutional_payer_ids = nil
81
+ else
82
+ institutional_payer_ids = parsed_json["institutional_payer_ids"].to_json
83
+ institutional_payer_ids = CandidApiClient::Payers::V4::Types::PayerIds.from_json(json_object: institutional_payer_ids)
84
+ end
85
+ professional_claims_support = struct["professional_claims_support"]
86
+ institutional_claims_support = struct["institutional_claims_support"]
87
+ eligibility_support = struct["eligibility_support"]
88
+ remittance_support = struct["remittance_support"]
89
+ new(
90
+ payer_name: payer_name,
91
+ professional_payer_ids: professional_payer_ids,
92
+ institutional_payer_ids: institutional_payer_ids,
93
+ professional_claims_support: professional_claims_support,
94
+ institutional_claims_support: institutional_claims_support,
95
+ eligibility_support: eligibility_support,
96
+ remittance_support: remittance_support,
97
+ additional_properties: struct
98
+ )
99
+ end
100
+
101
+ # Serialize an instance of ClearinghousePayerInfo to a JSON object
102
+ #
103
+ # @return [String]
104
+ def to_json(*_args)
105
+ @_field_set&.to_json
106
+ end
107
+
108
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
109
+ # hash and check each fields type against the current object's property
110
+ # definitions.
111
+ #
112
+ # @param obj [Object]
113
+ # @return [Void]
114
+ def self.validate_raw(obj:)
115
+ obj.payer_name.is_a?(String) != false || raise("Passed value for field obj.payer_name is not the expected type, validation failed.")
116
+ CandidApiClient::Payers::V4::Types::PayerIds.validate_raw(obj: obj.professional_payer_ids)
117
+ CandidApiClient::Payers::V4::Types::PayerIds.validate_raw(obj: obj.institutional_payer_ids)
118
+ obj.professional_claims_support.is_a?(CandidApiClient::Payers::V4::Types::SupportState) != false || raise("Passed value for field obj.professional_claims_support is not the expected type, validation failed.")
119
+ obj.institutional_claims_support.is_a?(CandidApiClient::Payers::V4::Types::SupportState) != false || raise("Passed value for field obj.institutional_claims_support is not the expected type, validation failed.")
120
+ obj.eligibility_support.is_a?(CandidApiClient::Payers::V4::Types::SupportState) != false || raise("Passed value for field obj.eligibility_support is not the expected type, validation failed.")
121
+ obj.remittance_support.is_a?(CandidApiClient::Payers::V4::Types::SupportState) != false || raise("Passed value for field obj.remittance_support is not the expected type, validation failed.")
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "primary_payer_ids"
4
+ require_relative "../../../commons/types/street_address_long_zip"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module CandidApiClient
9
+ module Payers
10
+ module V4
11
+ module Types
12
+ class Payer
13
+ # @return [String] Auto-generated ID set on creation.
14
+ attr_reader :payer_uuid
15
+ # @return [CandidApiClient::Payers::V4::Types::PrimaryPayerIds] The primary national payer IDs of the payer.
16
+ attr_reader :payer_ids
17
+ # @return [String] The primary display name of the payer.
18
+ attr_reader :payer_name
19
+ # @return [Hash{CandidApiClient::Commons::Types::Clearinghouse => CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo}]
20
+ attr_reader :clearinghouse_payer_info
21
+ # @return [CandidApiClient::Commons::Types::StreetAddressLongZip]
22
+ attr_reader :street_address
23
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
24
+ attr_reader :additional_properties
25
+ # @return [Object]
26
+ attr_reader :_field_set
27
+ protected :_field_set
28
+
29
+ OMIT = Object.new
30
+
31
+ # @param payer_uuid [String] Auto-generated ID set on creation.
32
+ # @param payer_ids [CandidApiClient::Payers::V4::Types::PrimaryPayerIds] The primary national payer IDs of the payer.
33
+ # @param payer_name [String] The primary display name of the payer.
34
+ # @param clearinghouse_payer_info [Hash{CandidApiClient::Commons::Types::Clearinghouse => CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo}]
35
+ # @param street_address [CandidApiClient::Commons::Types::StreetAddressLongZip]
36
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
37
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
38
+ def initialize(payer_uuid:, payer_ids:, payer_name:, clearinghouse_payer_info:, street_address: OMIT,
39
+ additional_properties: nil)
40
+ @payer_uuid = payer_uuid
41
+ @payer_ids = payer_ids
42
+ @payer_name = payer_name
43
+ @clearinghouse_payer_info = clearinghouse_payer_info
44
+ @street_address = street_address if street_address != OMIT
45
+ @additional_properties = additional_properties
46
+ @_field_set = {
47
+ "payer_uuid": payer_uuid,
48
+ "payer_ids": payer_ids,
49
+ "payer_name": payer_name,
50
+ "clearinghouse_payer_info": clearinghouse_payer_info,
51
+ "street_address": street_address
52
+ }.reject do |_k, v|
53
+ v == OMIT
54
+ end
55
+ end
56
+
57
+ # Deserialize a JSON object to an instance of Payer
58
+ #
59
+ # @param json_object [String]
60
+ # @return [CandidApiClient::Payers::V4::Types::Payer]
61
+ def self.from_json(json_object:)
62
+ struct = JSON.parse(json_object, object_class: OpenStruct)
63
+ parsed_json = JSON.parse(json_object)
64
+ payer_uuid = struct["payer_uuid"]
65
+ if parsed_json["payer_ids"].nil?
66
+ payer_ids = nil
67
+ else
68
+ payer_ids = parsed_json["payer_ids"].to_json
69
+ payer_ids = CandidApiClient::Payers::V4::Types::PrimaryPayerIds.from_json(json_object: payer_ids)
70
+ end
71
+ payer_name = struct["payer_name"]
72
+ clearinghouse_payer_info = parsed_json["clearinghouse_payer_info"]&.transform_values do |value|
73
+ value = value.to_json
74
+ CandidApiClient::Payers::V4::Types::ClearinghousePayerInfo.from_json(json_object: value)
75
+ end
76
+ if parsed_json["street_address"].nil?
77
+ street_address = nil
78
+ else
79
+ street_address = parsed_json["street_address"].to_json
80
+ street_address = CandidApiClient::Commons::Types::StreetAddressLongZip.from_json(json_object: street_address)
81
+ end
82
+ new(
83
+ payer_uuid: payer_uuid,
84
+ payer_ids: payer_ids,
85
+ payer_name: payer_name,
86
+ clearinghouse_payer_info: clearinghouse_payer_info,
87
+ street_address: street_address,
88
+ additional_properties: struct
89
+ )
90
+ end
91
+
92
+ # Serialize an instance of Payer to a JSON object
93
+ #
94
+ # @return [String]
95
+ def to_json(*_args)
96
+ @_field_set&.to_json
97
+ end
98
+
99
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
100
+ # hash and check each fields type against the current object's property
101
+ # definitions.
102
+ #
103
+ # @param obj [Object]
104
+ # @return [Void]
105
+ def self.validate_raw(obj:)
106
+ obj.payer_uuid.is_a?(String) != false || raise("Passed value for field obj.payer_uuid is not the expected type, validation failed.")
107
+ CandidApiClient::Payers::V4::Types::PrimaryPayerIds.validate_raw(obj: obj.payer_ids)
108
+ obj.payer_name.is_a?(String) != false || raise("Passed value for field obj.payer_name is not the expected type, validation failed.")
109
+ obj.clearinghouse_payer_info.is_a?(Hash) != false || raise("Passed value for field obj.clearinghouse_payer_info is not the expected type, validation failed.")
110
+ obj.street_address.nil? || CandidApiClient::Commons::Types::StreetAddressLongZip.validate_raw(obj: obj.street_address)
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module Payers
8
+ module V4
9
+ module Types
10
+ class PayerIds
11
+ # @return [String] The payer ID for claim submission
12
+ attr_reader :claims_payer_id
13
+ # @return [String] The payer ID for eligibility
14
+ attr_reader :eligibility_payer_id
15
+ # @return [String] The payer ID for remittance
16
+ attr_reader :remittance_payer_id
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 claims_payer_id [String] The payer ID for claim submission
26
+ # @param eligibility_payer_id [String] The payer ID for eligibility
27
+ # @param remittance_payer_id [String] The payer ID for remittance
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds]
30
+ def initialize(claims_payer_id: OMIT, eligibility_payer_id: OMIT, remittance_payer_id: OMIT,
31
+ additional_properties: nil)
32
+ @claims_payer_id = claims_payer_id if claims_payer_id != OMIT
33
+ @eligibility_payer_id = eligibility_payer_id if eligibility_payer_id != OMIT
34
+ @remittance_payer_id = remittance_payer_id if remittance_payer_id != OMIT
35
+ @additional_properties = additional_properties
36
+ @_field_set = {
37
+ "claims_payer_id": claims_payer_id,
38
+ "eligibility_payer_id": eligibility_payer_id,
39
+ "remittance_payer_id": remittance_payer_id
40
+ }.reject do |_k, v|
41
+ v == OMIT
42
+ end
43
+ end
44
+
45
+ # Deserialize a JSON object to an instance of PayerIds
46
+ #
47
+ # @param json_object [String]
48
+ # @return [CandidApiClient::Payers::V4::Types::PayerIds]
49
+ def self.from_json(json_object:)
50
+ struct = JSON.parse(json_object, object_class: OpenStruct)
51
+ claims_payer_id = struct["claims_payer_id"]
52
+ eligibility_payer_id = struct["eligibility_payer_id"]
53
+ remittance_payer_id = struct["remittance_payer_id"]
54
+ new(
55
+ claims_payer_id: claims_payer_id,
56
+ eligibility_payer_id: eligibility_payer_id,
57
+ remittance_payer_id: remittance_payer_id,
58
+ additional_properties: struct
59
+ )
60
+ end
61
+
62
+ # Serialize an instance of PayerIds to a JSON object
63
+ #
64
+ # @return [String]
65
+ def to_json(*_args)
66
+ @_field_set&.to_json
67
+ end
68
+
69
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
70
+ # hash and check each fields type against the current object's property
71
+ # definitions.
72
+ #
73
+ # @param obj [Object]
74
+ # @return [Void]
75
+ def self.validate_raw(obj:)
76
+ obj.claims_payer_id&.is_a?(String) != false || raise("Passed value for field obj.claims_payer_id is not the expected type, validation failed.")
77
+ obj.eligibility_payer_id&.is_a?(String) != false || raise("Passed value for field obj.eligibility_payer_id is not the expected type, validation failed.")
78
+ obj.remittance_payer_id&.is_a?(String) != false || raise("Passed value for field obj.remittance_payer_id is not the expected type, validation failed.")
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "payer"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module CandidApiClient
8
+ module Payers
9
+ module V4
10
+ module Types
11
+ class PayerPage
12
+ # @return [Array<CandidApiClient::Payers::V4::Types::Payer>]
13
+ attr_reader :items
14
+ # @return [String]
15
+ attr_reader :prev_page_token
16
+ # @return [String]
17
+ attr_reader :next_page_token
18
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
19
+ attr_reader :additional_properties
20
+ # @return [Object]
21
+ attr_reader :_field_set
22
+ protected :_field_set
23
+
24
+ OMIT = Object.new
25
+
26
+ # @param items [Array<CandidApiClient::Payers::V4::Types::Payer>]
27
+ # @param prev_page_token [String]
28
+ # @param next_page_token [String]
29
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
30
+ # @return [CandidApiClient::Payers::V4::Types::PayerPage]
31
+ def initialize(items:, prev_page_token: OMIT, next_page_token: OMIT, additional_properties: nil)
32
+ @items = items
33
+ @prev_page_token = prev_page_token if prev_page_token != OMIT
34
+ @next_page_token = next_page_token if next_page_token != OMIT
35
+ @additional_properties = additional_properties
36
+ @_field_set = {
37
+ "items": items,
38
+ "prev_page_token": prev_page_token,
39
+ "next_page_token": next_page_token
40
+ }.reject do |_k, v|
41
+ v == OMIT
42
+ end
43
+ end
44
+
45
+ # Deserialize a JSON object to an instance of PayerPage
46
+ #
47
+ # @param json_object [String]
48
+ # @return [CandidApiClient::Payers::V4::Types::PayerPage]
49
+ def self.from_json(json_object:)
50
+ struct = JSON.parse(json_object, object_class: OpenStruct)
51
+ parsed_json = JSON.parse(json_object)
52
+ items = parsed_json["items"]&.map do |item|
53
+ item = item.to_json
54
+ CandidApiClient::Payers::V4::Types::Payer.from_json(json_object: item)
55
+ end
56
+ prev_page_token = struct["prev_page_token"]
57
+ next_page_token = struct["next_page_token"]
58
+ new(
59
+ items: items,
60
+ prev_page_token: prev_page_token,
61
+ next_page_token: next_page_token,
62
+ additional_properties: struct
63
+ )
64
+ end
65
+
66
+ # Serialize an instance of PayerPage to a JSON object
67
+ #
68
+ # @return [String]
69
+ def to_json(*_args)
70
+ @_field_set&.to_json
71
+ end
72
+
73
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
74
+ # hash and check each fields type against the current object's property
75
+ # definitions.
76
+ #
77
+ # @param obj [Object]
78
+ # @return [Void]
79
+ def self.validate_raw(obj:)
80
+ obj.items.is_a?(Array) != false || raise("Passed value for field obj.items is not the expected type, validation failed.")
81
+ obj.prev_page_token&.is_a?(String) != false || raise("Passed value for field obj.prev_page_token is not the expected type, validation failed.")
82
+ obj.next_page_token&.is_a?(String) != false || raise("Passed value for field obj.next_page_token is not the expected type, validation failed.")
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module CandidApiClient
7
+ module Payers
8
+ module V4
9
+ module Types
10
+ class PrimaryPayerIds
11
+ # @return [String] The payer ID for claim submission
12
+ attr_reader :claims_payer_id
13
+ # @return [String] The payer ID for eligibility
14
+ attr_reader :eligibility_payer_id
15
+ # @return [String] The payer ID for remittance
16
+ attr_reader :remittance_payer_id
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 claims_payer_id [String] The payer ID for claim submission
26
+ # @param eligibility_payer_id [String] The payer ID for eligibility
27
+ # @param remittance_payer_id [String] The payer ID for remittance
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [CandidApiClient::Payers::V4::Types::PrimaryPayerIds]
30
+ def initialize(claims_payer_id:, eligibility_payer_id: OMIT, remittance_payer_id: OMIT,
31
+ additional_properties: nil)
32
+ @claims_payer_id = claims_payer_id
33
+ @eligibility_payer_id = eligibility_payer_id if eligibility_payer_id != OMIT
34
+ @remittance_payer_id = remittance_payer_id if remittance_payer_id != OMIT
35
+ @additional_properties = additional_properties
36
+ @_field_set = {
37
+ "claims_payer_id": claims_payer_id,
38
+ "eligibility_payer_id": eligibility_payer_id,
39
+ "remittance_payer_id": remittance_payer_id
40
+ }.reject do |_k, v|
41
+ v == OMIT
42
+ end
43
+ end
44
+
45
+ # Deserialize a JSON object to an instance of PrimaryPayerIds
46
+ #
47
+ # @param json_object [String]
48
+ # @return [CandidApiClient::Payers::V4::Types::PrimaryPayerIds]
49
+ def self.from_json(json_object:)
50
+ struct = JSON.parse(json_object, object_class: OpenStruct)
51
+ claims_payer_id = struct["claims_payer_id"]
52
+ eligibility_payer_id = struct["eligibility_payer_id"]
53
+ remittance_payer_id = struct["remittance_payer_id"]
54
+ new(
55
+ claims_payer_id: claims_payer_id,
56
+ eligibility_payer_id: eligibility_payer_id,
57
+ remittance_payer_id: remittance_payer_id,
58
+ additional_properties: struct
59
+ )
60
+ end
61
+
62
+ # Serialize an instance of PrimaryPayerIds to a JSON object
63
+ #
64
+ # @return [String]
65
+ def to_json(*_args)
66
+ @_field_set&.to_json
67
+ end
68
+
69
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
70
+ # hash and check each fields type against the current object's property
71
+ # definitions.
72
+ #
73
+ # @param obj [Object]
74
+ # @return [Void]
75
+ def self.validate_raw(obj:)
76
+ obj.claims_payer_id.is_a?(String) != false || raise("Passed value for field obj.claims_payer_id is not the expected type, validation failed.")
77
+ obj.eligibility_payer_id&.is_a?(String) != false || raise("Passed value for field obj.eligibility_payer_id is not the expected type, validation failed.")
78
+ obj.remittance_payer_id&.is_a?(String) != false || raise("Passed value for field obj.remittance_payer_id is not the expected type, validation failed.")
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CandidApiClient
4
+ module Payers
5
+ module V4
6
+ module Types
7
+ class SupportState
8
+ NOT_SUPPORTED = "NOT_SUPPORTED"
9
+ SUPPORTED_ENROLLMENT_NOT_REQUIRED = "SUPPORTED_ENROLLMENT_NOT_REQUIRED"
10
+ SUPPORTED_ENROLLMENT_REQUIRED = "SUPPORTED_ENROLLMENT_REQUIRED"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end