era_835_parser 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Era835Parser
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -3,206 +3,836 @@ require 'spec_helper'
3
3
  RSpec.describe Era835Parser::Parser do
4
4
 
5
5
  describe '#parse' do
6
- before :all do
7
- @era = Era835Parser::Parser.new(file_path: "../era_835_parser/spec/test_era.txt").parse
8
- end
9
6
 
10
- context 'Aggregate totals' do
11
- it 'returns the addressed to' do
12
- expect(@era[:addressed_to]).to eq('Jane Doe')
13
- end
14
- it 'returns the correct number of checks' do
15
- expect(@era[:checks].count).to eq(3)
16
- end
17
- it 'returns the correct number of adjustments' do
18
- expect(@era[:adjustments].count).to eq(3)
19
- end
7
+ context 'Machine readable' do
8
+ context 'example_1.835' do
9
+ # https://www.bluecrossnc.com/sites/default/files/document/attachment/providers/public/pdfs/835_5010_v2.6%20Claim%20Payment%20Advice.pdf
10
+ before :all do
11
+ @era = Era835Parser::Parser.new(file_path: "../era_835_parser/spec/example_1.835").parse
12
+ end
20
13
 
21
- it 'returns the correct number of line items' do
22
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items].count).to eq(1)
23
- end
24
- it 'returns the correct number of line items' do
25
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items].count).to eq(2)
26
- end
27
- it 'returns the correct number of line items' do
28
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items].count).to eq(1)
29
- end
30
- it 'returns the correct number of line items' do
31
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items].count).to eq(1)
32
- end
33
- it 'returns the correct number of line items' do
34
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items].count).to eq(1)
35
- end
14
+ context 'Aggregate totals' do
15
+ it 'returns the addressed to' do
16
+ expect(@era[:addressed_to]).to eq(nil)
17
+ end
18
+ it 'returns the correct number of checks' do
19
+ expect(@era[:checks].count).to eq(1)
20
+ end
21
+ it 'returns the correct number of adjustments' do
22
+ expect(@era[:adjustments]).to eq(nil)
23
+ end
24
+ it 'returns the correct number of eras' do
25
+ expect(@era[:checks]['70408535'][:eras].count).to eq(1)
26
+ end
27
+ it 'returns the correct number of line items' do
28
+ expect(@era[:checks]['70408535'][:eras][0][:line_items].count).to eq(1)
29
+ end
30
+ it 'returns the correct number of adjustment groups' do
31
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
32
+ end
33
+ end
36
34
 
37
- it 'returns the correct number of adjustment groups' do
38
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
39
- end
40
- it 'returns the correct number of adjustment groups' do
41
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
42
- end
43
- it 'returns the correct number of adjustment groups' do
44
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups].count).to eq(1)
45
- end
46
- it 'returns the correct number of adjustment groups' do
47
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:adjustment_groups]).to eq(nil)
35
+ context 'Check #70408535' do
36
+ it 'returns the check number' do
37
+ expect(@era[:checks]['70408535'][:check_number]).to eq('70408535')
38
+ end
39
+ it 'returns the amount' do
40
+ expect(@era[:checks]['70408535'][:amount]).to eq(1509646)
41
+ end
42
+ it 'returns the number of claims' do
43
+ expect(@era[:checks]['70408535'][:number_of_claims]).to eq(1)
44
+ end
45
+ it 'returns the NPI or Tax ID of payee' do
46
+ expect(@era[:checks]['70408535'][:npi_tax_id]).to eq('1234567890')
47
+ end
48
+ it 'returns the Check payee' do
49
+ expect(@era[:checks]['70408535'][:payee]).to eq('ACME UNIV HLTH SYS INC')
50
+ end
51
+ it 'returns the Payer name' do
52
+ expect(@era[:checks]['70408535'][:payer_name]).to eq('NC TEACHERS & STATE EMPLOYEES HEALTH PLAN & HEALTH CHOICE')
53
+ end
54
+ it 'returns the Payer address' do
55
+ expect(@era[:checks]['70408535'][:payer_address]).to eq('P O BOX 30025')
56
+ end
57
+ it 'returns the Payer city' do
58
+ expect(@era[:checks]['70408535'][:payer_city]).to eq('DURHAM')
59
+ end
60
+ it 'returns the Payer state' do
61
+ expect(@era[:checks]['70408535'][:payer_state]).to eq('NC')
62
+ end
63
+ it 'returns the Payer zip code' do
64
+ expect(@era[:checks]['70408535'][:payer_zip_code]).to eq('27702')
65
+ end
66
+ it 'returns the Payer tax id' do
67
+ expect(@era[:checks]['70408535'][:payer_tax_id]).to eq('57-14001')
68
+ end
69
+ it 'returns the Check date (string mm/dd/yyyy)' do
70
+ expect(@era[:checks]['70408535'][:date]).to eq('09/23/2010')
71
+ end
72
+ context 'ERA #0' do
73
+ it 'returns the Patient ID' do
74
+ expect(@era[:checks]['70408535'][:eras][0][:patient_id]).to eq('RUN123456789')
75
+ end
76
+ it 'returns the Patient name' do
77
+ expect(@era[:checks]['70408535'][:eras][0][:patient_name]).to eq('RABBIT,ROGER')
78
+ end
79
+ it 'returns the Patient last name (titlized)' do
80
+ expect(@era[:checks]['70408535'][:eras][0][:patient_last_name]).to eq('Rabbit')
81
+ end
82
+ it 'returns the Patient first name (titlized)' do
83
+ expect(@era[:checks]['70408535'][:eras][0][:patient_first_name]).to eq('Roger')
84
+ end
85
+ it 'returns the Total charge amount (integer)' do
86
+ expect(@era[:checks]['70408535'][:eras][0][:charge_amount]).to eq(374060)
87
+ end
88
+ it 'returns the Total payment amount (integer)' do
89
+ expect(@era[:checks]['70408535'][:eras][0][:payment_amount]).to eq(545104)
90
+ end
91
+ it 'returns the Account number' do
92
+ expect(@era[:checks]['70408535'][:eras][0][:account_number]).to eq('474623UB001CW0321')
93
+ end
94
+ it 'returns the Cliam status code' do
95
+ expect(@era[:checks]['70408535'][:eras][0][:claim_status_code]).to eq('1')
96
+ end
97
+ it 'returns the Claim status code description' do
98
+ expect(@era[:checks]['70408535'][:eras][0][:status]).to eq("PROCESSED AS PRIMARY")
99
+ end
100
+ it 'returns the Payer claim control number' do
101
+ expect(@era[:checks]['70408535'][:eras][0][:payer_claim_control_number]).to eq('80209000000')
102
+ end
103
+ it 'returns the Claim statement period start' do
104
+ expect(@era[:checks]['70408535'][:eras][0][:claim_statement_period_start]).to eq(nil)
105
+ end
106
+ it 'returns the Claim statement period end' do
107
+ expect(@era[:checks]['70408535'][:eras][0][:claim_statement_period_end]).to eq(nil)
108
+ end
109
+
110
+ context 'Line item #0' do
111
+ it 'returns the Date of service (string mm/dd/yyyy)' do
112
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:service_date]).to eq(nil)
113
+ end
114
+ it 'returns the CPT code' do
115
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:cpt_code]).to eq(nil)
116
+ end
117
+ it 'returns the Charge amount (integer)' do
118
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:charge_amount]).to eq(nil)
119
+ end
120
+ it 'returns the Payment amount (integer)' do
121
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:payment_amount]).to eq(nil)
122
+ end
123
+ it 'returns the Total adjustment amount (integer)' do
124
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(-171044)
125
+ end
126
+ it 'returns the Remark code' do
127
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:remark_code]).to eq(nil)
128
+ end
129
+ it 'returns the Remarks' do
130
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:remarks]).to eq(nil)
131
+ end
132
+ context 'Adjustment group #0' do
133
+ it 'returns the Adjustment group' do
134
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq("Contractual Obligation")
135
+ end
136
+ it 'returns the Adjustment group code' do
137
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group_code]).to eq("CO")
138
+ end
139
+ it 'returns the Adjustment amount (integer)' do
140
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(-171044)
141
+ end
142
+ it 'returns the Reason code' do
143
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:adjustment_groups][0][:reason_code]).to eq('94')
144
+ end
145
+ it 'returns the Translated reason code' do
146
+ expect(@era[:checks]['70408535'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq("Processed in Excess of charges.")
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
48
152
  end
49
- it 'returns the correct number of adjustment groups' do
50
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
153
+
154
+ context 'example_2.835' do
155
+ before :all do
156
+ @era = Era835Parser::Parser.new(file_path: "../era_835_parser/spec/example_2.835").parse
157
+ end
158
+
159
+ context 'Aggregate totals' do
160
+ it 'returns the addressed to' do
161
+ expect(@era[:addressed_to]).to eq(nil)
162
+ end
163
+ it 'returns the correct number of checks' do
164
+ expect(@era[:checks].count).to eq(1)
165
+ end
166
+ it 'returns the correct number of adjustments' do
167
+ expect(@era[:adjustments]).to eq(nil)
168
+ end
169
+ it 'returns the correct number of eras' do
170
+ expect(@era[:checks]['02790758'][:eras].count).to eq(1)
171
+ end
172
+ it 'returns the correct number of line items' do
173
+ expect(@era[:checks]['02790758'][:eras][0][:line_items].count).to eq(3)
174
+ end
175
+ it 'returns the correct number of adjustment groups' do
176
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(2)
177
+ end
178
+ it 'returns the correct number of adjustment groups' do
179
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups].count).to eq(1)
180
+ end
181
+ it 'returns the correct number of adjustment groups' do
182
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:adjustment_groups]).to eq(nil)
183
+ end
184
+ end
185
+
186
+ context 'Check #70408535' do
187
+ it 'returns the check number' do
188
+ expect(@era[:checks]['02790758'][:check_number]).to eq('02790758')
189
+ end
190
+ it 'returns the amount' do
191
+ expect(@era[:checks]['02790758'][:amount]).to eq(192286)
192
+ end
193
+ it 'returns the number of claims' do
194
+ expect(@era[:checks]['02790758'][:number_of_claims]).to eq(1)
195
+ end
196
+ it 'returns the NPI or Tax ID of payee' do
197
+ expect(@era[:checks]['02790758'][:npi_tax_id]).to eq('0987654321')
198
+ end
199
+ it 'returns the Check payee' do
200
+ expect(@era[:checks]['02790758'][:payee]).to eq('XYZ HEALTHCARE CORPORATION')
201
+ end
202
+ it 'returns the Payer name' do
203
+ expect(@era[:checks]['02790758'][:payer_name]).to eq('BLUE CROSS AND BLUE SHIELD OF NORTH CAROLINA')
204
+ end
205
+ it 'returns the Payer address' do
206
+ expect(@era[:checks]['02790758'][:payer_address]).to eq('P O BOX 2291')
207
+ end
208
+ it 'returns the Payer city' do
209
+ expect(@era[:checks]['02790758'][:payer_city]).to eq('DURHAM')
210
+ end
211
+ it 'returns the Payer state' do
212
+ expect(@era[:checks]['02790758'][:payer_state]).to eq('NC')
213
+ end
214
+ it 'returns the Payer zip code' do
215
+ expect(@era[:checks]['02790758'][:payer_zip_code]).to eq('27702')
216
+ end
217
+ it 'returns the Payer tax id' do
218
+ expect(@era[:checks]['02790758'][:payer_tax_id]).to eq('60-894904')
219
+ end
220
+ it 'returns the Check date (string mm/dd/yyyy)' do
221
+ expect(@era[:checks]['02790758'][:date]).to eq('01/08/2011')
222
+ end
223
+ context 'ERA #0' do
224
+ it 'returns the Patient ID' do
225
+ expect(@era[:checks]['02790758'][:eras][0][:patient_id]).to eq('YPB123456789001')
226
+ end
227
+ it 'returns the Patient name' do
228
+ expect(@era[:checks]['02790758'][:eras][0][:patient_name]).to eq('DOUGH,MARY')
229
+ end
230
+ it 'returns the Patient last name (titlized)' do
231
+ expect(@era[:checks]['02790758'][:eras][0][:patient_last_name]).to eq('Dough')
232
+ end
233
+ it 'returns the Patient first name (titlized)' do
234
+ expect(@era[:checks]['02790758'][:eras][0][:patient_first_name]).to eq('Mary')
235
+ end
236
+ it 'returns the Total charge amount (integer)' do
237
+ expect(@era[:checks]['02790758'][:eras][0][:charge_amount]).to eq(210000)
238
+ end
239
+ it 'returns the Total payment amount (integer)' do
240
+ expect(@era[:checks]['02790758'][:eras][0][:payment_amount]).to eq(192286)
241
+ end
242
+ it 'returns the Account number' do
243
+ expect(@era[:checks]['02790758'][:eras][0][:account_number]).to eq('200200964A52')
244
+ end
245
+ it 'returns the Cliam status code' do
246
+ expect(@era[:checks]['02790758'][:eras][0][:claim_status_code]).to eq('1')
247
+ end
248
+ it 'returns the Claim status code description' do
249
+ expect(@era[:checks]['02790758'][:eras][0][:status]).to eq("PROCESSED AS PRIMARY")
250
+ end
251
+ it 'returns the Payer claim control number' do
252
+ expect(@era[:checks]['02790758'][:eras][0][:payer_claim_control_number]).to eq('94151100100')
253
+ end
254
+ it 'returns the Claim statement period start' do
255
+ expect(@era[:checks]['02790758'][:eras][0][:claim_statement_period_start]).to eq(nil)
256
+ end
257
+ it 'returns the Claim statement period end' do
258
+ expect(@era[:checks]['02790758'][:eras][0][:claim_statement_period_end]).to eq(nil)
259
+ end
260
+
261
+ context 'Line item #0' do
262
+ it 'returns the Date of service (string mm/dd/yyyy)' do
263
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:service_date]).to eq("12/31/2010")
264
+ end
265
+ it 'returns the CPT code' do
266
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:cpt_code]).to eq("59430")
267
+ end
268
+ it 'returns the Charge amount (integer)' do
269
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:charge_amount]).to eq(121000)
270
+ end
271
+ it 'returns the Payment amount (integer)' do
272
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:payment_amount]).to eq(105786)
273
+ end
274
+ it 'returns the Total adjustment amount (integer)' do
275
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(15214)
276
+ end
277
+ it 'returns the Remark code' do
278
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:remark_code]).to eq(nil)
279
+ end
280
+ it 'returns the Remarks' do
281
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:remarks]).to eq(nil)
282
+ end
283
+ context 'Adjustment group #0' do
284
+ it 'returns the Adjustment group' do
285
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq("Contractual Obligation")
286
+ end
287
+ it 'returns the Adjustment group code' do
288
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group_code]).to eq("CO")
289
+ end
290
+ it 'returns the Adjustment amount (integer)' do
291
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(3460)
292
+ end
293
+ it 'returns the Reason code' do
294
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:reason_code]).to eq('42')
295
+ end
296
+ it 'returns the Translated reason code' do
297
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq("Charges exceed our fee schedule or maximum allowable amount. (Use CARC 45)")
298
+ end
299
+ end
300
+ context 'Adjustment group #1' do
301
+ it 'returns the Adjustment group' do
302
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:adjustment_group]).to eq("Patient Responsibility")
303
+ end
304
+ it 'returns the Adjustment group code' do
305
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:adjustment_group_code]).to eq("PR")
306
+ end
307
+ it 'returns the Adjustment amount (integer)' do
308
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:adjustment_amount]).to eq(11754)
309
+ end
310
+ it 'returns the Reason code' do
311
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:reason_code]).to eq('2')
312
+ end
313
+ it 'returns the Translated reason code' do
314
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:translated_reason_code]).to eq("Coinsurance Amount")
315
+ end
316
+ end
317
+ end
318
+ context 'Line item #1' do
319
+ it 'returns the Date of service (string mm/dd/yyyy)' do
320
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:service_date]).to eq("12/31/2010")
321
+ end
322
+ it 'returns the CPT code' do
323
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:cpt_code]).to eq("59440")
324
+ end
325
+ it 'returns the Charge amount (integer)' do
326
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:charge_amount]).to eq(89000)
327
+ end
328
+ it 'returns the Payment amount (integer)' do
329
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:payment_amount]).to eq(86500)
330
+ end
331
+ it 'returns the Total adjustment amount (integer)' do
332
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:total_adjustment_amount]).to eq(2500)
333
+ end
334
+ it 'returns the Remark code' do
335
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:remark_code]).to eq(nil)
336
+ end
337
+ it 'returns the Remarks' do
338
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:remarks]).to eq(nil)
339
+ end
340
+ context 'Adjustment group #0' do
341
+ it 'returns the Adjustment group' do
342
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_group]).to eq("Patient Responsibility")
343
+ end
344
+ it 'returns the Adjustment group code' do
345
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_group_code]).to eq("PR")
346
+ end
347
+ it 'returns the Adjustment amount (integer)' do
348
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_amount]).to eq(2500)
349
+ end
350
+ it 'returns the Reason code' do
351
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:reason_code]).to eq('3')
352
+ end
353
+ it 'returns the Translated reason code' do
354
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:translated_reason_code]).to eq("Co-payment Amount")
355
+ end
356
+ end
357
+ end
358
+ context 'Line item #2' do
359
+ it 'returns the Date of service (string mm/dd/yyyy)' do
360
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:service_date]).to eq("12/31/2010")
361
+ end
362
+ it 'returns the CPT code' do
363
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:cpt_code]).to eq("59426")
364
+ end
365
+ it 'returns the Charge amount (integer)' do
366
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:charge_amount]).to eq(74200)
367
+ end
368
+ it 'returns the Payment amount (integer)' do
369
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:payment_amount]).to eq(74200)
370
+ end
371
+ it 'returns the Total adjustment amount (integer)' do
372
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:total_adjustment_amount]).to eq(nil)
373
+ end
374
+ it 'returns the Remark code' do
375
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:remark_code]).to eq(nil)
376
+ end
377
+ it 'returns the Remarks' do
378
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:remarks]).to eq(nil)
379
+ end
380
+ end
381
+ end
382
+ end
51
383
  end
