change_healthcare-professional_claims 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +30 -0
  5. data/.travis.yml +6 -0
  6. data/.yardopts +1 -0
  7. data/CHANGELOG.md +0 -0
  8. data/Gemfile +6 -0
  9. data/Gemfile.lock +118 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +39 -0
  12. data/Rakefile +8 -0
  13. data/TODO.md +8 -0
  14. data/bin/console +15 -0
  15. data/bin/rspec +29 -0
  16. data/bin/setup +8 -0
  17. data/change_healthcare-professional_claims.gemspec +43 -0
  18. data/lib/change_healthcare/professional_claims.rb +16 -0
  19. data/lib/change_healthcare/professional_claims/swagger_client.rb +106 -0
  20. data/lib/change_healthcare/professional_claims/swagger_client/api_client.rb +390 -0
  21. data/lib/change_healthcare/professional_claims/swagger_client/api_error.rb +42 -0
  22. data/lib/change_healthcare/professional_claims/swagger_client/configuration.rb +204 -0
  23. data/lib/change_healthcare/professional_claims/swagger_client/models/address.rb +219 -0
  24. data/lib/change_healthcare/professional_claims/swagger_client/models/ambulance_certification.rb +247 -0
  25. data/lib/change_healthcare/professional_claims/swagger_client/models/ambulance_transport_information.rb +259 -0
  26. data/lib/change_healthcare/professional_claims/swagger_client/models/clai_request.rb +283 -0
  27. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_adjustment.rb +244 -0
  28. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_adjustment_details.rb +199 -0
  29. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_contract_information.rb +265 -0
  30. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_date_information.rb +298 -0
  31. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_information.rb +579 -0
  32. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_note.rb +216 -0
  33. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_pricing_repricing_information.rb +363 -0
  34. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_reference.rb +231 -0
  35. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_submission_request.rb +278 -0
  36. data/lib/change_healthcare/professional_claims/swagger_client/models/claim_supplemental_information.rb +315 -0
  37. data/lib/change_healthcare/professional_claims/swagger_client/models/composite_diagnosis_code_pointers.rb +191 -0
  38. data/lib/change_healthcare/professional_claims/swagger_client/models/condition_indicator_durable_medical_equipment.rb +281 -0
  39. data/lib/change_healthcare/professional_claims/swagger_client/models/condition_information.rb +190 -0
  40. data/lib/change_healthcare/professional_claims/swagger_client/models/contact_information.rb +209 -0
  41. data/lib/change_healthcare/professional_claims/swagger_client/models/contract_information.rb +255 -0
  42. data/lib/change_healthcare/professional_claims/swagger_client/models/dependent.rb +294 -0
  43. data/lib/change_healthcare/professional_claims/swagger_client/models/drug_identification.rb +278 -0
  44. data/lib/change_healthcare/professional_claims/swagger_client/models/durable_medical_equipment_certificate_of_medical_necessity.rb +226 -0
  45. data/lib/change_healthcare/professional_claims/swagger_client/models/durable_medical_equipment_certification.rb +233 -0
  46. data/lib/change_healthcare/professional_claims/swagger_client/models/durable_medical_equipment_service.rb +243 -0
  47. data/lib/change_healthcare/professional_claims/swagger_client/models/edit_response.rb +251 -0
  48. data/lib/change_healthcare/professional_claims/swagger_client/models/epsdt_referral.rb +236 -0
  49. data/lib/change_healthcare/professional_claims/swagger_client/models/error.rb +214 -0
  50. data/lib/change_healthcare/professional_claims/swagger_client/models/failure.rb +194 -0
  51. data/lib/change_healthcare/professional_claims/swagger_client/models/form_identification.rb +240 -0
  52. data/lib/change_healthcare/professional_claims/swagger_client/models/health_care_information.rb +233 -0
  53. data/lib/change_healthcare/professional_claims/swagger_client/models/line_adjudication_information.rb +284 -0
  54. data/lib/change_healthcare/professional_claims/swagger_client/models/measurements.rb +256 -0
  55. data/lib/change_healthcare/professional_claims/swagger_client/models/medicare_outpatient_adjudication.rb +213 -0
  56. data/lib/change_healthcare/professional_claims/swagger_client/models/other_payer_billing_provider.rb +236 -0
  57. data/lib/change_healthcare/professional_claims/swagger_client/models/other_payer_name.rb +285 -0
  58. data/lib/change_healthcare/professional_claims/swagger_client/models/other_payer_referring_provider.rb +192 -0
  59. data/lib/change_healthcare/professional_claims/swagger_client/models/other_payer_rendering_provider.rb +236 -0
  60. data/lib/change_healthcare/professional_claims/swagger_client/models/other_payer_service_facility_location.rb +192 -0
  61. data/lib/change_healthcare/professional_claims/swagger_client/models/other_payer_supervising_provider.rb +192 -0
  62. data/lib/change_healthcare/professional_claims/swagger_client/models/other_subscriber_information.rb +430 -0
  63. data/lib/change_healthcare/professional_claims/swagger_client/models/other_subscriber_name.rb +288 -0
  64. data/lib/change_healthcare/professional_claims/swagger_client/models/patient_condition_information_vision.rb +259 -0
  65. data/lib/change_healthcare/professional_claims/swagger_client/models/pay_to_plan.rb +278 -0
  66. data/lib/change_healthcare/professional_claims/swagger_client/models/payer.rb +194 -0
  67. data/lib/change_healthcare/professional_claims/swagger_client/models/prior_authorization.rb +194 -0
  68. data/lib/change_healthcare/professional_claims/swagger_client/models/professional_service.rb +290 -0
  69. data/lib/change_healthcare/professional_claims/swagger_client/models/provider.rb +281 -0
  70. data/lib/change_healthcare/professional_claims/swagger_client/models/purchased_service_information.rb +194 -0
  71. data/lib/change_healthcare/professional_claims/swagger_client/models/raw_x12_request.rb +194 -0
  72. data/lib/change_healthcare/professional_claims/swagger_client/models/receiver.rb +189 -0
  73. data/lib/change_healthcare/professional_claims/swagger_client/models/reference_identification.rb +199 -0
  74. data/lib/change_healthcare/professional_claims/swagger_client/models/report_information.rb +261 -0
  75. data/lib/change_healthcare/professional_claims/swagger_client/models/response.rb +240 -0
  76. data/lib/change_healthcare/professional_claims/swagger_client/models/service_facility_location.rb +224 -0
  77. data/lib/change_healthcare/professional_claims/swagger_client/models/service_line.rb +388 -0
  78. data/lib/change_healthcare/professional_claims/swagger_client/models/service_line_date_information.rb +236 -0
  79. data/lib/change_healthcare/professional_claims/swagger_client/models/service_line_provider.rb +293 -0
  80. data/lib/change_healthcare/professional_claims/swagger_client/models/service_line_reference_information.rb +230 -0
  81. data/lib/change_healthcare/professional_claims/swagger_client/models/spinal_manipulation_service_information.rb +238 -0
  82. data/lib/change_healthcare/professional_claims/swagger_client/models/submitter.rb +209 -0
  83. data/lib/change_healthcare/professional_claims/swagger_client/models/subscriber.rb +309 -0
  84. data/lib/change_healthcare/professional_claims/swagger_client/models/supporting_documentation.rb +249 -0
  85. data/lib/change_healthcare/professional_claims/swagger_client/professional_claims_api.rb +361 -0
  86. data/lib/change_healthcare/professional_claims/swagger_client/version.rb +19 -0
  87. data/lib/change_healthcare/professional_claims/version.rb +7 -0
  88. data/lib/change_healthcare/professional_claims/wrapper.rb +141 -0
  89. metadata +274 -0
