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