52
- it 'returns the correct number of adjustment groups' do
53
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups].count).to eq(2)
384
+
385
+ context 'example_3.835' do
386
+ before :all do
387
+ @era = Era835Parser::Parser.new(file_path: "../era_835_parser/spec/example_3.835").parse
388
+ end
389
+
390
+ context 'Aggregate totals' do
391
+ it 'returns the addressed to' do
392
+ expect(@era[:addressed_to]).to eq(nil)
393
+ end
394
+ it 'returns the correct number of checks' do
395
+ expect(@era[:checks].count).to eq(1)
396
+ end
397
+ it 'returns the correct number of adjustments' do
398
+ expect(@era[:adjustments]).to eq(nil)
399
+ end
400
+ it 'returns the correct number of eras' do
401
+ expect(@era[:checks]['02790758'][:eras].count).to eq(1)
402
+ end
403
+ it 'returns the correct number of line items' do
404
+ expect(@era[:checks]['02790758'][:eras][0][:line_items].count).to eq(3)
405
+ end
406
+ it 'returns the correct number of adjustment groups' do
407
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(2)
408
+ end
409
+ it 'returns the correct number of adjustment groups' do
410
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups].count).to eq(1)
411
+ end
412
+ it 'returns the correct number of adjustment groups' do
413
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:adjustment_groups]).to eq(nil)
414
+ end
415
+ end
416
+
417
+ context 'Check #70408535' do
418
+ it 'returns the check number' do
419
+ expect(@era[:checks]['02790758'][:check_number]).to eq('02790758')
420
+ end
421
+ it 'returns the amount' do
422
+ expect(@era[:checks]['02790758'][:amount]).to eq(192286)
423
+ end
424
+ it 'returns the number of claims' do
425
+ expect(@era[:checks]['02790758'][:number_of_claims]).to eq(1)
426
+ end
427
+ it 'returns the NPI or Tax ID of payee' do
428
+ expect(@era[:checks]['02790758'][:npi_tax_id]).to eq('0987654321')
429
+ end
430
+ it 'returns the Check payee' do
431
+ expect(@era[:checks]['02790758'][:payee]).to eq('XYZ HEALTHCARE CORPORATION')
432
+ end
433
+ it 'returns the Payer name' do
434
+ expect(@era[:checks]['02790758'][:payer_name]).to eq('BLUE CROSS AND BLUE SHIELD OF NORTH CAROLINA')
435
+ end
436
+ it 'returns the Payer address' do
437
+ expect(@era[:checks]['02790758'][:payer_address]).to eq('P O BOX 2291')
438
+ end
439
+ it 'returns the Payer city' do
440
+ expect(@era[:checks]['02790758'][:payer_city]).to eq('DURHAM')
441
+ end
442
+ it 'returns the Payer state' do
443
+ expect(@era[:checks]['02790758'][:payer_state]).to eq('NC')
444
+ end
445
+ it 'returns the Payer zip code' do
446
+ expect(@era[:checks]['02790758'][:payer_zip_code]).to eq('27702')
447
+ end
448
+ it 'returns the Payer tax id' do
449
+ expect(@era[:checks]['02790758'][:payer_tax_id]).to eq('60-894904')
450
+ end
451
+ it 'returns the Check date (string mm/dd/yyyy)' do
452
+ expect(@era[:checks]['02790758'][:date]).to eq('01/08/2011')
453
+ end
454
+ context 'ERA #0' do
455
+ it 'returns the Patient ID' do
456
+ expect(@era[:checks]['02790758'][:eras][0][:patient_id]).to eq('YPB123456789001')
457
+ end
458
+ it 'returns the Patient name' do
459
+ expect(@era[:checks]['02790758'][:eras][0][:patient_name]).to eq('DOUGH,MARY')
460
+ end
461
+ it 'returns the Patient last name (titlized)' do
462
+ expect(@era[:checks]['02790758'][:eras][0][:patient_last_name]).to eq('Dough')
463
+ end
464
+ it 'returns the Patient first name (titlized)' do
465
+ expect(@era[:checks]['02790758'][:eras][0][:patient_first_name]).to eq('Mary')
466
+ end
467
+ it 'returns the Total charge amount (integer)' do
468
+ expect(@era[:checks]['02790758'][:eras][0][:charge_amount]).to eq(210000)
469
+ end
470
+ it 'returns the Total payment amount (integer)' do
471
+ expect(@era[:checks]['02790758'][:eras][0][:payment_amount]).to eq(192286)
472
+ end
473
+ it 'returns the Account number' do
474
+ expect(@era[:checks]['02790758'][:eras][0][:account_number]).to eq('200200964A52')
475
+ end
476
+ it 'returns the Cliam status code' do
477
+ expect(@era[:checks]['02790758'][:eras][0][:claim_status_code]).to eq('1')
478
+ end
479
+ it 'returns the Claim status code description' do
480
+ expect(@era[:checks]['02790758'][:eras][0][:status]).to eq("PROCESSED AS PRIMARY")
481
+ end
482
+ it 'returns the Payer claim control number' do
483
+ expect(@era[:checks]['02790758'][:eras][0][:payer_claim_control_number]).to eq('94151100100')
484
+ end
485
+ it 'returns the Claim statement period start' do
486
+ expect(@era[:checks]['02790758'][:eras][0][:claim_statement_period_start]).to eq(nil)
487
+ end
488
+ it 'returns the Claim statement period end' do
489
+ expect(@era[:checks]['02790758'][:eras][0][:claim_statement_period_end]).to eq(nil)
490
+ end
491
+
492
+ context 'Line item #0' do
493
+ it 'returns the Date of service (string mm/dd/yyyy)' do
494
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:service_date]).to eq("12/31/2010")
495
+ end
496
+ it 'returns the CPT code' do
497
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:cpt_code]).to eq("59430")
498
+ end
499
+ it 'returns the Charge amount (integer)' do
500
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:charge_amount]).to eq(121000)
501
+ end
502
+ it 'returns the Payment amount (integer)' do
503
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:payment_amount]).to eq(105786)
504
+ end
505
+ it 'returns the Total adjustment amount (integer)' do
506
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(15214)
507
+ end
508
+ it 'returns the Remark code' do
509
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:remark_code]).to eq(nil)
510
+ end
511
+ it 'returns the Remarks' do
512
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:remarks]).to eq(nil)
513
+ end
514
+ context 'Adjustment group #0' do
515
+ it 'returns the Adjustment group' do
516
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq("Contractual Obligation")
517
+ end
518
+ it 'returns the Adjustment group code' do
519
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group_code]).to eq("CO")
520
+ end
521
+ it 'returns the Adjustment amount (integer)' do
522
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(3460)
523
+ end
524
+ it 'returns the Reason code' do
525
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:reason_code]).to eq('42')
526
+ end
527
+ it 'returns the Translated reason code' do
528
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq("Charges exceed our fee schedule or maximum allowable amount. (Use CARC 45)")
529
+ end
530
+ end
531
+ context 'Adjustment group #1' do
532
+ it 'returns the Adjustment group' do
533
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:adjustment_group]).to eq("Patient Responsibility")
534
+ end
535
+ it 'returns the Adjustment group code' do
536
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:adjustment_group_code]).to eq("PR")
537
+ end
538
+ it 'returns the Adjustment amount (integer)' do
539
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:adjustment_amount]).to eq(11754)
540
+ end
541
+ it 'returns the Reason code' do
542
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:reason_code]).to eq('2')
543
+ end
544
+ it 'returns the Translated reason code' do
545
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][0][:adjustment_groups][1][:translated_reason_code]).to eq("Coinsurance Amount")
546
+ end
547
+ end
548
+ end
549
+ context 'Line item #1' do
550
+ it 'returns the Date of service (string mm/dd/yyyy)' do
551
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:service_date]).to eq("12/31/2010")
552
+ end
553
+ it 'returns the CPT code' do
554
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:cpt_code]).to eq("59440")
555
+ end
556
+ it 'returns the Charge amount (integer)' do
557
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:charge_amount]).to eq(89000)
558
+ end
559
+ it 'returns the Payment amount (integer)' do
560
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:payment_amount]).to eq(86500)
561
+ end
562
+ it 'returns the Total adjustment amount (integer)' do
563
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:total_adjustment_amount]).to eq(2500)
564
+ end
565
+ it 'returns the Remark code' do
566
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:remark_code]).to eq(nil)
567
+ end
568
+ it 'returns the Remarks' do
569
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:remarks]).to eq(nil)
570
+ end
571
+ context 'Adjustment group #0' do
572
+ it 'returns the Adjustment group' do
573
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_group]).to eq("Patient Responsibility")
574
+ end
575
+ it 'returns the Adjustment group code' do
576
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_group_code]).to eq("PR")
577
+ end
578
+ it 'returns the Adjustment amount (integer)' do
579
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_amount]).to eq(2500)
580
+ end
581
+ it 'returns the Reason code' do
582
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:reason_code]).to eq('3')
583
+ end
584
+ it 'returns the Translated reason code' do
585
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][1][:adjustment_groups][0][:translated_reason_code]).to eq("Co-payment Amount")
586
+ end
587
+ end
588
+ end
589
+ context 'Line item #2' do
590
+ it 'returns the Date of service (string mm/dd/yyyy)' do
591
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:service_date]).to eq("12/31/2010")
592
+ end
593
+ it 'returns the CPT code' do
594
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:cpt_code]).to eq("59426")
595
+ end
596
+ it 'returns the Charge amount (integer)' do
597
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:charge_amount]).to eq(74200)
598
+ end
599
+ it 'returns the Payment amount (integer)' do
600
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:payment_amount]).to eq(74200)
601
+ end
602
+ it 'returns the Total adjustment amount (integer)' do
603
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:total_adjustment_amount]).to eq(nil)
604
+ end
605
+ it 'returns the Remark code' do
606
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:remark_code]).to eq(nil)
607
+ end
608
+ it 'returns the Remarks' do
609
+ expect(@era[:checks]['02790758'][:eras][0][:line_items][2][:remarks]).to eq(nil)
610
+ end
611
+ end
612
+ end
613
+ end
54
614
  end
