hippo 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/CHANGELOG +4 -5
  2. data/README.md +10 -5
  3. data/lib/hippo/parser.rb +19 -9
  4. data/lib/hippo/transaction_sets/HIPAA_276/L2000A.rb +7 -3
  5. data/lib/hippo/transaction_sets/HIPAA_276/L2000B.rb +7 -3
  6. data/lib/hippo/transaction_sets/HIPAA_276/L2000C.rb +7 -3
  7. data/lib/hippo/transaction_sets/HIPAA_276/L2000D.rb +15 -8
  8. data/lib/hippo/transaction_sets/HIPAA_276/L2000E.rb +12 -7
  9. data/lib/hippo/transaction_sets/HIPAA_276/L2100A.rb +3 -2
  10. data/lib/hippo/transaction_sets/HIPAA_276/L2100B.rb +2 -1
  11. data/lib/hippo/transaction_sets/HIPAA_276/L2100C.rb +4 -2
  12. data/lib/hippo/transaction_sets/HIPAA_276/L2100D.rb +4 -2
  13. data/lib/hippo/transaction_sets/HIPAA_276/L2100E.rb +1 -1
  14. data/lib/hippo/transaction_sets/HIPAA_276/L2200D.rb +13 -12
  15. data/lib/hippo/transaction_sets/HIPAA_276/L2200E.rb +13 -12
  16. data/lib/hippo/transaction_sets/HIPAA_276/L2210D.rb +4 -3
  17. data/lib/hippo/transaction_sets/HIPAA_276/L2210E.rb +4 -3
  18. data/lib/hippo/transaction_sets/HIPAA_276/base.rb +31 -27
  19. data/lib/hippo/transaction_sets/HIPAA_277/L2000A.rb +11 -4
  20. data/lib/hippo/transaction_sets/HIPAA_277/L2000B.rb +13 -6
  21. data/lib/hippo/transaction_sets/HIPAA_277/L2000C.rb +13 -6
  22. data/lib/hippo/transaction_sets/HIPAA_277/L2000D.rb +12 -6
  23. data/lib/hippo/transaction_sets/HIPAA_277/L2000E.rb +11 -6
  24. data/lib/hippo/transaction_sets/HIPAA_277/L2100A.rb +4 -2
  25. data/lib/hippo/transaction_sets/HIPAA_277/L2100B.rb +2 -1
  26. data/lib/hippo/transaction_sets/HIPAA_277/L2100C.rb +4 -2
  27. data/lib/hippo/transaction_sets/HIPAA_277/L2100D.rb +3 -2
  28. data/lib/hippo/transaction_sets/HIPAA_277/L2100E.rb +1 -1
  29. data/lib/hippo/transaction_sets/HIPAA_277/L2200A.rb +3 -3
  30. data/lib/hippo/transaction_sets/HIPAA_277/L2200B.rb +10 -7
  31. data/lib/hippo/transaction_sets/HIPAA_277/L2200C.rb +14 -8
  32. data/lib/hippo/transaction_sets/HIPAA_277/L2200D.rb +13 -9
  33. data/lib/hippo/transaction_sets/HIPAA_277/L2200E.rb +12 -11
  34. data/lib/hippo/transaction_sets/HIPAA_277/L2220D.rb +7 -6
  35. data/lib/hippo/transaction_sets/HIPAA_277/L2220E.rb +5 -4
  36. data/lib/hippo/transaction_sets/HIPAA_277/base.rb +23 -20
  37. data/lib/hippo/transaction_sets/HIPAA_835/L1000A.rb +9 -6
  38. data/lib/hippo/transaction_sets/HIPAA_835/L1000B.rb +12 -5
  39. data/lib/hippo/transaction_sets/HIPAA_835/L2000.rb +6 -2
  40. data/lib/hippo/transaction_sets/HIPAA_835/L2100.rb +55 -24
  41. data/lib/hippo/transaction_sets/HIPAA_835/L2110.rb +30 -9
  42. data/lib/hippo/transaction_sets/HIPAA_835/base.rb +23 -13
  43. data/lib/hippo/transaction_sets/HIPAA_837/L1000A.rb +5 -3
  44. data/lib/hippo/transaction_sets/HIPAA_837/L1000B.rb +1 -1
  45. data/lib/hippo/transaction_sets/HIPAA_837/L2000A.rb +30 -9
  46. data/lib/hippo/transaction_sets/HIPAA_837/L2000B.rb +42 -7
  47. data/lib/hippo/transaction_sets/HIPAA_837/L2000C.rb +17 -5
  48. data/lib/hippo/transaction_sets/HIPAA_837/L2010AA.rb +14 -6
  49. data/lib/hippo/transaction_sets/HIPAA_837/L2010AB.rb +3 -2
  50. data/lib/hippo/transaction_sets/HIPAA_837/L2010AC.rb +8 -4
  51. data/lib/hippo/transaction_sets/HIPAA_837/L2010BA.rb +9 -7
  52. data/lib/hippo/transaction_sets/HIPAA_837/L2010BB.rb +11 -4
  53. data/lib/hippo/transaction_sets/HIPAA_837/L2010CA.rb +10 -6
  54. data/lib/hippo/transaction_sets/HIPAA_837/L2300.rb +116 -56
  55. data/lib/hippo/transaction_sets/HIPAA_837/L2310A.rb +6 -2
  56. data/lib/hippo/transaction_sets/HIPAA_837/L2310B.rb +8 -4
  57. data/lib/hippo/transaction_sets/HIPAA_837/L2310C.rb +6 -3
  58. data/lib/hippo/transaction_sets/HIPAA_837/L2310D.rb +5 -2
  59. data/lib/hippo/transaction_sets/HIPAA_837/L2310E.rb +1 -1
  60. data/lib/hippo/transaction_sets/HIPAA_837/L2310F.rb +1 -1
  61. data/lib/hippo/transaction_sets/HIPAA_837/L2320.rb +54 -19
  62. data/lib/hippo/transaction_sets/HIPAA_837/L2330A.rb +5 -3
  63. data/lib/hippo/transaction_sets/HIPAA_837/L2330B.rb +12 -8
  64. data/lib/hippo/transaction_sets/HIPAA_837/L2330C.rb +6 -2
  65. data/lib/hippo/transaction_sets/HIPAA_837/L2330D.rb +7 -3
  66. data/lib/hippo/transaction_sets/HIPAA_837/L2330E.rb +5 -2
  67. data/lib/hippo/transaction_sets/HIPAA_837/L2330F.rb +5 -2
  68. data/lib/hippo/transaction_sets/HIPAA_837/L2330G.rb +7 -3
  69. data/lib/hippo/transaction_sets/HIPAA_837/L2400.rb +122 -60
  70. data/lib/hippo/transaction_sets/HIPAA_837/L2410.rb +8 -2
  71. data/lib/hippo/transaction_sets/HIPAA_837/L2420A.rb +8 -4
  72. data/lib/hippo/transaction_sets/HIPAA_837/L2420B.rb +7 -3
  73. data/lib/hippo/transaction_sets/HIPAA_837/L2420C.rb +5 -2
  74. data/lib/hippo/transaction_sets/HIPAA_837/L2420D.rb +5 -2
  75. data/lib/hippo/transaction_sets/HIPAA_837/L2420E.rb +8 -4
  76. data/lib/hippo/transaction_sets/HIPAA_837/L2420F.rb +6 -2
  77. data/lib/hippo/transaction_sets/HIPAA_837/L2420G.rb +1 -1
  78. data/lib/hippo/transaction_sets/HIPAA_837/L2420H.rb +1 -1
  79. data/lib/hippo/transaction_sets/HIPAA_837/L2430.rb +6 -3
  80. data/lib/hippo/transaction_sets/HIPAA_837/L2440.rb +4 -1
  81. data/lib/hippo/transaction_sets/HIPAA_837/base.rb +23 -32
  82. data/lib/hippo/transaction_sets/HIPAA_999/L2000AK2.rb +9 -3
  83. data/lib/hippo/transaction_sets/HIPAA_999/L2100AK2.rb +9 -3
  84. data/lib/hippo/transaction_sets/HIPAA_999/L2110AK2.rb +4 -1
  85. data/lib/hippo/transaction_sets/HIPAA_999/base.rb +6 -3
  86. data/lib/hippo/transaction_sets/base.rb +87 -72
  87. data/lib/hippo/transaction_sets/component.rb +80 -0
  88. data/lib/hippo/transaction_sets/repeating_component.rb +30 -0
  89. data/lib/hippo/transaction_sets.rb +8 -6
  90. data/lib/hippo/version.rb +1 -1
  91. data/samples/005010X221A1_business_scenario_1.edi +1 -0
  92. data/samples/005010X221A1_tmhp_example.edi +1 -0
  93. data/samples/005010X222A1_anesthesia.edi +1 -0
  94. data/samples/005010X222A1_commercial_health_insurance.edi +1 -0
  95. data/test/test_helper.rb +6 -6
  96. data/test/test_hipaa_835.rb +229 -0
  97. data/test/test_hipaa_837.rb +263 -63
  98. data/test/test_parser.rb +26 -0
  99. data/test/test_segments_base.rb +1 -1
  100. data/test/test_transaction_sets_base.rb +21 -1
  101. metadata +17 -16
  102. data/bin/demo_270.rb +0 -280
  103. data/bin/demo_276.rb +0 -296
  104. data/bin/demo_835.rb +0 -170
  105. data/lib/hippo/samples/835.edi +0 -88
  106. data/lib/hippo/samples/sample_835_with.rb +0 -272
  107. data/lib/hippo/samples/sample_parsed.rb +0 -1162
