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,124 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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", "49", "6P", "CE", "CT", "EA", "EJ", "F6", "GH", "HJ", "IF", "IG", "MRC", "N6", "NQ", "Q4", "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
+ #Dependent Request Validation
43
+ segment Hippo::Segments::AAA,
44
+ :name => 'Dependent 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", "64", "65", "66", "67", "68", "71", "77"],
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
+ #Dependent Demographic Information
65
+ segment Hippo::Segments::DMG,
66
+ :name => 'Dependent Demographic Information',
67
+ :minimum => 0,
68
+ :maximum => 1,
69
+ :position => 1000
70
+
71
+ #Dependent Relationship
72
+ segment Hippo::Segments::INS,
73
+ :name => 'Dependent Relationship',
74
+ :minimum => 0,
75
+ :maximum => 1,
76
+ :position => 1100,
77
+ :identified_by => {
78
+ 'INS01' => 'N',
79
+ 'INS02' => ["01", "19", "20", "21", "39", "40", "53", "G8"]
80
+ }
81
+
82
+ #Dependent Health Care Diagnosis Code
83
+ segment Hippo::Segments::HI,
84
+ :name => 'Dependent Health Care Diagnosis Code',
85
+ :minimum => 0,
86
+ :maximum => 1,
87
+ :position => 1150
88
+
89
+ #Dependent Date
90
+ segment Hippo::Segments::DTP,
91
+ :name => 'Dependent 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
+ #Dependent Military Personnel Information
101
+ segment Hippo::Segments::MPI,
102
+ :name => 'Dependent 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
+ #Dependent Eligibility or Benefit Information
113
+ loop Hippo::TransactionSets::HIPAA_271::L2110D,
114
+ :name => 'Dependent 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
@@ -0,0 +1,98 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2110C < Hippo::TransactionSets::Base
5
+ loop_name 'L2110C' #Subscriber Eligibility or Benefit Information
6
+
7
+ #Subscriber Eligibility or Benefit Information
8
+ segment Hippo::Segments::EB,
9
+ :name => 'Subscriber Eligibility or Benefit Information',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1300,
13
+ :identified_by => {
14
+ '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"]
15
+ }
16
+
17
+ #Health Care Services Delivery
18
+ segment Hippo::Segments::HSD,
19
+ :name => 'Health Care Services Delivery',
20
+ :minimum => 0,
21
+ :maximum => 9,
22
+ :position => 1350
23
+
24
+ #Subscriber Additional Identification
25
+ segment Hippo::Segments::REF,
26
+ :name => 'Subscriber Additional Identification',
27
+ :minimum => 0,
28
+ :maximum => 9,
29
+ :position => 1400,
30
+ :identified_by => {
31
+ 'REF01' => ["18", "1L", "1W", "49", "6P", "9F", "ALS", "CLI", "F6", "FO", "G1", "IG", "M7", "N6", "NQ"]
32
+ }
33
+
34
+ #Subscriber Eligibility/Benefit Date
35
+ segment Hippo::Segments::DTP,
36
+ :name => 'Subscriber Eligibility/Benefit Date',
37
+ :minimum => 0,
38
+ :maximum => 20,
39
+ :position => 1500,
40
+ :identified_by => {
41
+ 'DTP01' => ["096", "193", "194", "198", "290", "291", "292", "295", "304", "307", "318", "346", "348", "349", "356", "357", "435", "472", "636", "771"],
42
+ 'DTP02' => ["D8", "RD8"]
43
+ }
44
+
45
+ #Subscriber Request Validation
46
+ segment Hippo::Segments::AAA,
47
+ :name => 'Subscriber Request Validation',
48
+ :minimum => 0,
49
+ :maximum => 9,
50
+ :position => 1600,
51
+ :identified_by => {
52
+ 'AAA01' => ["N", "Y"],
53
+ 'AAA03' => ["15", "33", "52", "53", "54", "55", "56", "57", "60", "61", "62", "63", "69", "70", "98", "AA", "AE", "AF", "AG", "AO", "CI", "E8", "IA", "MA"],
54
+ 'AAA04' => ["C", "N", "R", "W", "X", "Y"]
55
+ }
56
+
57
+ #Message Text
58
+ segment Hippo::Segments::MSG,
59
+ :name => 'Message Text',
60
+ :minimum => 0,
61
+ :maximum => 10,
62
+ :position => 1700
63
+
64
+ #Subscriber Eligibility or Benefit Additional Information
65
+ loop Hippo::TransactionSets::HIPAA_271::L2115C,
66
+ :name => 'Subscriber Eligibility or Benefit Additional Information',
67
+ :minimum => 0,
68
+ :maximum => 10,
69
+ :position => 1710
70
+
71
+ #Loop Header
72
+ segment Hippo::Segments::LS,
73
+ :name => 'Loop Header',
74
+ :minimum => 0,
75
+ :maximum => 1,
76
+ :position => 1780
77
+
78
+ #Subscriber Benefit Related Entity Name
79
+ loop Hippo::TransactionSets::HIPAA_271::L2120C,
80
+ :name => 'Subscriber Benefit Related Entity Name',
81
+ :minimum => 0,
82
+ :maximum => 23,
83
+ :position => 1800,
84
+ :identified_by => {
85
+ 'NM1.NM101' => ["13", "1I", "1P", "2B", "36", "73", "FA", "GP", "GW", "I3", "IL", "LR", "OC", "P3", "P4", "P5", "PR", "PRP", "SEP", "TTP", "VER", "VN", "VY", "X3", "Y2"],
86
+ 'NM1.NM102' => ["1", "2"]
87
+ }
88
+
89
+ #Loop Trailer
90
+ segment Hippo::Segments::LE,
91
+ :name => 'Loop Trailer',
92
+ :minimum => 0,
93
+ :maximum => 1,
94
+ :position => 2250
95
+
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,98 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2110D < Hippo::TransactionSets::Base
5
+ loop_name 'L2110D' #Dependent Eligibility or Benefit Information
6
+
7
+ #Dependent Eligibility or Benefit Information
8
+ segment Hippo::Segments::EB,
9
+ :name => 'Dependent Eligibility or Benefit Information',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1300,
13
+ :identified_by => {
14
+ '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"]
15
+ }
16
+
17
+ #Health Care Services Delivery
18
+ segment Hippo::Segments::HSD,
19
+ :name => 'Health Care Services Delivery',
20
+ :minimum => 0,
21
+ :maximum => 9,
22
+ :position => 1350
23
+
24
+ #Dependent Additional Identification
25
+ segment Hippo::Segments::REF,
26
+ :name => 'Dependent Additional Identification',
27
+ :minimum => 0,
28
+ :maximum => 9,
29
+ :position => 1400,
30
+ :identified_by => {
31
+ 'REF01' => ["18", "1L", "1W", "49", "6P", "9F", "ALS", "CLI", "F6", "FO", "G1", "IG", "N6", "NQ"]
32
+ }
33
+
34
+ #Dependent Eligibility/Benefit Date
35
+ segment Hippo::Segments::DTP,
36
+ :name => 'Dependent Eligibility/Benefit Date',
37
+ :minimum => 0,
38
+ :maximum => 20,
39
+ :position => 1500,
40
+ :identified_by => {
41
+ 'DTP01' => ["096", "193", "194", "198", "290", "291", "292", "295", "304", "307", "318", "346", "348", "349", "356", "357", "435", "472", "636", "771"],
42
+ 'DTP02' => ["D8", "RD8"]
43
+ }
44
+
45
+ #Dependent Request Validation
46
+ segment Hippo::Segments::AAA,
47
+ :name => 'Dependent Request Validation',
48
+ :minimum => 0,
49
+ :maximum => 9,
50
+ :position => 1600,
51
+ :identified_by => {
52
+ 'AAA01' => ["N", "Y"],
53
+ 'AAA03' => ["15", "33", "52", "53", "54", "55", "56", "57", "60", "61", "62", "63", "69", "70", "98", "AA", "AE", "AF", "AG", "AO", "CI", "E8", "IA", "MA"],
54
+ 'AAA04' => ["C", "N", "R", "W", "X", "Y"]
55
+ }
56
+
57
+ #Message Text
58
+ segment Hippo::Segments::MSG,
59
+ :name => 'Message Text',
60
+ :minimum => 0,
61
+ :maximum => 10,
62
+ :position => 1700
63
+
64
+ #Dependent Eligibility or Benefit Additional Information
65
+ loop Hippo::TransactionSets::HIPAA_271::L2115D,
66
+ :name => 'Dependent Eligibility or Benefit Additional Information',
67
+ :minimum => 0,
68
+ :maximum => 10,
69
+ :position => 1710
70
+
71
+ #Loop Header
72
+ segment Hippo::Segments::LS,
73
+ :name => 'Loop Header',
74
+ :minimum => 0,
75
+ :maximum => 1,
76
+ :position => 1780
77
+
78
+ #Dependent Benefit Related Entity Name
79
+ loop Hippo::TransactionSets::HIPAA_271::L2120D,
80
+ :name => 'Dependent Benefit Related Entity Name',
81
+ :minimum => 0,
82
+ :maximum => 23,
83
+ :position => 1800,
84
+ :identified_by => {
85
+ 'NM1.NM101' => ["13", "1I", "1P", "2B", "36", "73", "FA", "GP", "GW", "I3", "IL", "LR", "OC", "P3", "P4", "P5", "PR", "PRP", "SEP", "TTP", "VER", "VN", "VY", "X3", "Y2"],
86
+ 'NM1.NM102' => ["1", "2"]
87
+ }
88
+
89
+ #Loop Trailer
90
+ segment Hippo::Segments::LE,
91
+ :name => 'Loop Trailer',
92
+ :minimum => 0,
93
+ :maximum => 1,
94
+ :position => 2250
95
+
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,16 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2115C < Hippo::TransactionSets::Base
5
+ loop_name 'L2115C' #Subscriber Eligibility or Benefit Additional Information
6
+
7
+ #Subscriber Eligibility or Benefit Additional Information
8
+ segment Hippo::Segments::III,
9
+ :name => 'Subscriber Eligibility or Benefit Additional Information',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1710
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2115D < Hippo::TransactionSets::Base
5
+ loop_name 'L2115D' #Dependent Eligibility or Benefit Additional Information
6
+
7
+ #Dependent Eligibility or Benefit Additional Information
8
+ segment Hippo::Segments::III,
9
+ :name => 'Dependent Eligibility or Benefit Additional Information',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1710
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,54 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2120C < Hippo::TransactionSets::Base
5
+ loop_name 'L2120C' #Subscriber Benefit Related Entity Name
6
+
7
+ #Subscriber Benefit Related Entity Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Subscriber Benefit Related Entity Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1800,
13
+ :identified_by => {
14
+ 'NM101' => ["13", "1I", "1P", "2B", "36", "73", "FA", "GP", "GW", "I3", "IL", "LR", "OC", "P3", "P4", "P5", "PR", "PRP", "SEP", "TTP", "VER", "VN", "VY", "X3", "Y2"],
15
+ 'NM102' => ["1", "2"]
16
+ }
17
+
18
+ #Subscriber Benefit Related Entity Address
19
+ segment Hippo::Segments::N3,
20
+ :name => 'Subscriber Benefit Related Entity Address',
21
+ :minimum => 0,
22
+ :maximum => 1,
23
+ :position => 2000
24
+
25
+ #Subscriber Benefit Related Entity City, State, ZIP Code
26
+ segment Hippo::Segments::N4,
27
+ :name => 'Subscriber Benefit Related Entity City, State, ZIP Code',
28
+ :minimum => 0,
29
+ :maximum => 1,
30
+ :position => 2100
31
+
32
+ #Subscriber Benefit Related Entity Contact Information
33
+ segment Hippo::Segments::PER,
34
+ :name => 'Subscriber Benefit Related Entity Contact Information',
35
+ :minimum => 0,
36
+ :maximum => 3,
37
+ :position => 2200,
38
+ :identified_by => {
39
+ 'PER01' => 'IC'
40
+ }
41
+
42
+ #Subscriber Benefit Related Provider Information
43
+ segment Hippo::Segments::PRV,
44
+ :name => 'Subscriber Benefit Related Provider Information',
45
+ :minimum => 0,
46
+ :maximum => 1,
47
+ :position => 2230,
48
+ :identified_by => {
49
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
50
+ }
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,54 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ class L2120D < Hippo::TransactionSets::Base
5
+ loop_name 'L2120D' #Dependent Benefit Related Entity Name
6
+
7
+ #Dependent Benefit Related Entity Name
8
+ segment Hippo::Segments::NM1,
9
+ :name => 'Dependent Benefit Related Entity Name',
10
+ :minimum => 0,
11
+ :maximum => 1,
12
+ :position => 1800,
13
+ :identified_by => {
14
+ 'NM101' => ["13", "1I", "1P", "2B", "36", "73", "FA", "GP", "GW", "I3", "IL", "LR", "OC", "P3", "P4", "P5", "PR", "PRP", "SEP", "TTP", "VER", "VN", "VY", "X3", "Y2"],
15
+ 'NM102' => ["1", "2"]
16
+ }
17
+
18
+ #Dependent Benefit Related Entity Address
19
+ segment Hippo::Segments::N3,
20
+ :name => 'Dependent Benefit Related Entity Address',
21
+ :minimum => 0,
22
+ :maximum => 1,
23
+ :position => 2000
24
+
25
+ #Dependent Benefit Related Entity City, State, ZIP Code
26
+ segment Hippo::Segments::N4,
27
+ :name => 'Dependent Benefit Related Entity City, State, ZIP Code',
28
+ :minimum => 0,
29
+ :maximum => 1,
30
+ :position => 2100
31
+
32
+ #Dependent Benefit Related Entity Contact Information
33
+ segment Hippo::Segments::PER,
34
+ :name => 'Dependent Benefit Related Entity Contact Information',
35
+ :minimum => 0,
36
+ :maximum => 3,
37
+ :position => 2200,
38
+ :identified_by => {
39
+ 'PER01' => 'IC'
40
+ }
41
+
42
+ #Dependent Benefit Related Provider Information
43
+ segment Hippo::Segments::PRV,
44
+ :name => 'Dependent Benefit Related Provider Information',
45
+ :minimum => 0,
46
+ :maximum => 1,
47
+ :position => 2230,
48
+ :identified_by => {
49
+ 'PRV01' => ["AD", "AT", "BI", "CO", "CV", "H", "HH", "LA", "OT", "P1", "P2", "PC", "PE", "R", "RF", "SB", "SK", "SU"]
50
+ }
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,80 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
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' => '271'
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' => ["06", "11"]
25
+ }
26
+
27
+ #Information Source Level
28
+ loop Hippo::TransactionSets::HIPAA_271::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' => ["0", "1"]
36
+ }
37
+
38
+ #Information Receiver Level
39
+ loop Hippo::TransactionSets::HIPAA_271::L2000B,
40
+ :name => 'Information Receiver Level',
41
+ :minimum => 0,
42
+ :maximum => 99999,
43
+ :position => 100,
44
+ :identified_by => {
45
+ 'HL.HL03' => '21',
46
+ 'HL.HL04' => ["0", "1"]
47
+ }
48
+
49
+ #Subscriber Level
50
+ loop Hippo::TransactionSets::HIPAA_271::L2000C,
51
+ :name => 'Subscriber Level',
52
+ :minimum => 0,
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_271::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 => 2300
77
+
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,21 @@
1
+ module Hippo::TransactionSets
2
+ module HIPAA_271
3
+
4
+ autoload :Base, 'hippo/transaction_sets/HIPAA_271/base'
5
+ autoload :L2000A, 'hippo/transaction_sets/HIPAA_271/L2000A'
6
+ autoload :L2000B, 'hippo/transaction_sets/HIPAA_271/L2000B'
7
+ autoload :L2000C, 'hippo/transaction_sets/HIPAA_271/L2000C'
8
+ autoload :L2000D, 'hippo/transaction_sets/HIPAA_271/L2000D'
9
+ autoload :L2100A, 'hippo/transaction_sets/HIPAA_271/L2100A'
10
+ autoload :L2100B, 'hippo/transaction_sets/HIPAA_271/L2100B'
11
+ autoload :L2100C, 'hippo/transaction_sets/HIPAA_271/L2100C'
12
+ autoload :L2100D, 'hippo/transaction_sets/HIPAA_271/L2100D'
13
+ autoload :L2110C, 'hippo/transaction_sets/HIPAA_271/L2110C'
14
+ autoload :L2110D, 'hippo/transaction_sets/HIPAA_271/L2110D'
15
+ autoload :L2115C, 'hippo/transaction_sets/HIPAA_271/L2115C'
16
+ autoload :L2115D, 'hippo/transaction_sets/HIPAA_271/L2115D'
17
+ autoload :L2120C, 'hippo/transaction_sets/HIPAA_271/L2120C'
18
+ autoload :L2120D, 'hippo/transaction_sets/HIPAA_271/L2120D'
19
+
20
+ end
21
+ end