era_835_parser 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/lib/era_835_parser/parser.rb +7 -1
- data/lib/era_835_parser/version.rb +1 -1
- data/spec/era_835_parser_spec.rb +95 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b8165088acaa6a3976f256236ae0e13a74b9e5b671095caf6be5b08d14af1da
|
4
|
+
data.tar.gz: fd280dae00dcf64a92985c864d4b4f54500e2c2f68d370836d233691405d92e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f64e0ff363d2c7b0ad67f97305f17ae591796b5f8729c472478476d4d0af8a44a7268280917bb4730a59b1203452d4c9ca37075898f9ed4d425993ccae374bf5
|
7
|
+
data.tar.gz: e2246dcdaa68f1984ee6031170b45ff4054723d490d4b84361dac8eed0ddbba0693e6f547c5bf101624db7bca6dc633c29d0a975f072adf7fb410a411971b51b
|
data/README.md
CHANGED
@@ -33,6 +33,7 @@ era[:checks].each do |check_number, check|
|
|
33
33
|
puts check[:payee] # Check payee
|
34
34
|
puts check[:date] # Check date (string mm/dd/yyyy)
|
35
35
|
check[:eras].each do |era_counter, era|
|
36
|
+
puts era[:era_text] # ERA text
|
36
37
|
puts era[:patient_id] # Patient ID
|
37
38
|
puts era[:patient_name] # Patient name
|
38
39
|
puts era[:patient_last_name] # Patient last name (titlized)
|
@@ -18,6 +18,7 @@ module Era835Parser
|
|
18
18
|
individual_era = Hash.new
|
19
19
|
individual_line_item = Hash.new
|
20
20
|
check_number = ''
|
21
|
+
era_text = "--------------------------------------------------------------------------------------------------------------------------------------------------------\n"
|
21
22
|
|
22
23
|
# counters
|
23
24
|
adjustment_counter = 0
|
@@ -36,6 +37,7 @@ module Era835Parser
|
|
36
37
|
next_line_adjustment_group = false
|
37
38
|
|
38
39
|
open(file_path).readlines.each do |line|
|
40
|
+
era_text += line if eras_start && line !~ /-{10,}/i
|
39
41
|
|
40
42
|
if line.include?("Dear:")
|
41
43
|
era[:addressed_to] = line.gsub("Dear:", "").strip
|
@@ -189,15 +191,18 @@ module Era835Parser
|
|
189
191
|
era_counter = 0
|
190
192
|
eras = Hash.new
|
191
193
|
individual_era[:line_items] = line_items
|
194
|
+
individual_era[:era_text] = era_text.strip.gsub(/\r/, "")
|
192
195
|
eras[era_counter] = individual_era
|
193
196
|
era[:checks][check_number][:eras] = eras
|
194
197
|
else
|
195
198
|
era_counter = era[:checks][check_number][:eras].count
|
196
199
|
eras = Hash.new
|
197
200
|
individual_era[:line_items] = line_items
|
201
|
+
individual_era[:era_text] = era_text.strip.gsub(/\r/, "")
|
198
202
|
eras[era_counter] = individual_era
|
199
203
|
era[:checks][check_number][:eras] = era[:checks][check_number][:eras].merge(eras)
|
200
204
|
end
|
205
|
+
era_text = "--------------------------------------------------------------------------------------------------------------------------------------------------------\n"
|
201
206
|
end
|
202
207
|
end
|
203
208
|
|
@@ -225,16 +230,17 @@ module Era835Parser
|
|
225
230
|
era_counter = 0
|
226
231
|
eras = Hash.new
|
227
232
|
individual_era[:line_items] = line_items
|
233
|
+
individual_era[:era_text] = era_text.strip.gsub(/\r/, "")
|
228
234
|
eras[era_counter] = individual_era
|
229
235
|
era[:checks][check_number][:eras] = eras
|
230
236
|
else
|
231
237
|
era_counter = era[:checks][check_number][:eras].count
|
232
238
|
eras = Hash.new
|
233
239
|
individual_era[:line_items] = line_items
|
240
|
+
individual_era[:era_text] = era_text.strip.gsub(/\r/, "")
|
234
241
|
eras[era_counter] = individual_era
|
235
242
|
era[:checks][check_number][:eras] = era[:checks][check_number][:eras].merge(eras)
|
236
243
|
end
|
237
|
-
|
238
244
|
return era
|
239
245
|
end
|
240
246
|
end
|
data/spec/era_835_parser_spec.rb
CHANGED
@@ -75,6 +75,24 @@ RSpec.describe Era835Parser::Parser do
|
|
75
75
|
end
|
76
76
|
|
77
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
|
+
ONE CIRCLE RD
|
84
|
+
SOMEWHERE,GA 11111
|
85
|
+
Tax ID: 11-1111110
|
86
|
+
Payer Claim Control Number: 111111111000
|
87
|
+
|
88
|
+
Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
|
89
|
+
10/25/2018 92507 65.00 48.80 16.20 NO REMARKS
|
90
|
+
|
91
|
+
Adjustment Group Adj Amt Translated Reason Code
|
92
|
+
CONTRACTUAL OBLIGATIONS 16.20 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
|
93
|
+
EOF
|
94
|
+
expect(@era[:checks]['201812215555555555'][:eras][0][:era_text]).to eq(text.strip)
|
95
|
+
end
|
78
96
|
it 'returns the Patient ID' do
|
79
97
|
expect(@era[:checks]['201812215555555555'][:eras][0][:patient_id]).to eq('M11111110')
|
80
98
|
end
|
@@ -182,6 +200,30 @@ RSpec.describe Era835Parser::Parser do
|
|
182
200
|
end
|
183
201
|
|
184
202
|
context 'ERA #0' do
|
203
|
+
it 'returns the ERA text' do
|
204
|
+
text = <<-EOF
|
205
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------
|
206
|
+
Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
|
207
|
+
201812215555555556 ZECM11111111 DOE,JANE -65.00 -48.80 L111 OTHER ABC HEALTHCARE WEST
|
208
|
+
50 EAST RD
|
209
|
+
ANYWHERE,TN 00002-1111
|
210
|
+
Tax ID: 11-1111111
|
211
|
+
Payer Claim Control Number: BTBBB1111100
|
212
|
+
|
213
|
+
Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
|
214
|
+
10/27/2017 92507 -65.00 -48.80 -16.20 NO REMARKS
|
215
|
+
|
216
|
+
Adjustment Group Adj Amt Translated Reason Code
|
217
|
+
OTHER ADJUSTMENTS -16.20 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
|
218
|
+
|
219
|
+
Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
|
220
|
+
11/09/2017 92507 -5.00 0.00 -5.00 NO REMARKS
|
221
|
+
|
222
|
+
Adjustment Group Adj Amt Translated Reason Code
|
223
|
+
OTHER ADJUSTMENTS -5.00 PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.
|
224
|
+
EOF
|
225
|
+
expect(@era[:checks]['201812215555555556'][:eras][0][:era_text]).to eq(text.strip)
|
226
|
+
end
|
185
227
|
it 'returns the Patient ID' do
|
186
228
|
expect(@era[:checks]['201812215555555556'][:eras][0][:patient_id]).to eq('ZECM11111111')
|
187
229
|
end
|
@@ -300,6 +342,21 @@ RSpec.describe Era835Parser::Parser do
|
|
300
342
|
end
|
301
343
|
|
302
344
|
context 'ERA #1' do
|
345
|
+
it 'returns the ERA text' do
|
346
|
+
text = <<-EOF
|
347
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------
|
348
|
+
Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
|
349
|
+
201812215555555556 ZECM11111112 SMITH,JOSEPH 100.00 100.00 M111 PROCESSED AS SECONDARY ABC HEALTHCARE WEST
|
350
|
+
50 EAST RD
|
351
|
+
ANYWHERE,TN 00002
|
352
|
+
Tax ID: 11-1111111
|
353
|
+
Payer Claim Control Number: BT1111111141
|
354
|
+
|
355
|
+
Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
|
356
|
+
10/25/2017 92507 100.00 100.00 0.00 NO REMARKS
|
357
|
+
EOF
|
358
|
+
expect(@era[:checks]['201812215555555556'][:eras][1][:era_text]).to eq(text.strip)
|
359
|
+
end
|
303
360
|
it 'returns the Patient ID' do
|
304
361
|
expect(@era[:checks]['201812215555555556'][:eras][1][:patient_id]).to eq('ZECM11111112')
|
305
362
|
end
|
@@ -396,6 +453,25 @@ RSpec.describe Era835Parser::Parser do
|
|
396
453
|
end
|
397
454
|
|
398
455
|
context 'ERA #0' do
|
456
|
+
it 'returns the ERA text' do
|
457
|
+
text = <<-EOF
|
458
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------
|
459
|
+
Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
|
460
|
+
201812215555555557 ZECM11111112 LASTNAME,FIRST 45.00 0.00 M111 DENIED ABC HEALTHCARE EAST
|
461
|
+
ONE CIRCLE RD
|
462
|
+
SOMEWHERE,GA 11111
|
463
|
+
Tax ID: 11-1111110
|
464
|
+
Payer Claim Control Number: BT1111111131
|
465
|
+
Claim Statement Period: 01/30/2019 - 01/30/2019
|
466
|
+
|
467
|
+
Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
|
468
|
+
10/28/2017 92507 45.00 0.00 45.00 NO REMARKS
|
469
|
+
|
470
|
+
Adjustment Group Adj Amt Translated Reason Code
|
471
|
+
CONTRACTUAL OBLIGATIONS 45.00 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
|
472
|
+
EOF
|
473
|
+
expect(@era[:checks]['201812215555555557'][:eras][0][:era_text]).to eq(text.strip)
|
474
|
+
end
|
399
475
|
it 'returns the Patient ID' do
|
400
476
|
expect(@era[:checks]['201812215555555557'][:eras][0][:patient_id]).to eq('ZECM11111112')
|
401
477
|
end
|
@@ -482,6 +558,25 @@ RSpec.describe Era835Parser::Parser do
|
|
482
558
|
end
|
483
559
|
|
484
560
|
context 'ERA #1' do
|
561
|
+
it 'returns the ERA text' do
|
562
|
+
text = <<-EOF
|
563
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------
|
564
|
+
Check# Patient ID Last,First Charge Amt Payment Amt Accnt# Status Payer
|
565
|
+
201812215555555557 ZECM11111112 WORLD,HELLO 65.00 5.00 M111 PROCESSED AS PRIMARY, FWDED ABC HEALTHCARE EAST
|
566
|
+
ONE CIRCLE RD
|
567
|
+
SOMEWHERE,GA 11111
|
568
|
+
Tax ID: 11-1111110
|
569
|
+
Payer Claim Control Number: BT1111111121
|
570
|
+
|
571
|
+
Line Item: Svc Date CPT Charge Amt Payment Amt Total Adj Amt Remarks
|
572
|
+
10/30/2017 92507 65.00 5.00 60.00 NO REMARKS
|
573
|
+
|
574
|
+
Adjustment Group Adj Amt Translated Reason Code
|
575
|
+
CONTRACTUAL OBLIGATIONS 16.20 CHARGES EXCEED YOUR CONTRACTED/LEGISLATED FEE ARRANGEMENT.
|
576
|
+
OTHER ADJUSTMENTS 43.80 PAYMENT ADJUSTED BECAUSE CHARGES HAVE BEEN PAID BY ANOTHER PAYER.
|
577
|
+
EOF
|
578
|
+
expect(@era[:checks]['201812215555555557'][:eras][1][:era_text]).to eq(text.strip)
|
579
|
+
end
|
485
580
|
it 'returns the Patient ID' do
|
486
581
|
expect(@era[:checks]['201812215555555557'][:eras][1][:patient_id]).to eq('ZECM11111112')
|
487
582
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: era_835_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin S. Dias
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|