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