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,298 @@
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 ClaimDateInformation
19
+ attr_accessor(
20
+ :accident_date,
21
+ :acute_manifestation_date,
22
+ :admission_date,
23
+ :assumed_and_relinquished_care_begin_date,
24
+ :assumed_and_relinquished_care_end_date,
25
+ :authorized_return_to_work_date,
26
+ :disability_begin_date,
27
+ :disability_end_date,
28
+ :discharge_date,
29
+ :first_contact_date,
30
+ :hearing_and_vision_prescription_date,
31
+ :initial_treatment_date,
32
+ :last_menstrual_period_date,
33
+ :last_seen_date,
34
+ :last_worked_date,
35
+ :last_x_ray_date,
36
+ :repricer_received_date,
37
+ :symptom_date
38
+ )
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+ accident_date: :accidentDate,
44
+ acute_manifestation_date: :acuteManifestationDate,
45
+ admission_date: :admissionDate,
46
+ assumed_and_relinquished_care_begin_date: :assumedAndRelinquishedCareBeginDate,
47
+ assumed_and_relinquished_care_end_date: :assumedAndRelinquishedCareEndDate,
48
+ authorized_return_to_work_date: :authorizedReturnToWorkDate,
49
+ disability_begin_date: :disabilityBeginDate,
50
+ disability_end_date: :disabilityEndDate,
51
+ discharge_date: :dischargeDate,
52
+ first_contact_date: :firstContactDate,
53
+ hearing_and_vision_prescription_date: :hearingAndVisionPrescriptionDate,
54
+ initial_treatment_date: :initialTreatmentDate,
55
+ last_menstrual_period_date: :lastMenstrualPeriodDate,
56
+ last_seen_date: :lastSeenDate,
57
+ last_worked_date: :lastWorkedDate,
58
+ last_x_ray_date: :lastXRayDate,
59
+ repricer_received_date: :repricerReceivedDate,
60
+ symptom_date: :symptomDate
61
+ }
62
+ end
63
+
64
+ # Attribute type mapping.
65
+ def self.swagger_types
66
+ {
67
+ accident_date: :String,
68
+ acute_manifestation_date: :String,
69
+ admission_date: :String,
70
+ assumed_and_relinquished_care_begin_date: :String,
71
+ assumed_and_relinquished_care_end_date: :String,
72
+ authorized_return_to_work_date: :String,
73
+ disability_begin_date: :String,
74
+ disability_end_date: :String,
75
+ discharge_date: :String,
76
+ first_contact_date: :String,
77
+ hearing_and_vision_prescription_date: :String,
78
+ initial_treatment_date: :String,
79
+ last_menstrual_period_date: :String,
80
+ last_seen_date: :String,
81
+ last_worked_date: :String,
82
+ last_x_ray_date: :String,
83
+ repricer_received_date: :String,
84
+ symptom_date: :String
85
+ }
86
+ end
87
+
88
+ # Initializes the object
89
+ # @param [Hash] attributes Model attributes in the form of hash
90
+ def initialize(attributes = {})
91
+ return unless attributes.is_a?(Hash)
92
+
93
+ # convert string to symbol for hash key
94
+ attributes = attributes.transform_keys(&:to_sym)
95
+
96
+ self.accident_date = attributes[:accidentDate] if attributes.key?(:accidentDate)
97
+
98
+ self.acute_manifestation_date = attributes[:acuteManifestationDate] if attributes.key?(:acuteManifestationDate)
99
+
100
+ self.admission_date = attributes[:admissionDate] if attributes.key?(:admissionDate)
101
+
102
+ self.assumed_and_relinquished_care_begin_date = attributes[:assumedAndRelinquishedCareBeginDate] if attributes.key?(:assumedAndRelinquishedCareBeginDate)
103
+
104
+ self.assumed_and_relinquished_care_end_date = attributes[:assumedAndRelinquishedCareEndDate] if attributes.key?(:assumedAndRelinquishedCareEndDate)
105
+
106
+ self.authorized_return_to_work_date = attributes[:authorizedReturnToWorkDate] if attributes.key?(:authorizedReturnToWorkDate)
107
+
108
+ self.disability_begin_date = attributes[:disabilityBeginDate] if attributes.key?(:disabilityBeginDate)
109
+
110
+ self.disability_end_date = attributes[:disabilityEndDate] if attributes.key?(:disabilityEndDate)
111
+
112
+ self.discharge_date = attributes[:dischargeDate] if attributes.key?(:dischargeDate)
113
+
114
+ self.first_contact_date = attributes[:firstContactDate] if attributes.key?(:firstContactDate)
115
+
116
+ self.hearing_and_vision_prescription_date = attributes[:hearingAndVisionPrescriptionDate] if attributes.key?(:hearingAndVisionPrescriptionDate)
117
+
118
+ self.initial_treatment_date = attributes[:initialTreatmentDate] if attributes.key?(:initialTreatmentDate)
119
+
120
+ self.last_menstrual_period_date = attributes[:lastMenstrualPeriodDate] if attributes.key?(:lastMenstrualPeriodDate)
121
+
122
+ self.last_seen_date = attributes[:lastSeenDate] if attributes.key?(:lastSeenDate)
123
+
124
+ self.last_worked_date = attributes[:lastWorkedDate] if attributes.key?(:lastWorkedDate)
125
+
126
+ self.last_x_ray_date = attributes[:lastXRayDate] if attributes.key?(:lastXRayDate)
127
+
128
+ self.repricer_received_date = attributes[:repricerReceivedDate] if attributes.key?(:repricerReceivedDate)
129
+
130
+ self.symptom_date = attributes[:symptomDate] if attributes.key?(:symptomDate)
131
+ end
132
+
133
+ # Show invalid properties with the reasons. Usually used together with valid?
134
+ # @return Array for valid properties with the reasons
135
+ def list_invalid_properties
136
+ []
137
+ end
138
+
139
+ # Check to see if the all the properties in the model are valid
140
+ # @return true if the model is valid
141
+ def valid?
142
+ true
143
+ end
144
+
145
+ # Checks equality by comparing each attribute.
146
+ # @param [Object] Object to be compared
147
+ def ==(other)
148
+ return true if equal?(other)
149
+
150
+ self.class == other.class &&
151
+ accident_date == other.accident_date &&
152
+ acute_manifestation_date == other.acute_manifestation_date &&
153
+ admission_date == other.admission_date &&
154
+ assumed_and_relinquished_care_begin_date == other.assumed_and_relinquished_care_begin_date &&
155
+ assumed_and_relinquished_care_end_date == other.assumed_and_relinquished_care_end_date &&
156
+ authorized_return_to_work_date == other.authorized_return_to_work_date &&
157
+ disability_begin_date == other.disability_begin_date &&
158
+ disability_end_date == other.disability_end_date &&
159
+ discharge_date == other.discharge_date &&
160
+ first_contact_date == other.first_contact_date &&
161
+ hearing_and_vision_prescription_date == other.hearing_and_vision_prescription_date &&
162
+ initial_treatment_date == other.initial_treatment_date &&
163
+ last_menstrual_period_date == other.last_menstrual_period_date &&
164
+ last_seen_date == other.last_seen_date &&
165
+ last_worked_date == other.last_worked_date &&
166
+ last_x_ray_date == other.last_x_ray_date &&
167
+ repricer_received_date == other.repricer_received_date &&
168
+ symptom_date == other.symptom_date
169
+ end
170
+
171
+ # @see the `==` method
172
+ # @param [Object] Object to be compared
173
+ def eql?(other)
174
+ self == other
175
+ end
176
+
177
+ # Calculates hash code according to all attributes.
178
+ # @return [Fixnum] Hash code
179
+ def hash
180
+ [
181
+ accident_date, acute_manifestation_date, admission_date, assumed_and_relinquished_care_begin_date,
182
+ assumed_and_relinquished_care_end_date, authorized_return_to_work_date, disability_begin_date, disability_end_date, discharge_date,
183
+ first_contact_date, hearing_and_vision_prescription_date, initial_treatment_date, last_menstrual_period_date,
184
+ last_seen_date, last_worked_date, last_x_ray_date, repricer_received_date, symptom_date
185
+ ].hash
186
+ end
187
+
188
+ # Builds the object from hash
189
+ # @param [Hash] attributes Model attributes in the form of hash
190
+ # @return [Object] Returns the model itself
191
+ def build_from_hash(attributes)
192
+ return nil unless attributes.is_a?(Hash)
193
+
194
+ self.class.swagger_types.each_pair do |key, type|
195
+ if type =~ /\AArray<(.*)>/i
196
+ # check to ensure the input is an array given that the attribute
197
+ # is documented as an array but the input is not
198
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
199
+ send("#{key}=", attributes[self.class.attribute_map[key]].map do |v|
200
+ _deserialize(Regexp.last_match(1), v)
201
+ end)
202
+ end
203
+ elsif !attributes[self.class.attribute_map[key]].nil?
204
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
205
+ end
206
+ end
207
+
208
+ self
209
+ end
210
+
211
+ # Deserializes the data based on type
212
+ # @param string type Data type
213
+ # @param string value Value to be deserialized
214
+ # @return [Object] Deserialized data
215
+ def _deserialize(type, value)
216
+ case type.to_sym
217
+ when :DateTime
218
+ DateTime.parse(value)
219
+ when :Date
220
+ Date.parse(value)
221
+ when :String
222
+ value.to_s
223
+ when :Integer
224
+ value.to_i
225
+ when :Float
226
+ value.to_f
227
+ when :BOOLEAN
228
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
229
+ true
230
+ else
231
+ false
232
+ end
233
+ when :Object
234
+ # generic object (usually a Hash), return directly
235
+ value
236
+ when /\AArray<(?<inner_type>.+)>\z/
237
+ inner_type = Regexp.last_match[:inner_type]
238
+ value.map { |v| _deserialize(inner_type, v) }
239
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
240
+ k_type = Regexp.last_match[:k_type]
241
+ v_type = Regexp.last_match[:v_type]
242
+ {}.tap do |hash|
243
+ value.each do |k, v|
244
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
245
+ end
246
+ end
247
+ else # model
248
+ temp_model = SwaggerClient.const_get(type).new
249
+ temp_model.build_from_hash(value)
250
+ end
251
+ end
252
+
253
+ # Returns the string representation of the object
254
+ # @return [String] String presentation of the object
255
+ def to_s
256
+ to_hash.to_s
257
+ end
258
+
259
+ # to_body is an alias to to_hash (backward compatibility)
260
+ # @return [Hash] Returns the object in the form of hash
261
+ def to_body
262
+ to_hash
263
+ end
264
+
265
+ # Returns the object in the form of hash
266
+ # @return [Hash] Returns the object in the form of hash
267
+ def to_hash
268
+ hash = {}
269
+ self.class.attribute_map.each_pair do |attr, param|
270
+ value = send(attr)
271
+ next if value.nil?
272
+
273
+ hash[param] = _to_hash(value)
274
+ end
275
+ hash
276
+ end
277
+
278
+ # Outputs non-array value in the form of hash
279
+ # For object, use to_hash. Otherwise, just return the value
280
+ # @param [Object] value Any valid value
281
+ # @return [Hash] Returns the value in the form of hash
282
+ def _to_hash(value)
283
+ if value.is_a?(Array)
284
+ value.compact.map { |v| _to_hash(v) }
285
+ elsif value.is_a?(Hash)
286
+ {}.tap do |hash|
287
+ value.each { |k, v| hash[k] = _to_hash(v) }
288
+ end
289
+ elsif value.respond_to? :to_hash
290
+ value.to_hash
291
+ else
292
+ value
293
+ end
294
+ end
295
+ end
296
+ end
297
+ end
298
+ end
@@ -0,0 +1,579 @@
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 ClaimInformation
19
+ attr_accessor(
20
+ :ambulance_certification, :ambulance_drop_off_location, :ambulance_pick_up_location,
21
+ :ambulance_transport_information, :anesthesia_related_surgical_procedure, :auto_accident_country_code, :auto_accident_state_code, :claim_charge_amount,
22
+ :claim_contract_information, :claim_date_information, :claim_filing_code, :claim_frequency_code, :claim_note,
23
+ :claim_pricing_repricing_information, :claim_supplemental_information, :condition_information, :epsdt_referral,
24
+ :file_information, :health_care_code_information, :homebound_indicator, :other_subscriber_information, :patient_amount_paid,
25
+ :patient_condition_information_vision, :patient_control_number, :patient_signature_source_code,
26
+ :patient_weight, :place_of_service_code, :property_casualty_claim_number,
27
+ :service_facility_location, :service_lines, :spinal_manipulation_service_information
28
+ )
29
+
30
+ ##
31
+ # Allowed Values are:
32
+ #
33
+ # - 'N' No,
34
+ # - 'W' Not Applicable - Use code 'W' when the patient refuses to assign benefits
35
+ # - 'Y' Yes
36
+ attr_reader :benefits_assignment_certification_indicator
37
+
38
+ # Allowed Values are:
39
+ #
40
+ # - '1' Proof of Eligibility Unknown or Unavailable
41
+ # - '2' Litigation,
42
+ # - '3' Authorization Delays
43
+ # - '4' Delay in Certifying Provider
44
+ # - '5' Delay in Supplying Billing Forms
45
+ # - '6' Delay in Delivery of Custom-made Appliances,
46
+ # - '7' Third Party Processing Delay
47
+ # - '8' Delay in Eligibility Determination
48
+ # - '9' Original Claim Rejected or Denied Due to a Reason Unrelated to the Billing Limitation Rules
49
+ # - '10' Administration Delay in the Prior Approval Process
50
+ # - '11' Other
51
+ # - '15' Natural Disaster
52
+ attr_reader :delay_reason_code
53
+
54
+ # Allowed Values are:
55
+ #
56
+ # - 'A' Assigned
57
+ # - 'B' Assignment Accepted on Clinical Lab Service Only
58
+ # - 'C' Not Assigned - Required when neither codes 'A' or 'B' apply
59
+ attr_reader :plan_participation_code
60
+
61
+ # Allowed Values are:
62
+ #
63
+ # - 'AA' Auto Accident
64
+ # - 'EM' Employment
65
+ # - 'OA' Other Accident
66
+ attr_reader :related_causes_code
67
+
68
+ # Allowed Values are:
69
+ #
70
+ # - 'I' Informed Consent to Release Medical Information for Conditions or Diagnoses Regulated by Federal Statutes
71
+ # - 'Y' Yes
72
+ attr_reader :release_information_code
73
+
74
+ # Allowed Values are:
75
+ #
76
+ # - 'N' NO,
77
+ # - 'Y' Yes
78
+ attr_reader :signature_indicator
79
+
80
+ # Allowed Values are:
81
+ #
82
+ # - '02' Physically Handicapped Children's Program
83
+ # - '03' Special Federal Funding
84
+ # - '05' Disabolity
85
+ # - '09' Second Opinion or Surgery
86
+ attr_reader :special_program_code
87
+
88
+ class EnumAttributeValidator
89
+ attr_reader :datatype, :allowable_values
90
+
91
+ def initialize(datatype, allowable_values)
92
+ @allowable_values = allowable_values.map do |value|
93
+ case datatype.to_s
94
+ when /Integer/i
95
+ value.to_i
96
+ when /Float/i
97
+ value.to_f
98
+ else
99
+ value
100
+ end
101
+ end
102
+ end
103
+
104
+ def valid?(value)
105
+ !value || allowable_values.include?(value)
106
+ end
107
+ end
108
+
109
+ # Attribute mapping from ruby-style variable name to JSON key.
110
+ def self.attribute_map
111
+ {
112
+ ambulance_certification: :ambulanceCertification,
113
+ ambulance_drop_off_location: :ambulanceDropOffLocation,
114
+ ambulance_pick_up_location: :ambulancePickUpLocation,
115
+ ambulance_transport_information: :ambulanceTransportInformation,
116
+ anesthesia_related_surgical_procedure: :anesthesiaRelatedSurgicalProcedure,
117
+ auto_accident_country_code: :autoAccidentCountryCode,
118
+ auto_accident_state_code: :autoAccidentStateCode,
119
+ benefits_assignment_certification_indicator: :benefitsAssignmentCertificationIndicator,
120
+ claim_charge_amount: :claimChargeAmount,
121
+ claim_contract_information: :claimContractInformation,
122
+ claim_date_information: :claimDateInformation,
123
+ claim_filing_code: :claimFilingCode,
124
+ claim_frequency_code: :claimFrequencyCode,
125
+ claim_note: :claimNote,
126
+ claim_pricing_repricing_information: :claimPricingRepricingInformation,
127
+ claim_supplemental_information: :claimSupplementalInformation,
128
+ condition_information: :conditionInformation,
129
+ delay_reason_code: :delayReasonCode,
130
+ epsdt_referral: :epsdtReferral,
131
+ file_information: :fileInformation,
132
+ health_care_code_information: :healthCareCodeInformation,
133
+ homebound_indicator: :homeboundIndicator,
134
+ other_subscriber_information: :otherSubscriberInformation,
135
+ patient_amount_paid: :patientAmountPaid,
136
+ patient_condition_information_vision: :patientConditionInformationVision,
137
+ patient_control_number: :patientControlNumber,
138
+ patient_signature_source_code: :patientSignatureSourceCode,
139
+ patient_weight: :patientWeight,
140
+ place_of_service_code: :placeOfServiceCode,
141
+ plan_participation_code: :planParticipationCode,
142
+ property_casualty_claim_number: :propertyCasualtyClaimNumber,
143
+ related_causes_code: :relatedCausesCode,
144
+ release_information_code: :releaseInformationCode,
145
+ service_facility_location: :serviceFacilityLocation,
146
+ service_lines: :serviceLines,
147
+ signature_indicator: :signatureIndicator,
148
+ special_program_code: :specialProgramCode,
149
+ spinal_manipulation_service_information: :spinalManipulationServiceInformation
150
+ }
151
+ end
152
+
153
+ # Attribute type mapping.
154
+ def self.swagger_types
155
+ {
156
+ ambulance_certification: :'Array<AmbulanceCertification>',
157
+ ambulance_drop_off_location: :Address,
158
+ ambulance_pick_up_location: :Address,
159
+ ambulance_transport_information: :AmbulanceTransportInformation,
160
+ anesthesia_related_surgical_procedure: :'Array<String>',
161
+ auto_accident_country_code: :String,
162
+ auto_accident_state_code: :String,
163
+ benefits_assignment_certification_indicator: :String,
164
+ claim_charge_amount: :String,
165
+ claim_contract_information: :ClaimContractInformation,
166
+ claim_date_information: :ClaimDateInformation,
167
+ claim_filing_code: :String,
168
+ claim_frequency_code: :String,
169
+ claim_note: :ClaimNote,
170
+ claim_pricing_repricing_information: :ClaimPricingRepricingInformation,
171
+ claim_supplemental_information: :ClaimSupplementalInformation,
172
+ condition_information: :'Array<ConditionInformation>',
173
+ delay_reason_code: :String,
174
+ epsdt_referral: :EpsdtReferral,
175
+ file_information: :String,
176
+ health_care_code_information: :'Array<HealthCareInformation>',
177
+ homebound_indicator: :BOOLEAN,
178
+ other_subscriber_information: :'Array<OtherSubscriberInformation>',
179
+ patient_amount_paid: :String,
180
+ patient_condition_information_vision: :'Array<PatientConditionInformationVision>',
181
+ patient_control_number: :String,
182
+ patient_signature_source_code: :BOOLEAN,
183
+ patient_weight: :String,
184
+ place_of_service_code: :String,
185
+ plan_participation_code: :String,
186
+ property_casualty_claim_number: :String,
187
+ related_causes_code: :'Array<String>',
188
+ release_information_code: :String,
189
+ service_facility_location: :ServiceFacilityLocation,
190
+ service_lines: :'Array<ServiceLine>',
191
+ signature_indicator: :String,
192
+ special_program_code: :String,
193
+ spinal_manipulation_service_information: :SpinalManipulationServiceInformation
194
+ }
195
+ end
196
+
197
+ # Initializes the object
198
+ # @param [Hash] attributes Model attributes in the form of hash
199
+ def initialize(attributes = {})
200
+ return unless attributes.is_a?(Hash)
201
+
202
+ # convert string to symbol for hash key
203
+ attributes = attributes.transform_keys(&:to_sym)
204
+
205
+ if attributes.key?(:ambulanceCertification) && (value = attributes[:ambulanceCertification]).is_a?(Array)
206
+ self.ambulance_certification = value
207
+ end
208
+
209
+ self.ambulance_drop_off_location = attributes[:ambulanceDropOffLocation] if attributes.key?(:ambulanceDropOffLocation)
210
+
211
+ self.ambulance_pick_up_location = attributes[:ambulancePickUpLocation] if attributes.key?(:ambulancePickUpLocation)
212
+
213
+ self.ambulance_transport_information = attributes[:ambulanceTransportInformation] if attributes.key?(:ambulanceTransportInformation)
214
+
215
+ if attributes.key?(:anesthesiaRelatedSurgicalProcedure) && (value = attributes[:anesthesiaRelatedSurgicalProcedure]).is_a?(Array)
216
+ self.anesthesia_related_surgical_procedure = value
217
+ end
218
+
219
+ self.auto_accident_country_code = attributes[:autoAccidentCountryCode] if attributes.key?(:autoAccidentCountryCode)
220
+
221
+ self.auto_accident_state_code = attributes[:autoAccidentStateCode] if attributes.key?(:autoAccidentStateCode)
222
+
223
+ self.benefits_assignment_certification_indicator = attributes[:benefitsAssignmentCertificationIndicator] if attributes.key?(:benefitsAssignmentCertificationIndicator)
224
+
225
+ self.claim_charge_amount = attributes[:claimChargeAmount] if attributes.key?(:claimChargeAmount)
226
+
227
+ self.claim_contract_information = attributes[:claimContractInformation] if attributes.key?(:claimContractInformation)
228
+
229
+ self.claim_date_information = attributes[:claimDateInformation] if attributes.key?(:claimDateInformation)
230
+
231
+ self.claim_filing_code = attributes[:claimFilingCode] if attributes.key?(:claimFilingCode)
232
+
233
+ self.claim_frequency_code = attributes[:claimFrequencyCode] if attributes.key?(:claimFrequencyCode)
234
+
235
+ self.claim_note = attributes[:claimNote] if attributes.key?(:claimNote)
236
+
237
+ self.claim_pricing_repricing_information = attributes[:claimPricingRepricingInformation] if attributes.key?(:claimPricingRepricingInformation)
238
+
239
+ self.claim_supplemental_information = attributes[:claimSupplementalInformation] if attributes.key?(:claimSupplementalInformation)
240
+
241
+ if attributes.key?(:conditionInformation) && (value = attributes[:conditionInformation]).is_a?(Array)
242
+ self.condition_information = value
243
+ end
244
+
245
+ self.delay_reason_code = attributes[:delayReasonCode] if attributes.key?(:delayReasonCode)
246
+
247
+ self.epsdt_referral = attributes[:epsdtReferral] if attributes.key?(:epsdtReferral)
248
+
249
+ self.file_information = attributes[:fileInformation] if attributes.key?(:fileInformation)
250
+
251
+ if attributes.key?(:healthCareCodeInformation) && (value = attributes[:healthCareCodeInformation]).is_a?(Array)
252
+ self.health_care_code_information = value
253
+ end
254
+
255
+ self.homebound_indicator = attributes[:homeboundIndicator] if attributes.key?(:homeboundIndicator)
256
+
257
+ if attributes.key?(:otherSubscriberInformation) && (value = attributes[:otherSubscriberInformation]).is_a?(Array)
258
+ self.other_subscriber_information = value
259
+ end
260
+
261
+ self.patient_amount_paid = attributes[:patientAmountPaid] if attributes.key?(:patientAmountPaid)
262
+
263
+ if attributes.key?(:patientConditionInformationVision) && (value = attributes[:patientConditionInformationVision]).is_a?(Array)
264
+ self.patient_condition_information_vision = value
265
+ end
266
+
267
+ self.patient_control_number = attributes[:patientControlNumber] if attributes.key?(:patientControlNumber)
268
+
269
+ self.patient_signature_source_code = attributes[:patientSignatureSourceCode] if attributes.key?(:patientSignatureSourceCode)
270
+
271
+ self.patient_weight = attributes[:patientWeight] if attributes.key?(:patientWeight)
272
+
273
+ self.place_of_service_code = attributes[:placeOfServiceCode] if attributes.key?(:placeOfServiceCode)
274
+
275
+ self.plan_participation_code = attributes[:planParticipationCode] if attributes.key?(:planParticipationCode)
276
+
277
+ self.property_casualty_claim_number = attributes[:propertyCasualtyClaimNumber] if attributes.key?(:propertyCasualtyClaimNumber)
278
+
279
+ if attributes.key?(:relatedCausesCode) && (value = attributes[:relatedCausesCode]).is_a?(Array)
280
+ self.related_causes_code = value
281
+ end
282
+
283
+ self.release_information_code = attributes[:releaseInformationCode] if attributes.key?(:releaseInformationCode)
284
+
285
+ self.service_facility_location = attributes[:serviceFacilityLocation] if attributes.key?(:serviceFacilityLocation)
286
+
287
+ if attributes.key?(:serviceLines) && (value = attributes[:serviceLines]).is_a?(Array)
288
+ self.service_lines = value
289
+ end
290
+
291
+ self.signature_indicator = attributes[:signatureIndicator] if attributes.key?(:signatureIndicator)
292
+
293
+ self.special_program_code = attributes[:specialProgramCode] if attributes.key?(:specialProgramCode)
294
+
295
+ self.spinal_manipulation_service_information = attributes[:spinalManipulationServiceInformation] if attributes.key?(:spinalManipulationServiceInformation)
296
+ end
297
+
298
+ # Show invalid properties with the reasons. Usually used together with valid?
299
+ # @return Array for valid properties with the reasons
300
+ def list_invalid_properties
301
+ []
302
+ end
303
+
304
+ # Check to see if the all the properties in the model are valid
305
+ # @return true if the model is valid
306
+ def valid?
307
+ benefits_assignment_certification_indicator_validator = EnumAttributeValidator.new('String', %w[N W Y])
308
+ return false unless benefits_assignment_certification_indicator_validator.valid?(@benefits_assignment_certification_indicator)
309
+
310
+ delay_reason_code_validator = EnumAttributeValidator.new('String',
311
+ %w[1 2 3 4 5 6 7 8 9 10 11 15])
312
+ return false unless delay_reason_code_validator.valid?(@delay_reason_code)
313
+
314
+ plan_participation_code_validator = EnumAttributeValidator.new('String', %w[A B C])
315
+ return false unless plan_participation_code_validator.valid?(@plan_participation_code)
316
+
317
+ release_information_code_validator = EnumAttributeValidator.new('String', %w[I Y])
318
+ return false unless release_information_code_validator.valid?(@release_information_code)
319
+
320
+ signature_indicator_validator = EnumAttributeValidator.new('String', %w[N Y])
321
+ return false unless signature_indicator_validator.valid?(@signature_indicator)
322
+
323
+ special_program_code_validator = EnumAttributeValidator.new('String', %w[02 03 05 09])
324
+ return false unless special_program_code_validator.valid?(@special_program_code)
325
+
326
+ true
327
+ end
328
+
329
+ # Custom attribute writer method checking allowed values (enum).
330
+ # @param [Object] benefits_assignment_certification_indicator Object to be assigned
331
+ def benefits_assignment_certification_indicator=(benefits_assignment_certification_indicator)
332
+ validator = EnumAttributeValidator.new('String', %w[N W Y])
333
+ unless validator.valid?(benefits_assignment_certification_indicator)
334
+ raise ArgumentError,
335
+ %(invalid value for "benefits_assignment_certification_indicator", must be one of #{validator.allowable_values}.)
336
+ end
337
+
338
+ @benefits_assignment_certification_indicator = benefits_assignment_certification_indicator
339
+ end
340
+
341
+ # Custom attribute writer method checking allowed values (enum).
342
+ # @param [Object] delay_reason_code Object to be assigned
343
+ def delay_reason_code=(delay_reason_code)
344
+ validator = EnumAttributeValidator.new('String', %w[1 2 3 4 5 6 7 8 9 10 11 15])
345
+ unless validator.valid?(delay_reason_code)
346
+ raise ArgumentError,
347
+ %(invalid value for "delay_reason_code", must be one of #{validator.allowable_values}.)
348
+ end
349
+
350
+ @delay_reason_code = delay_reason_code
351
+ end
352
+
353
+ # Custom attribute writer method checking allowed values (enum).
354
+ # @param [Object] plan_participation_code Object to be assigned
355
+ def plan_participation_code=(plan_participation_code)
356
+ validator = EnumAttributeValidator.new('String', %w[A B C])
357
+ unless validator.valid?(plan_participation_code)
358
+ raise ArgumentError,
359
+ %(invalid value for "plan_participation_code", must be one of #{validator.allowable_values}.)
360
+ end
361
+
362
+ @plan_participation_code = plan_participation_code
363
+ end
364
+
365
+ # Custom attribute writer method checking allowed values (enum).
366
+ # @param [Object] release_information_code Object to be assigned
367
+ def release_information_code=(release_information_code)
368
+ validator = EnumAttributeValidator.new('String', %w[I Y])
369
+ unless validator.valid?(release_information_code)
370
+ raise ArgumentError,
371
+ %(invalid value for "release_information_code", must be one of #{validator.allowable_values}.)
372
+ end
373
+
374
+ @release_information_code = release_information_code
375
+ end
376
+
377
+ # Custom attribute writer method checking allowed values (enum).
378
+ # @param [Object] signature_indicator Object to be assigned
379
+ def signature_indicator=(signature_indicator)
380
+ validator = EnumAttributeValidator.new('String', %w[N Y])
381
+ unless validator.valid?(signature_indicator)
382
+ raise ArgumentError,
383
+ %(invalid value for "signature_indicator", must be one of #{validator.allowable_values}.)
384
+ end
385
+
386
+ @signature_indicator = signature_indicator
387
+ end
388
+
389
+ # Custom attribute writer method checking allowed values (enum).
390
+ # @param [Object] special_program_code Object to be assigned
391
+ def special_program_code=(special_program_code)
392
+ validator = EnumAttributeValidator.new('String', %w[02 03 05 09])
393
+ unless validator.valid?(special_program_code)
394
+ raise ArgumentError,
395
+ %(invalid value for "special_program_code", must be one of #{validator.allowable_values}.)
396
+ end
397
+
398
+ @special_program_code = special_program_code
399
+ end
400
+
401
+ # Checks equality by comparing each attribute.
402
+ # @param [Object] Object to be compared
403
+ def ==(other)
404
+ return true if equal?(other)
405
+
406
+ self.class == other.class &&
407
+ ambulance_certification == other.ambulance_certification &&
408
+ ambulance_drop_off_location == other.ambulance_drop_off_location &&
409
+ ambulance_pick_up_location == other.ambulance_pick_up_location &&
410
+ ambulance_transport_information == other.ambulance_transport_information &&
411
+ anesthesia_related_surgical_procedure == other.anesthesia_related_surgical_procedure &&
412
+ auto_accident_country_code == other.auto_accident_country_code &&
413
+ auto_accident_state_code == other.auto_accident_state_code &&
414
+ benefits_assignment_certification_indicator == other.benefits_assignment_certification_indicator &&
415
+ claim_charge_amount == other.claim_charge_amount &&
416
+ claim_contract_information == other.claim_contract_information &&
417
+ claim_date_information == other.claim_date_information &&
418
+ claim_filing_code == other.claim_filing_code &&
419
+ claim_frequency_code == other.claim_frequency_code &&
420
+ claim_note == other.claim_note &&
421
+ claim_pricing_repricing_information == other.claim_pricing_repricing_information &&
422
+ claim_supplemental_information == other.claim_supplemental_information &&
423
+ condition_information == other.condition_information &&
424
+ delay_reason_code == other.delay_reason_code &&
425
+ epsdt_referral == other.epsdt_referral &&
426
+ file_information == other.file_information &&
427
+ health_care_code_information == other.health_care_code_information &&
428
+ homebound_indicator == other.homebound_indicator &&
429
+ other_subscriber_information == other.other_subscriber_information &&
430
+ patient_amount_paid == other.patient_amount_paid &&
431
+ patient_condition_information_vision == other.patient_condition_information_vision &&
432
+ patient_control_number == other.patient_control_number &&
433
+ patient_signature_source_code == other.patient_signature_source_code &&
434
+ patient_weight == other.patient_weight &&
435
+ place_of_service_code == other.place_of_service_code &&
436
+ plan_participation_code == other.plan_participation_code &&
437
+ property_casualty_claim_number == other.property_casualty_claim_number &&
438
+ related_causes_code == other.related_causes_code &&
439
+ release_information_code == other.release_information_code &&
440
+ service_facility_location == other.service_facility_location &&
441
+ service_lines == other.service_lines &&
442
+ signature_indicator == other.signature_indicator &&
443
+ special_program_code == other.special_program_code &&
444
+ spinal_manipulation_service_information == other.spinal_manipulation_service_information
445
+ end
446
+
447
+ # @see the `==` method
448
+ # @param [Object] Object to be compared
449
+ def eql?(other)
450
+ self == other
451
+ end
452
+
453
+ # Calculates hash code according to all attributes.
454
+ # @return [Fixnum] Hash code
455
+ def hash
456
+ [
457
+ ambulance_certification, ambulance_drop_off_location, ambulance_pick_up_location,
458
+ ambulance_transport_information, anesthesia_related_surgical_procedure, auto_accident_country_code, auto_accident_state_code,
459
+ benefits_assignment_certification_indicator, claim_charge_amount, claim_contract_information, claim_date_information,
460
+ claim_filing_code, claim_frequency_code, claim_note, claim_pricing_repricing_information, claim_supplemental_information,
461
+ condition_information, delay_reason_code, epsdt_referral, file_information, health_care_code_information,
462
+ homebound_indicator, other_subscriber_information, patient_amount_paid, patient_condition_information_vision,
463
+ patient_control_number, patient_signature_source_code, patient_weight, place_of_service_code,
464
+ plan_participation_code, property_casualty_claim_number, related_causes_code, release_information_code, service_facility_location,
465
+ service_lines, signature_indicator, special_program_code, spinal_manipulation_service_information
466
+ ].hash
467
+ end
468
+
469
+ # Builds the object from hash
470
+ # @param [Hash] attributes Model attributes in the form of hash
471
+ # @return [Object] Returns the model itself
472
+ def build_from_hash(attributes)
473
+ return nil unless attributes.is_a?(Hash)
474
+
475
+ self.class.swagger_types.each_pair do |key, type|
476
+ if type =~ /\AArray<(.*)>/i
477
+ # check to ensure the input is an array given that the attribute
478
+ # is documented as an array but the input is not
479
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
480
+ send("#{key}=", attributes[self.class.attribute_map[key]].map do |v|
481
+ _deserialize(Regexp.last_match(1), v)
482
+ end)
483
+ end
484
+ elsif !attributes[self.class.attribute_map[key]].nil?
485
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
486
+ end
487
+ end
488
+
489
+ self
490
+ end
491
+
492
+ # Deserializes the data based on type
493
+ # @param string type Data type
494
+ # @param string value Value to be deserialized
495
+ # @return [Object] Deserialized data
496
+ def _deserialize(type, value)
497
+ case type.to_sym
498
+ when :DateTime
499
+ DateTime.parse(value)
500
+ when :Date
501
+ Date.parse(value)
502
+ when :String
503
+ value.to_s
504
+ when :Integer
505
+ value.to_i
506
+ when :Float
507
+ value.to_f
508
+ when :BOOLEAN
509
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
510
+ true
511
+ else
512
+ false
513
+ end
514
+ when :Object
515
+ # generic object (usually a Hash), return directly
516
+ value
517
+ when /\AArray<(?<inner_type>.+)>\z/
518
+ inner_type = Regexp.last_match[:inner_type]
519
+ value.map { |v| _deserialize(inner_type, v) }
520
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
521
+ k_type = Regexp.last_match[:k_type]
522
+ v_type = Regexp.last_match[:v_type]
523
+ {}.tap do |hash|
524
+ value.each do |k, v|
525
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
526
+ end
527
+ end
528
+ else # model
529
+ temp_model = SwaggerClient.const_get(type).new
530
+ temp_model.build_from_hash(value)
531
+ end
532
+ end
533
+
534
+ # Returns the string representation of the object
535
+ # @return [String] String presentation of the object
536
+ def to_s
537
+ to_hash.to_s
538
+ end
539
+
540
+ # to_body is an alias to to_hash (backward compatibility)
541
+ # @return [Hash] Returns the object in the form of hash
542
+ def to_body
543
+ to_hash
544
+ end
545
+
546
+ # Returns the object in the form of hash
547
+ # @return [Hash] Returns the object in the form of hash
548
+ def to_hash
549
+ hash = {}
550
+ self.class.attribute_map.each_pair do |attr, param|
551
+ value = send(attr)
552
+ next if value.nil?
553
+
554
+ hash[param] = _to_hash(value)
555
+ end
556
+ hash
557
+ end
558
+
559
+ # Outputs non-array value in the form of hash
560
+ # For object, use to_hash. Otherwise, just return the value
561
+ # @param [Object] value Any valid value
562
+ # @return [Hash] Returns the value in the form of hash
563
+ def _to_hash(value)
564
+ if value.is_a?(Array)
565
+ value.compact.map { |v| _to_hash(v) }
566
+ elsif value.is_a?(Hash)
567
+ {}.tap do |hash|
568
+ value.each { |k, v| hash[k] = _to_hash(v) }
569
+ end
570
+ elsif value.respond_to? :to_hash
571
+ value.to_hash
572
+ else
573
+ value
574
+ end
575
+ end
576
+ end
577
+ end
578
+ end
579
+ end