hippo 0.2.2 → 0.3.0
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.
- 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
|