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,67 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_270
3
+
4
+ class L2110C < Hippo::TransactionSets::Base
5
+ loop_name 'L2110C' #Subscriber Eligibility or Benefit Inquiry
6
+
7
+ #Subscriber Eligibility or Benefit Inquiry
8
+ segment Hippo::Segments::EQ,
9
+ :name => 'Subscriber Eligibility or Benefit Inquiry',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1300
13
+
14
+ #Subscriber Spend Down Amount
15
+ segment Hippo::Segments::AMT,
16
+ :name => 'Subscriber Spend Down Amount',
17
+ :minimum => 0,
18
+ :maximum => 1,
19
+ :position => 1350,
20
+ :identified_by => {
21
+ 'AMT01' => 'R'
22
+ }
23
+
24
+ #Subscriber Spend Down Total Billed Amount
25
+ segment Hippo::Segments::AMT,
26
+ :name => 'Subscriber Spend Down Total Billed Amount',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 1355,
30
+ :identified_by => {
31
+ 'AMT01' => 'PB'
32
+ }
33
+
34
+ #Subscriber Eligibility or Benefit Additional Inquiry Information
35
+ segment Hippo::Segments::III,
36
+ :name => 'Subscriber Eligibility or Benefit Additional Inquiry Information',
37
+ :minimum => 0,
38
+ :maximum => 1,
39
+ :position => 1390,
40
+ :identified_by => {
41
+ 'III01' => 'ZZ'
42
+ }
43
+
44
+ #Subscriber Additional Information
45
+ segment Hippo::Segments::REF,
46
+ :name => 'Subscriber Additional Information',
47
+ :minimum => 0,
48
+ :maximum => 1,
49
+ :position => 1400,
50
+ :identified_by => {
51
+ 'REF01' => ["9F", "G1"]
52
+ }
53
+
54
+ #Subscriber Eligibility/Benefit Date
55
+ segment Hippo::Segments::DTP,
56
+ :name => 'Subscriber Eligibility/Benefit Date',
57
+ :minimum => 0,
58
+ :maximum => 1,
59
+ :position => 1500,
60
+ :identified_by => {
61
+ 'DTP01' => '291',
62
+ 'DTP02' => ["D8", "RD8"]
63
+ }
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,47 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_270
3
+
4
+ class L2110D < Hippo::TransactionSets::Base
5
+ loop_name 'L2110D' #Dependent Eligibility or Benefit Inquiry
6
+
7
+ #Dependent Eligibility or Benefit Inquiry
8
+ segment Hippo::Segments::EQ,
9
+ :name => 'Dependent Eligibility or Benefit Inquiry',
10
+ :minimum => 1,
11
+ :maximum => 1,
12
+ :position => 1300
13
+
14
+ #Dependent Eligibility or Benefit Additional Inquiry Information
15
+ segment Hippo::Segments::III,
16
+ :name => 'Dependent Eligibility or Benefit Additional Inquiry Information',
17
+ :minimum => 0,
18
+ :maximum => 1,
19
+ :position => 1390,
20
+ :identified_by => {
21
+ 'III01' => 'ZZ'
22
+ }
23
+
24
+ #Dependent Additional Information
25
+ segment Hippo::Segments::REF,
26
+ :name => 'Dependent Additional Information',
27
+ :minimum => 0,
28
+ :maximum => 1,
29
+ :position => 1400,
30
+ :identified_by => {
31
+ 'REF01' => ["9F", "G1"]
32
+ }
33
+
34
+ #Dependent Eligibility/Benefit Date
35
+ segment Hippo::Segments::DTP,
36
+ :name => 'Dependent Eligibility/Benefit Date',
37
+ :minimum => 0,
38
+ :maximum => 1,
39
+ :position => 1500,
40
+ :identified_by => {
41
+ 'DTP01' => '291',
42
+ 'DTP02' => ["D8", "RD8"]
43
+ }
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,80 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_270
3
+
4
+ class Base < Hippo::TransactionSets::Base
5
+
6
+ #Transaction Set Header
7
+ segment Hippo::Segments::ST,
8
+ :name => 'Transaction Set Header',
9
+ :minimum => 1,
10
+ :maximum => 1,
11
+ :position => 100,
12
+ :identified_by => {
13
+ 'ST01' => '270'
14
+ }
15
+
16
+ #Beginning of Hierarchical Transaction
17
+ segment Hippo::Segments::BHT,
18
+ :name => 'Beginning of Hierarchical Transaction',
19
+ :minimum => 1,
20
+ :maximum => 1,
21
+ :position => 200,
22
+ :identified_by => {
23
+ 'BHT01' => '0022',
24
+ 'BHT02' => ["01", "13"]
25
+ }
26
+
27
+ #Information Source Level
28
+ loop Hippo::TransactionSets::HIPAA_270::L2000A,
29
+ :name => 'Information Source Level',
30
+ :minimum => 1,
31
+ :maximum => 99999,
32
+ :position => 100,
33
+ :identified_by => {
34
+ 'HL.HL03' => '20',
35
+ 'HL.HL04' => '1'
36
+ }
37
+
38
+ #Information Receiver Level
39
+ loop Hippo::TransactionSets::HIPAA_270::L2000B,
40
+ :name => 'Information Receiver Level',
41
+ :minimum => 1,
42
+ :maximum => 99999,
43
+ :position => 100,
44
+ :identified_by => {
45
+ 'HL.HL03' => '21',
46
+ 'HL.HL04' => '1'
47
+ }
48
+
49
+ #Subscriber Level
50
+ loop Hippo::TransactionSets::HIPAA_270::L2000C,
51
+ :name => 'Subscriber Level',
52
+ :minimum => 1,
53
+ :maximum => 99999,
54
+ :position => 100,
55
+ :identified_by => {
56
+ 'HL.HL03' => '22',
57
+ 'HL.HL04' => ["0", "1"]
58
+ }
59
+
60
+ #Dependent Level
61
+ loop Hippo::TransactionSets::HIPAA_270::L2000D,
62
+ :name => 'Dependent Level',
63
+ :minimum => 0,
64
+ :maximum => 99999,
65
+ :position => 100,
66
+ :identified_by => {
67
+ 'HL.HL03' => '23',
68
+ 'HL.HL04' => '0'
69
+ }
70
+
71
+ #Transaction Set Trailer
72
+ segment Hippo::Segments::SE,
73
+ :name => 'Transaction Set Trailer',
74
+ :minimum => 1,
75
+ :maximum => 1,
76
+ :position => 1600
77
+
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,17 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_270
3
+
4
+ autoload :Base, 'hippo/transaction_sets/HIPAA_270/base'
5
+ autoload :L2000A, 'hippo/transaction_sets/HIPAA_270/L2000A'
6
+ autoload :L2000B, 'hippo/transaction_sets/HIPAA_270/L2000B'
7
+ autoload :L2000C, 'hippo/transaction_sets/HIPAA_270/L2000C'
8
+ autoload :L2000D, 'hippo/transaction_sets/HIPAA_270/L2000D'
9
+ autoload :L2100A, 'hippo/transaction_sets/HIPAA_270/L2100A'
10
+ autoload :L2100B, 'hippo/transaction_sets/HIPAA_270/L2100B'
11
+ autoload :L2100C, 'hippo/transaction_sets/HIPAA_270/L2100C'
12
+ autoload :L2100D, 'hippo/transaction_sets/HIPAA_270/L2100D'
13
+ autoload :L2110C, 'hippo/transaction_sets/HIPAA_270/L2110C'
14
+ autoload :L2110D, 'hippo/transaction_sets/HIPAA_270/L2110D'
15
+
16
+ end
17
+ end
@@ -0,0 +1,44 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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' => ["0", "1"]
16
+ }
17
+
18
+ #Request Validation
19
+ segment Hippo::Segments::AAA,
20
+ :name => 'Request Validation',
21
+ :minimum => 0,
22
+ :maximum => 9,
23
+ :position => 250,
24
+ :identified_by => {
25
+ 'AAA01' => ["N", "Y"],
26
+ 'AAA03' => ["04", "41", "42", "79"],
27
+ 'AAA04' => ["C", "N", "P", "R", "S", "Y"]
28
+ }
29
+
30
+ #Information Source Name
31
+ loop Hippo::TransactionSets::HIPAA_271::L2100A,
32
+ :name => 'Information Source Name',
33
+ :minimum => 1,
34
+ :maximum => 1,
35
+ :position => 300,
36
+ :identified_by => {
37
+ 'NM1.NM101' => ["2B", "36", "GP", "P5", "PR"],
38
+ 'NM1.NM102' => ["1", "2"],
39
+ 'NM1.NM108' => ["24", "46", "FI", "NI", "PI", "XV", "XX"]
40
+ }
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,32 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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 => 0,
11
+ :maximum => 1,
12
+ :position => 100,
13
+ :identified_by => {
14
+ 'HL03' => '21',
15
+ 'HL04' => ["0", "1"]
16
+ }
17
+
18
+ #Information Receiver Name
19
+ loop Hippo::TransactionSets::HIPAA_271::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_271
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 => 0,
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 => 3,
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'TRN01' => ["1", "2"]
26
+ }
27
+
28
+ #Subscriber Name
29
+ loop Hippo::TransactionSets::HIPAA_271::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_271
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 => 3,
23
+ :position => 200,
24
+ :identified_by => {
25
+ 'TRN01' => ["1", "2"]
26
+ }
27
+
28
+ #Dependent Name
29
+ loop Hippo::TransactionSets::HIPAA_271::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,43 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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
+ #Information Source Contact Information
20
+ segment Hippo::Segments::PER,
21
+ :name => 'Information Source Contact Information',
22
+ :minimum => 0,
23
+ :maximum => 3,
24
+ :position => 800,
25
+ :identified_by => {
26
+ 'PER01' => 'IC'
27
+ }
28
+
29
+ #Request Validation
30
+ segment Hippo::Segments::AAA,
31
+ :name => 'Request Validation',
32
+ :minimum => 0,
33
+ :maximum => 9,
34
+ :position => 850,
35
+ :identified_by => {
36
+ 'AAA01' => ["N", "Y"],
37
+ 'AAA03' => ["04", "41", "42", "79", "80", "T4"],
38
+ 'AAA04' => ["C", "N", "P", "R", "S", "W", "X", "Y"]
39
+ }
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,67 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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 Request Validation
44
+ segment Hippo::Segments::AAA,
45
+ :name => 'Information Receiver Request Validation',
46
+ :minimum => 0,
47
+ :maximum => 9,
48
+ :position => 850,
49
+ :identified_by => {
50
+ 'AAA01' => ["N", "Y"],
51
+ 'AAA03' => ["15", "41", "43", "44", "45", "46", "47", "48", "50", "51", "79", "97", "T4"],
52
+ 'AAA04' => ["C", "N", "R", "S", "W", "X", "Y"]
53
+ }
54
+
55
+ #Information Receiver Provider Information
56
+ segment Hippo::Segments::PRV,
57
+ :name => 'Information Receiver Provider Information',
58
+ :minimum => 0,
59
+ :maximum => 1,
60
+ :position => 900,
61
+ :identified_by => {
62
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
63
+ }
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,124 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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", "49", "6P", "CE", "CT", "EA", "EJ", "F6", "GH", "HJ", "IF", "IG", "N6", "NQ", "Q4", "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
+ #Subscriber Request Validation
43
+ segment Hippo::Segments::AAA,
44
+ :name => 'Subscriber Request Validation',
45
+ :minimum => 0,
46
+ :maximum => 9,
47
+ :position => 850,
48
+ :identified_by => {
49
+ 'AAA01' => ["N", "Y"],
50
+ 'AAA03' => ["15", "35", "42", "43", "45", "47", "48", "49", "51", "52", "56", "57", "58", "60", "61", "62", "63", "71", "72", "73", "74", "75", "76", "78"],
51
+ 'AAA04' => ["C", "N", "R", "S", "W", "X", "Y"]
52
+ }
53
+
54
+ #Provider Information
55
+ segment Hippo::Segments::PRV,
56
+ :name => 'Provider Information',
57
+ :minimum => 0,
58
+ :maximum => 1,
59
+ :position => 900,
60
+ :identified_by => {
61
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SK", "SU"]
62
+ }
63
+
64
+ #Subscriber Demographic Information
65
+ segment Hippo::Segments::DMG,
66
+ :name => 'Subscriber Demographic Information',
67
+ :minimum => 0,
68
+ :maximum => 1,
69
+ :position => 1000
70
+
71
+ #Subscriber Relationship
72
+ segment Hippo::Segments::INS,
73
+ :name => 'Subscriber Relationship',
74
+ :minimum => 0,
75
+ :maximum => 1,
76
+ :position => 1100,
77
+ :identified_by => {
78
+ 'INS01' => 'Y',
79
+ 'INS02' => '18'
80
+ }
81
+
82
+ #Subscriber Health Care Diagnosis Code
83
+ segment Hippo::Segments::HI,
84
+ :name => 'Subscriber Health Care Diagnosis Code',
85
+ :minimum => 0,
86
+ :maximum => 1,
87
+ :position => 1150
88
+
89
+ #Subscriber Date
90
+ segment Hippo::Segments::DTP,
91
+ :name => 'Subscriber Date',
92
+ :minimum => 0,
93
+ :maximum => 9,
94
+ :position => 1200,
95
+ :identified_by => {
96
+ 'DTP01' => ["096", "102", "152", "291", "307", "318", "340", "341", "342", "343", "346", "347", "356", "357", "382", "435", "442", "458", "472", "539", "540", "636", "771"],
97
+ 'DTP02' => ["D8", "RD8"]
98
+ }
99
+
100
+ #Subscriber Military Personnel Information
101
+ segment Hippo::Segments::MPI,
102
+ :name => 'Subscriber Military Personnel Information',
103
+ :minimum => 0,
104
+ :maximum => 1,
105
+ :position => 1275,
106
+ :identified_by => {
107
+ 'MPI01' => ["A", "C", "L", "O", "P", "S", "T"],
108
+ 'MPI02' => ["AE", "AO", "AS", "AT", "AU", "CC", "DD", "HD", "IR", "LX", "PE", "RE", "RM", "RR", "RU"],
109
+ 'MPI03' => ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "Q", "R", "S", "U", "W"]
110
+ }
111
+
112
+ #Subscriber Eligibility or Benefit Information
113
+ loop Hippo::TransactionSets::HIPAA_271::L2110C,
114
+ :name => 'Subscriber Eligibility or Benefit Information',
115
+ :minimum => 0,
116
+ :maximum => 99999,
117
+ :position => 1300,
118
+ :identified_by => {
119
+ 'EB.EB01' => ["1", "2", "3", "4", "5", "6", "7", "8", "A", "B", "C", "CB", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "MC", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"]
120
+ }
121
+
122
+ end
123
+ end
124
+ end