@@ -0,0 +1,216 @@
1
+ # frozen_string_literal: true
2
+
3
+ # #Medical Network Professional Claims v3
4
+ #
5
+ # Reference for developers
6
+ #
7
+ # OpenAPI spec version: v3
8
+ #
9
+ # Generated by: https://github.com/swagger-api/swagger-codegen.git
10
+ # Swagger Codegen version: 2.4.19
11
+ #
12
+
13
+ require 'date'
14
+
15
+ module ChangeHealthcare
16
+ module ProfessionalClaims
17
+ module SwaggerClient
18
+ class ClaimNote
19
+ attr_accessor :additional_information, :certification_narrative, :diagnosis_description,
20
+ :goal_rehab_or_discharge_plans, :third_part_org_notes, :valid_note
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ additional_information: :additionalInformation,
26
+ certification_narrative: :certificationNarrative,
27
+ diagnosis_description: :diagnosisDescription,
28
+ goal_rehab_or_discharge_plans: :goalRehabOrDischargePlans,
29
+ third_part_org_notes: :thirdPartOrgNotes,
30
+ valid_note: :validNote
31
+ }
32
+ end
33
+
34
+ # Attribute type mapping.
35
+ def self.swagger_types
36
+ {
37
+ additional_information: :String,
38
+ certification_narrative: :String,
39
+ diagnosis_description: :String,
40
+ goal_rehab_or_discharge_plans: :String,
41
+ third_part_org_notes: :String,
42
+ valid_note: :BOOLEAN
43
+ }
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ return unless attributes.is_a?(Hash)
50
+
51
+ # convert string to symbol for hash key
52
+ attributes = attributes.transform_keys(&:to_sym)
53
+
54
+ self.additional_information = attributes[:additionalInformation] if attributes.key?(:additionalInformation)
55
+
56
+ self.certification_narrative = attributes[:certificationNarrative] if attributes.key?(:certificationNarrative)
57
+
58
+ self.diagnosis_description = attributes[:diagnosisDescription] if attributes.key?(:diagnosisDescription)
59
+
60
+ self.goal_rehab_or_discharge_plans = attributes[:goalRehabOrDischargePlans] if attributes.key?(:goalRehabOrDischargePlans)
61
+
62
+ self.third_part_org_notes = attributes[:thirdPartOrgNotes] if attributes.key?(:thirdPartOrgNotes)
63
+
64
+ self.valid_note = attributes[:validNote] if attributes.key?(:validNote)
65
+ end
66
+
67
+ # Show invalid properties with the reasons. Usually used together with valid?
68
+ # @return Array for valid properties with the reasons
69
+ def list_invalid_properties
70
+ []
71
+ end
72
+
73
+ # Check to see if the all the properties in the model are valid
74
+ # @return true if the model is valid
75
+ def valid?
76
+ true
77
+ end
78
+
79
+ # Checks equality by comparing each attribute.
80
+ # @param [Object] Object to be compared
81
+ def ==(other)
82
+ return true if equal?(other)
83
+
84
+ self.class == other.class &&
85
+ additional_information == other.additional_information &&
86
+ certification_narrative == other.certification_narrative &&
87
+ diagnosis_description == other.diagnosis_description &&
88
+ goal_rehab_or_discharge_plans == other.goal_rehab_or_discharge_plans &&
89
+ third_part_org_notes == other.third_part_org_notes &&
90
+ valid_note == other.valid_note
91
+ end
92
+
93
+ # @see the `==` method
94
+ # @param [Object] Object to be compared
95
+ def eql?(other)
96
+ self == other
97
+ end
98
+
99
+ # Calculates hash code according to all attributes.
100
+ # @return [Fixnum] Hash code
101
+ def hash
102
+ [additional_information, certification_narrative, diagnosis_description, goal_rehab_or_discharge_plans,
103
+ third_part_org_notes, valid_note].hash
104
+ end
105
+
106
+ # Builds the object from hash
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ # @return [Object] Returns the model itself
109
+ def build_from_hash(attributes)
110
+ return nil unless attributes.is_a?(Hash)
111
+
112
+ self.class.swagger_types.each_pair do |key, type|
113
+ if type =~ /\AArray<(.*)>/i
114
+ # check to ensure the input is an array given that the attribute
115
+ # is documented as an array but the input is not
116
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
117
+ send("#{key}=", attributes[self.class.attribute_map[key]].map do |v|
118
+ _deserialize(Regexp.last_match(1), v)
119
+ end)
120
+ end
121
+ elsif !attributes[self.class.attribute_map[key]].nil?
122
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
123
+ end
124
+ end
125
+
126
+ self
127
+ end
128
+
129
+ # Deserializes the data based on type
130
+ # @param string type Data type
131
+ # @param string value Value to be deserialized
132
+ # @return [Object] Deserialized data
133
+ def _deserialize(type, value)
134
+ case type.to_sym
135
+ when :DateTime
136
+ DateTime.parse(value)
137
+ when :Date
138
+ Date.parse(value)
139
+ when :String
140
+ value.to_s
141
+ when :Integer
142
+ value.to_i
143
+ when :Float
144
+ value.to_f
145
+ when :BOOLEAN
146
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
147
+ true
148
+ else
149
+ false
150
+ end
151
+ when :Object
152
+ # generic object (usually a Hash), return directly
153
+ value
154
+ when /\AArray<(?<inner_type>.+)>\z/
155
+ inner_type = Regexp.last_match[:inner_type]
156
+ value.map { |v| _deserialize(inner_type, v) }
157
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
158
+ k_type = Regexp.last_match[:k_type]
159
+ v_type = Regexp.last_match[:v_type]
160
+ {}.tap do |hash|
161
+ value.each do |k, v|
162
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
163
+ end
164
+ end
165
+ else # model
166
+ temp_model = SwaggerClient.const_get(type).new
167
+ temp_model.build_from_hash(value)
168
+ end
169
+ end
170
+
171
+ # Returns the string representation of the object
172
+ # @return [String] String presentation of the object
173
+ def to_s
174
+ to_hash.to_s
175
+ end
176
+
177
+ # to_body is an alias to to_hash (backward compatibility)
178
+ # @return [Hash] Returns the object in the form of hash
179
+ def to_body
180
+ to_hash
181
+ end
182
+
183
+ # Returns the object in the form of hash
184
+ # @return [Hash] Returns the object in the form of hash
185
+ def to_hash
186
+ hash = {}
187
+ self.class.attribute_map.each_pair do |attr, param|
188
+ value = send(attr)
189
+ next if value.nil?
190
+
191
+ hash[param] = _to_hash(value)
192
+ end
193
+ hash
194
+ end
195
+
196
+ # Outputs non-array value in the form of hash
197
+ # For object, use to_hash. Otherwise, just return the value
198
+ # @param [Object] value Any valid value
199
+ # @return [Hash] Returns the value in the form of hash
200
+ def _to_hash(value)
201
+ if value.is_a?(Array)
202
+ value.compact.map { |v| _to_hash(v) }
203
+ elsif value.is_a?(Hash)
204
+ {}.tap do |hash|
205
+ value.each { |k, v| hash[k] = _to_hash(v) }
206
+ end
207
+ elsif value.respond_to? :to_hash
208
+ value.to_hash
209
+ else
210
+ value
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
216
+ end
@@ -0,0 +1,363 @@
1
+ # frozen_string_literal: true
2
+
3
+ # #Medical Network Professional Claims v3
4
+ #
5
+ # Reference for developers
6
+ #
7
+ # OpenAPI spec version: v3
8
+ #
9
+ # Generated by: https://github.com/swagger-api/swagger-codegen.git
10
+ # Swagger Codegen version: 2.4.19
11
+ #
12
+
13
+ require 'date'
14
+
15
+ module ChangeHealthcare
16
+ module ProfessionalClaims
17
+ module SwaggerClient
18
+ class ClaimPricingRepricingInformation
19
+ # Allowed Values are:
20
+ # - '1' Non-Network Professional Provider in Network Hospital
21
+ # - '2' Emergency Care, '3' Services or Specialist not in Network
22
+ # - '4' Out-of-Service Area
23
+ # - '5' State Mandates
24
+ # - '6' Other
25
+ attr_reader :exception_code
26
+
27
+ # Allowed Values are:
28
+ # - '1' Procedure Followed (Compliance)
29
+ # - '2' Not Followed - Call Not Made (Non-Compliance Call Not Made)
30
+ # - '3' Not Medically Necessary (Non-Compliance Non-Medically Necessary)
31
+ # - '4' Not Followed Other (Non-Compliance Other)
32
+ # - '5' Emergency Admit to Non-Network Hospital
33
+ attr_reader :policy_compliance_code
34
+
35
+ # Allowed Values are:
36
+ # - '00' Zero Pricing (Not Covered Under Contract)
37
+ # - '01' Priced as Billed at 100%
38
+ # - '02' Priced at the Standard Fee Schedule
39
+ # - '03' Priced at a Contractual Percentage
40
+ # - '04' Bundled Pricing
41
+ # - '05' Peer Review Pricing
42
+ # - '06' Bundled Pricing
43
+ # - '07' Flat Rate Pricing
44
+ # - '08' Combination Pricing
45
+ # - '09' Maternity Pricing
46
+ # - '10' Other Pricing
47
+ # - '11' Lower of Cost
48
+ # - '12' Ratio of Cost
49
+ # - '13' Cost Reimbursed
50
+ # - '14' Adjustment Pricing
51
+ attr_reader :pricing_methodology_code
52
+
53
+ # Allowed Values are:
54
+ # - 'T1' Cannot Identify Provider as TPO (Third Party Organization) Participant
55
+ # - 'T2' Cannot Identify Payer as TPO (Third Party Organization) Participant
56
+ # - 'T3' Cannot Identify Insured as TPO (Third Party Organization) Participant
57
+ # - 'T4' Payer Name or Identifier Missing
58
+ # - 'T5' Certification Information Missing
59
+ # - '16' Claim does not contain enough information for repricing
60
+ attr_reader :reject_reason_code
61
+
62
+ attr_accessor :repriced_allowed_amount, :repriced_approved_ambulatory_patient_group_amount,
63
+ :repriced_approved_ambulatory_patient_group_code, :repriced_saving_amount, :repricing_organization_identifier, :repricing_per_diem_or_flat_rate_amoung
64
+
65
+ class EnumAttributeValidator
66
+ attr_reader :datatype, :allowable_values
67
+
68
+ def initialize(datatype, allowable_values)
69
+ @allowable_values = allowable_values.map do |value|
70
+ case datatype.to_s
71
+ when /Integer/i
72
+ value.to_i
73
+ when /Float/i
74
+ value.to_f
75
+ else
76
+ value
77
+ end
78
+ end
79
+ end
80
+
81
+ def valid?(value)
82
+ !value || allowable_values.include?(value)
83
+ end
84
+ end
85
+
86
+ # Attribute mapping from ruby-style variable name to JSON key.
87
+ def self.attribute_map
88
+ {
89
+ exception_code: :exceptionCode,
90
+ policy_compliance_code: :policyComplianceCode,
91
+ pricing_methodology_code: :pricingMethodologyCode,
92
+ reject_reason_code: :rejectReasonCode,
93
+ repriced_allowed_amount: :repricedAllowedAmount,
94
+ repriced_approved_ambulatory_patient_group_amount: :repricedApprovedAmbulatoryPatientGroupAmount,
95
+ repriced_approved_ambulatory_patient_group_code: :repricedApprovedAmbulatoryPatientGroupCode,
96
+ repriced_saving_amount: :repricedSavingAmount,
97
+ repricing_organization_identifier: :repricingOrganizationIdentifier,
98
+ repricing_per_diem_or_flat_rate_amoung: :repricingPerDiemOrFlatRateAmoung
99
+ }
100
+ end
101
+
102
+ # Attribute type mapping.
103
+ def self.swagger_types
104
+ {
105
+ exception_code: :String,
106
+ policy_compliance_code: :String,
107
+ pricing_methodology_code: :String,
108
+ reject_reason_code: :String,
109
+ repriced_allowed_amount: :String,
110
+ repriced_approved_ambulatory_patient_group_amount: :String,
111
+ repriced_approved_ambulatory_patient_group_code: :String,
112
+ repriced_saving_amount: :String,
113
+ repricing_organization_identifier: :String,
114
+ repricing_per_diem_or_flat_rate_amoung: :String
115
+ }
116
+ end
117
+
118
+ # Initializes the object
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ def initialize(attributes = {})
121
+ return unless attributes.is_a?(Hash)
122
+
123
+ # convert string to symbol for hash key
124
+ attributes = attributes.transform_keys(&:to_sym)
125
+
126
+ self.exception_code = attributes[:exceptionCode] if attributes.key?(:exceptionCode)
127
+
128
+ self.policy_compliance_code = attributes[:policyComplianceCode] if attributes.key?(:policyComplianceCode)
129
+
130
+ self.pricing_methodology_code = attributes[:pricingMethodologyCode] if attributes.key?(:pricingMethodologyCode)
131
+
132
+ self.reject_reason_code = attributes[:rejectReasonCode] if attributes.key?(:rejectReasonCode)
133
+
134
+ self.repriced_allowed_amount = attributes[:repricedAllowedAmount] if attributes.key?(:repricedAllowedAmount)
135
+
136
+ self.repriced_approved_ambulatory_patient_group_amount = attributes[:repricedApprovedAmbulatoryPatientGroupAmount] if attributes.key?(:repricedApprovedAmbulatoryPatientGroupAmount)
137
+
138
+ self.repriced_approved_ambulatory_patient_group_code = attributes[:repricedApprovedAmbulatoryPatientGroupCode] if attributes.key?(:repricedApprovedAmbulatoryPatientGroupCode)
139
+
140
+ self.repriced_saving_amount = attributes[:repricedSavingAmount] if attributes.key?(:repricedSavingAmount)
141
+
142
+ self.repricing_organization_identifier = attributes[:repricingOrganizationIdentifier] if attributes.key?(:repricingOrganizationIdentifier)
143
+
144
+ self.repricing_per_diem_or_flat_rate_amoung = attributes[:repricingPerDiemOrFlatRateAmoung] if attributes.key?(:repricingPerDiemOrFlatRateAmoung)
145
+ end
146
+
147
+ # Show invalid properties with the reasons. Usually used together with valid?
148
+ # @return Array for valid properties with the reasons
149
+ def list_invalid_properties
150
+ []
151
+ end
152
+
153
+ # Check to see if the all the properties in the model are valid
154
+ # @return true if the model is valid
155
+ def valid?
156
+ exception_code_validator = EnumAttributeValidator.new('String', %w[1 2 3 4 5 6])
157
+ return false unless exception_code_validator.valid?(@exception_code)
158
+
159
+ policy_compliance_code_validator = EnumAttributeValidator.new('String', %w[1 2 3 4 5])
160
+ return false unless policy_compliance_code_validator.valid?(@policy_compliance_code)
161
+
162
+ pricing_methodology_code_validator = EnumAttributeValidator.new('String',
163
+ %w[00 01 02 03 04 05 06 07 08 09 10 11 12 13
164
+ 14])
165
+ return false unless pricing_methodology_code_validator.valid?(@pricing_methodology_code)
166
+
167
+ reject_reason_code_validator = EnumAttributeValidator.new('String', %w[T1 T2 T3 T4 T5 T6])
168
+ return false unless reject_reason_code_validator.valid?(@reject_reason_code)
169
+
170
+ true
171
+ end
172
+
173
+ # Custom attribute writer method checking allowed values (enum).
174
+ # @param [Object] exception_code Object to be assigned
175
+ def exception_code=(exception_code)
176
+ validator = EnumAttributeValidator.new('String', %w[1 2 3 4 5 6])
177
+ unless validator.valid?(exception_code)
178
+ raise ArgumentError,
179
+ %(invalid value for "exception_code", must be one of #{validator.allowable_values}.)
180
+ end
181
+
182
+ @exception_code = exception_code
183
+ end
184
+
185
+ # Custom attribute writer method checking allowed values (enum).
186
+ # @param [Object] policy_compliance_code Object to be assigned
187
+ def policy_compliance_code=(policy_compliance_code)
188
+ validator = EnumAttributeValidator.new('String', %w[1 2 3 4 5])
189
+ unless validator.valid?(policy_compliance_code)
190
+ raise ArgumentError,
191
+ %(invalid value for "policy_compliance_code", must be one of #{validator.allowable_values}.)
192
+ end
193
+
194
+ @policy_compliance_code = policy_compliance_code
195
+ end
196
+
197
+ # Custom attribute writer method checking allowed values (enum).
198
+ # @param [Object] pricing_methodology_code Object to be assigned
199
+ def pricing_methodology_code=(pricing_methodology_code)
200
+ validator = EnumAttributeValidator.new('String',
201
+ %w[00 01 02 03 04 05 06 07 08 09 10 11 12 13 14])
202
+ unless validator.valid?(pricing_methodology_code)
203
+ raise ArgumentError,
204
+ %(invalid value for "pricing_methodology_code", must be one of #{validator.allowable_values}.)
205
+ end
206
+
207
+ @pricing_methodology_code = pricing_methodology_code
208
+ end
209
+
210
+ # Custom attribute writer method checking allowed values (enum).
211
+ # @param [Object] reject_reason_code Object to be assigned
212
+ def reject_reason_code=(reject_reason_code)
213
+ validator = EnumAttributeValidator.new('String', %w[T1 T2 T3 T4 T5 T6])
214
+ unless validator.valid?(reject_reason_code)
215
+ raise ArgumentError,
216
+ %(invalid value for "reject_reason_code", must be one of #{validator.allowable_values}.)
217
+ end
218
+
219
+ @reject_reason_code = reject_reason_code
220
+ end
221
+
222
+ # Checks equality by comparing each attribute.
223
+ # @param [Object] Object to be compared
224
+ def ==(other)
225
+ return true if equal?(other)
226
+
227
+ self.class == other.class &&
228
+ exception_code == other.exception_code &&
229
+ policy_compliance_code == other.policy_compliance_code &&
230
+ pricing_methodology_code == other.pricing_methodology_code &&
231
+ reject_reason_code == other.reject_reason_code &&
232
+ repriced_allowed_amount == other.repriced_allowed_amount &&
233
+ repriced_approved_ambulatory_patient_group_amount == other.repriced_approved_ambulatory_patient_group_amount &&
234
+ repriced_approved_ambulatory_patient_group_code == other.repriced_approved_ambulatory_patient_group_code &&
235
+ repriced_saving_amount == other.repriced_saving_amount &&
236
+ repricing_organization_identifier == other.repricing_organization_identifier &&
237
+ repricing_per_diem_or_flat_rate_amoung == other.repricing_per_diem_or_flat_rate_amoung
238
+ end
239
+
240
+ # @see the `==` method
241
+ # @param [Object] Object to be compared
242
+ def eql?(other)
243
+ self == other
244
+ end
245
+
246
+ # Calculates hash code according to all attributes.
247
+ # @return [Fixnum] Hash code
248
+ def hash
249
+ [exception_code, policy_compliance_code, pricing_methodology_code, reject_reason_code, repriced_allowed_amount,
250
+ repriced_approved_ambulatory_patient_group_amount, repriced_approved_ambulatory_patient_group_code, repriced_saving_amount, repricing_organization_identifier, repricing_per_diem_or_flat_rate_amoung].hash
251
+ end
252
+
253
+ # Builds the object from hash
254
+ # @param [Hash] attributes Model attributes in the form of hash
255
+ # @return [Object] Returns the model itself
256
+ def build_from_hash(attributes)
257
+ return nil unless attributes.is_a?(Hash)
258
+
259
+ self.class.swagger_types.each_pair do |key, type|
260
+ if type =~ /\AArray<(.*)>/i
261
+ # check to ensure the input is an array given that the attribute
262
+ # is documented as an array but the input is not
263
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
264
+ send("#{key}=", attributes[self.class.attribute_map[key]].map do |v|
265
+ _deserialize(Regexp.last_match(1), v)
266
+ end)
267
+ end
268
+ elsif !attributes[self.class.attribute_map[key]].nil?
269
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
270
+ end
271
+ end
272
+
273
+ self
274
+ end
275
+
276
+ # Deserializes the data based on type
277
+ # @param string type Data type
278
+ # @param string value Value to be deserialized
279
+ # @return [Object] Deserialized data
280
+ def _deserialize(type, value)
281
+ case type.to_sym
282
+ when :DateTime
283
+ DateTime.parse(value)
284
+ when :Date
285
+ Date.parse(value)
286
+ when :String
287
+ value.to_s
288
+ when :Integer
289
+ value.to_i
290
+ when :Float
291
+ value.to_f
292
+ when :BOOLEAN
293
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
294
+ true
295
+ else
296
+ false
297
+ end
298
+ when :Object
299
+ # generic object (usually a Hash), return directly
300
+ value
301
+ when /\AArray<(?<inner_type>.+)>\z/
302
+ inner_type = Regexp.last_match[:inner_type]
303
+ value.map { |v| _deserialize(inner_type, v) }
304
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
305
+ k_type = Regexp.last_match[:k_type]
306
+ v_type = Regexp.last_match[:v_type]
307
+ {}.tap do |hash|
308
+ value.each do |k, v|
309
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
310
+ end
311
+ end
312
+ else # model
313
+ temp_model = SwaggerClient.const_get(type).new
314
+ temp_model.build_from_hash(value)
315
+ end
316
+ end
317
+
318
+ # Returns the string representation of the object
319
+ # @return [String] String presentation of the object
320
+ def to_s
321
+ to_hash.to_s
322
+ end
323
+
324
+ # to_body is an alias to to_hash (backward compatibility)
325
+ # @return [Hash] Returns the object in the form of hash
326
+ def to_body
327
+ to_hash
328
+ end
329
+
330
+ # Returns the object in the form of hash
331
+ # @return [Hash] Returns the object in the form of hash
332
+ def to_hash
333
+ hash = {}
334
+ self.class.attribute_map.each_pair do |attr, param|
335
+ value = send(attr)
336
+ next if value.nil?
337
+
338
+ hash[param] = _to_hash(value)
339
+ end
340
+ hash
341
+ end
342
+
343
+ # Outputs non-array value in the form of hash
344
+ # For object, use to_hash. Otherwise, just return the value
345
+ # @param [Object] value Any valid value
346
+ # @return [Hash] Returns the value in the form of hash
347
+ def _to_hash(value)
348
+ if value.is_a?(Array)
349
+ value.compact.map { |v| _to_hash(v) }
350
+ elsif value.is_a?(Hash)
351
+ {}.tap do |hash|
352
+ value.each { |k, v| hash[k] = _to_hash(v) }
353
+ end
354
+ elsif value.respond_to? :to_hash
355
+ value.to_hash
356
+ else
357
+ value
358
+ end
359
+ end
360
+ end
361
+ end
362
+ end
363
+ end