@@ -16,7 +16,10 @@ module Hippo::TransactionSets
16
16
  :name => 'Professional Service',
17
17
  :minimum => 1,
18
18
  :maximum => 1,
19
- :position => 3700
19
+ :position => 3700,
20
+ :identified_by => {
21
+ 'SV103' => ["MJ", "UN"]
22
+ }
20
23
 
21
24
  #Durable Medical Equipment Service
22
25
  segment Hippo::Segments::SV5,
@@ -24,8 +27,9 @@ module Hippo::TransactionSets
24
27
  :minimum => 0,
25
28
  :maximum => 1,
26
29
  :position => 4000,
27
- :defaults => {
28
- 'SV502' => 'DA'
30
+ :identified_by => {
31
+ 'SV502' => 'DA',
32
+ 'SV506' => ["1", "4", "6"]
29
33
  }
30
34
 
31
35
  #Line Supplemental Information
@@ -33,7 +37,11 @@ module Hippo::TransactionSets
33
37
  :name => 'Line Supplemental Information',
34
38
  :minimum => 0,
35
39
  :maximum => 10,
36
- :position => 4200
40
+ :position => 4200,
41
+ :identified_by => {
42
+ 'PWK01' => ["03", "04", "05", "06", "07", "08", "09", "10", "11", "13", "15", "21", "A3", "A4", "AM", "AS", "B2", "B3", "B4", "BR", "BS", "BT", "CB", "CK", "CT", "D2", "DA", "DB", "DG", "DJ", "DS", "EB", "HC", "HR", "I5", "IR", "LA", "M1", "MT", "NN", "OB", "OC", "OD", "OE", "OX", "OZ", "P4", "P5", "PE", "PN", "PO", "PQ", "PY", "PZ", "RB", "RR", "RT", "RX", "SG", "V5", "XP"],
43
+ 'PWK02' => ["AA", "BM", "EL", "EM", "FT", "FX"]
44
+ }
37
45
 
38
46
  #Durable Medical Equipment Certificate of Medical Necessity Indicator
39
47
  segment Hippo::Segments::PWK,
@@ -41,8 +49,9 @@ module Hippo::TransactionSets
41
49
  :minimum => 0,
42
50
  :maximum => 1,
43
51
  :position => 4220,
44
- :defaults => {
45
- 'PWK01' => 'CT'
52
+ :identified_by => {
53
+ 'PWK01' => 'CT',
54
+ 'PWK02' => ["AB", "AD", "AF", "AG", "NS"]
46
55
  }
47
56
 
48
57
  #Ambulance Transport Information
@@ -51,7 +60,8 @@ module Hippo::TransactionSets
51
60
  :minimum => 0,
52
61
  :maximum => 1,
53
62
  :position => 4250,
54
- :defaults => {
63
+ :identified_by => {
64
+ 'CR104' => ["A", "B", "C", "D", "E"],
55
65
  'CR105' => 'DH'
56
66
  }
57
67
 
@@ -61,7 +71,8 @@ module Hippo::TransactionSets
61
71
  :minimum => 0,
62
72
  :maximum => 1,
63
73
  :position => 4350,
64
- :defaults => {
74
+ :identified_by => {
75
+ 'CR301' => ["I", "R", "S"],
65
76
  'CR302' => 'MO'
66
77
  }
67
78
 
@@ -71,8 +82,10 @@ module Hippo::TransactionSets
71
82
  :minimum => 0,
72
83
  :maximum => 3,
73
84
  :position => 4500,
74
- :defaults => {
75
- 'CRC01' => '07'
85
+ :identified_by => {
86
+ 'CRC01' => '07',
87
+ 'CRC02' => ["N", "Y"],
88
+ 'CRC03' => ["01", "04", "05", "06", "07", "08", "09", "12"]
76
89
  }
77
90
 
78
91
  #Hospice Employee Indicator
@@ -81,8 +94,9 @@ module Hippo::TransactionSets
81
94
  :minimum => 0,
82
95
  :maximum => 1,
83
96
  :position => 4520,
84
- :defaults => {
97
+ :identified_by => {
85
98
  'CRC01' => '70',
99
+ 'CRC02' => ["N", "Y"],
86
100
  'CRC03' => '65'
87
101
  }
88
102
 
@@ -92,8 +106,10 @@ module Hippo::TransactionSets
92
106
  :minimum => 0,
93
107
  :maximum => 1,
94
108
  :position => 4530,
95
- :defaults => {
96
- 'CRC01' => '09'
109
+ :identified_by => {
110
+ 'CRC01' => '09',
111
+ 'CRC02' => ["N", "Y"],
112
+ 'CRC03' => ["38", "ZV"]
97
113
  }
98
114
 
99
115
  #Date - Service Date
@@ -102,8 +118,9 @@ module Hippo::TransactionSets
102
118
  :minimum => 1,
103
119
  :maximum => 1,
104
120
  :position => 4550,
105
- :defaults => {
106
- 'DTP01' => '472'
121
+ :identified_by => {
122
+ 'DTP01' => '472',
123
+ 'DTP02' => ["D8", "RD8"]
107
124
  }
108
125
 
109
126
  #Date - Prescription Date
@@ -112,7 +129,7 @@ module Hippo::TransactionSets
112
129
  :minimum => 0,
113
130
  :maximum => 1,
114
131
  :position => 4555,
115
- :defaults => {
132
+ :identified_by => {
116
133
  'DTP01' => '471',
117
134
  'DTP02' => 'D8'
118
135
  }
@@ -123,7 +140,7 @@ module Hippo::TransactionSets
123
140
  :minimum => 0,
124
141
  :maximum => 1,
125
142
  :position => 4560,
126
- :defaults => {
143
+ :identified_by => {
127
144
  'DTP01' => '607',
128
145
  'DTP02' => 'D8'
129
146
  }
@@ -134,7 +151,7 @@ module Hippo::TransactionSets
134
151
  :minimum => 0,
135
152
  :maximum => 1,
136
153
  :position => 4580,
137
- :defaults => {
154
+ :identified_by => {
138
155
  'DTP01' => '463',
139
156
  'DTP02' => 'D8'
140
157
  }
@@ -145,7 +162,7 @@ module Hippo::TransactionSets
145
162
  :minimum => 0,
146
163
  :maximum => 1,
147
164
  :position => 4590,
148
- :defaults => {
165
+ :identified_by => {
149
166
  'DTP01' => '461',
150
167
  'DTP02' => 'D8'
151
168
  }
@@ -156,7 +173,7 @@ module Hippo::TransactionSets
156
173
  :minimum => 0,
157
174
  :maximum => 1,
158
175
  :position => 45,
159
- :defaults => {
176
+ :identified_by => {
160
177
  'DTP01' => '304',
161
178
  'DTP02' => 'D8'
162
179
  }
@@ -167,7 +184,8 @@ module Hippo::TransactionSets
167
184
  :minimum => 0,
168
185
  :maximum => 2,
169
186
  :position => 45,
170
- :defaults => {
187
+ :identified_by => {
188
+ 'DTP01' => ["738", "739"],
171
189
  'DTP02' => 'D8'
172
190
  }
173
191
 
@@ -177,7 +195,7 @@ module Hippo::TransactionSets
177
195
  :minimum => 0,
178
196
  :maximum => 1,
179
197
  :position => 45,
180
- :defaults => {
198
+ :identified_by => {
181
199
  'DTP01' => '011',
182
200
  'DTP02' => 'D8'
183
201
  }
@@ -188,7 +206,7 @@ module Hippo::TransactionSets
188
206
  :minimum => 0,
189
207
  :maximum => 1,
190
208
  :position => 45,
191
- :defaults => {
209
+ :identified_by => {
192
210
  'DTP01' => '455',
193
211
  'DTP02' => 'D8'
194
212
  }
@@ -199,7 +217,7 @@ module Hippo::TransactionSets
199
217
  :minimum => 0,
200
218
  :maximum => 1,
201
219
  :position => 45,
202
- :defaults => {
220
+ :identified_by => {
203
221
  'DTP01' => '454',
204
222
  'DTP02' => 'D8'
205
223
  }
@@ -210,7 +228,7 @@ module Hippo::TransactionSets
210
228
  :minimum => 0,
211
229
  :maximum => 1,
212
230
  :position => 4600,
213
- :defaults => {
231
+ :identified_by => {
214
232
  'QTY01' => 'PT'
215
233
  }
216
234
 
@@ -220,7 +238,7 @@ module Hippo::TransactionSets
220
238
  :minimum => 0,
221
239
  :maximum => 1,
222
240
  :position => 4610,
223
- :defaults => {
241
+ :identified_by => {
224
242
  'QTY01' => 'FL'
225
243
  }
226
244
 
@@ -229,14 +247,21 @@ module Hippo::TransactionSets
229
247
  :name => 'Test Result',
230
248
  :minimum => 0,
231
249
  :maximum => 5,
232
- :position => 4620
250
+ :position => 4620,
251
+ :identified_by => {
252
+ 'MEA01' => ["OG", "TR"],
253
+ 'MEA02' => ["HT", "R1", "R2", "R3", "R4"]
254
+ }
233
255
 
234
256
  #Contract Information
235
257
  segment Hippo::Segments::CN1,
236
258
  :name => 'Contract Information',
237
259
  :minimum => 0,
238
260
  :maximum => 1,
239
- :position => 4650
261
+ :position => 4650,
262
+ :identified_by => {
263
+ 'CN101' => ["01", "02", "03", "04", "05", "06", "09"]
264
+ }
240
265
 
241
266
  #Repriced Line Item Reference Number
242
267
  segment Hippo::Segments::REF,
@@ -244,7 +269,7 @@ module Hippo::TransactionSets
244
269
  :minimum => 0,
245
270
  :maximum => 1,
246
271
  :position => 4700,
247
- :defaults => {
272
+ :identified_by => {
248
273
  'REF01' => '9B'
249
274
  }
250
275
 
@@ -254,7 +279,7 @@ module Hippo::TransactionSets
254
279
  :minimum => 0,
255
280
  :maximum => 1,
256
281
  :position => 4710,
257
- :defaults => {
282
+ :identified_by => {
258
283
  'REF01' => '9D'
259
284
  }
260
285
 
@@ -264,7 +289,7 @@ module Hippo::TransactionSets
264
289
  :minimum => 0,
265
290
  :maximum => 5,
266
291
  :position => 4730,
267
- :defaults => {
292
+ :identified_by => {
268
293
  'REF01' => 'G1'
269
294
  }
270
295
 
@@ -274,7 +299,7 @@ module Hippo::TransactionSets
274
299
  :minimum => 0,
275
300
  :maximum => 1,
276
301
  :position => 47,
277
- :defaults => {
302
+ :identified_by => {
278
303
  'REF01' => '6R'
279
304
  }
280
305
 
@@ -284,7 +309,7 @@ module Hippo::TransactionSets
284
309
  :minimum => 0,
285
310
  :maximum => 1,
286
311
  :position => 47,
287
- :defaults => {
312
+ :identified_by => {
288
313
  'REF01' => 'EW'
289
314
  }
290
315
 
@@ -294,7 +319,7 @@ module Hippo::TransactionSets
294
319
  :minimum => 0,
295
320
  :maximum => 1,
296
321
  :position => 47,
297
- :defaults => {
322
+ :identified_by => {
298
323
  'REF01' => 'X4'
299
324
  }
300
325
 
@@ -304,7 +329,7 @@ module Hippo::TransactionSets
304
329
  :minimum => 0,
305
330
  :maximum => 1,
306
331
  :position => 47,
307
- :defaults => {
332
+ :identified_by => {
308
333
  'REF01' => 'F4'
309
334
  }
310
335
 
@@ -314,7 +339,7 @@ module Hippo::TransactionSets
314
339
  :minimum => 0,
315
340
  :maximum => 1,
316
341
  :position => 47,
317
- :defaults => {
342
+ :identified_by => {
318
343
  'REF01' => 'BT'
319
344
  }
320
345
 
@@ -324,7 +349,7 @@ module Hippo::TransactionSets
324
349
  :minimum => 0,
325
350
  :maximum => 5,
326
351
  :position => 47,
327
- :defaults => {
352
+ :identified_by => {
328
353
  'REF01' => '9F'
329
354
  }
330
355
 
@@ -334,7 +359,7 @@ module Hippo::TransactionSets
334
359
  :minimum => 0,
335
360
  :maximum => 1,
336
361
  :position => 4810,
337
- :defaults => {
362
+ :identified_by => {
338
363
  'AMT01' => 'T'
339
364
  }
340
365
 
@@ -344,7 +369,7 @@ module Hippo::TransactionSets
344
369
  :minimum => 0,
345
370
  :maximum => 1,
346
371
  :position => 4830,
347
- :defaults => {
372
+ :identified_by => {
348
373
  'AMT01' => 'F4'
349
374
  }
350
375
 
@@ -360,7 +385,10 @@ module Hippo::TransactionSets
360
385
  :name => 'Line Note',
361
386
  :minimum => 0,
362
387
  :maximum => 1,
363
- :position => 4860
388
+ :position => 4860,
389
+ :identified_by => {
390
+ 'NTE01' => ["ADD", "DCP"]
391
+ }
364
392
 
365
393
  #Third Party Organization Notes
366
394
  segment Hippo::Segments::NTE,
@@ -368,7 +396,7 @@ module Hippo::TransactionSets
368
396
  :minimum => 0,
369
397
  :maximum => 1,
370
398
  :position => 4865,
371
- :defaults => {
399
+ :identified_by => {
372
400
  'NTE01' => 'TPO'
373
401
  }
374
402
 
@@ -384,77 +412,108 @@ module Hippo::TransactionSets
384
412
  :name => 'Line Pricing/Repricing Information',
385
413
  :minimum => 0,
386
414
  :maximum => 1,
387
- :position => 4920
415
+ :position => 4920,
416
+ :identified_by => {
417
+ 'HCP01' => ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14"]
418
+ }
388
419
 
389
420
  #Drug Identification
390
421
  loop Hippo::TransactionSets::HIPAA_837::L2410,
391
422
  :name => 'Drug Identification',
392
423
  :minimum => 0,
393
424
  :maximum => 1,
394
- :position => 4940
425
+ :position => 4940,
426
+ :identified_by => {
427
+ 'LIN.LIN02' => ["EN", "EO", "HI", "N4", "ON", "UK", "UP"]
428
+ }
395
429
 
396
430
  #Rendering Provider Name
397
431
  loop Hippo::TransactionSets::HIPAA_837::L2420A,
398
432
  :name => 'Rendering Provider Name',
399
- :identified_by => {'NM1.NM101' => '82'},
400
433
  :minimum => 0,
401
434
  :maximum => 1,
402
- :position => 5000
435
+ :position => 5000,
436
+ :identified_by => {
437
+ 'NM1.NM101' => '82',
438
+ 'NM1.NM102' => ["1", "2"]
439
+ }
403
440
 
404
441
  #Purchased Service Provider Name
405
442
  loop Hippo::TransactionSets::HIPAA_837::L2420B,
406
443
  :name => 'Purchased Service Provider Name',
407
- :identified_by => {'NM1.NM101' => 'QB'},
408
444
  :minimum => 0,
409
445
  :maximum => 1,
410
- :position => 5000
446
+ :position => 5000,
447
+ :identified_by => {
448
+ 'NM1.NM101' => 'QB',
449
+ 'NM1.NM102' => ["1", "2"]
450
+ }
411
451
 
412
452
  #Service Facility Location Name
413
453
  loop Hippo::TransactionSets::HIPAA_837::L2420C,
414
454
  :name => 'Service Facility Location Name',
415
- :identified_by => {'NM1.NM101' => '77'},
416
455
  :minimum => 0,
417
456
  :maximum => 1,
418
- :position => 5000
457
+ :position => 5000,
458
+ :identified_by => {
459
+ 'NM1.NM101' => '77',
460
+ 'NM1.NM102' => '2'
461
+ }
419
462
 
420
463
  #Supervising Provider Name
421
464
  loop Hippo::TransactionSets::HIPAA_837::L2420D,
422
465
  :name => 'Supervising Provider Name',
423
- :identified_by => {'NM1.NM101' => 'DQ'},
424
466
  :minimum => 0,
425
467
  :maximum => 1,
426
- :position => 5000
468
+ :position => 5000,
469
+ :identified_by => {
470
+ 'NM1.NM101' => 'DQ',
471
+ 'NM1.NM102' => '1'
472
+ }
427
473
 
428
474
  #Ordering Provider Name
429
475
  loop Hippo::TransactionSets::HIPAA_837::L2420E,
430
476
  :name => 'Ordering Provider Name',
431
- :identified_by => {'NM1.NM101' => 'DK'},
432
477
  :minimum => 0,
433
478
  :maximum => 1,
434
- :position => 5000
479
+ :position => 5000,
480
+ :identified_by => {
481
+ 'NM1.NM101' => 'DK',
482
+ 'NM1.NM102' => '1'
483
+ }
435
484
 
436
485
  #Referring Provider Name
437
486
  loop Hippo::TransactionSets::HIPAA_837::L2420F,
438
487
  :name => 'Referring Provider Name',
439
488
  :minimum => 0,
440
489
  :maximum => 2,
441
- :position => 5000
490
+ :position => 5000,
491
+ :identified_by => {
492
+ 'NM1.NM101' => ["DN", "P3"],
493
+ 'NM1.NM102' => '1'
494
+ }
442
495
 
443
496
  #Ambulance Pick-up Location
444
497
  loop Hippo::TransactionSets::HIPAA_837::L2420G,
445
498
  :name => 'Ambulance Pick-up Location',
446
- :identified_by => {'NM1.NM101' => 'PW'},
447
499
  :minimum => 0,
448
500
  :maximum => 1,
449
- :position => 5310
501
+ :position => 5310,
502
+ :identified_by => {
503
+ 'NM1.NM101' => 'PW',
504
+ 'NM1.NM102' => '2'
505
+ }
450
506
 
451
507
  #Ambulance Drop-off Location
452
508
  loop Hippo::TransactionSets::HIPAA_837::L2420H,
453
509
  :name => 'Ambulance Drop-off Location',
454
- :identified_by => {'NM1.NM101' => '45'},
455
510
  :minimum => 0,
456
511
  :maximum => 1,
457
- :position => 5380
512
+ :position => 5380,
513
+ :identified_by => {
514
+ 'NM1.NM101' => '45',
515
+ 'NM1.NM102' => '2'
516
+ }
458
517
 
459
518
  #Line Adjudication Information
460
519
  loop Hippo::TransactionSets::HIPAA_837::L2430,
@@ -467,8 +526,11 @@ module Hippo::TransactionSets
467
526
  loop Hippo::TransactionSets::HIPAA_837::L2440,
468
527
  :name => 'Form Identification Code',
469
528
  :minimum => 0,
470
- :maximum => nil,
471
- :position => 5510
529
+ :maximum => 99999,
530
+ :position => 5510,
531
+ :identified_by => {
532
+ 'LQ.LQ01' => ["AS", "UT"]
533
+ }
472
534
 
473
535
  end
474
536
  end
@@ -9,7 +9,10 @@ module Hippo::TransactionSets
9
9
  :name => 'Drug Identification',
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
- :position => 4940
12
+ :position => 4940,
13
+ :identified_by => {
14
+ 'LIN02' => ["EN", "EO", "HI", "N4", "ON", "UK", "UP"]
15
+ }
13
16
 
14
17
  #Drug Quantity
15
18
  segment Hippo::Segments::CTP,
@@ -23,7 +26,10 @@ module Hippo::TransactionSets
23
26
  :name => 'Prescription or Compound Drug Association Number',
24
27
  :minimum => 0,
25
28
  :maximum => 1,
26
- :position => 4960
29
+ :position => 4960,
30
+ :identified_by => {
31
+ 'REF01' => ["VY", "XZ"]
32
+ }
27
33
 
28
34
  end
29
35
  end
@@ -10,8 +10,9 @@ module Hippo::TransactionSets
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
12
  :position => 5000,
13
- :defaults => {
14
- 'NM101' => '82'
13
+ :identified_by => {
14
+ 'NM101' => '82',
15
+ 'NM102' => ["1", "2"]
15
16
  }
16
17
 
17
18
  #Rendering Provider Specialty Information
@@ -20,7 +21,7 @@ module Hippo::TransactionSets
20
21
  :minimum => 0,
21
22
  :maximum => 1,
22
23
  :position => 5050,
23
- :defaults => {
24
+ :identified_by => {
24
25
  'PRV01' => 'PE',
25
26
  'PRV02' => 'PXC'
26
27
  }
@@ -30,7 +31,10 @@ module Hippo::TransactionSets
30
31
  :name => 'Rendering Provider Secondary Identification',
31
32
  :minimum => 0,
32
33
  :maximum => 20,
33
- :position => 5250
34
+ :position => 5250,
35
+ :identified_by => {
36
+ 'REF01' => ["0B", "1G", "G2", "LU"]
37
+ }
34
38
 
35
39
  end
36
40
  end
@@ -10,8 +10,9 @@ module Hippo::TransactionSets
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
12
  :position => 5000,
13
- :defaults => {
14
- 'NM101' => 'QB'
13
+ :identified_by => {
14
+ 'NM101' => 'QB',
15
+ 'NM102' => ["1", "2"]
15
16
  }
16
17
 
17
18
  #Purchased Service Provider Secondary Identification
@@ -19,7 +20,10 @@ module Hippo::TransactionSets
19
20
  :name => 'Purchased Service Provider Secondary Identification',
20
21
  :minimum => 0,
21
22
  :maximum => 20,
22
- :position => 5250
23
+ :position => 5250,
24
+ :identified_by => {
25
+ 'REF01' => ["0B", "1G", "G2"]
26
+ }
23
27
 
24
28
  end
25
29
  end
@@ -10,7 +10,7 @@ module Hippo::TransactionSets
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
12
  :position => 5000,
13
- :defaults => {
13
+ :identified_by => {
14
14
  'NM101' => '77',
15
15
  'NM102' => '2'
16
16
  }
@@ -34,7 +34,10 @@ module Hippo::TransactionSets
34
34
  :name => 'Service Facility Location Secondary Identification',
35
35
  :minimum => 0,
36
36
  :maximum => 3,
37
- :position => 5250
37
+ :position => 5250,
38
+ :identified_by => {
39
+ 'REF01' => ["G2", "LU"]
40
+ }
38
41
 
39
42
  end
40
43
  end
@@ -10,7 +10,7 @@ module Hippo::TransactionSets
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
12
  :position => 5000,
13
- :defaults => {
13
+ :identified_by => {
14
14
  'NM101' => 'DQ',
15
15
  'NM102' => '1'
16
16
  }
@@ -20,7 +20,10 @@ module Hippo::TransactionSets
20
20
  :name => 'Supervising Provider Secondary Identification',
21
21
  :minimum => 0,
22
22
  :maximum => 20,
23
- :position => 5250
23
+ :position => 5250,
24
+ :identified_by => {
25
+ 'REF01' => ["0B", "1G", "G2", "LU"]
26
+ }
24
27
 
25
28
  end
26
29
  end
@@ -10,7 +10,7 @@ module Hippo::TransactionSets
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
12
  :position => 5000,
13
- :defaults => {
13
+ :identified_by => {
14
14
  'NM101' => 'DK',
15
15
  'NM102' => '1'
16
16
  }
@@ -34,7 +34,10 @@ module Hippo::TransactionSets
34
34
  :name => 'Ordering Provider Secondary Identification',
35
35
  :minimum => 0,
36
36
  :maximum => 20,
37
- :position => 5250
37
+ :position => 5250,
38
+ :identified_by => {
39
+ 'REF01' => ["0B", "1G", "G2"]
40
+ }
38
41
 
39
42
  #Ordering Provider Contact Information
40
43
  segment Hippo::Segments::PER,
@@ -42,8 +45,9 @@ module Hippo::TransactionSets
42
45
  :minimum => 0,
43
46
  :maximum => 1,
44
47
  :position => 5300,
45
- :defaults => {
46
- 'PER01' => 'IC'
48
+ :identified_by => {
49
+ 'PER01' => 'IC',
50
+ 'PER03' => ["EM", "FX", "TE"]
47
51
  }
48
52
 
49
53
  end
@@ -10,7 +10,8 @@ module Hippo::TransactionSets
10
10
  :minimum => 0,
11
11
  :maximum => 1,
12
12
  :position => 5000,
13
- :defaults => {
13
+ :identified_by => {
14
+ 'NM101' => ["DN", "P3"],
14
15
  'NM102' => '1'
15
16
  }
16
17
 
@@ -19,7 +20,10 @@ module Hippo::TransactionSets
19
20
  :name => 'Referring Provider Secondary Identification',
20
21
  :minimum => 0,
21
22
  :maximum => 20,
22
- :position => 5250
23
+ :position => 5250,
24
+ :identified_by => {
25
+ 'REF01' => ["0B", "1G", "G2"]
26
+ }
23
27
 
24
28
  end
25
29
  end