hippo 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +8 -0
- data/lib/hippo/field.rb +10 -1
- data/lib/hippo/segments/AAA.rb +39 -0
- data/lib/hippo/segments/EB.rb +207 -0
- data/lib/hippo/segments/EM.rb +63 -0
- data/lib/hippo/segments/EQ.rb +135 -0
- data/lib/hippo/segments/III.rb +195 -0
- data/lib/hippo/segments/INS.rb +171 -0
- data/lib/hippo/segments/LE.rb +15 -0
- data/lib/hippo/segments/LS.rb +15 -0
- data/lib/hippo/segments/MPI.rb +63 -0
- data/lib/hippo/segments/MSG.rb +31 -0
- data/lib/hippo/segments/PCT.rb +23 -0
- data/lib/hippo/segments/PDP.rb +31 -0
- data/lib/hippo/segments/PDR.rb +39 -0
- data/lib/hippo/segments/PID.rb +79 -0
- data/lib/hippo/segments/PKD.rb +47 -0
- data/lib/hippo/segments/SD1.rb +71 -0
- data/lib/hippo/segments/VEH.rb +159 -0
- data/lib/hippo/segments/base.rb +8 -0
- data/lib/hippo/segments.rb +16 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2000A.rb +32 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2000B.rb +32 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2000C.rb +41 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2000D.rb +41 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2100A.rb +21 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2100B.rb +55 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2100C.rb +97 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2100D.rb +97 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2110C.rb +67 -0
- data/lib/hippo/transaction_sets/HIPAA_270/L2110D.rb +47 -0
- data/lib/hippo/transaction_sets/HIPAA_270/base.rb +80 -0
- data/lib/hippo/transaction_sets/HIPAA_270.rb +17 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2000A.rb +44 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2000B.rb +32 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2000C.rb +41 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2000D.rb +41 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2100A.rb +43 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2100B.rb +67 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2100C.rb +124 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2100D.rb +124 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2110C.rb +98 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2110D.rb +98 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2115C.rb +16 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2115D.rb +16 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2120C.rb +54 -0
- data/lib/hippo/transaction_sets/HIPAA_271/L2120D.rb +54 -0
- data/lib/hippo/transaction_sets/HIPAA_271/base.rb +80 -0
- data/lib/hippo/transaction_sets/HIPAA_271.rb +21 -0
- data/lib/hippo/transaction_sets/base.rb +75 -21
- data/lib/hippo/transaction_sets/component.rb +6 -1
- data/lib/hippo/transaction_sets.rb +2 -0
- data/lib/hippo/version.rb +1 -1
- data/samples/837_L2000A_01.edi +1 -0
- data/samples/837_L2000A_02.edi +1 -0
- data/test/test_parser.rb +5 -0
- metadata +55 -7
@@ -0,0 +1,67 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
3
|
+
|
4
|
+
class L2110C < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2110C' #Subscriber Eligibility or Benefit Inquiry
|
6
|
+
|
7
|
+
#Subscriber Eligibility or Benefit Inquiry
|
8
|
+
segment Hippo::Segments::EQ,
|
9
|
+
:name => 'Subscriber Eligibility or Benefit Inquiry',
|
10
|
+
:minimum => 0,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 1300
|
13
|
+
|
14
|
+
#Subscriber Spend Down Amount
|
15
|
+
segment Hippo::Segments::AMT,
|
16
|
+
:name => 'Subscriber Spend Down Amount',
|
17
|
+
:minimum => 0,
|
18
|
+
:maximum => 1,
|
19
|
+
:position => 1350,
|
20
|
+
:identified_by => {
|
21
|
+
'AMT01' => 'R'
|
22
|
+
}
|
23
|
+
|
24
|
+
#Subscriber Spend Down Total Billed Amount
|
25
|
+
segment Hippo::Segments::AMT,
|
26
|
+
:name => 'Subscriber Spend Down Total Billed Amount',
|
27
|
+
:minimum => 0,
|
28
|
+
:maximum => 1,
|
29
|
+
:position => 1355,
|
30
|
+
:identified_by => {
|
31
|
+
'AMT01' => 'PB'
|
32
|
+
}
|
33
|
+
|
34
|
+
#Subscriber Eligibility or Benefit Additional Inquiry Information
|
35
|
+
segment Hippo::Segments::III,
|
36
|
+
:name => 'Subscriber Eligibility or Benefit Additional Inquiry Information',
|
37
|
+
:minimum => 0,
|
38
|
+
:maximum => 1,
|
39
|
+
:position => 1390,
|
40
|
+
:identified_by => {
|
41
|
+
'III01' => 'ZZ'
|
42
|
+
}
|
43
|
+
|
44
|
+
#Subscriber Additional Information
|
45
|
+
segment Hippo::Segments::REF,
|
46
|
+
:name => 'Subscriber Additional Information',
|
47
|
+
:minimum => 0,
|
48
|
+
:maximum => 1,
|
49
|
+
:position => 1400,
|
50
|
+
:identified_by => {
|
51
|
+
'REF01' => ["9F", "G1"]
|
52
|
+
}
|
53
|
+
|
54
|
+
#Subscriber Eligibility/Benefit Date
|
55
|
+
segment Hippo::Segments::DTP,
|
56
|
+
:name => 'Subscriber Eligibility/Benefit Date',
|
57
|
+
:minimum => 0,
|
58
|
+
:maximum => 1,
|
59
|
+
:position => 1500,
|
60
|
+
:identified_by => {
|
61
|
+
'DTP01' => '291',
|
62
|
+
'DTP02' => ["D8", "RD8"]
|
63
|
+
}
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
3
|
+
|
4
|
+
class L2110D < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2110D' #Dependent Eligibility or Benefit Inquiry
|
6
|
+
|
7
|
+
#Dependent Eligibility or Benefit Inquiry
|
8
|
+
segment Hippo::Segments::EQ,
|
9
|
+
:name => 'Dependent Eligibility or Benefit Inquiry',
|
10
|
+
:minimum => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 1300
|
13
|
+
|
14
|
+
#Dependent Eligibility or Benefit Additional Inquiry Information
|
15
|
+
segment Hippo::Segments::III,
|
16
|
+
:name => 'Dependent Eligibility or Benefit Additional Inquiry Information',
|
17
|
+
:minimum => 0,
|
18
|
+
:maximum => 1,
|
19
|
+
:position => 1390,
|
20
|
+
:identified_by => {
|
21
|
+
'III01' => 'ZZ'
|
22
|
+
}
|
23
|
+
|
24
|
+
#Dependent Additional Information
|
25
|
+
segment Hippo::Segments::REF,
|
26
|
+
:name => 'Dependent Additional Information',
|
27
|
+
:minimum => 0,
|
28
|
+
:maximum => 1,
|
29
|
+
:position => 1400,
|
30
|
+
:identified_by => {
|
31
|
+
'REF01' => ["9F", "G1"]
|
32
|
+
}
|
33
|
+
|
34
|
+
#Dependent Eligibility/Benefit Date
|
35
|
+
segment Hippo::Segments::DTP,
|
36
|
+
:name => 'Dependent Eligibility/Benefit Date',
|
37
|
+
:minimum => 0,
|
38
|
+
:maximum => 1,
|
39
|
+
:position => 1500,
|
40
|
+
:identified_by => {
|
41
|
+
'DTP01' => '291',
|
42
|
+
'DTP02' => ["D8", "RD8"]
|
43
|
+
}
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
3
|
+
|
4
|
+
class Base < Hippo::TransactionSets::Base
|
5
|
+
|
6
|
+
#Transaction Set Header
|
7
|
+
segment Hippo::Segments::ST,
|
8
|
+
:name => 'Transaction Set Header',
|
9
|
+
:minimum => 1,
|
10
|
+
:maximum => 1,
|
11
|
+
:position => 100,
|
12
|
+
:identified_by => {
|
13
|
+
'ST01' => '270'
|
14
|
+
}
|
15
|
+
|
16
|
+
#Beginning of Hierarchical Transaction
|
17
|
+
segment Hippo::Segments::BHT,
|
18
|
+
:name => 'Beginning of Hierarchical Transaction',
|
19
|
+
:minimum => 1,
|
20
|
+
:maximum => 1,
|
21
|
+
:position => 200,
|
22
|
+
:identified_by => {
|
23
|
+
'BHT01' => '0022',
|
24
|
+
'BHT02' => ["01", "13"]
|
25
|
+
}
|
26
|
+
|
27
|
+
#Information Source Level
|
28
|
+
loop Hippo::TransactionSets::HIPAA_270::L2000A,
|
29
|
+
:name => 'Information Source Level',
|
30
|
+
:minimum => 1,
|
31
|
+
:maximum => 99999,
|
32
|
+
:position => 100,
|
33
|
+
:identified_by => {
|
34
|
+
'HL.HL03' => '20',
|
35
|
+
'HL.HL04' => '1'
|
36
|
+
}
|
37
|
+
|
38
|
+
#Information Receiver Level
|
39
|
+
loop Hippo::TransactionSets::HIPAA_270::L2000B,
|
40
|
+
:name => 'Information Receiver Level',
|
41
|
+
:minimum => 1,
|
42
|
+
:maximum => 99999,
|
43
|
+
:position => 100,
|
44
|
+
:identified_by => {
|
45
|
+
'HL.HL03' => '21',
|
46
|
+
'HL.HL04' => '1'
|
47
|
+
}
|
48
|
+
|
49
|
+
#Subscriber Level
|
50
|
+
loop Hippo::TransactionSets::HIPAA_270::L2000C,
|
51
|
+
:name => 'Subscriber Level',
|
52
|
+
:minimum => 1,
|
53
|
+
:maximum => 99999,
|
54
|
+
:position => 100,
|
55
|
+
:identified_by => {
|
56
|
+
'HL.HL03' => '22',
|
57
|
+
'HL.HL04' => ["0", "1"]
|
58
|
+
}
|
59
|
+
|
60
|
+
#Dependent Level
|
61
|
+
loop Hippo::TransactionSets::HIPAA_270::L2000D,
|
62
|
+
:name => 'Dependent Level',
|
63
|
+
:minimum => 0,
|
64
|
+
:maximum => 99999,
|
65
|
+
:position => 100,
|
66
|
+
:identified_by => {
|
67
|
+
'HL.HL03' => '23',
|
68
|
+
'HL.HL04' => '0'
|
69
|
+
}
|
70
|
+
|
71
|
+
#Transaction Set Trailer
|
72
|
+
segment Hippo::Segments::SE,
|
73
|
+
:name => 'Transaction Set Trailer',
|
74
|
+
:minimum => 1,
|
75
|
+
:maximum => 1,
|
76
|
+
:position => 1600
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
3
|
+
|
4
|
+
autoload :Base, 'hippo/transaction_sets/HIPAA_270/base'
|
5
|
+
autoload :L2000A, 'hippo/transaction_sets/HIPAA_270/L2000A'
|
6
|
+
autoload :L2000B, 'hippo/transaction_sets/HIPAA_270/L2000B'
|
7
|
+
autoload :L2000C, 'hippo/transaction_sets/HIPAA_270/L2000C'
|
8
|
+
autoload :L2000D, 'hippo/transaction_sets/HIPAA_270/L2000D'
|
9
|
+
autoload :L2100A, 'hippo/transaction_sets/HIPAA_270/L2100A'
|
10
|
+
autoload :L2100B, 'hippo/transaction_sets/HIPAA_270/L2100B'
|
11
|
+
autoload :L2100C, 'hippo/transaction_sets/HIPAA_270/L2100C'
|
12
|
+
autoload :L2100D, 'hippo/transaction_sets/HIPAA_270/L2100D'
|
13
|
+
autoload :L2110C, 'hippo/transaction_sets/HIPAA_270/L2110C'
|
14
|
+
autoload :L2110D, 'hippo/transaction_sets/HIPAA_270/L2110D'
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2000A < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2000A' #Information Source Level
|
6
|
+
|
7
|
+
#Information Source Level
|
8
|
+
segment Hippo::Segments::HL,
|
9
|
+
:name => 'Information Source Level',
|
10
|
+
:minimum => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 100,
|
13
|
+
:identified_by => {
|
14
|
+
'HL03' => '20',
|
15
|
+
'HL04' => ["0", "1"]
|
16
|
+
}
|
17
|
+
|
18
|
+
#Request Validation
|
19
|
+
segment Hippo::Segments::AAA,
|
20
|
+
:name => 'Request Validation',
|
21
|
+
:minimum => 0,
|
22
|
+
:maximum => 9,
|
23
|
+
:position => 250,
|
24
|
+
:identified_by => {
|
25
|
+
'AAA01' => ["N", "Y"],
|
26
|
+
'AAA03' => ["04", "41", "42", "79"],
|
27
|
+
'AAA04' => ["C", "N", "P", "R", "S", "Y"]
|
28
|
+
}
|
29
|
+
|
30
|
+
#Information Source Name
|
31
|
+
loop Hippo::TransactionSets::HIPAA_271::L2100A,
|
32
|
+
:name => 'Information Source Name',
|
33
|
+
:minimum => 1,
|
34
|
+
:maximum => 1,
|
35
|
+
:position => 300,
|
36
|
+
:identified_by => {
|
37
|
+
'NM1.NM101' => ["2B", "36", "GP", "P5", "PR"],
|
38
|
+
'NM1.NM102' => ["1", "2"],
|
39
|
+
'NM1.NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
|
40
|
+
}
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2000B < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2000B' #Information Receiver Level
|
6
|
+
|
7
|
+
#Information Receiver Level
|
8
|
+
segment Hippo::Segments::HL,
|
9
|
+
:name => 'Information Receiver Level',
|
10
|
+
:minimum => 0,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 100,
|
13
|
+
:identified_by => {
|
14
|
+
'HL03' => '21',
|
15
|
+
'HL04' => ["0", "1"]
|
16
|
+
}
|
17
|
+
|
18
|
+
#Information Receiver Name
|
19
|
+
loop Hippo::TransactionSets::HIPAA_271::L2100B,
|
20
|
+
:name => 'Information Receiver Name',
|
21
|
+
:minimum => 1,
|
22
|
+
:maximum => 1,
|
23
|
+
:position => 300,
|
24
|
+
:identified_by => {
|
25
|
+
'NM1.NM101' => ["1P", "2B", "36", "80", "FA", "GP", "P5", "PR"],
|
26
|
+
'NM1.NM102' => ["1", "2"],
|
27
|
+
'NM1.NM108' => ["24", "34", "FI", "PI", "PP", "SV", "XV", "XX"]
|
28
|
+
}
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2000C < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2000C' #Subscriber Level
|
6
|
+
|
7
|
+
#Subscriber Level
|
8
|
+
segment Hippo::Segments::HL,
|
9
|
+
:name => 'Subscriber Level',
|
10
|
+
:minimum => 0,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 100,
|
13
|
+
:identified_by => {
|
14
|
+
'HL03' => '22',
|
15
|
+
'HL04' => ["0", "1"]
|
16
|
+
}
|
17
|
+
|
18
|
+
#Subscriber Trace Number
|
19
|
+
segment Hippo::Segments::TRN,
|
20
|
+
:name => 'Subscriber Trace Number',
|
21
|
+
:minimum => 0,
|
22
|
+
:maximum => 3,
|
23
|
+
:position => 200,
|
24
|
+
:identified_by => {
|
25
|
+
'TRN01' => ["1", "2"]
|
26
|
+
}
|
27
|
+
|
28
|
+
#Subscriber Name
|
29
|
+
loop Hippo::TransactionSets::HIPAA_271::L2100C,
|
30
|
+
:name => 'Subscriber Name',
|
31
|
+
:minimum => 1,
|
32
|
+
:maximum => 1,
|
33
|
+
:position => 300,
|
34
|
+
:identified_by => {
|
35
|
+
'NM1.NM101' => 'IL',
|
36
|
+
'NM1.NM102' => ["1", "2"]
|
37
|
+
}
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2000D < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2000D' #Dependent Level
|
6
|
+
|
7
|
+
#Dependent Level
|
8
|
+
segment Hippo::Segments::HL,
|
9
|
+
:name => 'Dependent Level',
|
10
|
+
:minimum => 0,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 100,
|
13
|
+
:identified_by => {
|
14
|
+
'HL03' => '23',
|
15
|
+
'HL04' => '0'
|
16
|
+
}
|
17
|
+
|
18
|
+
#Dependent Trace Number
|
19
|
+
segment Hippo::Segments::TRN,
|
20
|
+
:name => 'Dependent Trace Number',
|
21
|
+
:minimum => 0,
|
22
|
+
:maximum => 3,
|
23
|
+
:position => 200,
|
24
|
+
:identified_by => {
|
25
|
+
'TRN01' => ["1", "2"]
|
26
|
+
}
|
27
|
+
|
28
|
+
#Dependent Name
|
29
|
+
loop Hippo::TransactionSets::HIPAA_271::L2100D,
|
30
|
+
:name => 'Dependent Name',
|
31
|
+
:minimum => 1,
|
32
|
+
:maximum => 1,
|
33
|
+
:position => 300,
|
34
|
+
:identified_by => {
|
35
|
+
'NM1.NM101' => '03',
|
36
|
+
'NM1.NM102' => '1'
|
37
|
+
}
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2100A < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2100A' #Information Source Name
|
6
|
+
|
7
|
+
#Information Source Name
|
8
|
+
segment Hippo::Segments::NM1,
|
9
|
+
:name => 'Information Source Name',
|
10
|
+
:minimum => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 300,
|
13
|
+
:identified_by => {
|
14
|
+
'NM101' => ["2B", "36", "GP", "P5", "PR"],
|
15
|
+
'NM102' => ["1", "2"],
|
16
|
+
'NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
|
17
|
+
}
|
18
|
+
|
19
|
+
#Information Source Contact Information
|
20
|
+
segment Hippo::Segments::PER,
|
21
|
+
:name => 'Information Source Contact Information',
|
22
|
+
:minimum => 0,
|
23
|
+
:maximum => 3,
|
24
|
+
:position => 800,
|
25
|
+
:identified_by => {
|
26
|
+
'PER01' => 'IC'
|
27
|
+
}
|
28
|
+
|
29
|
+
#Request Validation
|
30
|
+
segment Hippo::Segments::AAA,
|
31
|
+
:name => 'Request Validation',
|
32
|
+
:minimum => 0,
|
33
|
+
:maximum => 9,
|
34
|
+
:position => 850,
|
35
|
+
:identified_by => {
|
36
|
+
'AAA01' => ["N", "Y"],
|
37
|
+
'AAA03' => ["04", "41", "42", "79", "80", "T4"],
|
38
|
+
'AAA04' => ["C", "N", "P", "R", "S", "W", "X", "Y"]
|
39
|
+
}
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2100B < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2100B' #Information Receiver Name
|
6
|
+
|
7
|
+
#Information Receiver Name
|
8
|
+
segment Hippo::Segments::NM1,
|
9
|
+
:name => 'Information Receiver Name',
|
10
|
+
:minimum => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 300,
|
13
|
+
:identified_by => {
|
14
|
+
'NM101' => ["1P", "2B", "36", "80", "FA", "GP", "P5", "PR"],
|
15
|
+
'NM102' => ["1", "2"],
|
16
|
+
'NM108' => ["24", "34", "FI", "PI", "PP", "SV", "XV", "XX"]
|
17
|
+
}
|
18
|
+
|
19
|
+
#Information Receiver Additional Identification
|
20
|
+
segment Hippo::Segments::REF,
|
21
|
+
:name => 'Information Receiver Additional Identification',
|
22
|
+
:minimum => 0,
|
23
|
+
:maximum => 9,
|
24
|
+
:position => 400,
|
25
|
+
:identified_by => {
|
26
|
+
'REF01' => ["0B", "1C", "1D", "1J", "4A", "CT", "EL", "EO", "HPI", "JD", "N5", "N7", "Q4", "SY", "TJ"]
|
27
|
+
}
|
28
|
+
|
29
|
+
#Information Receiver Address
|
30
|
+
segment Hippo::Segments::N3,
|
31
|
+
:name => 'Information Receiver Address',
|
32
|
+
:minimum => 0,
|
33
|
+
:maximum => 1,
|
34
|
+
:position => 600
|
35
|
+
|
36
|
+
#Information Receiver City, State, ZIP Code
|
37
|
+
segment Hippo::Segments::N4,
|
38
|
+
:name => 'Information Receiver City, State, ZIP Code',
|
39
|
+
:minimum => 0,
|
40
|
+
:maximum => 1,
|
41
|
+
:position => 700
|
42
|
+
|
43
|
+
#Information Receiver Request Validation
|
44
|
+
segment Hippo::Segments::AAA,
|
45
|
+
:name => 'Information Receiver Request Validation',
|
46
|
+
:minimum => 0,
|
47
|
+
:maximum => 9,
|
48
|
+
:position => 850,
|
49
|
+
:identified_by => {
|
50
|
+
'AAA01' => ["N", "Y"],
|
51
|
+
'AAA03' => ["15", "41", "43", "44", "45", "46", "47", "48", "50", "51", "79", "97", "T4"],
|
52
|
+
'AAA04' => ["C", "N", "R", "S", "W", "X", "Y"]
|
53
|
+
}
|
54
|
+
|
55
|
+
#Information Receiver Provider Information
|
56
|
+
segment Hippo::Segments::PRV,
|
57
|
+
:name => 'Information Receiver Provider Information',
|
58
|
+
:minimum => 0,
|
59
|
+
:maximum => 1,
|
60
|
+
:position => 900,
|
61
|
+
:identified_by => {
|
62
|
+
'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
|
63
|
+
}
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_271
|
3
|
+
|
4
|
+
class L2100C < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2100C' #Subscriber Name
|
6
|
+
|
7
|
+
#Subscriber Name
|
8
|
+
segment Hippo::Segments::NM1,
|
9
|
+
:name => 'Subscriber Name',
|
10
|
+
:minimum => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 300,
|
13
|
+
:identified_by => {
|
14
|
+
'NM101' => 'IL',
|
15
|
+
'NM102' => ["1", "2"]
|
16
|
+
}
|
17
|
+
|
18
|
+
#Subscriber Additional Identification
|
19
|
+
segment Hippo::Segments::REF,
|
20
|
+
:name => 'Subscriber Additional Identification',
|
21
|
+
:minimum => 0,
|
22
|
+
:maximum => 9,
|
23
|
+
:position => 400,
|
24
|
+
:identified_by => {
|
25
|
+
'REF01' => ["18", "1L", "1W", "3H", "49", "6P", "CE", "CT", "EA", "EJ", "F6", "GH", "HJ", "IF", "IG", "N6", "NQ", "Q4", "SY", "Y4"]
|
26
|
+
}
|
27
|
+
|
28
|
+
#Subscriber Address
|
29
|
+
segment Hippo::Segments::N3,
|
30
|
+
:name => 'Subscriber Address',
|
31
|
+
:minimum => 0,
|
32
|
+
:maximum => 1,
|
33
|
+
:position => 600
|
34
|
+
|
35
|
+
#Subscriber City, State, ZIP Code
|
36
|
+
segment Hippo::Segments::N4,
|
37
|
+
:name => 'Subscriber City, State, ZIP Code',
|
38
|
+
:minimum => 0,
|
39
|
+
:maximum => 1,
|
40
|
+
:position => 700
|
41
|
+
|
42
|
+
#Subscriber Request Validation
|
43
|
+
segment Hippo::Segments::AAA,
|
44
|
+
:name => 'Subscriber Request Validation',
|
45
|
+
:minimum => 0,
|
46
|
+
:maximum => 9,
|
47
|
+
:position => 850,
|
48
|
+
:identified_by => {
|
49
|
+
'AAA01' => ["N", "Y"],
|
50
|
+
'AAA03' => ["15", "35", "42", "43", "45", "47", "48", "49", "51", "52", "56", "57", "58", "60", "61", "62", "63", "71", "72", "73", "74", "75", "76", "78"],
|
51
|
+
'AAA04' => ["C", "N", "R", "S", "W", "X", "Y"]
|
52
|
+
}
|
53
|
+
|
54
|
+
#Provider Information
|
55
|
+
segment Hippo::Segments::PRV,
|
56
|
+
:name => 'Provider Information',
|
57
|
+
:minimum => 0,
|
58
|
+
:maximum => 1,
|
59
|
+
:position => 900,
|
60
|
+
:identified_by => {
|
61
|
+
'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SK", "SU"]
|
62
|
+
}
|
63
|
+
|
64
|
+
#Subscriber Demographic Information
|
65
|
+
segment Hippo::Segments::DMG,
|
66
|
+
:name => 'Subscriber Demographic Information',
|
67
|
+
:minimum => 0,
|
68
|
+
:maximum => 1,
|
69
|
+
:position => 1000
|
70
|
+
|
71
|
+
#Subscriber Relationship
|
72
|
+
segment Hippo::Segments::INS,
|
73
|
+
:name => 'Subscriber Relationship',
|
74
|
+
:minimum => 0,
|
75
|
+
:maximum => 1,
|
76
|
+
:position => 1100,
|
77
|
+
:identified_by => {
|
78
|
+
'INS01' => 'Y',
|
79
|
+
'INS02' => '18'
|
80
|
+
}
|
81
|
+
|
82
|
+
#Subscriber Health Care Diagnosis Code
|
83
|
+
segment Hippo::Segments::HI,
|
84
|
+
:name => 'Subscriber Health Care Diagnosis Code',
|
85
|
+
:minimum => 0,
|
86
|
+
:maximum => 1,
|
87
|
+
:position => 1150
|
88
|
+
|
89
|
+
#Subscriber Date
|
90
|
+
segment Hippo::Segments::DTP,
|
91
|
+
:name => 'Subscriber Date',
|
92
|
+
:minimum => 0,
|
93
|
+
:maximum => 9,
|
94
|
+
:position => 1200,
|
95
|
+
:identified_by => {
|
96
|
+
'DTP01' => ["096", "102", "152", "291", "307", "318", "340", "341", "342", "343", "346", "347", "356", "357", "382", "435", "442", "458", "472", "539", "540", "636", "771"],
|
97
|
+
'DTP02' => ["D8", "RD8"]
|
98
|
+
}
|
99
|
+
|
100
|
+
#Subscriber Military Personnel Information
|
101
|
+
segment Hippo::Segments::MPI,
|
102
|
+
:name => 'Subscriber Military Personnel Information',
|
103
|
+
:minimum => 0,
|
104
|
+
:maximum => 1,
|
105
|
+
:position => 1275,
|
106
|
+
:identified_by => {
|
107
|
+
'MPI01' => ["A", "C", "L", "O", "P", "S", "T"],
|
108
|
+
'MPI02' => ["AE", "AO", "AS", "AT", "AU", "CC", "DD", "HD", "IR", "LX", "PE", "RE", "RM", "RR", "RU"],
|
109
|
+
'MPI03' => ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "Q", "R", "S", "U", "W"]
|
110
|
+
}
|
111
|
+
|
112
|
+
#Subscriber Eligibility or Benefit Information
|
113
|
+
loop Hippo::TransactionSets::HIPAA_271::L2110C,
|
114
|
+
:name => 'Subscriber Eligibility or Benefit Information',
|
115
|
+
:minimum => 0,
|
116
|
+
:maximum => 99999,
|
117
|
+
:position => 1300,
|
118
|
+
:identified_by => {
|
119
|
+
'EB.EB01' => ["1", "2", "3", "4", "5", "6", "7", "8", "A", "B", "C", "CB", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "MC", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"]
|
120
|
+
}
|
121
|
+
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|