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,159 @@
|
|
1
|
+
module Hippo::Segments
|
2
|
+
class VEH < Hippo::Segments::Base
|
3
|
+
|
4
|
+
segment_identifier 'VEH'
|
5
|
+
|
6
|
+
field :name => 'AssignedNumber',
|
7
|
+
:sequence => 1,
|
8
|
+
:datatype => :integer,
|
9
|
+
:minimum => 1,
|
10
|
+
:maximum => 6,
|
11
|
+
:required => false,
|
12
|
+
:data_element_number => 554
|
13
|
+
|
14
|
+
field :name => 'VehicleIdentificationNumber',
|
15
|
+
:sequence => 2,
|
16
|
+
:datatype => :string,
|
17
|
+
:minimum => 1,
|
18
|
+
:maximum => 30,
|
19
|
+
:required => false,
|
20
|
+
:data_element_number => 539
|
21
|
+
|
22
|
+
field :name => 'Year',
|
23
|
+
:sequence => 3,
|
24
|
+
:datatype => :integer,
|
25
|
+
:minimum => 4,
|
26
|
+
:maximum => 4,
|
27
|
+
:required => false,
|
28
|
+
:data_element_number => 1095
|
29
|
+
|
30
|
+
field :name => 'AgencyQualifierCode',
|
31
|
+
:sequence => 4,
|
32
|
+
:datatype => :list,
|
33
|
+
:minimum => 2,
|
34
|
+
:maximum => 2,
|
35
|
+
:required => false,
|
36
|
+
:data_element_number => 559
|
37
|
+
|
38
|
+
field :name => 'ReferenceIdentification',
|
39
|
+
:sequence => 5,
|
40
|
+
:datatype => :string,
|
41
|
+
:minimum => 1,
|
42
|
+
:maximum => 50,
|
43
|
+
:required => false,
|
44
|
+
:data_element_number => 127
|
45
|
+
|
46
|
+
field :name => 'ReferenceIdentification',
|
47
|
+
:sequence => 6,
|
48
|
+
:datatype => :string,
|
49
|
+
:minimum => 1,
|
50
|
+
:maximum => 50,
|
51
|
+
:required => false,
|
52
|
+
:data_element_number => 127
|
53
|
+
|
54
|
+
field :name => 'ReferenceIdentification',
|
55
|
+
:sequence => 7,
|
56
|
+
:datatype => :string,
|
57
|
+
:minimum => 1,
|
58
|
+
:maximum => 50,
|
59
|
+
:required => false,
|
60
|
+
:data_element_number => 127
|
61
|
+
|
62
|
+
field :name => 'Length',
|
63
|
+
:sequence => 8,
|
64
|
+
:datatype => :decimal,
|
65
|
+
:minimum => 1,
|
66
|
+
:maximum => 8,
|
67
|
+
:required => false,
|
68
|
+
:data_element_number => 82
|
69
|
+
|
70
|
+
field :name => 'ReferenceIdentification',
|
71
|
+
:sequence => 9,
|
72
|
+
:datatype => :string,
|
73
|
+
:minimum => 1,
|
74
|
+
:maximum => 50,
|
75
|
+
:required => false,
|
76
|
+
:data_element_number => 127
|
77
|
+
|
78
|
+
field :name => 'StateOrProvinceCode',
|
79
|
+
:sequence => 10,
|
80
|
+
:datatype => :list,
|
81
|
+
:minimum => 2,
|
82
|
+
:maximum => 2,
|
83
|
+
:required => false,
|
84
|
+
:data_element_number => 156
|
85
|
+
|
86
|
+
field :name => 'LocationIdentifier',
|
87
|
+
:sequence => 11,
|
88
|
+
:datatype => :string,
|
89
|
+
:minimum => 1,
|
90
|
+
:maximum => 30,
|
91
|
+
:required => false,
|
92
|
+
:data_element_number => 310
|
93
|
+
|
94
|
+
field :name => 'YesNoConditionOrResponseCode',
|
95
|
+
:sequence => 12,
|
96
|
+
:datatype => :list,
|
97
|
+
:minimum => 1,
|
98
|
+
:maximum => 1,
|
99
|
+
:required => false,
|
100
|
+
:data_element_number => 1073
|
101
|
+
|
102
|
+
field :name => 'Amount',
|
103
|
+
:sequence => 13,
|
104
|
+
:datatype => :decimal,
|
105
|
+
:minimum => 1,
|
106
|
+
:maximum => 15,
|
107
|
+
:required => false,
|
108
|
+
:data_element_number => 610
|
109
|
+
|
110
|
+
field :name => 'YesNoConditionOrResponseCode',
|
111
|
+
:sequence => 14,
|
112
|
+
:datatype => :list,
|
113
|
+
:minimum => 1,
|
114
|
+
:maximum => 1,
|
115
|
+
:required => false,
|
116
|
+
:data_element_number => 1073
|
117
|
+
|
118
|
+
field :name => 'Amount',
|
119
|
+
:sequence => 15,
|
120
|
+
:datatype => :decimal,
|
121
|
+
:minimum => 1,
|
122
|
+
:maximum => 15,
|
123
|
+
:required => false,
|
124
|
+
:data_element_number => 610
|
125
|
+
|
126
|
+
field :name => 'ActionCode',
|
127
|
+
:sequence => 16,
|
128
|
+
:datatype => :list,
|
129
|
+
:minimum => 1,
|
130
|
+
:maximum => 2,
|
131
|
+
:required => false,
|
132
|
+
:data_element_number => 306
|
133
|
+
|
134
|
+
field :name => 'CountryCode',
|
135
|
+
:sequence => 17,
|
136
|
+
:datatype => :list,
|
137
|
+
:minimum => 2,
|
138
|
+
:maximum => 3,
|
139
|
+
:required => false,
|
140
|
+
:data_element_number => 26
|
141
|
+
|
142
|
+
field :name => 'Name',
|
143
|
+
:sequence => 18,
|
144
|
+
:datatype => :string,
|
145
|
+
:minimum => 1,
|
146
|
+
:maximum => 60,
|
147
|
+
:required => false,
|
148
|
+
:data_element_number => 93
|
149
|
+
|
150
|
+
field :name => 'CountryCode',
|
151
|
+
:sequence => 19,
|
152
|
+
:datatype => :list,
|
153
|
+
:minimum => 2,
|
154
|
+
:maximum => 3,
|
155
|
+
:required => false,
|
156
|
+
:data_element_number => 26
|
157
|
+
|
158
|
+
end
|
159
|
+
end
|
data/lib/hippo/segments/base.rb
CHANGED
data/lib/hippo/segments.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative 'segments/base'
|
|
2
2
|
|
3
3
|
module Hippo
|
4
4
|
module Segments
|
5
|
+
autoload_relative :AAA, 'segments/AAA'
|
5
6
|
autoload_relative :AK1, 'segments/AK1'
|
6
7
|
autoload_relative :AK2, 'segments/AK2'
|
7
8
|
autoload_relative :AK3, 'segments/AK3'
|
@@ -34,22 +35,30 @@ module Hippo
|
|
34
35
|
autoload_relative :DSB, 'segments/DSB'
|
35
36
|
autoload_relative :DTM, 'segments/DTM'
|
36
37
|
autoload_relative :DTP, 'segments/DTP'
|
38
|
+
autoload_relative :EB, 'segments/EB'
|
39
|
+
autoload_relative :EM, 'segments/EM'
|
40
|
+
autoload_relative :EQ, 'segments/EQ'
|
37
41
|
autoload_relative :FRM, 'segments/FRM'
|
38
42
|
autoload_relative :HCP, 'segments/HCP'
|
39
43
|
autoload_relative :HI, 'segments/HI'
|
40
44
|
autoload_relative :HL, 'segments/HL'
|
41
45
|
autoload_relative :HSD, 'segments/HSD'
|
46
|
+
autoload_relative :III, 'segments/III'
|
42
47
|
autoload_relative :IK3, 'segments/IK3'
|
43
48
|
autoload_relative :IK4, 'segments/IK4'
|
44
49
|
autoload_relative :IK5, 'segments/IK5'
|
45
50
|
autoload_relative :IMM, 'segments/IMM'
|
51
|
+
autoload_relative :INS, 'segments/INS'
|
46
52
|
autoload_relative :K3, 'segments/K3'
|
53
|
+
autoload_relative :LE, 'segments/LE'
|
47
54
|
autoload_relative :LIN, 'segments/LIN'
|
48
55
|
autoload_relative :LQ, 'segments/LQ'
|
49
56
|
autoload_relative :LX, 'segments/LX'
|
50
57
|
autoload_relative :MEA, 'segments/MEA'
|
51
58
|
autoload_relative :MIA, 'segments/MIA'
|
52
59
|
autoload_relative :MOA, 'segments/MOA'
|
60
|
+
autoload_relative :MPI, 'segments/MPI'
|
61
|
+
autoload_relative :MSG, 'segments/MSG'
|
53
62
|
autoload_relative :N1, 'segments/N1'
|
54
63
|
autoload_relative :N2, 'segments/N2'
|
55
64
|
autoload_relative :N3, 'segments/N3'
|
@@ -58,7 +67,12 @@ module Hippo
|
|
58
67
|
autoload_relative :NTE, 'segments/NTE'
|
59
68
|
autoload_relative :OI, 'segments/OI'
|
60
69
|
autoload_relative :PAT, 'segments/PAT'
|
70
|
+
autoload_relative :PCT, 'segments/PCT'
|
71
|
+
autoload_relative :PDP, 'segments/PDP'
|
72
|
+
autoload_relative :PDR, 'segments/PDR'
|
61
73
|
autoload_relative :PER, 'segments/PER'
|
74
|
+
autoload_relative :PID, 'segments/PID'
|
75
|
+
autoload_relative :PKD, 'segments/PKD'
|
62
76
|
autoload_relative :PLB, 'segments/PLB'
|
63
77
|
autoload_relative :PRV, 'segments/PRV'
|
64
78
|
autoload_relative :PS1, 'segments/PS1'
|
@@ -67,6 +81,7 @@ module Hippo
|
|
67
81
|
autoload_relative :RDM, 'segments/RDM'
|
68
82
|
autoload_relative :REF, 'segments/REF'
|
69
83
|
autoload_relative :SBR, 'segments/SBR'
|
84
|
+
autoload_relative :SD1, 'segments/SD1'
|
70
85
|
autoload_relative :SE, 'segments/SE'
|
71
86
|
autoload_relative :ST, 'segments/ST'
|
72
87
|
autoload_relative :STC, 'segments/STC'
|
@@ -84,6 +99,7 @@ module Hippo
|
|
84
99
|
autoload_relative :TS2, 'segments/TS2'
|
85
100
|
autoload_relative :TS3, 'segments/TS3'
|
86
101
|
autoload_relative :UR, 'segments/UR'
|
102
|
+
autoload_relative :VEH, 'segments/VEH'
|
87
103
|
|
88
104
|
autoload_relative :ISA, 'segments/ISA'
|
89
105
|
autoload_relative :GS, 'segments/GS'
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
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' => '1'
|
16
|
+
}
|
17
|
+
|
18
|
+
#Information Source Name
|
19
|
+
loop Hippo::TransactionSets::HIPAA_270::L2100A,
|
20
|
+
:name => 'Information Source Name',
|
21
|
+
:minimum => 1,
|
22
|
+
:maximum => 1,
|
23
|
+
:position => 300,
|
24
|
+
:identified_by => {
|
25
|
+
'NM1.NM101' => ["2B", "36", "GP", "P5", "PR"],
|
26
|
+
'NM1.NM102' => ["1", "2"],
|
27
|
+
'NM1.NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
|
28
|
+
}
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
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 => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 100,
|
13
|
+
:identified_by => {
|
14
|
+
'HL03' => '21',
|
15
|
+
'HL04' => '1'
|
16
|
+
}
|
17
|
+
|
18
|
+
#Information Receiver Name
|
19
|
+
loop Hippo::TransactionSets::HIPAA_270::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_270
|
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 => 1,
|
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 => 2,
|
23
|
+
:position => 200,
|
24
|
+
:identified_by => {
|
25
|
+
'TRN01' => '1'
|
26
|
+
}
|
27
|
+
|
28
|
+
#Subscriber Name
|
29
|
+
loop Hippo::TransactionSets::HIPAA_270::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_270
|
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 => 2,
|
23
|
+
:position => 200,
|
24
|
+
:identified_by => {
|
25
|
+
'TRN01' => '1'
|
26
|
+
}
|
27
|
+
|
28
|
+
#Dependent Name
|
29
|
+
loop Hippo::TransactionSets::HIPAA_270::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,21 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
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
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
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 Provider Information
|
44
|
+
segment Hippo::Segments::PRV,
|
45
|
+
:name => 'Information Receiver Provider Information',
|
46
|
+
:minimum => 0,
|
47
|
+
:maximum => 1,
|
48
|
+
:position => 900,
|
49
|
+
:identified_by => {
|
50
|
+
'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
|
51
|
+
}
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
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", "6P", "CT", "EA", "EJ", "F6", "GH", "HJ", "IG", "N6", "NQ", "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
|
+
#Provider Information
|
43
|
+
segment Hippo::Segments::PRV,
|
44
|
+
:name => 'Provider Information',
|
45
|
+
:minimum => 0,
|
46
|
+
:maximum => 1,
|
47
|
+
:position => 900,
|
48
|
+
:identified_by => {
|
49
|
+
'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SK", "SU"]
|
50
|
+
}
|
51
|
+
|
52
|
+
#Subscriber Demographic Information
|
53
|
+
segment Hippo::Segments::DMG,
|
54
|
+
:name => 'Subscriber Demographic Information',
|
55
|
+
:minimum => 0,
|
56
|
+
:maximum => 1,
|
57
|
+
:position => 1000
|
58
|
+
|
59
|
+
#Multiple Birth Sequence Number
|
60
|
+
segment Hippo::Segments::INS,
|
61
|
+
:name => 'Multiple Birth Sequence Number',
|
62
|
+
:minimum => 0,
|
63
|
+
:maximum => 1,
|
64
|
+
:position => 1100,
|
65
|
+
:identified_by => {
|
66
|
+
'INS01' => 'Y',
|
67
|
+
'INS02' => '18'
|
68
|
+
}
|
69
|
+
|
70
|
+
#Subscriber Health Care Diagnosis Code
|
71
|
+
segment Hippo::Segments::HI,
|
72
|
+
:name => 'Subscriber Health Care Diagnosis Code',
|
73
|
+
:minimum => 0,
|
74
|
+
:maximum => 1,
|
75
|
+
:position => 1150
|
76
|
+
|
77
|
+
#Subscriber Date
|
78
|
+
segment Hippo::Segments::DTP,
|
79
|
+
:name => 'Subscriber Date',
|
80
|
+
:minimum => 0,
|
81
|
+
:maximum => 2,
|
82
|
+
:position => 1200,
|
83
|
+
:identified_by => {
|
84
|
+
'DTP01' => ["102", "291"],
|
85
|
+
'DTP02' => ["D8", "RD8"]
|
86
|
+
}
|
87
|
+
|
88
|
+
#Subscriber Eligibility or Benefit Inquiry
|
89
|
+
loop Hippo::TransactionSets::HIPAA_270::L2110C,
|
90
|
+
:name => 'Subscriber Eligibility or Benefit Inquiry',
|
91
|
+
:minimum => 0,
|
92
|
+
:maximum => 99,
|
93
|
+
:position => 1300
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
module Hippo::TransactionSets
|
2
|
+
module HIPAA_270
|
3
|
+
|
4
|
+
class L2100D < Hippo::TransactionSets::Base
|
5
|
+
loop_name 'L2100D' #Dependent Name
|
6
|
+
|
7
|
+
#Dependent Name
|
8
|
+
segment Hippo::Segments::NM1,
|
9
|
+
:name => 'Dependent Name',
|
10
|
+
:minimum => 1,
|
11
|
+
:maximum => 1,
|
12
|
+
:position => 300,
|
13
|
+
:identified_by => {
|
14
|
+
'NM101' => '03',
|
15
|
+
'NM102' => '1'
|
16
|
+
}
|
17
|
+
|
18
|
+
#Dependent Additional Identification
|
19
|
+
segment Hippo::Segments::REF,
|
20
|
+
:name => 'Dependent Additional Identification',
|
21
|
+
:minimum => 0,
|
22
|
+
:maximum => 9,
|
23
|
+
:position => 400,
|
24
|
+
:identified_by => {
|
25
|
+
'REF01' => ["18", "1L", "1W", "6P", "CT", "EA", "EJ", "F6", "GH", "HJ", "IF", "IG", "MRC", "N6", "SY", "Y4"]
|
26
|
+
}
|
27
|
+
|
28
|
+
#Dependent Address
|
29
|
+
segment Hippo::Segments::N3,
|
30
|
+
:name => 'Dependent Address',
|
31
|
+
:minimum => 0,
|
32
|
+
:maximum => 1,
|
33
|
+
:position => 600
|
34
|
+
|
35
|
+
#Dependent City, State, ZIP Code
|
36
|
+
segment Hippo::Segments::N4,
|
37
|
+
:name => 'Dependent City, State, ZIP Code',
|
38
|
+
:minimum => 0,
|
39
|
+
:maximum => 1,
|
40
|
+
:position => 700
|
41
|
+
|
42
|
+
#Provider Information
|
43
|
+
segment Hippo::Segments::PRV,
|
44
|
+
:name => 'Provider Information',
|
45
|
+
:minimum => 0,
|
46
|
+
:maximum => 1,
|
47
|
+
:position => 900,
|
48
|
+
:identified_by => {
|
49
|
+
'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SK", "SU"]
|
50
|
+
}
|
51
|
+
|
52
|
+
#Dependent Demographic Information
|
53
|
+
segment Hippo::Segments::DMG,
|
54
|
+
:name => 'Dependent Demographic Information',
|
55
|
+
:minimum => 0,
|
56
|
+
:maximum => 1,
|
57
|
+
:position => 1000
|
58
|
+
|
59
|
+
#Dependent Relationship
|
60
|
+
segment Hippo::Segments::INS,
|
61
|
+
:name => 'Dependent Relationship',
|
62
|
+
:minimum => 0,
|
63
|
+
:maximum => 1,
|
64
|
+
:position => 1100,
|
65
|
+
:identified_by => {
|
66
|
+
'INS01' => 'N',
|
67
|
+
'INS02' => ["01", "19", "34"]
|
68
|
+
}
|
69
|
+
|
70
|
+
#Dependent Health Care Diagnosis Code
|
71
|
+
segment Hippo::Segments::HI,
|
72
|
+
:name => 'Dependent Health Care Diagnosis Code',
|
73
|
+
:minimum => 0,
|
74
|
+
:maximum => 1,
|
75
|
+
:position => 1150
|
76
|
+
|
77
|
+
#Dependent Date
|
78
|
+
segment Hippo::Segments::DTP,
|
79
|
+
:name => 'Dependent Date',
|
80
|
+
:minimum => 0,
|
81
|
+
:maximum => 2,
|
82
|
+
:position => 1200,
|
83
|
+
:identified_by => {
|
84
|
+
'DTP01' => ["102", "291"],
|
85
|
+
'DTP02' => ["D8", "RD8"]
|
86
|
+
}
|
87
|
+
|
88
|
+
#Dependent Eligibility or Benefit Inquiry
|
89
|
+
loop Hippo::TransactionSets::HIPAA_270::L2110D,
|
90
|
+
:name => 'Dependent Eligibility or Benefit Inquiry',
|
91
|
+
:minimum => 1,
|
92
|
+
:maximum => 99,
|
93
|
+
:position => 1300
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|