55
615
  end
56
616
 
57
- context 'Check #201812215555555555' do
58
- it 'returns the check number' do
59
- expect(@era[:checks]['201812215555555555'][:check_number]).to eq('201812215555555555')
60
- end
61
- it 'returns the amount' do
62
- expect(@era[:checks]['201812215555555555'][:amount]).to eq(4880)
63
- end
64
- it 'returns the number of claims' do
65
- expect(@era[:checks]['201812215555555555'][:number_of_claims]).to eq(1)
66
- end
67
- it 'returns the NPI or Tax ID' do
68
- expect(@era[:checks]['201812215555555555'][:npi_tax_id]).to eq('1212121212')
69
- end
70
- it 'returns the payee' do
71
- expect(@era[:checks]['201812215555555555'][:payee]).to eq('ABC COMPANY LLC')
72
- end
73
- it 'returns the date' do
74
- expect(@era[:checks]['201812215555555555'][:date]).to eq('12/21/2018')
617
+ context 'Human readable' do
618
+ before :all do
619
+ @era = Era835Parser::Parser.new(file_path: "../era_835_parser/spec/test_era.txt").parse
75
620
  end
76
621
 
77
- context 'ERA #0' do
78
- it 'returns the ERA text' do
79
- text = <<-EOF
80
- --------------------------------------------------------------------------------------------------------------------------------------------------------
81
- Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
82
- 201812215555555555 M11111110 DOE JR,DAVIS 65.00 48.80 1112 PROCESSED AS PRIMARY ABC HEALTHCARE EAST
83
- SERVICE CENTER
84
- PO BOX 12234
85
- SOMEWHERE,GA 11111
86
- Tax ID: 11-1111110
87
- Payer Claim Control Number: 111111111000
622
+ context 'Aggregate totals' do
623
+ it 'returns the addressed to' do
624
+ expect(@era[:addressed_to]).to eq('Jane Doe')
625
+ end
626
+ it 'returns the correct number of checks' do
627
+ expect(@era[:checks].count).to eq(3)
628
+ end
629
+ it 'returns the correct number of adjustments' do
630
+ expect(@era[:adjustments].count).to eq(3)
631
+ end
88
632
 
89
- Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
90
- 10/25/2018 92507 65.00 48.80 16.20 NO REMARKS
633
+ it 'returns the correct number of line items' do
634
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items].count).to eq(1)
635
+ end
636
+ it 'returns the correct number of line items' do
637
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items].count).to eq(2)
638
+ end
639
+ it 'returns the correct number of line items' do
640
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items].count).to eq(1)
641
+ end
642
+ it 'returns the correct number of line items' do
643
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items].count).to eq(1)
644
+ end
645
+ it 'returns the correct number of line items' do
646
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items].count).to eq(1)
647
+ end
91
648
 
92
- Adjustment Group Adj Amt Translated Reason Code
93
- CONTRACTUAL OBLIGATIONS 16.20 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
94
- EOF
95
- expect(@era[:checks]['201812215555555555'][:eras][0][:era_text]).to eq(text.strip)
649
+ it 'returns the correct number of adjustment groups' do
650
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
96
651
  end
97
- it 'returns the Patient ID' do
98
- expect(@era[:checks]['201812215555555555'][:eras][0][:patient_id]).to eq('M11111110')
652
+ it 'returns the correct number of adjustment groups' do
653
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
99
654
  end
100
- it 'returns the Patient name' do
101
- expect(@era[:checks]['201812215555555555'][:eras][0][:patient_name]).to eq('DOE JR,DAVIS')
655
+ it 'returns the correct number of adjustment groups' do
656
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups].count).to eq(1)
102
657
  end
103
- it 'returns the Patient last name (titlized)' do
104
- expect(@era[:checks]['201812215555555555'][:eras][0][:patient_last_name]).to eq('Doe Jr')
658
+ it 'returns the correct number of adjustment groups' do
659
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:adjustment_groups]).to eq(nil)
105
660
  end
106
- it 'returns the Patient first name (titlized)' do
107
- expect(@era[:checks]['201812215555555555'][:eras][0][:patient_first_name]).to eq('Davis')
661
+ it 'returns the correct number of adjustment groups' do
662
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups].count).to eq(1)
108
663
  end
