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