hippo 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/CHANGELOG +8 -0
  2. data/lib/hippo/field.rb +10 -1
  3. data/lib/hippo/segments/AAA.rb +39 -0
  4. data/lib/hippo/segments/EB.rb +207 -0
  5. data/lib/hippo/segments/EM.rb +63 -0
  6. data/lib/hippo/segments/EQ.rb +135 -0
  7. data/lib/hippo/segments/III.rb +195 -0
  8. data/lib/hippo/segments/INS.rb +171 -0
  9. data/lib/hippo/segments/LE.rb +15 -0
  10. data/lib/hippo/segments/LS.rb +15 -0
  11. data/lib/hippo/segments/MPI.rb +63 -0
  12. data/lib/hippo/segments/MSG.rb +31 -0
  13. data/lib/hippo/segments/PCT.rb +23 -0
  14. data/lib/hippo/segments/PDP.rb +31 -0
  15. data/lib/hippo/segments/PDR.rb +39 -0
  16. data/lib/hippo/segments/PID.rb +79 -0
  17. data/lib/hippo/segments/PKD.rb +47 -0
  18. data/lib/hippo/segments/SD1.rb +71 -0
  19. data/lib/hippo/segments/VEH.rb +159 -0
  20. data/lib/hippo/segments/base.rb +8 -0
  21. data/lib/hippo/segments.rb +16 -0
  22. data/lib/hippo/transaction_sets/HIPAA_270/L2000A.rb +32 -0
  23. data/lib/hippo/transaction_sets/HIPAA_270/L2000B.rb +32 -0
  24. data/lib/hippo/transaction_sets/HIPAA_270/L2000C.rb +41 -0
  25. data/lib/hippo/transaction_sets/HIPAA_270/L2000D.rb +41 -0
  26. data/lib/hippo/transaction_sets/HIPAA_270/L2100A.rb +21 -0
  27. data/lib/hippo/transaction_sets/HIPAA_270/L2100B.rb +55 -0
  28. data/lib/hippo/transaction_sets/HIPAA_270/L2100C.rb +97 -0
  29. data/lib/hippo/transaction_sets/HIPAA_270/L2100D.rb +97 -0
  30. data/lib/hippo/transaction_sets/HIPAA_270/L2110C.rb +67 -0
  31. data/lib/hippo/transaction_sets/HIPAA_270/L2110D.rb +47 -0
  32. data/lib/hippo/transaction_sets/HIPAA_270/base.rb +80 -0
  33. data/lib/hippo/transaction_sets/HIPAA_270.rb +17 -0
  34. data/lib/hippo/transaction_sets/HIPAA_271/L2000A.rb +44 -0
  35. data/lib/hippo/transaction_sets/HIPAA_271/L2000B.rb +32 -0
  36. data/lib/hippo/transaction_sets/HIPAA_271/L2000C.rb +41 -0
  37. data/lib/hippo/transaction_sets/HIPAA_271/L2000D.rb +41 -0
  38. data/lib/hippo/transaction_sets/HIPAA_271/L2100A.rb +43 -0
  39. data/lib/hippo/transaction_sets/HIPAA_271/L2100B.rb +67 -0
  40. data/lib/hippo/transaction_sets/HIPAA_271/L2100C.rb +124 -0
  41. data/lib/hippo/transaction_sets/HIPAA_271/L2100D.rb +124 -0
  42. data/lib/hippo/transaction_sets/HIPAA_271/L2110C.rb +98 -0
  43. data/lib/hippo/transaction_sets/HIPAA_271/L2110D.rb +98 -0
  44. data/lib/hippo/transaction_sets/HIPAA_271/L2115C.rb +16 -0
  45. data/lib/hippo/transaction_sets/HIPAA_271/L2115D.rb +16 -0
  46. data/lib/hippo/transaction_sets/HIPAA_271/L2120C.rb +54 -0
  47. data/lib/hippo/transaction_sets/HIPAA_271/L2120D.rb +54 -0
  48. data/lib/hippo/transaction_sets/HIPAA_271/base.rb +80 -0
  49. data/lib/hippo/transaction_sets/HIPAA_271.rb +21 -0
  50. data/lib/hippo/transaction_sets/base.rb +75 -21
  51. data/lib/hippo/transaction_sets/component.rb +6 -1
  52. data/lib/hippo/transaction_sets.rb +2 -0
  53. data/lib/hippo/version.rb +1 -1
  54. data/samples/837_L2000A_01.edi +1 -0
  55. data/samples/837_L2000A_02.edi +1 -0
  56. data/test/test_parser.rb +5 -0
  57. 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
@@ -38,6 +38,14 @@ module Hippo::Segments
38
38
  end
39
39
  end
40
40
 
41
+ def segment?
42
+ true
43
+ end
44
+
45
+ def transaction_set?
46
+ false
47
+ end
48
+
41
49
  def composite_field(field_name)
42
50
  @composite_block = true
43
51
  @default_separator = :composite_separator
@@ -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