109
- it 'returns the Total charge amount (integer)' do
110
- expect(@era[:checks]['201812215555555555'][:eras][0][:charge_amount]).to eq(6500)
664
+ it 'returns the correct number of adjustment groups' do
665
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups].count).to eq(2)
111
666
  end
112
- it 'returns the Total payment amount (integer)' do
113
- expect(@era[:checks]['201812215555555555'][:eras][0][:payment_amount]).to eq(4880)
667
+ end
668
+
669
+ context 'Check #201812215555555555' do
670
+ it 'returns the check number' do
671
+ expect(@era[:checks]['201812215555555555'][:check_number]).to eq('201812215555555555')
672
+ end
673
+ it 'returns the amount' do
674
+ expect(@era[:checks]['201812215555555555'][:amount]).to eq(4880)
675
+ end
676
+ it 'returns the number of claims' do
677
+ expect(@era[:checks]['201812215555555555'][:number_of_claims]).to eq(1)
114
678
  end
115
- it 'returns the Account number' do
116
- expect(@era[:checks]['201812215555555555'][:eras][0][:account_number]).to eq('1112')
679
+ it 'returns the NPI or Tax ID' do
680
+ expect(@era[:checks]['201812215555555555'][:npi_tax_id]).to eq('1212121212')
117
681
  end
118
- it 'returns the Status' do
119
- expect(@era[:checks]['201812215555555555'][:eras][0][:status]).to eq('PROCESSED AS PRIMARY')
682
+ it 'returns the payee' do
683
+ expect(@era[:checks]['201812215555555555'][:payee]).to eq('ABC COMPANY LLC')
120
684
  end
121
685
  it 'returns the Payer name' do
122
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_name]).to eq('ABC HEALTHCARE EAST')
686
+ expect(@era[:checks]['201812215555555555'][:payer_name]).to eq('ABC HEALTHCARE EAST')
123
687
  end
124
688
  it 'returns the Payer address' do
125
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_address]).to eq('SERVICE CENTER PO BOX 12234')
689
+ expect(@era[:checks]['201812215555555555'][:payer_address]).to eq('SERVICE CENTER PO BOX 12234')
126
690
  end
127
691
  it 'returns the Payer city' do
128
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_city]).to eq('SOMEWHERE')
692
+ expect(@era[:checks]['201812215555555555'][:payer_city]).to eq('SOMEWHERE')
129
693
  end
130
694
  it 'returns the Payer state' do
131
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_state]).to eq('GA')
695
+ expect(@era[:checks]['201812215555555555'][:payer_state]).to eq('GA')
132
696
  end
133
697
  it 'returns the Payer zip code' do
134
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_zip_code]).to eq('11111')
698
+ expect(@era[:checks]['201812215555555555'][:payer_zip_code]).to eq('11111')
135
699
  end
136
700
  it 'returns the Payer tax id' do
137
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_tax_id]).to eq('11-1111110')
701
+ expect(@era[:checks]['201812215555555555'][:payer_tax_id]).to eq('11-1111110')
138
702
  end
139
- it 'returns the Payer claim control number' do
140
- expect(@era[:checks]['201812215555555555'][:eras][0][:payer_claim_control_number]).to eq('111111111000')
141
- end
142
- it 'returns the Claim statement period start' do
143
- expect(@era[:checks]['201812215555555555'][:eras][0][:claim_statement_period_start]).to eq(nil)
144
- end
145
- it 'returns the Claim statement period end' do
146
- expect(@era[:checks]['201812215555555555'][:eras][0][:claim_statement_period_end]).to eq(nil)
703
+ it 'returns the date' do
704
+ expect(@era[:checks]['201812215555555555'][:date]).to eq('12/21/2018')
147
705
  end
148
706
 
149
- context 'Line item #0' do
150
- it 'returns the Date of service (string mm/dd/yyyy)' do
151
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:service_date]).to eq('10/25/2018')
707
+ context 'ERA #0' do
708
+ it 'returns the ERA text' do
709
+ text = <<-EOF
710
+ --------------------------------------------------------------------------------------------------------------------------------------------------------
711
+ Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
712
+ 201812215555555555 M11111110 DOE JR,DAVIS 65.00 48.80 1112 PROCESSED AS PRIMARY ABC HEALTHCARE EAST
713
+ SERVICE CENTER
714
+ PO BOX 12234
715
+ SOMEWHERE,GA 11111
716
+ Tax ID: 11-1111110
717
+ Payer Claim Control Number: 111111111000
718
+
719
+ Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
720
+ 10/25/2018 92507 65.00 48.80 16.20 NO REMARKS
721
+
722
+ Adjustment Group Adj Amt Translated Reason Code
723
+ CONTRACTUAL OBLIGATIONS 16.20 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
724
+ EOF
725
+ expect(@era[:checks]['201812215555555555'][:eras][0][:era_text]).to eq(text.strip)
726
+ end
727
+ it 'returns the Patient ID' do
728
+ expect(@era[:checks]['201812215555555555'][:eras][0][:patient_id]).to eq('M11111110')
729
+ end
730
+ it 'returns the Patient name' do
731
+ expect(@era[:checks]['201812215555555555'][:eras][0][:patient_name]).to eq('DOE JR,DAVIS')
732
+ end
733
+ it 'returns the Patient last name (titlized)' do
734
+ expect(@era[:checks]['201812215555555555'][:eras][0][:patient_last_name]).to eq('Doe Jr')
735
+ end
736
+ it 'returns the Patient first name (titlized)' do
737
+ expect(@era[:checks]['201812215555555555'][:eras][0][:patient_first_name]).to eq('Davis')
738
+ end
739
+ it 'returns the Total charge amount (integer)' do
740
+ expect(@era[:checks]['201812215555555555'][:eras][0][:charge_amount]).to eq(6500)
741
+ end
742
+ it 'returns the Total payment amount (integer)' do
743
+ expect(@era[:checks]['201812215555555555'][:eras][0][:payment_amount]).to eq(4880)
152
744
  end
153
- it 'returns the CPT code' do
154
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:cpt_code]).to eq('92507')
745
+ it 'returns the Account number' do
746
+ expect(@era[:checks]['201812215555555555'][:eras][0][:account_number]).to eq('1112')
155
747
  end
156
- it 'returns the Charge amount (integer)' do
157
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:charge_amount]).to eq(6500)
748
+ it 'returns the Status' do
749
+ expect(@era[:checks]['201812215555555555'][:eras][0][:status]).to eq('PROCESSED AS PRIMARY')
158
750
  end
159
- it 'returns the Payment amount (integer)' do
160
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:payment_amount]).to eq(4880)
751
+ it 'returns the Payer claim control number' do
752
+ expect(@era[:checks]['201812215555555555'][:eras][0][:payer_claim_control_number]).to eq('111111111000')
161
753
  end
162
- it 'returns the Total adjustment amount (integer)' do
163
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(1620)
754
+ it 'returns the Claim statement period start' do
755
+ expect(@era[:checks]['201812215555555555'][:eras][0][:claim_statement_period_start]).to eq(nil)
164
756
  end
165
- it 'returns the Remarks' do
166
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:remarks]).to eq('NO REMARKS')
757
+ it 'returns the Claim statement period end' do
758
+ expect(@era[:checks]['201812215555555555'][:eras][0][:claim_statement_period_end]).to eq(nil)
167
759
  end
168
- context 'Adjustment group #0' do
169
- it 'returns the Adjustment group' do
170
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('CONTRACTUAL OBLIGATIONS')
760
+
761
+ context 'Line item #0' do
762
+ it 'returns the Date of service (string mm/dd/yyyy)' do
763
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:service_date]).to eq('10/25/2018')
764
+ end
765
+ it 'returns the CPT code' do
766
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:cpt_code]).to eq('92507')
767
+ end
768
+ it 'returns the Charge amount (integer)' do
769
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:charge_amount]).to eq(6500)
171
770
  end
172
- it 'returns the Adjustment amount (integer)' do
173
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(1620)
771
+ it 'returns the Payment amount (integer)' do
772
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:payment_amount]).to eq(4880)
174
773
  end
