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,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
|