001/*
002 * This class is an auto-generated source file for a HAPI
003 * HL7 v2.x standard structure class.
004 *
005 * For more information, visit: http://hl7api.sourceforge.net/
006 * 
007 * The contents of this file are subject to the Mozilla Public License Version 1.1 
008 * (the "License"); you may not use this file except in compliance with the License. 
009 * You may obtain a copy of the License at http://www.mozilla.org/MPL/ 
010 * Software distributed under the License is distributed on an "AS IS" basis, 
011 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
012 * specific language governing rights and limitations under the License. 
013 * 
014 * The Original Code is "[file_name]".  Description: 
015 * "[one_line_description]" 
016 * 
017 * The Initial Developer of the Original Code is University Health Network. Copyright (C) 
018 * 2012.  All Rights Reserved. 
019 * 
020 * Contributor(s): ______________________________________. 
021 * 
022 * Alternatively, the contents of this file may be used under the terms of the 
023 * GNU General Public License (the  "GPL"), in which case the provisions of the GPL are 
024 * applicable instead of those above.  If you wish to allow use of your version of this 
025 * file only under the terms of the GPL and not to allow others to use your version 
026 * of this file under the MPL, indicate your decision by deleting  the provisions above 
027 * and replace  them with the notice and other provisions required by the GPL License.  
028 * If you do not delete the provisions above, a recipient may use your version of 
029 * this file under either the MPL or the GPL. 
030 * 
031 */
032
033
034package ca.uhn.hl7v2.model.v23.segment;
035
036// import ca.uhn.hl7v2.model.v23.group.*;
037import ca.uhn.hl7v2.model.v23.datatype.*;
038import ca.uhn.hl7v2.HL7Exception;
039import ca.uhn.hl7v2.parser.ModelClassFactory;
040import ca.uhn.hl7v2.parser.DefaultModelClassFactory;
041import ca.uhn.hl7v2.model.AbstractMessage;
042import ca.uhn.hl7v2.model.Group;
043import ca.uhn.hl7v2.model.Type;
044import ca.uhn.hl7v2.model.AbstractSegment;
045import ca.uhn.hl7v2.model.Varies;
046
047
048/**
049 *<p>Represents an HL7 RXG message segment (Pharmacy give segment). 
050 * This segment has the following fields:</p>
051 * <ul>
052     * <li>RXG-1: Give Sub-ID Counter (ID) <b>optional </b>
053     * <li>RXG-2: Dispense Sub-ID Counter (NM) <b> </b>
054     * <li>RXG-3: Quantity/Timing (TQ) <b> </b>
055     * <li>RXG-4: Give Code (CE) <b> </b>
056     * <li>RXG-5: Give Amount - Minimum (NM) <b> </b>
057     * <li>RXG-6: Give Amount - Maximum (NM) <b>optional </b>
058     * <li>RXG-7: Give Units (CE) <b> </b>
059     * <li>RXG-8: Give Dosage Form (CE) <b>optional </b>
060     * <li>RXG-9: Administration Notes (CE) <b>optional repeating</b>
061     * <li>RXG-10: Substitution Status (ID) <b>optional </b>
062     * <li>RXG-11: Dispense-To Location (CM_LA1) <b>optional </b>
063     * <li>RXG-12: Needs Human Review (ID) <b>optional </b>
064     * <li>RXG-13: Pharmacy Special Administration Instructions (CE) <b>optional </b>
065     * <li>RXG-14: Give Per (Time Unit) (ST) <b>optional </b>
066     * <li>RXG-15: Give Rate Amount (ST) <b>optional </b>
067     * <li>RXG-16: Give Rate Units (CE) <b>optional </b>
068     * <li>RXG-17: Give Strength (NM) <b>optional </b>
069     * <li>RXG-18: Give Strength Units (CE) <b>optional </b>
070     * <li>RXG-19: Substance Lot Number (ST) <b>optional repeating</b>
071     * <li>RXG-20: Substance Expiration Date (TS) <b>optional repeating</b>
072     * <li>RXG-21: Substance Manufacturer Name (CE) <b>optional repeating</b>
073     * <li>RXG-22: Indication (CE) <b>optional </b>
074 * </ul>
075 */
076@SuppressWarnings("unused")
077public class RXG extends AbstractSegment {
078
079    /** 
080     * Creates a new RXG segment
081     */
082    public RXG(Group parent, ModelClassFactory factory) {
083       super(parent, factory);
084       init(factory);
085    }
086
087    private void init(ModelClassFactory factory) {
088       try {
089                                              this.add(ID.class, false, 1, 4, new Object[]{ getMessage(), new Integer(0) }, "Give Sub-ID Counter");
090                                  this.add(NM.class, true, 1, 4, new Object[]{ getMessage() }, "Dispense Sub-ID Counter");
091                                  this.add(TQ.class, true, 1, 200, new Object[]{ getMessage() }, "Quantity/Timing");
092                                  this.add(CE.class, true, 1, 100, new Object[]{ getMessage() }, "Give Code");
093                                  this.add(NM.class, true, 1, 20, new Object[]{ getMessage() }, "Give Amount - Minimum");
094                                  this.add(NM.class, false, 1, 20, new Object[]{ getMessage() }, "Give Amount - Maximum");
095                                  this.add(CE.class, true, 1, 60, new Object[]{ getMessage() }, "Give Units");
096                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Give Dosage Form");
097                                  this.add(CE.class, false, 0, 200, new Object[]{ getMessage() }, "Administration Notes");
098                                              this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(167) }, "Substitution Status");
099                                  this.add(CM_LA1.class, false, 1, 200, new Object[]{ getMessage() }, "Dispense-To Location");
100                                              this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(136) }, "Needs Human Review");
101                                  this.add(CE.class, false, 1, 200, new Object[]{ getMessage() }, "Pharmacy Special Administration Instructions");
102                                  this.add(ST.class, false, 1, 20, new Object[]{ getMessage() }, "Give Per (Time Unit)");
103                                  this.add(ST.class, false, 1, 6, new Object[]{ getMessage() }, "Give Rate Amount");
104                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Give Rate Units");
105                                  this.add(NM.class, false, 1, 20, new Object[]{ getMessage() }, "Give Strength");
106                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Give Strength Units");
107                                  this.add(ST.class, false, 0, 20, new Object[]{ getMessage() }, "Substance Lot Number");
108                                  this.add(TS.class, false, 0, 26, new Object[]{ getMessage() }, "Substance Expiration Date");
109                                  this.add(CE.class, false, 0, 60, new Object[]{ getMessage() }, "Substance Manufacturer Name");
110                                  this.add(CE.class, false, 1, 200, new Object[]{ getMessage() }, "Indication");
111       } catch(HL7Exception e) {
112          log.error("Unexpected error creating RXG - this is probably a bug in the source code generator.", e);
113       }
114    }
115
116
117
118    /**
119     * Returns
120     * RXG-1: "Give Sub-ID Counter" - creates it if necessary
121     */
122    public ID getGiveSubIDCounter() { 
123                ID retVal = this.getTypedField(1, 0);
124                return retVal;
125    }
126    
127    /**
128     * Returns
129     * RXG-1: "Give Sub-ID Counter" - creates it if necessary
130     */
131    public ID getRxg1_GiveSubIDCounter() { 
132                ID retVal = this.getTypedField(1, 0);
133                return retVal;
134    }
135
136
137
138    /**
139     * Returns
140     * RXG-2: "Dispense Sub-ID Counter" - creates it if necessary
141     */
142    public NM getDispenseSubIDCounter() { 
143                NM retVal = this.getTypedField(2, 0);
144                return retVal;
145    }
146    
147    /**
148     * Returns
149     * RXG-2: "Dispense Sub-ID Counter" - creates it if necessary
150     */
151    public NM getRxg2_DispenseSubIDCounter() { 
152                NM retVal = this.getTypedField(2, 0);
153                return retVal;
154    }
155
156
157
158    /**
159     * Returns
160     * RXG-3: "Quantity/Timing" - creates it if necessary
161     */
162    public TQ getQuantityTiming() { 
163                TQ retVal = this.getTypedField(3, 0);
164                return retVal;
165    }
166    
167    /**
168     * Returns
169     * RXG-3: "Quantity/Timing" - creates it if necessary
170     */
171    public TQ getRxg3_QuantityTiming() { 
172                TQ retVal = this.getTypedField(3, 0);
173                return retVal;
174    }
175
176
177
178    /**
179     * Returns
180     * RXG-4: "Give Code" - creates it if necessary
181     */
182    public CE getGiveCode() { 
183                CE retVal = this.getTypedField(4, 0);
184                return retVal;
185    }
186    
187    /**
188     * Returns
189     * RXG-4: "Give Code" - creates it if necessary
190     */
191    public CE getRxg4_GiveCode() { 
192                CE retVal = this.getTypedField(4, 0);
193                return retVal;
194    }
195
196
197
198    /**
199     * Returns
200     * RXG-5: "Give Amount - Minimum" - creates it if necessary
201     */
202    public NM getGiveAmountMinimum() { 
203                NM retVal = this.getTypedField(5, 0);
204                return retVal;
205    }
206    
207    /**
208     * Returns
209     * RXG-5: "Give Amount - Minimum" - creates it if necessary
210     */
211    public NM getRxg5_GiveAmountMinimum() { 
212                NM retVal = this.getTypedField(5, 0);
213                return retVal;
214    }
215
216
217
218    /**
219     * Returns
220     * RXG-6: "Give Amount - Maximum" - creates it if necessary
221     */
222    public NM getGiveAmountMaximum() { 
223                NM retVal = this.getTypedField(6, 0);
224                return retVal;
225    }
226    
227    /**
228     * Returns
229     * RXG-6: "Give Amount - Maximum" - creates it if necessary
230     */
231    public NM getRxg6_GiveAmountMaximum() { 
232                NM retVal = this.getTypedField(6, 0);
233                return retVal;
234    }
235
236
237
238    /**
239     * Returns
240     * RXG-7: "Give Units" - creates it if necessary
241     */
242    public CE getGiveUnits() { 
243                CE retVal = this.getTypedField(7, 0);
244                return retVal;
245    }
246    
247    /**
248     * Returns
249     * RXG-7: "Give Units" - creates it if necessary
250     */
251    public CE getRxg7_GiveUnits() { 
252                CE retVal = this.getTypedField(7, 0);
253                return retVal;
254    }
255
256
257
258    /**
259     * Returns
260     * RXG-8: "Give Dosage Form" - creates it if necessary
261     */
262    public CE getGiveDosageForm() { 
263                CE retVal = this.getTypedField(8, 0);
264                return retVal;
265    }
266    
267    /**
268     * Returns
269     * RXG-8: "Give Dosage Form" - creates it if necessary
270     */
271    public CE getRxg8_GiveDosageForm() { 
272                CE retVal = this.getTypedField(8, 0);
273                return retVal;
274    }
275
276
277    /**
278     * Returns all repetitions of Administration Notes (RXG-9).
279     */
280    public CE[] getAdministrationNotes() {
281        CE[] retVal = this.getTypedField(9, new CE[0]);
282        return retVal;
283    }
284
285
286    /**
287     * Returns all repetitions of Administration Notes (RXG-9).
288     */
289    public CE[] getRxg9_AdministrationNotes() {
290        CE[] retVal = this.getTypedField(9, new CE[0]);
291        return retVal;
292    }
293
294
295    /**
296     * Returns a count of the current number of repetitions of Administration Notes (RXG-9).
297     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
298     * it will return zero.
299     */
300    public int getAdministrationNotesReps() {
301        return this.getReps(9);
302    }
303
304
305    /**
306     * Returns a specific repetition of
307     * RXG-9: "Administration Notes" - creates it if necessary
308     *
309     * @param rep The repetition index (0-indexed)
310     */
311    public CE getAdministrationNotes(int rep) { 
312                CE retVal = this.getTypedField(9, rep);
313                return retVal;
314    }
315
316    /**
317     * Returns a specific repetition of
318     * RXG-9: "Administration Notes" - creates it if necessary
319     *
320     * @param rep The repetition index (0-indexed)
321     */
322    public CE getRxg9_AdministrationNotes(int rep) { 
323                CE retVal = this.getTypedField(9, rep);
324                return retVal;
325    }
326
327    /**
328     * Returns a count of the current number of repetitions of Administration Notes (RXG-9).
329     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
330     * it will return zero.
331     */
332    public int getRxg9_AdministrationNotesReps() {
333        return this.getReps(9);
334    }
335
336
337    /**
338     * Inserts a repetition of
339     * RXG-9: "Administration Notes" at a specific index
340     *
341     * @param rep The repetition index (0-indexed)
342     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
343     */
344    public CE insertAdministrationNotes(int rep) throws HL7Exception { 
345        return (CE) super.insertRepetition(9, rep);
346    }
347
348
349    /**
350     * Inserts a repetition of
351     * RXG-9: "Administration Notes" at a specific index
352     *
353     * @param rep The repetition index (0-indexed)
354     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
355     */
356    public CE insertRxg9_AdministrationNotes(int rep) throws HL7Exception { 
357        return (CE) super.insertRepetition(9, rep);
358    }
359
360
361    /**
362     * Removes a repetition of
363     * RXG-9: "Administration Notes" at a specific index
364     *
365     * @param rep The repetition index (0-indexed)
366     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
367     */
368    public CE removeAdministrationNotes(int rep) throws HL7Exception { 
369        return (CE) super.removeRepetition(9, rep);
370    }
371
372
373    /**
374     * Removes a repetition of
375     * RXG-9: "Administration Notes" at a specific index
376     *
377     * @param rep The repetition index (0-indexed)
378     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
379     */
380    public CE removeRxg9_AdministrationNotes(int rep) throws HL7Exception { 
381        return (CE) super.removeRepetition(9, rep);
382    }
383
384
385
386
387    /**
388     * Returns
389     * RXG-10: "Substitution Status" - creates it if necessary
390     */
391    public ID getSubstitutionStatus() { 
392                ID retVal = this.getTypedField(10, 0);
393                return retVal;
394    }
395    
396    /**
397     * Returns
398     * RXG-10: "Substitution Status" - creates it if necessary
399     */
400    public ID getRxg10_SubstitutionStatus() { 
401                ID retVal = this.getTypedField(10, 0);
402                return retVal;
403    }
404
405
406
407    /**
408     * Returns
409     * RXG-11: "Dispense-To Location" - creates it if necessary
410     */
411    public CM_LA1 getDispenseToLocation() { 
412                CM_LA1 retVal = this.getTypedField(11, 0);
413                return retVal;
414    }
415    
416    /**
417     * Returns
418     * RXG-11: "Dispense-To Location" - creates it if necessary
419     */
420    public CM_LA1 getRxg11_DispenseToLocation() { 
421                CM_LA1 retVal = this.getTypedField(11, 0);
422                return retVal;
423    }
424
425
426
427    /**
428     * Returns
429     * RXG-12: "Needs Human Review" - creates it if necessary
430     */
431    public ID getNeedsHumanReview() { 
432                ID retVal = this.getTypedField(12, 0);
433                return retVal;
434    }
435    
436    /**
437     * Returns
438     * RXG-12: "Needs Human Review" - creates it if necessary
439     */
440    public ID getRxg12_NeedsHumanReview() { 
441                ID retVal = this.getTypedField(12, 0);
442                return retVal;
443    }
444
445
446
447    /**
448     * Returns
449     * RXG-13: "Pharmacy Special Administration Instructions" - creates it if necessary
450     */
451    public CE getPharmacySpecialAdministrationInstructions() { 
452                CE retVal = this.getTypedField(13, 0);
453                return retVal;
454    }
455    
456    /**
457     * Returns
458     * RXG-13: "Pharmacy Special Administration Instructions" - creates it if necessary
459     */
460    public CE getRxg13_PharmacySpecialAdministrationInstructions() { 
461                CE retVal = this.getTypedField(13, 0);
462                return retVal;
463    }
464
465
466
467    /**
468     * Returns
469     * RXG-14: "Give Per (Time Unit)" - creates it if necessary
470     */
471    public ST getGivePerTimeUnit() { 
472                ST retVal = this.getTypedField(14, 0);
473                return retVal;
474    }
475    
476    /**
477     * Returns
478     * RXG-14: "Give Per (Time Unit)" - creates it if necessary
479     */
480    public ST getRxg14_GivePerTimeUnit() { 
481                ST retVal = this.getTypedField(14, 0);
482                return retVal;
483    }
484
485
486
487    /**
488     * Returns
489     * RXG-15: "Give Rate Amount" - creates it if necessary
490     */
491    public ST getGiveRateAmount() { 
492                ST retVal = this.getTypedField(15, 0);
493                return retVal;
494    }
495    
496    /**
497     * Returns
498     * RXG-15: "Give Rate Amount" - creates it if necessary
499     */
500    public ST getRxg15_GiveRateAmount() { 
501                ST retVal = this.getTypedField(15, 0);
502                return retVal;
503    }
504
505
506
507    /**
508     * Returns
509     * RXG-16: "Give Rate Units" - creates it if necessary
510     */
511    public CE getGiveRateUnits() { 
512                CE retVal = this.getTypedField(16, 0);
513                return retVal;
514    }
515    
516    /**
517     * Returns
518     * RXG-16: "Give Rate Units" - creates it if necessary
519     */
520    public CE getRxg16_GiveRateUnits() { 
521                CE retVal = this.getTypedField(16, 0);
522                return retVal;
523    }
524
525
526
527    /**
528     * Returns
529     * RXG-17: "Give Strength" - creates it if necessary
530     */
531    public NM getGiveStrength() { 
532                NM retVal = this.getTypedField(17, 0);
533                return retVal;
534    }
535    
536    /**
537     * Returns
538     * RXG-17: "Give Strength" - creates it if necessary
539     */
540    public NM getRxg17_GiveStrength() { 
541                NM retVal = this.getTypedField(17, 0);
542                return retVal;
543    }
544
545
546
547    /**
548     * Returns
549     * RXG-18: "Give Strength Units" - creates it if necessary
550     */
551    public CE getGiveStrengthUnits() { 
552                CE retVal = this.getTypedField(18, 0);
553                return retVal;
554    }
555    
556    /**
557     * Returns
558     * RXG-18: "Give Strength Units" - creates it if necessary
559     */
560    public CE getRxg18_GiveStrengthUnits() { 
561                CE retVal = this.getTypedField(18, 0);
562                return retVal;
563    }
564
565
566    /**
567     * Returns all repetitions of Substance Lot Number (RXG-19).
568     */
569    public ST[] getSubstanceLotNumber() {
570        ST[] retVal = this.getTypedField(19, new ST[0]);
571        return retVal;
572    }
573
574
575    /**
576     * Returns all repetitions of Substance Lot Number (RXG-19).
577     */
578    public ST[] getRxg19_SubstanceLotNumber() {
579        ST[] retVal = this.getTypedField(19, new ST[0]);
580        return retVal;
581    }
582
583
584    /**
585     * Returns a count of the current number of repetitions of Substance Lot Number (RXG-19).
586     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
587     * it will return zero.
588     */
589    public int getSubstanceLotNumberReps() {
590        return this.getReps(19);
591    }
592
593
594    /**
595     * Returns a specific repetition of
596     * RXG-19: "Substance Lot Number" - creates it if necessary
597     *
598     * @param rep The repetition index (0-indexed)
599     */
600    public ST getSubstanceLotNumber(int rep) { 
601                ST retVal = this.getTypedField(19, rep);
602                return retVal;
603    }
604
605    /**
606     * Returns a specific repetition of
607     * RXG-19: "Substance Lot Number" - creates it if necessary
608     *
609     * @param rep The repetition index (0-indexed)
610     */
611    public ST getRxg19_SubstanceLotNumber(int rep) { 
612                ST retVal = this.getTypedField(19, rep);
613                return retVal;
614    }
615
616    /**
617     * Returns a count of the current number of repetitions of Substance Lot Number (RXG-19).
618     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
619     * it will return zero.
620     */
621    public int getRxg19_SubstanceLotNumberReps() {
622        return this.getReps(19);
623    }
624
625
626    /**
627     * Inserts a repetition of
628     * RXG-19: "Substance Lot Number" at a specific index
629     *
630     * @param rep The repetition index (0-indexed)
631     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
632     */
633    public ST insertSubstanceLotNumber(int rep) throws HL7Exception { 
634        return (ST) super.insertRepetition(19, rep);
635    }
636
637
638    /**
639     * Inserts a repetition of
640     * RXG-19: "Substance Lot Number" at a specific index
641     *
642     * @param rep The repetition index (0-indexed)
643     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
644     */
645    public ST insertRxg19_SubstanceLotNumber(int rep) throws HL7Exception { 
646        return (ST) super.insertRepetition(19, rep);
647    }
648
649
650    /**
651     * Removes a repetition of
652     * RXG-19: "Substance Lot Number" at a specific index
653     *
654     * @param rep The repetition index (0-indexed)
655     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
656     */
657    public ST removeSubstanceLotNumber(int rep) throws HL7Exception { 
658        return (ST) super.removeRepetition(19, rep);
659    }
660
661
662    /**
663     * Removes a repetition of
664     * RXG-19: "Substance Lot Number" at a specific index
665     *
666     * @param rep The repetition index (0-indexed)
667     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
668     */
669    public ST removeRxg19_SubstanceLotNumber(int rep) throws HL7Exception { 
670        return (ST) super.removeRepetition(19, rep);
671    }
672
673
674
675    /**
676     * Returns all repetitions of Substance Expiration Date (RXG-20).
677     */
678    public TS[] getSubstanceExpirationDate() {
679        TS[] retVal = this.getTypedField(20, new TS[0]);
680        return retVal;
681    }
682
683
684    /**
685     * Returns all repetitions of Substance Expiration Date (RXG-20).
686     */
687    public TS[] getRxg20_SubstanceExpirationDate() {
688        TS[] retVal = this.getTypedField(20, new TS[0]);
689        return retVal;
690    }
691
692
693    /**
694     * Returns a count of the current number of repetitions of Substance Expiration Date (RXG-20).
695     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
696     * it will return zero.
697     */
698    public int getSubstanceExpirationDateReps() {
699        return this.getReps(20);
700    }
701
702
703    /**
704     * Returns a specific repetition of
705     * RXG-20: "Substance Expiration Date" - creates it if necessary
706     *
707     * @param rep The repetition index (0-indexed)
708     */
709    public TS getSubstanceExpirationDate(int rep) { 
710                TS retVal = this.getTypedField(20, rep);
711                return retVal;
712    }
713
714    /**
715     * Returns a specific repetition of
716     * RXG-20: "Substance Expiration Date" - creates it if necessary
717     *
718     * @param rep The repetition index (0-indexed)
719     */
720    public TS getRxg20_SubstanceExpirationDate(int rep) { 
721                TS retVal = this.getTypedField(20, rep);
722                return retVal;
723    }
724
725    /**
726     * Returns a count of the current number of repetitions of Substance Expiration Date (RXG-20).
727     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
728     * it will return zero.
729     */
730    public int getRxg20_SubstanceExpirationDateReps() {
731        return this.getReps(20);
732    }
733
734
735    /**
736     * Inserts a repetition of
737     * RXG-20: "Substance Expiration Date" at a specific index
738     *
739     * @param rep The repetition index (0-indexed)
740     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
741     */
742    public TS insertSubstanceExpirationDate(int rep) throws HL7Exception { 
743        return (TS) super.insertRepetition(20, rep);
744    }
745
746
747    /**
748     * Inserts a repetition of
749     * RXG-20: "Substance Expiration Date" at a specific index
750     *
751     * @param rep The repetition index (0-indexed)
752     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
753     */
754    public TS insertRxg20_SubstanceExpirationDate(int rep) throws HL7Exception { 
755        return (TS) super.insertRepetition(20, rep);
756    }
757
758
759    /**
760     * Removes a repetition of
761     * RXG-20: "Substance Expiration Date" at a specific index
762     *
763     * @param rep The repetition index (0-indexed)
764     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
765     */
766    public TS removeSubstanceExpirationDate(int rep) throws HL7Exception { 
767        return (TS) super.removeRepetition(20, rep);
768    }
769
770
771    /**
772     * Removes a repetition of
773     * RXG-20: "Substance Expiration Date" at a specific index
774     *
775     * @param rep The repetition index (0-indexed)
776     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
777     */
778    public TS removeRxg20_SubstanceExpirationDate(int rep) throws HL7Exception { 
779        return (TS) super.removeRepetition(20, rep);
780    }
781
782
783
784    /**
785     * Returns all repetitions of Substance Manufacturer Name (RXG-21).
786     */
787    public CE[] getSubstanceManufacturerName() {
788        CE[] retVal = this.getTypedField(21, new CE[0]);
789        return retVal;
790    }
791
792
793    /**
794     * Returns all repetitions of Substance Manufacturer Name (RXG-21).
795     */
796    public CE[] getRxg21_SubstanceManufacturerName() {
797        CE[] retVal = this.getTypedField(21, new CE[0]);
798        return retVal;
799    }
800
801
802    /**
803     * Returns a count of the current number of repetitions of Substance Manufacturer Name (RXG-21).
804     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
805     * it will return zero.
806     */
807    public int getSubstanceManufacturerNameReps() {
808        return this.getReps(21);
809    }
810
811
812    /**
813     * Returns a specific repetition of
814     * RXG-21: "Substance Manufacturer Name" - creates it if necessary
815     *
816     * @param rep The repetition index (0-indexed)
817     */
818    public CE getSubstanceManufacturerName(int rep) { 
819                CE retVal = this.getTypedField(21, rep);
820                return retVal;
821    }
822
823    /**
824     * Returns a specific repetition of
825     * RXG-21: "Substance Manufacturer Name" - creates it if necessary
826     *
827     * @param rep The repetition index (0-indexed)
828     */
829    public CE getRxg21_SubstanceManufacturerName(int rep) { 
830                CE retVal = this.getTypedField(21, rep);
831                return retVal;
832    }
833
834    /**
835     * Returns a count of the current number of repetitions of Substance Manufacturer Name (RXG-21).
836     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
837     * it will return zero.
838     */
839    public int getRxg21_SubstanceManufacturerNameReps() {
840        return this.getReps(21);
841    }
842
843
844    /**
845     * Inserts a repetition of
846     * RXG-21: "Substance Manufacturer Name" at a specific index
847     *
848     * @param rep The repetition index (0-indexed)
849     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
850     */
851    public CE insertSubstanceManufacturerName(int rep) throws HL7Exception { 
852        return (CE) super.insertRepetition(21, rep);
853    }
854
855
856    /**
857     * Inserts a repetition of
858     * RXG-21: "Substance Manufacturer Name" at a specific index
859     *
860     * @param rep The repetition index (0-indexed)
861     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
862     */
863    public CE insertRxg21_SubstanceManufacturerName(int rep) throws HL7Exception { 
864        return (CE) super.insertRepetition(21, rep);
865    }
866
867
868    /**
869     * Removes a repetition of
870     * RXG-21: "Substance Manufacturer Name" at a specific index
871     *
872     * @param rep The repetition index (0-indexed)
873     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
874     */
875    public CE removeSubstanceManufacturerName(int rep) throws HL7Exception { 
876        return (CE) super.removeRepetition(21, rep);
877    }
878
879
880    /**
881     * Removes a repetition of
882     * RXG-21: "Substance Manufacturer Name" at a specific index
883     *
884     * @param rep The repetition index (0-indexed)
885     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
886     */
887    public CE removeRxg21_SubstanceManufacturerName(int rep) throws HL7Exception { 
888        return (CE) super.removeRepetition(21, rep);
889    }
890
891
892
893
894    /**
895     * Returns
896     * RXG-22: "Indication" - creates it if necessary
897     */
898    public CE getIndication() { 
899                CE retVal = this.getTypedField(22, 0);
900                return retVal;
901    }
902    
903    /**
904     * Returns
905     * RXG-22: "Indication" - creates it if necessary
906     */
907    public CE getRxg22_Indication() { 
908                CE retVal = this.getTypedField(22, 0);
909                return retVal;
910    }
911
912
913
914
915
916    /** {@inheritDoc} */   
917    protected Type createNewTypeWithoutReflection(int field) {
918       switch (field) {
919          case 0: return new ID(getMessage(), new Integer( 0 ));
920          case 1: return new NM(getMessage());
921          case 2: return new TQ(getMessage());
922          case 3: return new CE(getMessage());
923          case 4: return new NM(getMessage());
924          case 5: return new NM(getMessage());
925          case 6: return new CE(getMessage());
926          case 7: return new CE(getMessage());
927          case 8: return new CE(getMessage());
928          case 9: return new ID(getMessage(), new Integer( 167 ));
929          case 10: return new CM_LA1(getMessage());
930          case 11: return new ID(getMessage(), new Integer( 136 ));
931          case 12: return new CE(getMessage());
932          case 13: return new ST(getMessage());
933          case 14: return new ST(getMessage());
934          case 15: return new CE(getMessage());
935          case 16: return new NM(getMessage());
936          case 17: return new CE(getMessage());
937          case 18: return new ST(getMessage());
938          case 19: return new TS(getMessage());
939          case 20: return new CE(getMessage());
940          case 21: return new CE(getMessage());
941          default: return null;
942       }
943   }
944
945
946}
947