175
- it 'returns the Translated reason code' do
176
- expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
774
+ it 'returns the Total adjustment amount (integer)' do
775
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(1620)
776
+ end
777
+ it 'returns the Remarks' do
778
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:remarks]).to eq('NO REMARKS')
779
+ end
780
+ context 'Adjustment group #0' do
781
+ it 'returns the Adjustment group' do
782
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('CONTRACTUAL OBLIGATIONS')
783
+ end
784
+ it 'returns the Adjustment amount (integer)' do
785
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(1620)
786
+ end
787
+ it 'returns the Translated reason code' do
788
+ expect(@era[:checks]['201812215555555555'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
789
+ end
177
790
  end
178
791
  end
179
792
  end
180
793
  end
181
- end
182
794
 
183
- context 'Check #201812215555555556' do
184
- it 'returns the check number' do
185
- expect(@era[:checks]['201812215555555556'][:check_number]).to eq('201812215555555556')
186
- end
187
- it 'returns the amount' do
188
- expect(@era[:checks]['201812215555555556'][:amount]).to eq(5120)
189
- end
190
- it 'returns the number of claims' do
191
- expect(@era[:checks]['201812215555555556'][:number_of_claims]).to eq(2)
192
- end
193
- it 'returns the NPI or Tax ID' do
194
- expect(@era[:checks]['201812215555555556'][:npi_tax_id]).to eq('1212121213')
195
- end
196
- it 'returns the payee' do
197
- expect(@era[:checks]['201812215555555556'][:payee]).to eq('ABC COMPANY')
198
- end
199
- it 'returns the date' do
200
- expect(@era[:checks]['201812215555555556'][:date]).to eq('12/22/2018')
201
- end
795
+ context 'Check #201812215555555556' do
796
+ it 'returns the check number' do
797
+ expect(@era[:checks]['201812215555555556'][:check_number]).to eq('201812215555555556')
798
+ end
799
+ it 'returns the amount' do
800
+ expect(@era[:checks]['201812215555555556'][:amount]).to eq(5120)
801
+ end
802
+ it 'returns the number of claims' do
803
+ expect(@era[:checks]['201812215555555556'][:number_of_claims]).to eq(2)
804
+ end
805
+ it 'returns the NPI or Tax ID' do
806
+ expect(@era[:checks]['201812215555555556'][:npi_tax_id]).to eq('1212121213')
807
+ end
808
+ it 'returns the payee' do
809
+ expect(@era[:checks]['201812215555555556'][:payee]).to eq('ABC COMPANY')
810
+ end
811
+ it 'returns the Payer name' do
812
+ expect(@era[:checks]['201812215555555556'][:payer_name]).to eq('ABC HEALTHCARE WEST')
813
+ end
814
+ it 'returns the Payer address' do
815
+ expect(@era[:checks]['201812215555555556'][:payer_address]).to eq('50 EAST RD')
816
+ end
817
+ it 'returns the Payer city' do
818
+ expect(@era[:checks]['201812215555555556'][:payer_city]).to eq('ANYWHERE')
819
+ end
820
+ it 'returns the Payer state' do
821
+ expect(@era[:checks]['201812215555555556'][:payer_state]).to eq('TN')
822
+ end
823
+ it 'returns the Payer zip code' do
824
+ expect(@era[:checks]['201812215555555556'][:payer_zip_code]).to eq('00002-1111')
825
+ end
826
+ it 'returns the Payer tax id' do
827
+ expect(@era[:checks]['201812215555555556'][:payer_tax_id]).to eq('11-1111111')
828
+ end
829
+ it 'returns the date' do
830
+ expect(@era[:checks]['201812215555555556'][:date]).to eq('12/22/2018')
831
+ end
202
832
 
203
- context 'ERA #0' do
204
- it 'returns the ERA text' do
205
- text = <<-EOF
833
+ context 'ERA #0' do
834
+ it 'returns the ERA text' do
835
+ text = <<-EOF
206
836
  --------------------------------------------------------------------------------------------------------------------------------------------------------
207
837
  Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
208
838
  201812215555555556 ZECM11111111 DOE,JANE -65.00 -48.80 L111 OTHER ABC HEALTHCARE WEST
@@ -222,240 +852,222 @@ Check# Patient ID Last,First Charge Amt
222
852
 
223
853
  Adjustment Group Adj Amt Translated Reason Code
224
854
  OTHER ADJUSTMENTS -5.00 PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.
225
- EOF
226
- expect(@era[:checks]['201812215555555556'][:eras][0][:era_text]).to eq(text.strip)
227
- end
228
- it 'returns the Patient ID' do
229
- expect(@era[:checks]['201812215555555556'][:eras][0][:patient_id]).to eq('ZECM11111111')
230
- end
231
- it 'returns the Patient name' do
232
- expect(@era[:checks]['201812215555555556'][:eras][0][:patient_name]).to eq('DOE,JANE')
233
- end
234
- it 'returns the Patient last name (titlized)' do
235
- expect(@era[:checks]['201812215555555556'][:eras][0][:patient_last_name]).to eq('Doe')
236
- end
237
- it 'returns the Patient first name (titlized)' do
238
- expect(@era[:checks]['201812215555555556'][:eras][0][:patient_first_name]).to eq('Jane')
239
- end
240
- it 'returns the Total charge amount (integer)' do
241
- expect(@era[:checks]['201812215555555556'][:eras][0][:charge_amount]).to eq(-6500)
242
- end
243
- it 'returns the Total payment amount (integer)' do
244
- expect(@era[:checks]['201812215555555556'][:eras][0][:payment_amount]).to eq(-4880)
245
- end
246
- it 'returns the Account number' do
247
- expect(@era[:checks]['201812215555555556'][:eras][0][:account_number]).to eq('L111')
248
- end
249
- it 'returns the Status' do
250
- expect(@era[:checks]['201812215555555556'][:eras][0][:status]).to eq('OTHER')
251
- end
252
- it 'returns the Payer name' do
253
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_name]).to eq('ABC HEALTHCARE WEST')
254
- end
255
- it 'returns the Payer address' do
256
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_address]).to eq('50 EAST RD')
257
- end
258
- it 'returns the Payer city' do
259
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_city]).to eq('ANYWHERE')
260
- end
261
- it 'returns the Payer state' do
262
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_state]).to eq('TN')
263
- end
264
- it 'returns the Payer zip code' do
265
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_zip_code]).to eq('00002-1111')
266
- end
267
- it 'returns the Payer tax id' do
268
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_tax_id]).to eq('11-1111111')
269
- end
270
- it 'returns the Payer claim control number' do
271
- expect(@era[:checks]['201812215555555556'][:eras][0][:payer_claim_control_number]).to eq('BTBBB1111100')
272
- end
273
- it 'returns the Claim statement period start' do
274
- expect(@era[:checks]['201812215555555556'][:eras][0][:claim_statement_period_start]).to eq(nil)
275
- end
276
- it 'returns the Claim statement period end' do
277
- expect(@era[:checks]['201812215555555556'][:eras][0][:claim_statement_period_end]).to eq(nil)
278
- end
279
-
280
- context 'Line item #0' do
281
- it 'returns the Date of service (string mm/dd/yyyy)' do
282
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:service_date]).to eq('10/27/2017')
855
+ EOF
856
+ expect(@era[:checks]['201812215555555556'][:eras][0][:era_text]).to eq(text.strip)
283
857
  end
284
- it 'returns the CPT code' do
285
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:cpt_code]).to eq('92507')
858
+ it 'returns the Patient ID' do
859
+ expect(@era[:checks]['201812215555555556'][:eras][0][:patient_id]).to eq('ZECM11111111')
286
860
  end
287
- it 'returns the Charge amount (integer)' do
288
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:charge_amount]).to eq(-6500)
861
+ it 'returns the Patient name' do
862
+ expect(@era[:checks]['201812215555555556'][:eras][0][:patient_name]).to eq('DOE,JANE')
289
863
  end
290
- it 'returns the Payment amount (integer)' do
291
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:payment_amount]).to eq(-4880)
864
+ it 'returns the Patient last name (titlized)' do
865
+ expect(@era[:checks]['201812215555555556'][:eras][0][:patient_last_name]).to eq('Doe')
292
866
  end
293
- it 'returns the Total adjustment amount (integer)' do
294
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(-1620)
867
+ it 'returns the Patient first name (titlized)' do
868
+ expect(@era[:checks]['201812215555555556'][:eras][0][:patient_first_name]).to eq('Jane')
295
869
  end
296
- it 'returns the Remarks' do
297
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:remarks]).to eq('NO REMARKS')
870
+ it 'returns the Total charge amount (integer)' do
871
+ expect(@era[:checks]['201812215555555556'][:eras][0][:charge_amount]).to eq(-6500)
298
872
  end
299
- context 'Adjustment group #0' do
300
- it 'returns the Adjustment group' do
301
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('OTHER ADJUSTMENTS')
302
- end
303
- it 'returns the Adjustment amount (integer)' do
304
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(-1620)
305
- end
306
- it 'returns the Translated reason code' do
307
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
308
- end
873
+ it 'returns the Total payment amount (integer)' do
874
+ expect(@era[:checks]['201812215555555556'][:eras][0][:payment_amount]).to eq(-4880)
309
875
  end
310
- end
311
-
312
- context 'Line item #1' do
313
- it 'returns the Date of service (string mm/dd/yyyy)' do
314
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:service_date]).to eq('11/09/2017')
876
+ it 'returns the Account number' do
877
+ expect(@era[:checks]['201812215555555556'][:eras][0][:account_number]).to eq('L111')
315
878
  end
316
- it 'returns the CPT code' do
317
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:cpt_code]).to eq('92507')
879
+ it 'returns the Status' do
880
+ expect(@era[:checks]['201812215555555556'][:eras][0][:status]).to eq('OTHER')
318
881
  end
319
- it 'returns the Charge amount (integer)' do
320
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:charge_amount]).to eq(-500)
882
+ it 'returns the Payer claim control number' do
883
+ expect(@era[:checks]['201812215555555556'][:eras][0][:payer_claim_control_number]).to eq('BTBBB1111100')
321
884
  end
322
- it 'returns the Payment amount (integer)' do
323
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:payment_amount]).to eq(0)
885
+ it 'returns the Claim statement period start' do
886
+ expect(@era[:checks]['201812215555555556'][:eras][0][:claim_statement_period_start]).to eq(nil)
324
887
  end
325
- it 'returns the Total adjustment amount (integer)' do
326
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:total_adjustment_amount]).to eq(-500)
888
+ it 'returns the Claim statement period end' do
889
+ expect(@era[:checks]['201812215555555556'][:eras][0][:claim_statement_period_end]).to eq(nil)
327
890
  end
328
- it 'returns the Remarks' do
329
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:remarks]).to eq('NO REMARKS')
891
+
892
+ context 'Line item #0' do
893
+ it 'returns the Date of service (string mm/dd/yyyy)' do
894
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:service_date]).to eq('10/27/2017')
895
+ end
896
+ it 'returns the CPT code' do
897
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:cpt_code]).to eq('92507')
898
+ end
899
+ it 'returns the Charge amount (integer)' do
900
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:charge_amount]).to eq(-6500)
901
+ end
902
+ it 'returns the Payment amount (integer)' do
903
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:payment_amount]).to eq(-4880)
904
+ end
905
+ it 'returns the Total adjustment amount (integer)' do
906
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(-1620)
907
+ end
908
+ it 'returns the Remarks' do
909
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:remarks]).to eq('NO REMARKS')
910
+ end
911
+ context 'Adjustment group #0' do
912
+ it 'returns the Adjustment group' do
913
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('OTHER ADJUSTMENTS')
914
+ end
915
+ it 'returns the Adjustment amount (integer)' do
916
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(-1620)
917
+ end
918
+ it 'returns the Translated reason code' do
919
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
920
+ end
921
+ end
330
922
  end
331
- context 'Adjustment group #0' do
332
- it 'returns the Adjustment group' do
333
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_group]).to eq('OTHER ADJUSTMENTS')
923
+
924
+ context 'Line item #1' do
925
+ it 'returns the Date of service (string mm/dd/yyyy)' do
926
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:service_date]).to eq('11/09/2017')
334
927
  end
335
- it 'returns the Adjustment amount (integer)' do
336
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_amount]).to eq(-500)
928
+ it 'returns the CPT code' do
929
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:cpt_code]).to eq('92507')
337
930
  end
338
- it 'returns the Translated reason code' do
339
- expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups][0][:translated_reason_code]).to eq('PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.')
931
+ it 'returns the Charge amount (integer)' do
932
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:charge_amount]).to eq(-500)
933
+ end
934
+ it 'returns the Payment amount (integer)' do
935
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:payment_amount]).to eq(0)
936
+ end
937
+ it 'returns the Total adjustment amount (integer)' do
938
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:total_adjustment_amount]).to eq(-500)
939
+ end
940
+ it 'returns the Remarks' do
941
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:remarks]).to eq('NO REMARKS')
942
+ end
943
+ context 'Adjustment group #0' do
944
+ it 'returns the Adjustment group' do
945
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_group]).to eq('OTHER ADJUSTMENTS')
946
+ end
947
+ it 'returns the Adjustment amount (integer)' do
948
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups][0][:adjustment_amount]).to eq(-500)
949
+ end
950
+ it 'returns the Translated reason code' do
951
+ expect(@era[:checks]['201812215555555556'][:eras][0][:line_items][1][:adjustment_groups][0][:translated_reason_code]).to eq('PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.')
952
+ end
340
953
  end
