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,171 @@
1
+ module Hippo::Segments
2
+ class INS < Hippo::Segments::Base
3
+
4
+ segment_identifier 'INS'
5
+
6
+ field :name => 'YesNoConditionOrResponseCode',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 1,
10
+ :maximum => 1,
11
+ :required => true,
12
+ :data_element_number => 1073
13
+
14
+ field :name => 'IndividualRelationshipCode',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 2,
18
+ :maximum => 2,
19
+ :required => true,
20
+ :data_element_number => 1069
21
+
22
+ field :name => 'MaintenanceTypeCode',
23
+ :sequence => 3,
24
+ :datatype => :list,
25
+ :minimum => 3,
26
+ :maximum => 3,
27
+ :required => false,
28
+ :data_element_number => 875
29
+
30
+ field :name => 'MaintenanceReasonCode',
31
+ :sequence => 4,
32
+ :datatype => :list,
33
+ :minimum => 2,
34
+ :maximum => 3,
35
+ :required => false,
36
+ :data_element_number => 1203
37
+
38
+ field :name => 'BenefitStatusCode',
39
+ :sequence => 5,
40
+ :datatype => :list,
41
+ :minimum => 1,
42
+ :maximum => 1,
43
+ :required => false,
44
+ :data_element_number => 1216
45
+
46
+ composite_field 'MedicareStatusCode' do
47
+
48
+ field :name => 'MedicarePlanCode',
49
+ :sequence => 1,
50
+ :datatype => :list,
51
+ :minimum => 1,
52
+ :maximum => 1,
53
+ :required => true,
54
+ :data_element_number => 1218
55
+
56
+ field :name => 'EligibilityReasonCode',
57
+ :sequence => 2,
58
+ :datatype => :list,
59
+ :minimum => 1,
60
+ :maximum => 1,
61
+ :required => false,
62
+ :data_element_number => 1701
63
+
64
+ field :name => 'EligibilityReasonCode',
65
+ :sequence => 3,
66
+ :datatype => :list,
67
+ :minimum => 1,
68
+ :maximum => 1,
69
+ :required => false,
70
+ :data_element_number => 1701
71
+
72
+ field :name => 'EligibilityReasonCode',
73
+ :sequence => 4,
74
+ :datatype => :list,
75
+ :minimum => 1,
76
+ :maximum => 1,
77
+ :required => false,
78
+ :data_element_number => 1701
79
+
80
+ end
81
+
82
+ field :name => 'ConsolidatedOmnibusBudgetReconciliationActCobraQualifying',
83
+ :sequence => 7,
84
+ :datatype => :list,
85
+ :minimum => 1,
86
+ :maximum => 2,
87
+ :required => false,
88
+ :data_element_number => 1219
89
+
90
+ field :name => 'EmploymentStatusCode',
91
+ :sequence => 8,
92
+ :datatype => :list,
93
+ :minimum => 2,
94
+ :maximum => 2,
95
+ :required => false,
96
+ :data_element_number => 584
97
+
98
+ field :name => 'StudentStatusCode',
99
+ :sequence => 9,
100
+ :datatype => :list,
101
+ :minimum => 1,
102
+ :maximum => 1,
103
+ :required => false,
104
+ :data_element_number => 1220
105
+
106
+ field :name => 'YesNoConditionOrResponseCode',
107
+ :sequence => 10,
108
+ :datatype => :list,
109
+ :minimum => 1,
110
+ :maximum => 1,
111
+ :required => false,
112
+ :data_element_number => 1073
113
+
114
+ field :name => 'DateTimePeriodFormatQualifier',
115
+ :sequence => 11,
116
+ :datatype => :list,
117
+ :minimum => 2,
118
+ :maximum => 3,
119
+ :required => false,
120
+ :data_element_number => 1250
121
+
122
+ field :name => 'DateTimePeriod',
123
+ :sequence => 12,
124
+ :datatype => :string,
125
+ :minimum => 1,
126
+ :maximum => 35,
127
+ :required => false,
128
+ :data_element_number => 1251
129
+
130
+ field :name => 'ConfidentialityCode',
131
+ :sequence => 13,
132
+ :datatype => :list,
133
+ :minimum => 1,
134
+ :maximum => 1,
135
+ :required => false,
136
+ :data_element_number => 1165
137
+
138
+ field :name => 'CityName',
139
+ :sequence => 14,
140
+ :datatype => :string,
141
+ :minimum => 2,
142
+ :maximum => 30,
143
+ :required => false,
144
+ :data_element_number => 19
145
+
146
+ field :name => 'StateOrProvinceCode',
147
+ :sequence => 15,
148
+ :datatype => :list,
149
+ :minimum => 2,
150
+ :maximum => 2,
151
+ :required => false,
152
+ :data_element_number => 156
153
+
154
+ field :name => 'CountryCode',
155
+ :sequence => 16,
156
+ :datatype => :list,
157
+ :minimum => 2,
158
+ :maximum => 3,
159
+ :required => false,
160
+ :data_element_number => 26
161
+
162
+ field :name => 'Number',
163
+ :sequence => 17,
164
+ :datatype => :integer,
165
+ :minimum => 1,
166
+ :maximum => 9,
167
+ :required => false,
168
+ :data_element_number => 1470
169
+
170
+ end
171
+ end
@@ -0,0 +1,15 @@
1
+ module Hippo::Segments
2
+ class LE < Hippo::Segments::Base
3
+
4
+ segment_identifier 'LE'
5
+
6
+ field :name => 'LoopIdentifierCode',
7
+ :sequence => 1,
8
+ :datatype => :string,
9
+ :minimum => 1,
10
+ :maximum => 4,
11
+ :required => true,
12
+ :data_element_number => 447
13
+
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Hippo::Segments
2
+ class LS < Hippo::Segments::Base
3
+
4
+ segment_identifier 'LS'
5
+
6
+ field :name => 'LoopIdentifierCode',
7
+ :sequence => 1,
8
+ :datatype => :string,
9
+ :minimum => 1,
10
+ :maximum => 4,
11
+ :required => true,
12
+ :data_element_number => 447
13
+
14
+ end
15
+ end
@@ -0,0 +1,63 @@
1
+ module Hippo::Segments
2
+ class MPI < Hippo::Segments::Base
3
+
4
+ segment_identifier 'MPI'
5
+
6
+ field :name => 'InformationStatusCode',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 1,
10
+ :maximum => 1,
11
+ :required => true,
12
+ :data_element_number => 1201
13
+
14
+ field :name => 'EmploymentStatusCode',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 2,
18
+ :maximum => 2,
19
+ :required => true,
20
+ :data_element_number => 584
21
+
22
+ field :name => 'GovernmentServiceAffiliationCode',
23
+ :sequence => 3,
24
+ :datatype => :list,
25
+ :minimum => 1,
26
+ :maximum => 1,
27
+ :required => true,
28
+ :data_element_number => 1595
29
+
30
+ field :name => 'Description',
31
+ :sequence => 4,
32
+ :datatype => :string,
33
+ :minimum => 1,
34
+ :maximum => 80,
35
+ :required => false,
36
+ :data_element_number => 352
37
+
38
+ field :name => 'MilitaryServiceRankCode',
39
+ :sequence => 5,
40
+ :datatype => :list,
41
+ :minimum => 2,
42
+ :maximum => 2,
43
+ :required => false,
44
+ :data_element_number => 1596
45
+
46
+ field :name => 'DateTimePeriodFormatQualifier',
47
+ :sequence => 6,
48
+ :datatype => :list,
49
+ :minimum => 2,
50
+ :maximum => 3,
51
+ :required => false,
52
+ :data_element_number => 1250
53
+
54
+ field :name => 'DateTimePeriod',
55
+ :sequence => 7,
56
+ :datatype => :string,
57
+ :minimum => 1,
58
+ :maximum => 35,
59
+ :required => false,
60
+ :data_element_number => 1251
61
+
62
+ end
63
+ end
@@ -0,0 +1,31 @@
1
+ module Hippo::Segments
2
+ class MSG < Hippo::Segments::Base
3
+
4
+ segment_identifier 'MSG'
5
+
6
+ field :name => 'FreeFormMessageText',
7
+ :sequence => 1,
8
+ :datatype => :string,
9
+ :minimum => 1,
10
+ :maximum => 264,
11
+ :required => true,
12
+ :data_element_number => 933
13
+
14
+ field :name => 'PrinterCarriageControlCode',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 2,
18
+ :maximum => 2,
19
+ :required => false,
20
+ :data_element_number => 934
21
+
22
+ field :name => 'Number',
23
+ :sequence => 3,
24
+ :datatype => :integer,
25
+ :minimum => 1,
26
+ :maximum => 9,
27
+ :required => false,
28
+ :data_element_number => 1470
29
+
30
+ end
31
+ end
@@ -0,0 +1,23 @@
1
+ module Hippo::Segments
2
+ class PCT < Hippo::Segments::Base
3
+
4
+ segment_identifier 'PCT'
5
+
6
+ field :name => 'PercentQualifier',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 1,
10
+ :maximum => 2,
11
+ :required => true,
12
+ :data_element_number => 1004
13
+
14
+ field :name => 'PercentageAsDecimal',
15
+ :sequence => 2,
16
+ :datatype => :decimal,
17
+ :minimum => 1,
18
+ :maximum => 10,
19
+ :required => true,
20
+ :data_element_number => 954
21
+
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ module Hippo::Segments
2
+ class PDP < Hippo::Segments::Base
3
+
4
+ segment_identifier 'PDP'
5
+
6
+ field :name => 'TypeOfPersonalOrBusinessAssetCode',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 2,
10
+ :maximum => 2,
11
+ :required => true,
12
+ :data_element_number => 1188
13
+
14
+ field :name => 'CommodityCodeQualifier',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 1,
18
+ :maximum => 1,
19
+ :required => false,
20
+ :data_element_number => 23
21
+
22
+ field :name => 'CommodityCode',
23
+ :sequence => 3,
24
+ :datatype => :string,
25
+ :minimum => 1,
26
+ :maximum => 30,
27
+ :required => false,
28
+ :data_element_number => 22
29
+
30
+ end
31
+ end
@@ -0,0 +1,39 @@
1
+ module Hippo::Segments
2
+ class PDR < Hippo::Segments::Base
3
+
4
+ segment_identifier 'PDR'
5
+
6
+ field :name => 'TypeOfRealEstateAssetCode',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 2,
10
+ :maximum => 2,
11
+ :required => true,
12
+ :data_element_number => 1074
13
+
14
+ field :name => 'CodeListQualifierCode',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 1,
18
+ :maximum => 3,
19
+ :required => false,
20
+ :data_element_number => 1270
21
+
22
+ field :name => 'IndustryCode',
23
+ :sequence => 3,
24
+ :datatype => :string,
25
+ :minimum => 1,
26
+ :maximum => 30,
27
+ :required => false,
28
+ :data_element_number => 1271
29
+
30
+ field :name => 'OccupancyCode',
31
+ :sequence => 4,
32
+ :datatype => :list,
33
+ :minimum => 2,
34
+ :maximum => 2,
35
+ :required => false,
36
+ :data_element_number => 689
37
+
38
+ end
39
+ end
@@ -0,0 +1,79 @@
1
+ module Hippo::Segments
2
+ class PID < Hippo::Segments::Base
3
+
4
+ segment_identifier 'PID'
5
+
6
+ field :name => 'ItemDescriptionType',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 1,
10
+ :maximum => 1,
11
+ :required => true,
12
+ :data_element_number => 349
13
+
14
+ field :name => 'ProductProcessCharacteristicCode',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 2,
18
+ :maximum => 3,
19
+ :required => false,
20
+ :data_element_number => 750
21
+
22
+ field :name => 'AgencyQualifierCode',
23
+ :sequence => 3,
24
+ :datatype => :list,
25
+ :minimum => 2,
26
+ :maximum => 2,
27
+ :required => false,
28
+ :data_element_number => 559
29
+
30
+ field :name => 'ProductDescriptionCode',
31
+ :sequence => 4,
32
+ :datatype => :string,
33
+ :minimum => 1,
34
+ :maximum => 12,
35
+ :required => false,
36
+ :data_element_number => 751
37
+
38
+ field :name => 'Description',
39
+ :sequence => 5,
40
+ :datatype => :string,
41
+ :minimum => 1,
42
+ :maximum => 80,
43
+ :required => false,
44
+ :data_element_number => 352
45
+
46
+ field :name => 'SurfaceLayerPositionCode',
47
+ :sequence => 6,
48
+ :datatype => :list,
49
+ :minimum => 2,
50
+ :maximum => 2,
51
+ :required => false,
52
+ :data_element_number => 752
53
+
54
+ field :name => 'SourceSubqualifier',
55
+ :sequence => 7,
56
+ :datatype => :string,
57
+ :minimum => 1,
58
+ :maximum => 15,
59
+ :required => false,
60
+ :data_element_number => 822
61
+
62
+ field :name => 'YesNoConditionOrResponseCode',
63
+ :sequence => 8,
64
+ :datatype => :list,
65
+ :minimum => 1,
66
+ :maximum => 1,
67
+ :required => false,
68
+ :data_element_number => 1073
69
+
70
+ field :name => 'LanguageCode',
71
+ :sequence => 9,
72
+ :datatype => :list,
73
+ :minimum => 2,
74
+ :maximum => 3,
75
+ :required => false,
76
+ :data_element_number => 819
77
+
78
+ end
79
+ end
@@ -0,0 +1,47 @@
1
+ module Hippo::Segments
2
+ class PKD < Hippo::Segments::Base
3
+
4
+ segment_identifier 'PKD'
5
+
6
+ field :name => 'PackagingCode',
7
+ :sequence => 1,
8
+ :datatype => :string,
9
+ :minimum => 3,
10
+ :maximum => 5,
11
+ :required => false,
12
+ :data_element_number => 103
13
+
14
+ field :name => 'SourceSubqualifier',
15
+ :sequence => 2,
16
+ :datatype => :string,
17
+ :minimum => 1,
18
+ :maximum => 15,
19
+ :required => false,
20
+ :data_element_number => 822
21
+
22
+ field :name => 'AgencyQualifierCode',
23
+ :sequence => 3,
24
+ :datatype => :list,
25
+ :minimum => 2,
26
+ :maximum => 2,
27
+ :required => false,
28
+ :data_element_number => 559
29
+
30
+ field :name => 'PackagingDescriptionCode',
31
+ :sequence => 4,
32
+ :datatype => :string,
33
+ :minimum => 1,
34
+ :maximum => 7,
35
+ :required => false,
36
+ :data_element_number => 754
37
+
38
+ field :name => 'OwnershipCode',
39
+ :sequence => 5,
40
+ :datatype => :list,
41
+ :minimum => 1,
42
+ :maximum => 1,
43
+ :required => false,
44
+ :data_element_number => 102
45
+
46
+ end
47
+ end
@@ -0,0 +1,71 @@
1
+ module Hippo::Segments
2
+ class SD1 < Hippo::Segments::Base
3
+
4
+ segment_identifier 'SD1'
5
+
6
+ field :name => 'ItemDescriptionType',
7
+ :sequence => 1,
8
+ :datatype => :list,
9
+ :minimum => 1,
10
+ :maximum => 1,
11
+ :required => true,
12
+ :data_element_number => 349
13
+
14
+ field :name => 'SafetyCharacteristicHazardCode',
15
+ :sequence => 2,
16
+ :datatype => :list,
17
+ :minimum => 3,
18
+ :maximum => 3,
19
+ :required => true,
20
+ :data_element_number => 821
21
+
22
+ field :name => 'AgencyQualifierCode',
23
+ :sequence => 3,
24
+ :datatype => :list,
25
+ :minimum => 2,
26
+ :maximum => 2,
27
+ :required => false,
28
+ :data_element_number => 559
29
+
30
+ field :name => 'SourceSubqualifier',
31
+ :sequence => 4,
32
+ :datatype => :string,
33
+ :minimum => 1,
34
+ :maximum => 15,
35
+ :required => false,
36
+ :data_element_number => 822
37
+
38
+ field :name => 'ProductDescriptionCode',
39
+ :sequence => 5,
40
+ :datatype => :string,
41
+ :minimum => 1,
42
+ :maximum => 12,
43
+ :required => false,
44
+ :data_element_number => 751
45
+
46
+ field :name => 'Description',
47
+ :sequence => 6,
48
+ :datatype => :string,
49
+ :minimum => 1,
50
+ :maximum => 80,
51
+ :required => false,
52
+ :data_element_number => 352
53
+
54
+ field :name => 'StateOrProvinceCode',
55
+ :sequence => 7,
56
+ :datatype => :list,
57
+ :minimum => 2,
58
+ :maximum => 2,
59
+ :required => false,
60
+ :data_element_number => 156
61
+
62
+ field :name => 'CountryCode',
63
+ :sequence => 8,
64
+ :datatype => :list,
65
+ :minimum => 2,
66
+ :maximum => 3,
67
+ :required => false,
68
+ :data_element_number => 26
69
+
70
+ end
71
+ end