change_health 4.11.0 → 4.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +55 -0
- data/README.md +174 -32
- data/lib/change_health/models/claim/submission/address.rb +5 -5
- data/lib/change_health/models/claim/submission/claim_code_information.rb +11 -0
- data/lib/change_health/models/claim/submission/claim_information.rb +21 -16
- data/lib/change_health/models/claim/submission/claim_supplemental_information.rb +12 -0
- data/lib/change_health/models/claim/submission/contact_information.rb +12 -0
- data/lib/change_health/models/claim/submission/dependent.rb +7 -7
- data/lib/change_health/models/claim/submission/diagnosis.rb +19 -0
- data/lib/change_health/models/claim/submission/drug_identification.rb +4 -4
- data/lib/change_health/models/claim/submission/institutional_service.rb +16 -0
- data/lib/change_health/models/claim/submission/line_adjudication_information.rb +17 -0
- data/lib/change_health/models/claim/submission/other_payer_name.rb +11 -0
- data/lib/change_health/models/claim/submission/other_subscriber_information.rb +17 -0
- data/lib/change_health/models/claim/submission/other_subscriber_name.rb +13 -0
- data/lib/change_health/models/claim/submission/professional_service.rb +16 -0
- data/lib/change_health/models/claim/submission/provider.rb +11 -11
- data/lib/change_health/models/claim/submission/receiver.rb +9 -0
- data/lib/change_health/models/claim/submission/report_information.rb +11 -0
- data/lib/change_health/models/claim/submission/service_facility_location.rb +12 -0
- data/lib/change_health/models/claim/submission/service_line.rb +7 -5
- data/lib/change_health/models/claim/submission/submitter.rb +3 -4
- data/lib/change_health/models/claim/submission/subscriber.rb +9 -8
- data/lib/change_health/request/submission.rb +32 -18
- data/lib/change_health/version.rb +1 -1
- data/lib/change_health.rb +14 -1
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 369372608bc547068695c882655d21b9d249a00eaa51a912b7ba0c6159f6628f
|
4
|
+
data.tar.gz: ece346e7ee7c13b3a1ef2f69c225a9e0fbde53dec4d94e196d329ffaf1efde09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ced59a268373fad1839bf5d7d40da3dc1f923182c75209a3e6301e031af87f05d40582e86f795c72d58948d2ec2df89882953f2068fcd1bd054dbc7f11dc197
|
7
|
+
data.tar.gz: 06a39794c53381304bdce97210e939b6fdbc6054e093d36f75f5a8f03b3fa7cf1ca21d88c5afbf37bb34d029561cc5aebe086c2433618ebb62b0fc94016a7c2f
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,59 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
# [4.13.0] - 2023-08-11
|
9
|
+
|
10
|
+
### Added
|
11
|
+
|
12
|
+
#### Ability to submit an institutional claim
|
13
|
+
|
14
|
+
* Added the following classes
|
15
|
+
* ChangeHealth::Models::Claim::ClaimCodeInformation
|
16
|
+
* ChangeHealth::Models::Claim::InstitutionalService
|
17
|
+
* Added fields to existing submission classes
|
18
|
+
* ClaimInformation - claimCodeInformation, claimNote, claimNotes, etc
|
19
|
+
* ServiceLine - assignedNumber, institutionalService
|
20
|
+
* ChangeHealth::Request::Claim::Submission#submission now takes `is_professional` argument which defaults to `true`
|
21
|
+
* `true` for professional claim submission
|
22
|
+
* `false` for institutional claim submission
|
23
|
+
|
24
|
+
|
25
|
+
#### Added other submission classes
|
26
|
+
|
27
|
+
These are used by professional claims and sometimes institutional
|
28
|
+
* ChangeHealth::Models::Claim::ClaimSupplementalInformation
|
29
|
+
* ChangeHealth::Models::Claim::ContactInformation
|
30
|
+
* ChangeHealth::Models::Claim::Diagnosis
|
31
|
+
* ChangeHealth::Models::Claim::LineAdjudicationInformation
|
32
|
+
* ChangeHealth::Models::Claim::OtherPayerName
|
33
|
+
* ChangeHealth::Models::Claim::OtherSubscriberInformation
|
34
|
+
* ChangeHealth::Models::Claim::OtherSubscriberName
|
35
|
+
* ChangeHealth::Models::Claim::ProfessionalService
|
36
|
+
* ChangeHealth::Models::Claim::Receiver
|
37
|
+
* ChangeHealth::Models::Claim::ReportInformation
|
38
|
+
* ChangeHealth::Models::Claim::ServiceFacilityLocation
|
39
|
+
|
40
|
+
|
41
|
+
### Deprecated
|
42
|
+
|
43
|
+
Some endpoint constants in Submission:
|
44
|
+
* ChangeHealth::Request::Claim::Submission::ENDPOINT
|
45
|
+
* ChangeHealth::Request::Claim::Submission::HEALTH_CHECK_ENDPOINT
|
46
|
+
* ChangeHealth::Request::Claim::Submission::VALIDATION_ENDPOINT
|
47
|
+
* ChangeHealth::Request::Claim::Submission::SUBMISSION_ENDPOINT
|
48
|
+
|
49
|
+
Replace with:
|
50
|
+
* ENDPOINT -> PROFESSIONAL_ENDPOINT
|
51
|
+
* HEALTH_CHECK_ENDPOINT -> PROFESSIONAL_ENDPOINT || INSTITUTIONAL_ENDPOINT + HEALTH_CHECK_SUFFIX
|
52
|
+
* VALIDATION_ENDPOINT -> PROFESSIONAL_ENDPOINT || INSTITUTIONAL_ENDPOINT + SUBMISSION_SUFFIX
|
53
|
+
* SUBMISSION_ENDPOINT -> PROFESSIONAL_ENDPOINT || INSTITUTIONAL_ENDPOINT + VALIDATION_SUFFIX
|
54
|
+
|
55
|
+
# [4.12.0] - 2023-1-23
|
56
|
+
|
57
|
+
### Added
|
58
|
+
|
59
|
+
* Property `insuranceTypeCode` for ChangeHealth::Models::Claim::Subscriber
|
60
|
+
|
8
61
|
# [4.11.0] - 2022-12-30
|
9
62
|
|
10
63
|
### Added
|
@@ -466,6 +519,8 @@ Added the ability to hit professional claim submission API. For more details, se
|
|
466
519
|
* Authentication
|
467
520
|
* Configuration
|
468
521
|
|
522
|
+
[4.13.0]: https://github.com/WeInfuse/change_health/compare/v4.12.0...v4.13.0
|
523
|
+
[4.12.0]: https://github.com/WeInfuse/change_health/compare/v4.11.0...v4.12.0
|
469
524
|
[4.11.0]: https://github.com/WeInfuse/change_health/compare/v4.10.1...v4.11.0
|
470
525
|
[4.10.1]: https://github.com/WeInfuse/change_health/compare/v4.10.0...v4.10.1
|
471
526
|
[4.10.0]: https://github.com/WeInfuse/change_health/compare/v4.9.0...v4.10.0
|
data/README.md
CHANGED
@@ -98,17 +98,26 @@ trading_partners.first.service_id
|
|
98
98
|
```
|
99
99
|
|
100
100
|
## Claim Submission
|
101
|
-
|
101
|
+
|
102
|
+
### Professional Claims
|
103
|
+
[Change Healthcare Professional Claim Submission Guide](https://developers.changehealthcare.com/eligibilityandclaims/docs/professional-claims-v3-getting-started)
|
102
104
|
```ruby
|
103
105
|
ChangeHealth::Request::Claim::Submission.ping # Test your connection
|
104
106
|
|
105
|
-
contact_information =
|
106
|
-
|
107
|
+
contact_information = ChangeHealth::Models::Claim::ContactInformation.new(
|
108
|
+
name: "SUBMITTER CONTACT INFO",
|
109
|
+
phone_number: "123456789"
|
110
|
+
)
|
111
|
+
|
112
|
+
submitter = ChangeHealth::Models::Claim::Submitter.new(
|
107
113
|
organization_name: "REGIONAL PPO NETWORK",
|
108
114
|
contact_information: contact_information
|
109
115
|
)
|
110
116
|
|
111
|
-
receiver =
|
117
|
+
receiver = ChangeHealth::Models::Claim::Receiver.new(
|
118
|
+
organization_name: "EXTRA HEALTHY INSURANCE"
|
119
|
+
)
|
120
|
+
|
112
121
|
address = ChangeHealth::Models::Claim::Address.new(
|
113
122
|
address1: "123 address1",
|
114
123
|
city: "city1",
|
@@ -145,41 +154,44 @@ provider = ChangeHealth::Models::Claim::Provider.new(
|
|
145
154
|
provider_type: "BillingProvider"
|
146
155
|
)
|
147
156
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
157
|
+
diagnosis1 = ChangeHealth::Models::Claim::Diagnosis.new(
|
158
|
+
diagnosis_type_code: "ABK",
|
159
|
+
diagnosis_code: "S93401A"
|
160
|
+
)
|
161
|
+
|
162
|
+
diagnosis2 = ChangeHealth::Models::Claim::Diagnosis.new(
|
163
|
+
diagnosis_type_code: "ABF",
|
164
|
+
diagnosis_code: "S72044G"
|
165
|
+
)
|
155
166
|
|
156
|
-
}
|
157
167
|
service_line1 = ChangeHealth::Models::Claim::ServiceLine.new(
|
158
168
|
service_date: "2018-05-14",
|
159
|
-
professional_service:
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
169
|
+
professional_service: ChangeHealth::Models::Claim::ProfessionalService.new(
|
170
|
+
line_item_charge_amount: "25",
|
171
|
+
measurement_unit: "UN",
|
172
|
+
procedure_code: "E0570",
|
173
|
+
procedure_identifier: "HC",
|
174
|
+
service_unit_count: "1",
|
175
|
+
composite_diagnosis_code_pointers: {
|
166
176
|
diagnosisCodePointers: ["1","2"]
|
167
177
|
}
|
168
|
-
|
178
|
+
)
|
169
179
|
)
|
180
|
+
|
170
181
|
service_line2 = ChangeHealth::Models::Claim::ServiceLine.new(
|
171
182
|
service_date: "20180514",
|
172
|
-
professional_service:
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
183
|
+
professional_service: ChangeHealth::Models::Claim::ProfessionalService.new(
|
184
|
+
line_item_charge_amount: "3.75",
|
185
|
+
measurement_unit: "UN",
|
186
|
+
procedure_code: "A7003",
|
187
|
+
procedure_identifier: "HC",
|
188
|
+
service_unit_count: "1",
|
189
|
+
composite_diagnosis_code_pointers: {
|
179
190
|
diagnosisCodePointers: ["1"]
|
180
191
|
}
|
181
|
-
|
192
|
+
)
|
182
193
|
)
|
194
|
+
|
183
195
|
claim_information = ChangeHealth::Models::Claim::ClaimInformation.new(
|
184
196
|
benefits_assignment_certification_indicator: "Y",
|
185
197
|
claim_charge_amount: "28.75",
|
@@ -190,11 +202,11 @@ claim_information = ChangeHealth::Models::Claim::ClaimInformation.new(
|
|
190
202
|
plan_participation_code: "A",
|
191
203
|
release_information_code: "Y",
|
192
204
|
signature_indicator: "Y",
|
193
|
-
health_care_code_information: [
|
205
|
+
health_care_code_information: [diagnosis1, diagnosis2],
|
194
206
|
service_lines: [service_line1, service_line2]
|
195
207
|
)
|
196
208
|
|
197
|
-
|
209
|
+
headers = {
|
198
210
|
submitter_id: '111000',
|
199
211
|
biller_id: '000111',
|
200
212
|
username: '222333hey',
|
@@ -204,11 +216,11 @@ professional_headers = {
|
|
204
216
|
claim_submission = ChangeHealth::Request::Claim::Submission.new(
|
205
217
|
claim_information: claim_information,
|
206
218
|
dependent: dependent,
|
207
|
-
headers:
|
219
|
+
headers: headers,
|
208
220
|
pay_to_address: address,
|
209
221
|
providers: [provider],
|
210
222
|
receiver: receiver,
|
211
|
-
submitter:
|
223
|
+
submitter: submitter,
|
212
224
|
subscriber: subscriber,
|
213
225
|
trading_partner_service_id: "9496"
|
214
226
|
)
|
@@ -218,6 +230,136 @@ claim_submission_data = claim_submission.submission
|
|
218
230
|
validation = claim_submission.validation
|
219
231
|
```
|
220
232
|
|
233
|
+
### Institutional Claims
|
234
|
+
[Change Healthcare Institutional Claim Submission Guide](https://developers.changehealthcare.com/eligibilityandclaims/docs/institutional-claims-v1-api-getting-started)
|
235
|
+
```ruby
|
236
|
+
ChangeHealth::Request::Claim::Submission.ping(is_professional: false) # Test your connection
|
237
|
+
|
238
|
+
claim_code_information = ChangeHealth::Models::Claim::ClaimCodeInformation.new(
|
239
|
+
admission_source_code: "7",
|
240
|
+
admission_type_code: "1",
|
241
|
+
patient_status_code: "10"
|
242
|
+
)
|
243
|
+
|
244
|
+
other_diagnosis_information_list = [[
|
245
|
+
ChangeHealth::Models::Claim::Diagnosis.new(
|
246
|
+
other_diagnosis_code: "S72044G",
|
247
|
+
qualifier_code: "ABF"
|
248
|
+
),
|
249
|
+
ChangeHealth::Models::Claim::Diagnosis.new(
|
250
|
+
other_diagnosis_code: "S72044H",
|
251
|
+
qualifier_code: "ABF"
|
252
|
+
)
|
253
|
+
]]
|
254
|
+
|
255
|
+
principal_diagnosis = ChangeHealth::Models::Claim::Diagnosis.new(
|
256
|
+
principal_diagnosis_code: "S93401A",
|
257
|
+
qualifier_code: "ABK"
|
258
|
+
)
|
259
|
+
|
260
|
+
service_line1 = ChangeHealth::Models::Claim::ServiceLine.new(
|
261
|
+
assigned_number: "1",
|
262
|
+
institutional_service: ChangeHealth::Models::Claim::InstitutionalService.new(
|
263
|
+
line_item_charge_amount: "25",
|
264
|
+
measurement_unit: "UN",
|
265
|
+
procedure_code: "E0570",
|
266
|
+
procedure_identifier: "HC",
|
267
|
+
service_line_revenue_code: "X",
|
268
|
+
service_unit_count: "1",
|
269
|
+
)
|
270
|
+
)
|
271
|
+
|
272
|
+
service_line2 = ChangeHealth::Models::Claim::ServiceLine.new(
|
273
|
+
assigned_number: "2",
|
274
|
+
institutional_service: ChangeHealth::Models::Claim::InstitutionalService.new(
|
275
|
+
line_item_charge_amount: "3.75",
|
276
|
+
measurement_unit: "UN",
|
277
|
+
procedure_code: "A7003",
|
278
|
+
procedure_identifier: "HC",
|
279
|
+
service_line_revenue_code: "Y",
|
280
|
+
service_unit_count: "1",
|
281
|
+
)
|
282
|
+
)
|
283
|
+
|
284
|
+
claim_information = ChangeHealth::Models::Claim::ClaimInformation.new(
|
285
|
+
benefits_assignment_certification_indicator: "Y",
|
286
|
+
claim_charge_amount: "28.75",
|
287
|
+
claim_code_information: claim_code_information,
|
288
|
+
claim_filing_code: "CI",
|
289
|
+
claim_frequency_code: "1",
|
290
|
+
other_diagnosis_information_list: other_diagnosis_information_list,
|
291
|
+
patient_control_number: "12345",
|
292
|
+
place_of_service_code: "11",
|
293
|
+
plan_participation_code: "A",
|
294
|
+
principal_diagnosis: principal_diagnosis,
|
295
|
+
release_information_code: "Y",
|
296
|
+
signature_indicator: "Y",
|
297
|
+
service_lines: [service_line1, service_line2]
|
298
|
+
)
|
299
|
+
|
300
|
+
headers = {
|
301
|
+
submitter_id: '111000',
|
302
|
+
biller_id: '000111',
|
303
|
+
username: '222333hey',
|
304
|
+
password: 'builder1'
|
305
|
+
}
|
306
|
+
|
307
|
+
address = ChangeHealth::Models::Claim::Address.new(
|
308
|
+
address1: "123 address1",
|
309
|
+
city: "city1",
|
310
|
+
state: "wa",
|
311
|
+
postalCode: "981010000"
|
312
|
+
)
|
313
|
+
|
314
|
+
provider = ChangeHealth::Models::Claim::Provider.new(
|
315
|
+
address: address,
|
316
|
+
employer_id: "000000000",
|
317
|
+
first_name: "johnone",
|
318
|
+
last_name: "doetwo",
|
319
|
+
npi: "1760854442",
|
320
|
+
organization_name: "EXTRA HEALTHY INSURANCE",
|
321
|
+
provider_type: "BillingProvider"
|
322
|
+
)
|
323
|
+
|
324
|
+
receiver = ChangeHealth::Models::Claim::Receiver.new(
|
325
|
+
organization_name: "EXTRA HEALTHY INSURANCE"
|
326
|
+
)
|
327
|
+
|
328
|
+
contact_information = ChangeHealth::Models::Claim::ContactInformation.new(
|
329
|
+
name: "SUBMITTER CONTACT INFO",
|
330
|
+
phone_number: "123456789"
|
331
|
+
)
|
332
|
+
|
333
|
+
submitter = ChangeHealth::Models::Claim::Submitter.new(
|
334
|
+
organization_name: "REGIONAL PPO NETWORK",
|
335
|
+
contact_information: contact_information
|
336
|
+
)
|
337
|
+
|
338
|
+
subscriber = ChangeHealth::Models::Claim::Subscriber.new(
|
339
|
+
member_id: "0000000001",
|
340
|
+
payment_responsibility_level_code: "P",
|
341
|
+
first_name: "johnone",
|
342
|
+
last_name: "doetwo",
|
343
|
+
gender: "M",
|
344
|
+
date_of_birth: "02/01/1980",
|
345
|
+
address: address
|
346
|
+
)
|
347
|
+
|
348
|
+
claim_submission = ChangeHealth::Request::Claim::Submission.new(
|
349
|
+
claim_information: claim_information,
|
350
|
+
headers: headers,
|
351
|
+
providers: [provider],
|
352
|
+
receiver: receiver,
|
353
|
+
submitter: submitter,
|
354
|
+
subscriber: subscriber,
|
355
|
+
trading_partner_service_id: "9496"
|
356
|
+
)
|
357
|
+
|
358
|
+
claim_submission_data = claim_submission.submission(is_professional: false)
|
359
|
+
|
360
|
+
validation = claim_submission.validation(is_professional: false)
|
361
|
+
```
|
362
|
+
|
221
363
|
## Claim Reports
|
222
364
|
[Change Healthcare Claim Responses and Reports Guide](https://developers.changehealthcare.com/eligibilityandclaims/docs/claims-responses-and-reports-getting-started)
|
223
365
|
|
@@ -2,11 +2,11 @@ module ChangeHealth
|
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
4
|
class Address < Model
|
5
|
-
property :address1
|
6
|
-
property :address2
|
7
|
-
property :city
|
8
|
-
property :postalCode, from: :postal_code
|
9
|
-
property :state
|
5
|
+
property :address1
|
6
|
+
property :address2
|
7
|
+
property :city
|
8
|
+
property :postalCode, from: :postal_code
|
9
|
+
property :state
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class ClaimCodeInformation < Model
|
5
|
+
property :admissionSourceCode, from: :admission_source_code
|
6
|
+
property :admissionTypeCode, from: :admission_type_code
|
7
|
+
property :patientStatusCode, from: :patient_status_code
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -1,22 +1,27 @@
|
|
1
1
|
module ChangeHealth
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
|
-
class ClaimInformation <
|
5
|
-
property :
|
6
|
-
property :
|
7
|
-
property :
|
8
|
-
property :
|
9
|
-
property :
|
10
|
-
property :
|
11
|
-
property :
|
12
|
-
property :
|
13
|
-
property :
|
14
|
-
property :
|
15
|
-
property :
|
16
|
-
property :
|
17
|
-
property :
|
18
|
-
property :
|
19
|
-
property :
|
4
|
+
class ClaimInformation < Model
|
5
|
+
property :admittingDiagnosis, from: :admitting_diagnosis
|
6
|
+
property :benefitsAssignmentCertificationIndicator, from: :benefits_assignment_certification_indicator
|
7
|
+
property :claimChargeAmount, from: :claim_charge_amount
|
8
|
+
property :claimCodeInformation, from: :claim_code_information
|
9
|
+
property :claimFilingCode, from: :claim_filing_code
|
10
|
+
property :claimFrequencyCode, from: :claim_frequency_code
|
11
|
+
property :claimNote, from: :claim_note
|
12
|
+
property :claimNotes, from: :claim_notes
|
13
|
+
property :claimSupplementalInformation, from: :claim_supplemental_information
|
14
|
+
property :healthCareCodeInformation, from: :health_care_code_information
|
15
|
+
property :otherDiagnosisInformationList, from: :other_diagnosis_information_list
|
16
|
+
property :otherSubscriberInformation, from: :other_subscriber_information
|
17
|
+
property :patientControlNumber, from: :patient_control_number
|
18
|
+
property :placeOfServiceCode, from: :place_of_service_code
|
19
|
+
property :planParticipationCode, from: :plan_participation_code
|
20
|
+
property :principalDiagnosis, from: :principal_diagnosis
|
21
|
+
property :releaseInformationCode, from: :release_information_code
|
22
|
+
property :serviceFacilityLocation, from: :service_facility_location
|
23
|
+
property :serviceLines, from: :service_lines
|
24
|
+
property :signatureIndicator, from: :signature_indicator
|
20
25
|
|
21
26
|
def add_service_line(service_line)
|
22
27
|
self[:serviceLines] ||= []
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class ClaimSupplementalInformation < Model
|
5
|
+
property :claimControlNumber, from: :claim_control_number
|
6
|
+
property :priorAuthorizationNumber, from: :prior_authorization_number
|
7
|
+
property :referralNumber, from: :referral_number
|
8
|
+
property :reportInformation, from: :report_information
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -2,13 +2,13 @@ module ChangeHealth
|
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
4
|
class Dependent < Model
|
5
|
-
property :address
|
6
|
-
property :dateOfBirth, from: :date_of_birth
|
7
|
-
property :firstName, from: :first_name
|
8
|
-
property :gender
|
9
|
-
property :lastName, from: :last_name
|
10
|
-
property :memberId, from: :member_id
|
11
|
-
property :relationshipToSubscriberCode, from: :relationship_to_subscriber_code
|
5
|
+
property :address
|
6
|
+
property :dateOfBirth, from: :date_of_birth
|
7
|
+
property :firstName, from: :first_name
|
8
|
+
property :gender
|
9
|
+
property :lastName, from: :last_name
|
10
|
+
property :memberId, from: :member_id
|
11
|
+
property :relationshipToSubscriberCode, from: :relationship_to_subscriber_code
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
# Can be used for
|
5
|
+
# - admittingDiagnosis
|
6
|
+
# - healthCareCodeInformation items
|
7
|
+
# - otherDiagnosisInformationList items
|
8
|
+
# - principalDiagnosis
|
9
|
+
class Diagnosis < Model
|
10
|
+
property :admittingDiagnosisCode, from: :admitting_diagnosis_code
|
11
|
+
property :diagnosisCode, from: :diagnosis_code
|
12
|
+
property :diagnosisTypeCode, from: :diagnosis_type_code
|
13
|
+
property :otherDiagnosisCode, from: :other_diagnosis_code
|
14
|
+
property :principalDiagnosisCode, from: :principal_diagnosis_code
|
15
|
+
property :qualifierCode, from: :qualifier_code
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -2,10 +2,10 @@ module ChangeHealth
|
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
4
|
class DrugIdentification < Model
|
5
|
-
property :measurementUnitCode, from: :measurement_unit_code
|
6
|
-
property :nationalDrugCode, from: :national_drug_code
|
7
|
-
property :nationalDrugUnitCount, from: :national_drug_unit_count
|
8
|
-
property :serviceIdQualifier, from: :service_id_qualifier
|
5
|
+
property :measurementUnitCode, from: :measurement_unit_code
|
6
|
+
property :nationalDrugCode, from: :national_drug_code
|
7
|
+
property :nationalDrugUnitCount, from: :national_drug_unit_count
|
8
|
+
property :serviceIdQualifier, from: :service_id_qualifier
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class InstitutionalService < Model
|
5
|
+
property :description
|
6
|
+
property :lineItemChargeAmount, from: :line_item_charge_amount
|
7
|
+
property :measurementUnit, from: :measurement_unit
|
8
|
+
property :procedureCode, from: :procedure_code
|
9
|
+
property :procedureIdentifier, from: :procedure_identifier
|
10
|
+
property :procedureModifiers, from: :procedure_modifiers
|
11
|
+
property :serviceLineRevenueCode, from: :service_line_revenue_code
|
12
|
+
property :serviceUnitCount, from: :service_unit_count
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class LineAdjudicationInformation < Model
|
5
|
+
property :adjudicationOrPaymentDate, from: :adjudication_or_payment_date
|
6
|
+
property :claimAdjustmentInformation, from: :claim_adjustment_information
|
7
|
+
property :otherPayerPrimaryIdentifier, from: :other_payer_primary_identifier
|
8
|
+
property :paidServiceUnitCount, from: :paid_service_unit_count
|
9
|
+
property :procedureCode, from: :procedure_code
|
10
|
+
property :procedureModifier, from: :procedure_modifier
|
11
|
+
property :remainingPatientLiability, from: :remaining_patient_liability
|
12
|
+
property :serviceIdQualifier, from: :service_id_qualifier
|
13
|
+
property :serviceLinePaidAmount, from: :service_line_paid_amount
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class OtherPayerName < Model
|
5
|
+
property :otherPayerIdentifier, from: :other_payer_identifier
|
6
|
+
property :otherPayerIdentifierTypeCode, from: :other_payer_identifier_type_code
|
7
|
+
property :otherPayerOrganizationName, from: :other_payer_organization_name
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class OtherSubscriberInformation < Model
|
5
|
+
property :benefitsAssignmentCertificationIndicator, from: :benefits_assignment_certification_indicator
|
6
|
+
property :claimFilingIndicatorCode, from: :claim_filing_indicator_code
|
7
|
+
property :claimLevelAdjustments, from: :claim_level_adjustments
|
8
|
+
property :individualRelationshipCode, from: :individual_relationship_code
|
9
|
+
property :otherPayerName, from: :other_payer_name
|
10
|
+
property :otherSubscriberName, from: :other_subscriber_name
|
11
|
+
property :payerPaidAmount, from: :payer_paid_amount
|
12
|
+
property :paymentResponsibilityLevelCode, from: :payment_responsibility_level_code
|
13
|
+
property :releaseOfInformationCode, from: :release_of_information_code
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class OtherSubscriberName < Model
|
5
|
+
property :otherInsuredFirstName, from: :other_insured_first_nsame
|
6
|
+
property :otherInsuredIdentifier, from: :other_insured_identifier
|
7
|
+
property :otherInsuredIdentifierTypeCode, from: :other_insured_identifier_type_code
|
8
|
+
property :otherInsuredLastName, from: :other_insured_last_name
|
9
|
+
property :otherInsuredQualifier, from: :other_insured_qualifier
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class ProfessionalService < Model
|
5
|
+
property :compositeDiagnosisCodePointers, from: :composite_diagnosis_code_pointers
|
6
|
+
property :description
|
7
|
+
property :lineItemChargeAmount, from: :line_item_charge_amount
|
8
|
+
property :measurementUnit, from: :measurement_unit
|
9
|
+
property :procedureCode, from: :procedure_code
|
10
|
+
property :procedureIdentifier, from: :procedure_identifier
|
11
|
+
property :procedureModifiers, from: :procedure_modifiers
|
12
|
+
property :serviceUnitCount, from: :service_unit_count
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module ChangeHealth
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
|
-
class Provider <
|
5
|
-
property :address
|
6
|
-
property :contactInformation, from: :contact_information
|
7
|
-
property :employerId, from: :employer_id
|
8
|
-
property :firstName, from: :first_name
|
9
|
-
property :lastName, from: :last_name
|
10
|
-
property :
|
11
|
-
property :
|
12
|
-
property :providerType, from: :provider_type
|
13
|
-
property :
|
14
|
-
property :
|
4
|
+
class Provider < Model
|
5
|
+
property :address
|
6
|
+
property :contactInformation, from: :contact_information
|
7
|
+
property :employerId, from: :employer_id # or ssn
|
8
|
+
property :firstName, from: :first_name
|
9
|
+
property :lastName, from: :last_name
|
10
|
+
property :npi
|
11
|
+
property :organizationName, from: :organization_name
|
12
|
+
property :providerType, from: :provider_type
|
13
|
+
property :ssn # or employer id
|
14
|
+
property :taxonomyCode, from: :taxonomy_code
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ChangeHealth
|
2
|
+
module Models
|
3
|
+
module Claim
|
4
|
+
class ReportInformation < Model
|
5
|
+
property :attachmentControlNumber, from: :attachment_control_number
|
6
|
+
property :attachmentReportTypeCode, from: :attachment_report_type_code
|
7
|
+
property :attachmentTransmissionCode, from: :attachment_transmission_code
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -2,11 +2,13 @@ module ChangeHealth
|
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
4
|
class ServiceLine < Model
|
5
|
-
property :
|
6
|
-
property :
|
7
|
-
property :
|
8
|
-
property :
|
9
|
-
property :
|
5
|
+
property :assignedNumber, from: :assigned_number
|
6
|
+
property :drugIdentification, from: :drug_identification
|
7
|
+
property :institutionalService, from: :institutional_service
|
8
|
+
property :lineAdjudicationInformation, from: :line_adjudication_information
|
9
|
+
property :professionalService, from: :professional_service
|
10
|
+
property :renderingProvider, from: :rendering_provider
|
11
|
+
property :serviceDate, from: :service_date
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
@@ -1,10 +1,9 @@
|
|
1
1
|
module ChangeHealth
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
|
-
class Submitter <
|
5
|
-
property :
|
6
|
-
|
7
|
-
property :contactInformation, from: :contact_information, required: false
|
4
|
+
class Submitter < Model
|
5
|
+
property :contactInformation, from: :contact_information
|
6
|
+
property :organizationName, from: :organization_name
|
8
7
|
end
|
9
8
|
end
|
10
9
|
end
|
@@ -2,14 +2,15 @@ module ChangeHealth
|
|
2
2
|
module Models
|
3
3
|
module Claim
|
4
4
|
class Subscriber < Model
|
5
|
-
property :address
|
6
|
-
property :dateOfBirth, from: :date_of_birth
|
7
|
-
property :firstName, from: :first_name
|
8
|
-
property :gender
|
9
|
-
property :groupNumber, from: :group_number
|
10
|
-
property :
|
11
|
-
property :
|
12
|
-
property :
|
5
|
+
property :address
|
6
|
+
property :dateOfBirth, from: :date_of_birth
|
7
|
+
property :firstName, from: :first_name
|
8
|
+
property :gender
|
9
|
+
property :groupNumber, from: :group_number
|
10
|
+
property :insuranceTypeCode, from: :insurance_type_code
|
11
|
+
property :lastName, from: :last_name
|
12
|
+
property :memberId, from: :member_id
|
13
|
+
property :paymentResponsibilityLevelCode, from: :payment_responsibility_level_code
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
@@ -2,20 +2,28 @@ module ChangeHealth
|
|
2
2
|
module Request
|
3
3
|
module Claim
|
4
4
|
class Submission < Hashie::Trash
|
5
|
-
|
5
|
+
PROFESSIONAL_ENDPOINT = '/medicalnetwork/professionalclaims/v3'.freeze
|
6
|
+
INSTITUTIONAL_ENDPOINT = '/medicalnetwork/institutionalclaims/v1'.freeze
|
7
|
+
HEALTH_CHECK_SUFFIX = '/healthcheck'.freeze
|
8
|
+
SUBMISSION_SUFFIX = '/submission'.freeze
|
9
|
+
VALIDATION_SUFFIX = '/validation'.freeze
|
10
|
+
|
11
|
+
# Deprecated but still here for backwards compatibility
|
12
|
+
ENDPOINT = PROFESSIONAL_ENDPOINT
|
6
13
|
HEALTH_CHECK_ENDPOINT = ENDPOINT + '/healthcheck'.freeze
|
7
14
|
SUBMISSION_ENDPOINT = ENDPOINT + '/submission'.freeze
|
8
15
|
VALIDATION_ENDPOINT = ENDPOINT + '/validation'.freeze
|
16
|
+
# End Deprecated
|
9
17
|
|
10
18
|
property :claimInformation, from: :claim_information, required: false
|
11
19
|
property :controlNumber, from: :control_number, required: true, default: ChangeHealth::Models::CONTROL_NUMBER
|
12
20
|
property :dependent, required: false
|
21
|
+
property :headers, required: false
|
13
22
|
property :payToAddress, from: :pay_to_address, required: false
|
14
23
|
property :providers, required: false
|
15
24
|
property :receiver, required: false
|
16
25
|
property :submitter, required: false
|
17
26
|
property :subscriber, required: false
|
18
|
-
property :headers, required: false
|
19
27
|
# Need one or the other, trading partner id or trading partner service id
|
20
28
|
property :tradingPartnerId, from: :trading_partner_id, required: false
|
21
29
|
property :tradingPartnerServiceId, from: :trading_partner_service_id, required: false
|
@@ -25,35 +33,41 @@ module ChangeHealth
|
|
25
33
|
self[:providers] << provider
|
26
34
|
end
|
27
35
|
|
28
|
-
def submission
|
36
|
+
def submission(is_professional: true)
|
37
|
+
endpoint = is_professional ? PROFESSIONAL_ENDPOINT : INSTITUTIONAL_ENDPOINT
|
38
|
+
endpoint += SUBMISSION_SUFFIX
|
29
39
|
ChangeHealth::Response::Claim::SubmissionData.new(response: ChangeHealth::Connection.new.request(
|
30
|
-
endpoint:
|
40
|
+
endpoint: endpoint, body: to_h, headers: professional_headers
|
31
41
|
))
|
32
42
|
end
|
33
43
|
|
34
|
-
def validation
|
44
|
+
def validation(is_professional: true)
|
45
|
+
endpoint = is_professional ? PROFESSIONAL_ENDPOINT : INSTITUTIONAL_ENDPOINT
|
46
|
+
endpoint += VALIDATION_SUFFIX
|
35
47
|
ChangeHealth::Response::Claim::SubmissionData.new(response: ChangeHealth::Connection.new.request(
|
36
|
-
endpoint:
|
48
|
+
endpoint: endpoint, body: to_h, headers: professional_headers
|
37
49
|
))
|
38
50
|
end
|
39
51
|
|
40
|
-
def self.health_check
|
41
|
-
|
52
|
+
def self.health_check(is_professional: true)
|
53
|
+
endpoint = is_professional ? PROFESSIONAL_ENDPOINT : INSTITUTIONAL_ENDPOINT
|
54
|
+
endpoint += HEALTH_CHECK_SUFFIX
|
55
|
+
ChangeHealth::Connection.new.request(endpoint: endpoint, verb: :get)
|
42
56
|
end
|
43
57
|
|
44
|
-
def self.ping
|
45
|
-
health_check
|
58
|
+
def self.ping(is_professional: true)
|
59
|
+
health_check(is_professional: is_professional)
|
46
60
|
end
|
47
61
|
|
48
62
|
def professional_headers
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
63
|
+
return unless self[:headers]
|
64
|
+
|
65
|
+
extra_headers = {}
|
66
|
+
extra_headers['X-CHC-ClaimSubmission-SubmitterId'] = self[:headers][:submitter_id]
|
67
|
+
extra_headers['X-CHC-ClaimSubmission-BillerId'] = self[:headers][:biller_id]
|
68
|
+
extra_headers['X-CHC-ClaimSubmission-Username'] = self[:headers][:username]
|
69
|
+
extra_headers['X-CHC-ClaimSubmission-Pwd'] = self[:headers][:password]
|
70
|
+
extra_headers
|
57
71
|
end
|
58
72
|
end
|
59
73
|
end
|
data/lib/change_health.rb
CHANGED
@@ -7,10 +7,23 @@ require 'change_health/connection'
|
|
7
7
|
require 'change_health/extensions'
|
8
8
|
require 'change_health/models/model'
|
9
9
|
require 'change_health/models/claim/submission/address'
|
10
|
+
require 'change_health/models/claim/submission/claim_code_information'
|
10
11
|
require 'change_health/models/claim/submission/claim_information'
|
12
|
+
require 'change_health/models/claim/submission/claim_supplemental_information'
|
13
|
+
require 'change_health/models/claim/submission/contact_information'
|
11
14
|
require 'change_health/models/claim/submission/dependent'
|
15
|
+
require 'change_health/models/claim/submission/diagnosis'
|
12
16
|
require 'change_health/models/claim/submission/drug_identification'
|
17
|
+
require 'change_health/models/claim/submission/institutional_service'
|
18
|
+
require 'change_health/models/claim/submission/line_adjudication_information'
|
19
|
+
require 'change_health/models/claim/submission/other_payer_name'
|
20
|
+
require 'change_health/models/claim/submission/other_subscriber_information'
|
21
|
+
require 'change_health/models/claim/submission/other_subscriber_name'
|
22
|
+
require 'change_health/models/claim/submission/professional_service'
|
13
23
|
require 'change_health/models/claim/submission/provider'
|
24
|
+
require 'change_health/models/claim/submission/receiver'
|
25
|
+
require 'change_health/models/claim/submission/report_information'
|
26
|
+
require 'change_health/models/claim/submission/service_facility_location'
|
14
27
|
require 'change_health/models/claim/submission/service_line'
|
15
28
|
require 'change_health/models/claim/submission/submitter'
|
16
29
|
require 'change_health/models/claim/submission/subscriber'
|
@@ -19,8 +32,8 @@ require 'change_health/models/eligibility/provider'
|
|
19
32
|
require 'change_health/models/eligibility/subscriber'
|
20
33
|
require 'change_health/models/trading_partner/trading_partner'
|
21
34
|
require 'change_health/request/eligibility'
|
22
|
-
require 'change_health/request/submission'
|
23
35
|
require 'change_health/request/report'
|
36
|
+
require 'change_health/request/submission'
|
24
37
|
require 'change_health/request/trading_partner'
|
25
38
|
require 'change_health/response/error'
|
26
39
|
require 'change_health/response/response_data'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: change_health
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Crockett
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -148,10 +148,23 @@ files:
|
|
148
148
|
- lib/change_health/connection.rb
|
149
149
|
- lib/change_health/extensions.rb
|
150
150
|
- lib/change_health/models/claim/submission/address.rb
|
151
|
+
- lib/change_health/models/claim/submission/claim_code_information.rb
|
151
152
|
- lib/change_health/models/claim/submission/claim_information.rb
|
153
|
+
- lib/change_health/models/claim/submission/claim_supplemental_information.rb
|
154
|
+
- lib/change_health/models/claim/submission/contact_information.rb
|
152
155
|
- lib/change_health/models/claim/submission/dependent.rb
|
156
|
+
- lib/change_health/models/claim/submission/diagnosis.rb
|
153
157
|
- lib/change_health/models/claim/submission/drug_identification.rb
|
158
|
+
- lib/change_health/models/claim/submission/institutional_service.rb
|
159
|
+
- lib/change_health/models/claim/submission/line_adjudication_information.rb
|
160
|
+
- lib/change_health/models/claim/submission/other_payer_name.rb
|
161
|
+
- lib/change_health/models/claim/submission/other_subscriber_information.rb
|
162
|
+
- lib/change_health/models/claim/submission/other_subscriber_name.rb
|
163
|
+
- lib/change_health/models/claim/submission/professional_service.rb
|
154
164
|
- lib/change_health/models/claim/submission/provider.rb
|
165
|
+
- lib/change_health/models/claim/submission/receiver.rb
|
166
|
+
- lib/change_health/models/claim/submission/report_information.rb
|
167
|
+
- lib/change_health/models/claim/submission/service_facility_location.rb
|
155
168
|
- lib/change_health/models/claim/submission/service_line.rb
|
156
169
|
- lib/change_health/models/claim/submission/submitter.rb
|
157
170
|
- lib/change_health/models/claim/submission/subscriber.rb
|