341
954
  end
342
955
  end
343
- end
344
956
 
345
- context 'ERA #1' do
346
- it 'returns the ERA text' do
347
- text = <<-EOF
957
+ context 'ERA #1' do
958
+ it 'returns the ERA text' do
959
+ text = <<-EOF
348
960
  --------------------------------------------------------------------------------------------------------------------------------------------------------
349
961
  Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
350
962
  201812215555555556 ZECM11111112 SMITH,JOSEPH 100.00 100.00 M111 PROCESSED AS SECONDARY ABC HEALTHCARE WEST
351
963
  50 EAST RD
352
- ANYWHERE,TN 00002
964
+ ANYWHERE,TN 00002-1111
353
965
  Tax ID: 11-1111111
354
966
  Payer Claim Control Number: BT1111111141
355
967
 
356
968
  Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
357
969
  10/25/2017 92507 100.00 100.00 0.00 NO REMARKS
358
- EOF
359
- expect(@era[:checks]['201812215555555556'][:eras][1][:era_text]).to eq(text.strip)
360
- end
361
- it 'returns the Patient ID' do
362
- expect(@era[:checks]['201812215555555556'][:eras][1][:patient_id]).to eq('ZECM11111112')
363
- end
364
- it 'returns the Patient name' do
365
- expect(@era[:checks]['201812215555555556'][:eras][1][:patient_name]).to eq('SMITH,JOSEPH')
366
- end
367
- it 'returns the Patient last name (titlized)' do
368
- expect(@era[:checks]['201812215555555556'][:eras][1][:patient_last_name]).to eq('Smith')
970
+ EOF
971
+ expect(@era[:checks]['201812215555555556'][:eras][1][:era_text]).to eq(text.strip)
972
+ end
973
+ it 'returns the Patient ID' do
974
+ expect(@era[:checks]['201812215555555556'][:eras][1][:patient_id]).to eq('ZECM11111112')
975
+ end
976
+ it 'returns the Patient name' do
977
+ expect(@era[:checks]['201812215555555556'][:eras][1][:patient_name]).to eq('SMITH,JOSEPH')
978
+ end
979
+ it 'returns the Patient last name (titlized)' do
980
+ expect(@era[:checks]['201812215555555556'][:eras][1][:patient_last_name]).to eq('Smith')
981
+ end
982
+ it 'returns the Patient first name (titlized)' do
983
+ expect(@era[:checks]['201812215555555556'][:eras][1][:patient_first_name]).to eq('Joseph')
984
+ end
985
+ it 'returns the Total charge amount (integer)' do
986
+ expect(@era[:checks]['201812215555555556'][:eras][1][:charge_amount]).to eq(10000)
987
+ end
988
+ it 'returns the Total payment amount (integer)' do
989
+ expect(@era[:checks]['201812215555555556'][:eras][1][:payment_amount]).to eq(10000)
990
+ end
991
+ it 'returns the Account number' do
992
+ expect(@era[:checks]['201812215555555556'][:eras][1][:account_number]).to eq('M111')
993
+ end
994
+ it 'returns the Status' do
995
+ expect(@era[:checks]['201812215555555556'][:eras][1][:status]).to eq('PROCESSED AS SECONDARY')
996
+ end
997
+ it 'returns the Payer claim control number' do
998
+ expect(@era[:checks]['201812215555555556'][:eras][1][:payer_claim_control_number]).to eq('BT1111111141')
999
+ end
1000
+ it 'returns the Claim statement period start' do
1001
+ expect(@era[:checks]['201812215555555556'][:eras][1][:claim_statement_period_start]).to eq(nil)
1002
+ end
1003
+ it 'returns the Claim statement period end' do
1004
+ expect(@era[:checks]['201812215555555556'][:eras][1][:claim_statement_period_end]).to eq(nil)
1005
+ end
1006
+
1007
+ context 'Line item #0' do
1008
+ it 'returns the Date of service (string mm/dd/yyyy)' do
1009
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:service_date]).to eq('10/25/2017')
1010
+ end
1011
+ it 'returns the CPT code' do
1012
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:cpt_code]).to eq('92507')
1013
+ end
1014
+ it 'returns the Charge amount (integer)' do
1015
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:charge_amount]).to eq(10000)
1016
+ end
1017
+ it 'returns the Payment amount (integer)' do
1018
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:payment_amount]).to eq(10000)
1019
+ end
1020
+ it 'returns the Total adjustment amount (integer)' do
1021
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:total_adjustment_amount]).to eq(0)
1022
+ end
1023
+ it 'returns the Remarks' do
1024
+ expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:remarks]).to eq('NO REMARKS')
1025
+ end
1026
+ end
369
1027
  end
370
- it 'returns the Patient first name (titlized)' do
371
- expect(@era[:checks]['201812215555555556'][:eras][1][:patient_first_name]).to eq('Joseph')
1028
+ end
1029
+
1030
+ context 'Check #201812215555555557' do
1031
+ it 'returns the check number' do
1032
+ expect(@era[:checks]['201812215555555557'][:check_number]).to eq('201812215555555557')
372
1033
  end
373
- it 'returns the Total charge amount (integer)' do
374
- expect(@era[:checks]['201812215555555556'][:eras][1][:charge_amount]).to eq(10000)
1034
+ it 'returns the amount' do
1035
+ expect(@era[:checks]['201812215555555557'][:amount]).to eq(500)
375
1036
  end
376
- it 'returns the Total payment amount (integer)' do
377
- expect(@era[:checks]['201812215555555556'][:eras][1][:payment_amount]).to eq(10000)
1037
+ it 'returns the number of claims' do
1038
+ expect(@era[:checks]['201812215555555557'][:number_of_claims]).to eq(2)
378
1039
  end
379
- it 'returns the Account number' do
380
- expect(@era[:checks]['201812215555555556'][:eras][1][:account_number]).to eq('M111')
1040
+ it 'returns the NPI or Tax ID' do
1041
+ expect(@era[:checks]['201812215555555557'][:npi_tax_id]).to eq('1212121212')
381
1042
  end
382
- it 'returns the Status' do
383
- expect(@era[:checks]['201812215555555556'][:eras][1][:status]).to eq('PROCESSED AS SECONDARY')
1043
+ it 'returns the payee' do
1044
+ expect(@era[:checks]['201812215555555557'][:payee]).to eq('ABC COMPANY LLC')
384
1045
  end
385
1046
  it 'returns the Payer name' do
386
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_name]).to eq('ABC HEALTHCARE WEST')
1047
+ expect(@era[:checks]['201812215555555557'][:payer_name]).to eq('ABC HEALTHCARE EAST')
387
1048
  end
388
1049
  it 'returns the Payer address' do
389
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_address]).to eq('50 EAST RD')
1050
+ expect(@era[:checks]['201812215555555557'][:payer_address]).to eq('ONE CIRCLE RD')
390
1051
  end
391
1052
  it 'returns the Payer city' do
392
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_city]).to eq('ANYWHERE')
1053
+ expect(@era[:checks]['201812215555555557'][:payer_city]).to eq('SOMEWHERE')
393
1054
  end
394
1055
  it 'returns the Payer state' do
395
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_state]).to eq('TN')
1056
+ expect(@era[:checks]['201812215555555557'][:payer_state]).to eq('GA')
396
1057
  end
397
1058
  it 'returns the Payer zip code' do
398
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_zip_code]).to eq('00002')
1059
+ expect(@era[:checks]['201812215555555557'][:payer_zip_code]).to eq('11111')
399
1060
  end
400
1061
  it 'returns the Payer tax id' do
401
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_tax_id]).to eq('11-1111111')
402
- end
403
- it 'returns the Payer claim control number' do
404
- expect(@era[:checks]['201812215555555556'][:eras][1][:payer_claim_control_number]).to eq('BT1111111141')
405
- end
406
- it 'returns the Claim statement period start' do
407
- expect(@era[:checks]['201812215555555556'][:eras][1][:claim_statement_period_start]).to eq(nil)
1062
+ expect(@era[:checks]['201812215555555557'][:payer_tax_id]).to eq('11-1111110')
408
1063
  end
409
- it 'returns the Claim statement period end' do
410
- expect(@era[:checks]['201812215555555556'][:eras][1][:claim_statement_period_end]).to eq(nil)
1064
+ it 'returns the date' do
1065
+ expect(@era[:checks]['201812215555555557'][:date]).to eq('12/21/2018')
411
1066
  end
412
1067
 
413
- context 'Line item #0' do
414
- it 'returns the Date of service (string mm/dd/yyyy)' do
415
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:service_date]).to eq('10/25/2017')
416
- end
417
- it 'returns the CPT code' do
418
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:cpt_code]).to eq('92507')
419
- end
420
- it 'returns the Charge amount (integer)' do
421
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:charge_amount]).to eq(10000)
422
- end
423
- it 'returns the Payment amount (integer)' do
424
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:payment_amount]).to eq(10000)
425
- end
426
- it 'returns the Total adjustment amount (integer)' do
427
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:total_adjustment_amount]).to eq(0)
428
- end
429
- it 'returns the Remarks' do
430
- expect(@era[:checks]['201812215555555556'][:eras][1][:line_items][0][:remarks]).to eq('NO REMARKS')
431
- end
432
- end
433
- end
434
- end
435
-
436
- context 'Check #201812215555555557' do
437
- it 'returns the check number' do
438
- expect(@era[:checks]['201812215555555557'][:check_number]).to eq('201812215555555557')
439
- end
440
- it 'returns the amount' do
441
- expect(@era[:checks]['201812215555555557'][:amount]).to eq(500)
442
- end
443
- it 'returns the number of claims' do
444
- expect(@era[:checks]['201812215555555557'][:number_of_claims]).to eq(2)
445
- end
446
- it 'returns the NPI or Tax ID' do
447
- expect(@era[:checks]['201812215555555557'][:npi_tax_id]).to eq('1212121212')
448
- end
449
- it 'returns the payee' do
450
- expect(@era[:checks]['201812215555555557'][:payee]).to eq('ABC COMPANY LLC')
451
- end
452
- it 'returns the date' do
453
- expect(@era[:checks]['201812215555555557'][:date]).to eq('12/21/2018')
454
- end
455
-
456
- context 'ERA #0' do
457
- it 'returns the ERA text' do
458
- text = <<-EOF
1068
+ context 'ERA #0' do
1069
+ it 'returns the ERA text' do
1070
+ text = <<-EOF
459
1071
  --------------------------------------------------------------------------------------------------------------------------------------------------------
460
1072
  Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
461
1073
  201812215555555557 ZECM11111112 LASTNAME, 45.00 0.00 M111 DENIED ABC HEALTHCARE EAST
@@ -470,97 +1082,79 @@ Check# Patient ID Last,First Charge Amt
470
1082
 
471
1083
  Adjustment Group Adj Amt Translated Reason Code
472
1084
  CONTRACTUAL OBLIGATIONS 45.00 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
473
- EOF
474
- expect(@era[:checks]['201812215555555557'][:eras][0][:era_text]).to eq(text.strip)
475
- end
476
- it 'returns the Patient ID' do
477
- expect(@era[:checks]['201812215555555557'][:eras][0][:patient_id]).to eq('ZECM11111112')
478
- end
479
- it 'returns the Patient name' do
480
- expect(@era[:checks]['201812215555555557'][:eras][0][:patient_name]).to eq('LASTNAME,')
481
- end
482
- it 'returns the Patient last name (titlized)' do
483
- expect(@era[:checks]['201812215555555557'][:eras][0][:patient_last_name]).to eq('Lastname')
484
- end
485
- it 'returns the Patient first name (titlized)' do
486
- expect(@era[:checks]['201812215555555557'][:eras][0][:patient_first_name]).to eq(nil)
487
- end
488
- it 'returns the Total charge amount (integer)' do
489
- expect(@era[:checks]['201812215555555557'][:eras][0][:charge_amount]).to eq(4500)
490
- end
491
- it 'returns the Total payment amount (integer)' do
492
- expect(@era[:checks]['201812215555555557'][:eras][0][:payment_amount]).to eq(0)
493
- end
494
- it 'returns the Account number' do
495
- expect(@era[:checks]['201812215555555557'][:eras][0][:account_number]).to eq('M111')
496
- end
497
- it 'returns the Status' do
498
- expect(@era[:checks]['201812215555555557'][:eras][0][:status]).to eq('DENIED')
499
- end
500
- it 'returns the Payer name' do
501
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_name]).to eq('ABC HEALTHCARE EAST')
502
- end
503
- it 'returns the Payer address' do
504
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_address]).to eq('ONE CIRCLE RD')
505
- end
506
- it 'returns the Payer city' do
507
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_city]).to eq('SOMEWHERE')
508
- end
509
- it 'returns the Payer state' do
510
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_state]).to eq('GA')
511
- end
512
- it 'returns the Payer zip code' do
513
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_zip_code]).to eq('11111')
514
- end
515
- it 'returns the Payer tax id' do
516
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_tax_id]).to eq('11-1111110')
517
- end
518
- it 'returns the Payer claim control number' do
519
- expect(@era[:checks]['201812215555555557'][:eras][0][:payer_claim_control_number]).to eq('BT1111111131')
520
- end
521
- it 'returns the Claim statement period start' do
522
- expect(@era[:checks]['201812215555555557'][:eras][0][:claim_statement_period_start]).to eq('01/30/2019')
523
- end
524
- it 'returns the Claim statement period end' do
525
- expect(@era[:checks]['201812215555555557'][:eras][0][:claim_statement_period_end]).to eq('01/30/2019')
526
- end
527
-
528
- context 'Line item #0' do
529
- it 'returns the Date of service (string mm/dd/yyyy)' do
530
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:service_date]).to eq('10/28/2017')
1085
+ EOF
1086
+ expect(@era[:checks]['201812215555555557'][:eras][0][:era_text]).to eq(text.strip)
1087
+ end
1088
+ it 'returns the Patient ID' do
1089
+ expect(@era[:checks]['201812215555555557'][:eras][0][:patient_id]).to eq('ZECM11111112')
1090
+ end
1091
+ it 'returns the Patient name' do
1092
+ expect(@era[:checks]['201812215555555557'][:eras][0][:patient_name]).to eq('LASTNAME,')
531
1093
  end
532
- it 'returns the CPT code' do
533
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:cpt_code]).to eq('92507')
1094
+ it 'returns the Patient last name (titlized)' do
1095
+ expect(@era[:checks]['201812215555555557'][:eras][0][:patient_last_name]).to eq('Lastname')
534
1096
  end
535
- it 'returns the Charge amount (integer)' do
536
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:charge_amount]).to eq(4500)
1097
+ it 'returns the Patient first name (titlized)' do
1098
+ expect(@era[:checks]['201812215555555557'][:eras][0][:patient_first_name]).to eq(nil)
537
1099
  end
538
- it 'returns the Payment amount (integer)' do
539
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:payment_amount]).to eq(0)
1100
+ it 'returns the Total charge amount (integer)' do
1101
+ expect(@era[:checks]['201812215555555557'][:eras][0][:charge_amount]).to eq(4500)
540
1102
  end
541
- it 'returns the Total adjustment amount (integer)' do
542
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(4500)
1103
+ it 'returns the Total payment amount (integer)' do
1104
+ expect(@era[:checks]['201812215555555557'][:eras][0][:payment_amount]).to eq(0)
543
1105
  end
544
- it 'returns the Remarks' do
545
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:remarks]).to eq('NO REMARKS')
1106
+ it 'returns the Account number' do
1107
+ expect(@era[:checks]['201812215555555557'][:eras][0][:account_number]).to eq('M111')
546
1108
  end
547
- context 'Adjustment group #0' do
548
- it 'returns the Adjustment group' do
549
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('CONTRACTUAL OBLIGATIONS')
1109
+ it 'returns the Status' do
1110
+ expect(@era[:checks]['201812215555555557'][:eras][0][:status]).to eq('DENIED')
1111
+ end
1112
+ it 'returns the Payer claim control number' do
1113
+ expect(@era[:checks]['201812215555555557'][:eras][0][:payer_claim_control_number]).to eq('BT1111111131')
1114
+ end
1115
+ it 'returns the Claim statement period start' do
1116
+ expect(@era[:checks]['201812215555555557'][:eras][0][:claim_statement_period_start]).to eq('01/30/2019')
1117
+ end
1118
+ it 'returns the Claim statement period end' do
1119
+ expect(@era[:checks]['201812215555555557'][:eras][0][:claim_statement_period_end]).to eq('01/30/2019')
1120
+ end
1121
+
1122
+ context 'Line item #0' do
1123
+ it 'returns the Date of service (string mm/dd/yyyy)' do
1124
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:service_date]).to eq('10/28/2017')
1125
+ end
1126
+ it 'returns the CPT code' do
1127
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:cpt_code]).to eq('92507')
1128
+ end
1129
+ it 'returns the Charge amount (integer)' do
1130
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:charge_amount]).to eq(4500)
550
1131
  end
551
- it 'returns the Adjustment amount (integer)' do
552
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(4500)
1132
+ it 'returns the Payment amount (integer)' do
1133
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:payment_amount]).to eq(0)
553
1134
  end
554
- it 'returns the Translated reason code' do
555
- expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
1135
+ it 'returns the Total adjustment amount (integer)' do
1136
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:total_adjustment_amount]).to eq(4500)
1137
+ end
1138
+ it 'returns the Remarks' do
1139
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:remarks]).to eq('NO REMARKS')
1140
+ end
1141
+ context 'Adjustment group #0' do
1142
+ it 'returns the Adjustment group' do
1143
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('CONTRACTUAL OBLIGATIONS')
1144
+ end
1145
+ it 'returns the Adjustment amount (integer)' do
1146
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(4500)
1147
+ end
1148
+ it 'returns the Translated reason code' do
1149
+ expect(@era[:checks]['201812215555555557'][:eras][0][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
1150
+ end
556
1151
  end
557
1152
  end
558
1153
  end
559
- end
560
1154
 
561
- context 'ERA #1' do
562
- it 'returns the ERA text' do
563
- text = <<-EOF
1155
+ context 'ERA #1' do
1156
+ it 'returns the ERA text' do
1157
+ text = <<-EOF
564
1158
  --------------------------------------------------------------------------------------------------------------------------------------------------------
565
1159
  Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
566
1160
  201812215555555557 ZECM11111112 WORLD,HELLO 65.00 5.00 M111 PROCESSED AS PRIMARY, FWDED ABC HEALTHCARE EAST
@@ -575,156 +1169,139 @@ Check# Patient ID Last,First Charge Amt
575
1169
  Adjustment Group Adj Amt Translated Reason Code
576
1170
  CONTRACTUAL OBLIGATIONS 16.20 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
577
1171
  OTHER ADJUSTMENTS 43.80 PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.
578
- EOF
579
- expect(@era[:checks]['201812215555555557'][:eras][1][:era_text]).to eq(text.strip)
580
- end
581
- it 'returns the Patient ID' do
582
- expect(@era[:checks]['201812215555555557'][:eras][1][:patient_id]).to eq('ZECM11111112')
583
- end
584
- it 'returns the Patient name' do
585
- expect(@era[:checks]['201812215555555557'][:eras][1][:patient_name]).to eq('WORLD,HELLO')
586
- end
587
- it 'returns the Patient last name (titlized)' do
588
- expect(@era[:checks]['201812215555555557'][:eras][1][:patient_last_name]).to eq('World')
589
- end
590
- it 'returns the Patient first name (titlized)' do
591
- expect(@era[:checks]['201812215555555557'][:eras][1][:patient_first_name]).to eq('Hello')
592
- end
593
- it 'returns the Total charge amount (integer)' do
594
- expect(@era[:checks]['201812215555555557'][:eras][1][:charge_amount]).to eq(6500)
595
- end
596
- it 'returns the Total payment amount (integer)' do
597
- expect(@era[:checks]['201812215555555557'][:eras][1][:payment_amount]).to eq(500)
598
- end
599
- it 'returns the Account number' do
600
- expect(@era[:checks]['201812215555555557'][:eras][1][:account_number]).to eq('M111')
601
- end
602
- it 'returns the Status' do
603
- expect(@era[:checks]['201812215555555557'][:eras][1][:status]).to eq('PROCESSED AS PRIMARY, FWDED')
604
- end
605
- it 'returns the Payer name' do
606
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_name]).to eq('ABC HEALTHCARE EAST')
607
- end
608
- it 'returns the Payer address' do
609
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_address]).to eq('ONE CIRCLE RD')
610
- end
611
- it 'returns the Payer city' do
612
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_city]).to eq('SOMEWHERE')
613
- end
614
- it 'returns the Payer state' do
615
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_state]).to eq('GA')
616
- end
617
- it 'returns the Payer zip code' do
618
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_zip_code]).to eq('11111')
619
- end
620
- it 'returns the Payer tax id' do
621
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_tax_id]).to eq('11-1111110')
622
- end
623
- it 'returns the Payer claim control number' do
624
- expect(@era[:checks]['201812215555555557'][:eras][1][:payer_claim_control_number]).to eq('BT1111111121')
625
- end
626
- it 'returns the Claim statement period start' do
627
- expect(@era[:checks]['201812215555555557'][:eras][1][:claim_statement_period_start]).to eq(nil)
628
- end
629
- it 'returns the Claim statement period end' do
630
- expect(@era[:checks]['201812215555555557'][:eras][1][:claim_statement_period_end]).to eq(nil)
631
- end
632
-
633
- context 'Line item #0' do
634
- it 'returns the Date of service (string mm/dd/yyyy)' do
635
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:service_date]).to eq('10/30/2017')
1172
+ EOF
1173
+ expect(@era[:checks]['201812215555555557'][:eras][1][:era_text]).to eq(text.strip)
1174
+ end
1175
+ it 'returns the Patient ID' do
1176
+ expect(@era[:checks]['201812215555555557'][:eras][1][:patient_id]).to eq('ZECM11111112')
1177
+ end
1178
+ it 'returns the Patient name' do
1179
+ expect(@era[:checks]['201812215555555557'][:eras][1][:patient_name]).to eq('WORLD,HELLO')
1180
+ end
1181
+ it 'returns the Patient last name (titlized)' do
1182
+ expect(@era[:checks]['201812215555555557'][:eras][1][:patient_last_name]).to eq('World')
636
1183
  end
637
- it 'returns the CPT code' do
638
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:cpt_code]).to eq('92507')
1184
+ it 'returns the Patient first name (titlized)' do
1185
+ expect(@era[:checks]['201812215555555557'][:eras][1][:patient_first_name]).to eq('Hello')
639
1186
  end
640
- it 'returns the Charge amount (integer)' do
641
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:charge_amount]).to eq(6500)
1187
+ it 'returns the Total charge amount (integer)' do
1188
+ expect(@era[:checks]['201812215555555557'][:eras][1][:charge_amount]).to eq(6500)
642
1189
  end
643
- it 'returns the Payment amount (integer)' do
644
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:payment_amount]).to eq(500)
1190
+ it 'returns the Total payment amount (integer)' do
1191
+ expect(@era[:checks]['201812215555555557'][:eras][1][:payment_amount]).to eq(500)
645
1192
  end
646
- it 'returns the Total adjustment amount (integer)' do
647
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:total_adjustment_amount]).to eq(6000)
1193
+ it 'returns the Account number' do
1194
+ expect(@era[:checks]['201812215555555557'][:eras][1][:account_number]).to eq('M111')
648
1195
  end
649
- it 'returns the Remarks' do
650
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:remarks]).to eq('NO REMARKS')
1196
+ it 'returns the Status' do
1197
+ expect(@era[:checks]['201812215555555557'][:eras][1][:status]).to eq('PROCESSED AS PRIMARY, FWDED')
651
1198
  end
652
- context 'Adjustment group #0' do
653
- it 'returns the Adjustment group' do
654
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('CONTRACTUAL OBLIGATIONS')
1199
+ it 'returns the Payer claim control number' do
1200
+ expect(@era[:checks]['201812215555555557'][:eras][1][:payer_claim_control_number]).to eq('BT1111111121')
1201
+ end
1202
+ it 'returns the Claim statement period start' do
1203
+ expect(@era[:checks]['201812215555555557'][:eras][1][:claim_statement_period_start]).to eq(nil)
1204
+ end
1205
+ it 'returns the Claim statement period end' do
1206
+ expect(@era[:checks]['201812215555555557'][:eras][1][:claim_statement_period_end]).to eq(nil)
1207
+ end
1208
+
1209
+ context 'Line item #0' do
1210
+ it 'returns the Date of service (string mm/dd/yyyy)' do
1211
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:service_date]).to eq('10/30/2017')
655
1212
  end
656
- it 'returns the Adjustment amount (integer)' do
657
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(1620)
1213
+ it 'returns the CPT code' do
1214
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:cpt_code]).to eq('92507')
658
1215
  end
659
- it 'returns the Translated reason code' do
660
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
1216
+ it 'returns the Charge amount (integer)' do
1217
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:charge_amount]).to eq(6500)
661
1218
  end
662
- end
663
- context 'Adjustment group #1' do
664
- it 'returns the Adjustment group' do
665
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][1][:adjustment_group]).to eq('OTHER ADJUSTMENTS')
1219
+ it 'returns the Payment amount (integer)' do
1220
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:payment_amount]).to eq(500)
1221
+ end
1222
+ it 'returns the Total adjustment amount (integer)' do
1223
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:total_adjustment_amount]).to eq(6000)
666
1224
  end
667
- it 'returns the Adjustment amount (integer)' do
668
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][1][:adjustment_amount]).to eq(4380)
1225
+ it 'returns the Remarks' do
1226
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:remarks]).to eq('NO REMARKS')
669
1227
  end
670
- it 'returns the Translated reason code' do
671
- expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][1][:translated_reason_code]).to eq('PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.')
1228
+ context 'Adjustment group #0' do
1229
+ it 'returns the Adjustment group' do
1230
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][0][:adjustment_group]).to eq('CONTRACTUAL OBLIGATIONS')
1231
+ end
1232
+ it 'returns the Adjustment amount (integer)' do
1233
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][0][:adjustment_amount]).to eq(1620)
1234
+ end
1235
+ it 'returns the Translated reason code' do
1236
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][0][:translated_reason_code]).to eq('CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.')
1237
+ end
1238
+ end
1239
+ context 'Adjustment group #1' do
1240
+ it 'returns the Adjustment group' do
1241
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][1][:adjustment_group]).to eq('OTHER ADJUSTMENTS')
1242
+ end
1243
+ it 'returns the Adjustment amount (integer)' do
1244
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][1][:adjustment_amount]).to eq(4380)
1245
+ end
1246
+ it 'returns the Translated reason code' do
1247
+ expect(@era[:checks]['201812215555555557'][:eras][1][:line_items][0][:adjustment_groups][1][:translated_reason_code]).to eq('PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.')
1248
+ end
672
1249
  end
673
1250
  end
674
1251
  end
675
1252
  end
676
- end
677
1253
 
678
- context 'Adjustments' do
679
- context 'Adjustment #0' do
680
- it 'returns Adjustment date (string mm/dd/yyyy)' do
681
- expect(@era[:adjustments][0][:adjustment_date]).to eq('12/30/2018')
682
- end
683
- it 'returns Provider ID' do
684
- expect(@era[:adjustments][0][:provider_id]).to eq('1111111111')
685
- end
686
- it 'returns Reference ID' do
687
- expect(@era[:adjustments][0][:reference_id]).to eq('BBBBBBVP31M0')
688
- end
689
- it 'returns Adjustment amount (integer)' do
690
- expect(@era[:adjustments][0][:adjustment_amount]).to eq(-4281)
691
- end
692
- it 'returns reason' do
693
- expect(@era[:adjustments][0][:reason]).to eq('Overpayment Recover')
694
- end
695
- end
696
- context 'Adjustment #1' do
697
- it 'returns Adjustment date (string mm/dd/yyyy)' do
698
- expect(@era[:adjustments][1][:adjustment_date]).to eq('12/31/2018')
699
- end
700
- it 'returns Provider ID' do
701
- expect(@era[:adjustments][1][:provider_id]).to eq('1111111112')
702
- end
703
- it 'returns Reference ID' do
704
- expect(@era[:adjustments][1][:reference_id]).to eq('20170514 1710101112 06')
705
- end
706
- it 'returns Adjustment amount (integer)' do
707
- expect(@era[:adjustments][1][:adjustment_amount]).to eq(-3344)
708
- end
709
- it 'returns reason' do
710
- expect(@era[:adjustments][1][:reason]).to eq('Overpayment Recover')
711
- end
712
- end
713
- context 'Adjustment #2' do
714
- it 'returns Adjustment date (string mm/dd/yyyy)' do
715
- expect(@era[:adjustments][2][:adjustment_date]).to eq('12/30/2018')
716
- end
717
- it 'returns Provider ID' do
718
- expect(@era[:adjustments][2][:provider_id]).to eq('1111111113')
719
- end
720
- it 'returns Reference ID' do
721
- expect(@era[:adjustments][2][:reference_id]).to eq('BBBBBBVP31M2')
1254
+ context 'Adjustments' do
1255
+ context 'Adjustment #0' do
1256
+ it 'returns Adjustment date (string mm/dd/yyyy)' do
1257
+ expect(@era[:adjustments][0][:adjustment_date]).to eq('12/30/2018')
1258
+ end
1259
+ it 'returns Provider ID' do
1260
+ expect(@era[:adjustments][0][:provider_id]).to eq('1111111111')
1261
+ end
1262
+ it 'returns Reference ID' do
1263
+ expect(@era[:adjustments][0][:reference_id]).to eq('BBBBBBVP31M0')
1264
+ end
1265
+ it 'returns Adjustment amount (integer)' do
1266
+ expect(@era[:adjustments][0][:adjustment_amount]).to eq(-4281)
1267
+ end
1268
+ it 'returns reason' do
1269
+ expect(@era[:adjustments][0][:reason]).to eq('Overpayment Recover')
1270
+ end
722
1271
  end
723
- it 'returns Adjustment amount (integer)' do
724
- expect(@era[:adjustments][2][:adjustment_amount]).to eq(3345)
1272
+ context 'Adjustment #1' do
1273
+ it 'returns Adjustment date (string mm/dd/yyyy)' do
1274
+ expect(@era[:adjustments][1][:adjustment_date]).to eq('12/31/2018')
1275
+ end
1276
+ it 'returns Provider ID' do
1277
+ expect(@era[:adjustments][1][:provider_id]).to eq('1111111112')
1278
+ end
1279
+ it 'returns Reference ID' do
1280
+ expect(@era[:adjustments][1][:reference_id]).to eq('20170514 1710101112 06')
1281
+ end
1282
+ it 'returns Adjustment amount (integer)' do
1283
+ expect(@era[:adjustments][1][:adjustment_amount]).to eq(-3344)
1284
+ end
1285
+ it 'returns reason' do
1286
+ expect(@era[:adjustments][1][:reason]).to eq('Overpayment Recover')
1287
+ end
725
1288
  end
726
- it 'returns reason' do
727
- expect(@era[:adjustments][2][:reason]).to eq('Overpayment Recover')
1289
+ context 'Adjustment #2' do
1290
+ it 'returns Adjustment date (string mm/dd/yyyy)' do
1291
+ expect(@era[:adjustments][2][:adjustment_date]).to eq('12/30/2018')
1292
+ end
1293
+ it 'returns Provider ID' do
1294
+ expect(@era[:adjustments][2][:provider_id]).to eq('1111111113')
1295
+ end
1296
+ it 'returns Reference ID' do
1297
+ expect(@era[:adjustments][2][:reference_id]).to eq('BBBBBBVP31M2')
1298
+ end
1299
+ it 'returns Adjustment amount (integer)' do
1300
+ expect(@era[:adjustments][2][:adjustment_amount]).to eq(3345)
1301
+ end
1302
+ it 'returns reason' do
1303
+ expect(@era[:adjustments][2][:reason]).to eq('Overpayment Recover')
1304
+ end
728
1305
  end
729
1306
  end
730
1307
  end