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.v26.message;
035
036import ca.uhn.hl7v2.model.v26.group.*;
037import ca.uhn.hl7v2.model.v26.segment.*;
038
039import java.util.List;
040
041import ca.uhn.hl7v2.HL7Exception;
042import ca.uhn.hl7v2.parser.ModelClassFactory;
043import ca.uhn.hl7v2.parser.DefaultModelClassFactory;
044import ca.uhn.hl7v2.model.AbstractMessage;
045
046/**
047 * <p>Represents a RQA_I08 message structure (see chapter 11.4.1). This structure contains the 
048 * following elements: </p>
049 * <ul>
050                 * <li>1: MSH (Message Header) <b> </b></li>
051                 * <li>2: SFT (Software Segment) <b>optional repeating</b></li>
052                 * <li>3: UAC (User Authentication Credential Segment) <b>optional </b></li>
053                 * <li>4: RF1 (Referral Information) <b>optional </b></li>
054                 * <li>5: RQA_I08_AUTHORIZATION (a Group object) <b>optional </b></li>
055                 * <li>6: RQA_I08_PROVIDER (a Group object) <b> repeating</b></li>
056                 * <li>7: PID (Patient Identification) <b> </b></li>
057                 * <li>8: NK1 (Next of Kin / Associated Parties) <b>optional repeating</b></li>
058                 * <li>9: RQA_I08_GUARANTOR_INSURANCE (a Group object) <b>optional </b></li>
059                 * <li>10: ACC (Accident) <b>optional </b></li>
060                 * <li>11: DG1 (Diagnosis) <b>optional repeating</b></li>
061                 * <li>12: DRG (Diagnosis Related Group) <b>optional repeating</b></li>
062                 * <li>13: AL1 (Patient Allergy Information) <b>optional repeating</b></li>
063                 * <li>14: RQA_I08_PROCEDURE (a Group object) <b>optional repeating</b></li>
064                 * <li>15: RQA_I08_OBSERVATION (a Group object) <b>optional repeating</b></li>
065                 * <li>16: RQA_I08_VISIT (a Group object) <b>optional </b></li>
066                 * <li>17: NTE (Notes and Comments) <b>optional repeating</b></li>
067 * </ul>
068 */
069@SuppressWarnings("unused")
070public class RQA_I08 extends AbstractMessage  {
071
072    /**
073     * Creates a new RQA_I08 message with DefaultModelClassFactory. 
074     */ 
075    public RQA_I08() { 
076       this(new DefaultModelClassFactory());
077    }
078
079    /** 
080     * Creates a new RQA_I08 message with custom ModelClassFactory.
081     */
082    public RQA_I08(ModelClassFactory factory) {
083       super(factory);
084       init(factory);
085    }
086
087    private void init(ModelClassFactory factory) {
088       try {
089                          this.add(MSH.class, true, false);
090                          this.add(SFT.class, false, true);
091                          this.add(UAC.class, false, false);
092                          this.add(RF1.class, false, false);
093                          this.add(RQA_I08_AUTHORIZATION.class, false, false);
094                          this.add(RQA_I08_PROVIDER.class, true, true);
095                          this.add(PID.class, true, false);
096                          this.add(NK1.class, false, true);
097                          this.add(RQA_I08_GUARANTOR_INSURANCE.class, false, false);
098                          this.add(ACC.class, false, false);
099                          this.add(DG1.class, false, true);
100                          this.add(DRG.class, false, true);
101                          this.add(AL1.class, false, true);
102                          this.add(RQA_I08_PROCEDURE.class, false, true);
103                          this.add(RQA_I08_OBSERVATION.class, false, true);
104                          this.add(RQA_I08_VISIT.class, false, false);
105                          this.add(NTE.class, false, true);
106       } catch(HL7Exception e) {
107          log.error("Unexpected error creating RQA_I08 - this is probably a bug in the source code generator.", e);
108       }
109    }
110
111    /** 
112     * Returns "2.6"
113     */
114    public String getVersion() {
115       return "2.6";
116    }
117
118
119
120    /**
121     * Returns
122     * MSH (Message Header) - creates it if necessary
123     */
124    public MSH getMSH() { 
125       return getTyped("MSH", MSH.class);
126    }
127
128
129
130
131    /**
132     * Returns
133     * the first repetition of 
134     * SFT (Software Segment) - creates it if necessary
135     */
136    public SFT getSFT() { 
137       return getTyped("SFT", SFT.class);
138    }
139
140
141    /**
142     * Returns a specific repetition of
143     * SFT (Software Segment) - creates it if necessary
144     *
145     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
146     * @throws HL7Exception if the repetition requested is more than one 
147     *     greater than the number of existing repetitions.
148     */
149    public SFT getSFT(int rep) { 
150       return getTyped("SFT", rep, SFT.class);
151    }
152
153    /** 
154     * Returns the number of existing repetitions of SFT 
155     */ 
156    public int getSFTReps() { 
157        return getReps("SFT");
158    } 
159
160    /** 
161     * <p>
162     * Returns a non-modifiable List containing all current existing repetitions of SFT.
163     * <p>
164     * <p>
165     * Note that unlike {@link #getSFT()}, this method will not create any reps
166     * if none are already present, so an empty list may be returned.
167     * </p>
168     */ 
169    public List<SFT> getSFTAll() throws HL7Exception {
170        return getAllAsList("SFT", SFT.class);
171    } 
172
173    /**
174     * Inserts a specific repetition of SFT (Software Segment)
175     * @see AbstractGroup#insertRepetition(Structure, int) 
176     */
177    public void insertSFT(SFT structure, int rep) throws HL7Exception { 
178       super.insertRepetition( "SFT", structure, rep);
179    }
180
181
182    /**
183     * Inserts a specific repetition of SFT (Software Segment)
184     * @see AbstractGroup#insertRepetition(Structure, int) 
185     */
186    public SFT insertSFT(int rep) throws HL7Exception { 
187       return (SFT)super.insertRepetition("SFT", rep);
188    }
189
190
191    /**
192     * Removes a specific repetition of SFT (Software Segment)
193     * @see AbstractGroup#removeRepetition(String, int) 
194     */
195    public SFT removeSFT(int rep) throws HL7Exception { 
196       return (SFT)super.removeRepetition("SFT", rep);
197    }
198
199
200
201    /**
202     * Returns
203     * UAC (User Authentication Credential Segment) - creates it if necessary
204     */
205    public UAC getUAC() { 
206       return getTyped("UAC", UAC.class);
207    }
208
209
210
211
212    /**
213     * Returns
214     * RF1 (Referral Information) - creates it if necessary
215     */
216    public RF1 getRF1() { 
217       return getTyped("RF1", RF1.class);
218    }
219
220
221
222
223    /**
224     * Returns
225     * AUTHORIZATION (a Group object) - creates it if necessary
226     */
227    public RQA_I08_AUTHORIZATION getAUTHORIZATION() { 
228       return getTyped("AUTHORIZATION", RQA_I08_AUTHORIZATION.class);
229    }
230
231
232
233
234    /**
235     * Returns
236     * the first repetition of 
237     * PROVIDER (a Group object) - creates it if necessary
238     */
239    public RQA_I08_PROVIDER getPROVIDER() { 
240       return getTyped("PROVIDER", RQA_I08_PROVIDER.class);
241    }
242
243
244    /**
245     * Returns a specific repetition of
246     * PROVIDER (a Group object) - creates it if necessary
247     *
248     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
249     * @throws HL7Exception if the repetition requested is more than one 
250     *     greater than the number of existing repetitions.
251     */
252    public RQA_I08_PROVIDER getPROVIDER(int rep) { 
253       return getTyped("PROVIDER", rep, RQA_I08_PROVIDER.class);
254    }
255
256    /** 
257     * Returns the number of existing repetitions of PROVIDER 
258     */ 
259    public int getPROVIDERReps() { 
260        return getReps("PROVIDER");
261    } 
262
263    /** 
264     * <p>
265     * Returns a non-modifiable List containing all current existing repetitions of PROVIDER.
266     * <p>
267     * <p>
268     * Note that unlike {@link #getPROVIDER()}, this method will not create any reps
269     * if none are already present, so an empty list may be returned.
270     * </p>
271     */ 
272    public List<RQA_I08_PROVIDER> getPROVIDERAll() throws HL7Exception {
273        return getAllAsList("PROVIDER", RQA_I08_PROVIDER.class);
274    } 
275
276    /**
277     * Inserts a specific repetition of PROVIDER (a Group object)
278     * @see AbstractGroup#insertRepetition(Structure, int) 
279     */
280    public void insertPROVIDER(RQA_I08_PROVIDER structure, int rep) throws HL7Exception { 
281       super.insertRepetition( "PROVIDER", structure, rep);
282    }
283
284
285    /**
286     * Inserts a specific repetition of PROVIDER (a Group object)
287     * @see AbstractGroup#insertRepetition(Structure, int) 
288     */
289    public RQA_I08_PROVIDER insertPROVIDER(int rep) throws HL7Exception { 
290       return (RQA_I08_PROVIDER)super.insertRepetition("PROVIDER", rep);
291    }
292
293
294    /**
295     * Removes a specific repetition of PROVIDER (a Group object)
296     * @see AbstractGroup#removeRepetition(String, int) 
297     */
298    public RQA_I08_PROVIDER removePROVIDER(int rep) throws HL7Exception { 
299       return (RQA_I08_PROVIDER)super.removeRepetition("PROVIDER", rep);
300    }
301
302
303
304    /**
305     * Returns
306     * PID (Patient Identification) - creates it if necessary
307     */
308    public PID getPID() { 
309       return getTyped("PID", PID.class);
310    }
311
312
313
314
315    /**
316     * Returns
317     * the first repetition of 
318     * NK1 (Next of Kin / Associated Parties) - creates it if necessary
319     */
320    public NK1 getNK1() { 
321       return getTyped("NK1", NK1.class);
322    }
323
324
325    /**
326     * Returns a specific repetition of
327     * NK1 (Next of Kin / Associated Parties) - creates it if necessary
328     *
329     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
330     * @throws HL7Exception if the repetition requested is more than one 
331     *     greater than the number of existing repetitions.
332     */
333    public NK1 getNK1(int rep) { 
334       return getTyped("NK1", rep, NK1.class);
335    }
336
337    /** 
338     * Returns the number of existing repetitions of NK1 
339     */ 
340    public int getNK1Reps() { 
341        return getReps("NK1");
342    } 
343
344    /** 
345     * <p>
346     * Returns a non-modifiable List containing all current existing repetitions of NK1.
347     * <p>
348     * <p>
349     * Note that unlike {@link #getNK1()}, this method will not create any reps
350     * if none are already present, so an empty list may be returned.
351     * </p>
352     */ 
353    public List<NK1> getNK1All() throws HL7Exception {
354        return getAllAsList("NK1", NK1.class);
355    } 
356
357    /**
358     * Inserts a specific repetition of NK1 (Next of Kin / Associated Parties)
359     * @see AbstractGroup#insertRepetition(Structure, int) 
360     */
361    public void insertNK1(NK1 structure, int rep) throws HL7Exception { 
362       super.insertRepetition( "NK1", structure, rep);
363    }
364
365
366    /**
367     * Inserts a specific repetition of NK1 (Next of Kin / Associated Parties)
368     * @see AbstractGroup#insertRepetition(Structure, int) 
369     */
370    public NK1 insertNK1(int rep) throws HL7Exception { 
371       return (NK1)super.insertRepetition("NK1", rep);
372    }
373
374
375    /**
376     * Removes a specific repetition of NK1 (Next of Kin / Associated Parties)
377     * @see AbstractGroup#removeRepetition(String, int) 
378     */
379    public NK1 removeNK1(int rep) throws HL7Exception { 
380       return (NK1)super.removeRepetition("NK1", rep);
381    }
382
383
384
385    /**
386     * Returns
387     * GUARANTOR_INSURANCE (a Group object) - creates it if necessary
388     */
389    public RQA_I08_GUARANTOR_INSURANCE getGUARANTOR_INSURANCE() { 
390       return getTyped("GUARANTOR_INSURANCE", RQA_I08_GUARANTOR_INSURANCE.class);
391    }
392
393
394
395
396    /**
397     * Returns
398     * ACC (Accident) - creates it if necessary
399     */
400    public ACC getACC() { 
401       return getTyped("ACC", ACC.class);
402    }
403
404
405
406
407    /**
408     * Returns
409     * the first repetition of 
410     * DG1 (Diagnosis) - creates it if necessary
411     */
412    public DG1 getDG1() { 
413       return getTyped("DG1", DG1.class);
414    }
415
416
417    /**
418     * Returns a specific repetition of
419     * DG1 (Diagnosis) - creates it if necessary
420     *
421     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
422     * @throws HL7Exception if the repetition requested is more than one 
423     *     greater than the number of existing repetitions.
424     */
425    public DG1 getDG1(int rep) { 
426       return getTyped("DG1", rep, DG1.class);
427    }
428
429    /** 
430     * Returns the number of existing repetitions of DG1 
431     */ 
432    public int getDG1Reps() { 
433        return getReps("DG1");
434    } 
435
436    /** 
437     * <p>
438     * Returns a non-modifiable List containing all current existing repetitions of DG1.
439     * <p>
440     * <p>
441     * Note that unlike {@link #getDG1()}, this method will not create any reps
442     * if none are already present, so an empty list may be returned.
443     * </p>
444     */ 
445    public List<DG1> getDG1All() throws HL7Exception {
446        return getAllAsList("DG1", DG1.class);
447    } 
448
449    /**
450     * Inserts a specific repetition of DG1 (Diagnosis)
451     * @see AbstractGroup#insertRepetition(Structure, int) 
452     */
453    public void insertDG1(DG1 structure, int rep) throws HL7Exception { 
454       super.insertRepetition( "DG1", structure, rep);
455    }
456
457
458    /**
459     * Inserts a specific repetition of DG1 (Diagnosis)
460     * @see AbstractGroup#insertRepetition(Structure, int) 
461     */
462    public DG1 insertDG1(int rep) throws HL7Exception { 
463       return (DG1)super.insertRepetition("DG1", rep);
464    }
465
466
467    /**
468     * Removes a specific repetition of DG1 (Diagnosis)
469     * @see AbstractGroup#removeRepetition(String, int) 
470     */
471    public DG1 removeDG1(int rep) throws HL7Exception { 
472       return (DG1)super.removeRepetition("DG1", rep);
473    }
474
475
476
477    /**
478     * Returns
479     * the first repetition of 
480     * DRG (Diagnosis Related Group) - creates it if necessary
481     */
482    public DRG getDRG() { 
483       return getTyped("DRG", DRG.class);
484    }
485
486
487    /**
488     * Returns a specific repetition of
489     * DRG (Diagnosis Related Group) - creates it if necessary
490     *
491     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
492     * @throws HL7Exception if the repetition requested is more than one 
493     *     greater than the number of existing repetitions.
494     */
495    public DRG getDRG(int rep) { 
496       return getTyped("DRG", rep, DRG.class);
497    }
498
499    /** 
500     * Returns the number of existing repetitions of DRG 
501     */ 
502    public int getDRGReps() { 
503        return getReps("DRG");
504    } 
505
506    /** 
507     * <p>
508     * Returns a non-modifiable List containing all current existing repetitions of DRG.
509     * <p>
510     * <p>
511     * Note that unlike {@link #getDRG()}, this method will not create any reps
512     * if none are already present, so an empty list may be returned.
513     * </p>
514     */ 
515    public List<DRG> getDRGAll() throws HL7Exception {
516        return getAllAsList("DRG", DRG.class);
517    } 
518
519    /**
520     * Inserts a specific repetition of DRG (Diagnosis Related Group)
521     * @see AbstractGroup#insertRepetition(Structure, int) 
522     */
523    public void insertDRG(DRG structure, int rep) throws HL7Exception { 
524       super.insertRepetition( "DRG", structure, rep);
525    }
526
527
528    /**
529     * Inserts a specific repetition of DRG (Diagnosis Related Group)
530     * @see AbstractGroup#insertRepetition(Structure, int) 
531     */
532    public DRG insertDRG(int rep) throws HL7Exception { 
533       return (DRG)super.insertRepetition("DRG", rep);
534    }
535
536
537    /**
538     * Removes a specific repetition of DRG (Diagnosis Related Group)
539     * @see AbstractGroup#removeRepetition(String, int) 
540     */
541    public DRG removeDRG(int rep) throws HL7Exception { 
542       return (DRG)super.removeRepetition("DRG", rep);
543    }
544
545
546
547    /**
548     * Returns
549     * the first repetition of 
550     * AL1 (Patient Allergy Information) - creates it if necessary
551     */
552    public AL1 getAL1() { 
553       return getTyped("AL1", AL1.class);
554    }
555
556
557    /**
558     * Returns a specific repetition of
559     * AL1 (Patient Allergy Information) - creates it if necessary
560     *
561     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
562     * @throws HL7Exception if the repetition requested is more than one 
563     *     greater than the number of existing repetitions.
564     */
565    public AL1 getAL1(int rep) { 
566       return getTyped("AL1", rep, AL1.class);
567    }
568
569    /** 
570     * Returns the number of existing repetitions of AL1 
571     */ 
572    public int getAL1Reps() { 
573        return getReps("AL1");
574    } 
575
576    /** 
577     * <p>
578     * Returns a non-modifiable List containing all current existing repetitions of AL1.
579     * <p>
580     * <p>
581     * Note that unlike {@link #getAL1()}, this method will not create any reps
582     * if none are already present, so an empty list may be returned.
583     * </p>
584     */ 
585    public List<AL1> getAL1All() throws HL7Exception {
586        return getAllAsList("AL1", AL1.class);
587    } 
588
589    /**
590     * Inserts a specific repetition of AL1 (Patient Allergy Information)
591     * @see AbstractGroup#insertRepetition(Structure, int) 
592     */
593    public void insertAL1(AL1 structure, int rep) throws HL7Exception { 
594       super.insertRepetition( "AL1", structure, rep);
595    }
596
597
598    /**
599     * Inserts a specific repetition of AL1 (Patient Allergy Information)
600     * @see AbstractGroup#insertRepetition(Structure, int) 
601     */
602    public AL1 insertAL1(int rep) throws HL7Exception { 
603       return (AL1)super.insertRepetition("AL1", rep);
604    }
605
606
607    /**
608     * Removes a specific repetition of AL1 (Patient Allergy Information)
609     * @see AbstractGroup#removeRepetition(String, int) 
610     */
611    public AL1 removeAL1(int rep) throws HL7Exception { 
612       return (AL1)super.removeRepetition("AL1", rep);
613    }
614
615
616
617    /**
618     * Returns
619     * the first repetition of 
620     * PROCEDURE (a Group object) - creates it if necessary
621     */
622    public RQA_I08_PROCEDURE getPROCEDURE() { 
623       return getTyped("PROCEDURE", RQA_I08_PROCEDURE.class);
624    }
625
626
627    /**
628     * Returns a specific repetition of
629     * PROCEDURE (a Group object) - creates it if necessary
630     *
631     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
632     * @throws HL7Exception if the repetition requested is more than one 
633     *     greater than the number of existing repetitions.
634     */
635    public RQA_I08_PROCEDURE getPROCEDURE(int rep) { 
636       return getTyped("PROCEDURE", rep, RQA_I08_PROCEDURE.class);
637    }
638
639    /** 
640     * Returns the number of existing repetitions of PROCEDURE 
641     */ 
642    public int getPROCEDUREReps() { 
643        return getReps("PROCEDURE");
644    } 
645
646    /** 
647     * <p>
648     * Returns a non-modifiable List containing all current existing repetitions of PROCEDURE.
649     * <p>
650     * <p>
651     * Note that unlike {@link #getPROCEDURE()}, this method will not create any reps
652     * if none are already present, so an empty list may be returned.
653     * </p>
654     */ 
655    public List<RQA_I08_PROCEDURE> getPROCEDUREAll() throws HL7Exception {
656        return getAllAsList("PROCEDURE", RQA_I08_PROCEDURE.class);
657    } 
658
659    /**
660     * Inserts a specific repetition of PROCEDURE (a Group object)
661     * @see AbstractGroup#insertRepetition(Structure, int) 
662     */
663    public void insertPROCEDURE(RQA_I08_PROCEDURE structure, int rep) throws HL7Exception { 
664       super.insertRepetition( "PROCEDURE", structure, rep);
665    }
666
667
668    /**
669     * Inserts a specific repetition of PROCEDURE (a Group object)
670     * @see AbstractGroup#insertRepetition(Structure, int) 
671     */
672    public RQA_I08_PROCEDURE insertPROCEDURE(int rep) throws HL7Exception { 
673       return (RQA_I08_PROCEDURE)super.insertRepetition("PROCEDURE", rep);
674    }
675
676
677    /**
678     * Removes a specific repetition of PROCEDURE (a Group object)
679     * @see AbstractGroup#removeRepetition(String, int) 
680     */
681    public RQA_I08_PROCEDURE removePROCEDURE(int rep) throws HL7Exception { 
682       return (RQA_I08_PROCEDURE)super.removeRepetition("PROCEDURE", rep);
683    }
684
685
686
687    /**
688     * Returns
689     * the first repetition of 
690     * OBSERVATION (a Group object) - creates it if necessary
691     */
692    public RQA_I08_OBSERVATION getOBSERVATION() { 
693       return getTyped("OBSERVATION", RQA_I08_OBSERVATION.class);
694    }
695
696
697    /**
698     * Returns a specific repetition of
699     * OBSERVATION (a Group object) - creates it if necessary
700     *
701     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
702     * @throws HL7Exception if the repetition requested is more than one 
703     *     greater than the number of existing repetitions.
704     */
705    public RQA_I08_OBSERVATION getOBSERVATION(int rep) { 
706       return getTyped("OBSERVATION", rep, RQA_I08_OBSERVATION.class);
707    }
708
709    /** 
710     * Returns the number of existing repetitions of OBSERVATION 
711     */ 
712    public int getOBSERVATIONReps() { 
713        return getReps("OBSERVATION");
714    } 
715
716    /** 
717     * <p>
718     * Returns a non-modifiable List containing all current existing repetitions of OBSERVATION.
719     * <p>
720     * <p>
721     * Note that unlike {@link #getOBSERVATION()}, this method will not create any reps
722     * if none are already present, so an empty list may be returned.
723     * </p>
724     */ 
725    public List<RQA_I08_OBSERVATION> getOBSERVATIONAll() throws HL7Exception {
726        return getAllAsList("OBSERVATION", RQA_I08_OBSERVATION.class);
727    } 
728
729    /**
730     * Inserts a specific repetition of OBSERVATION (a Group object)
731     * @see AbstractGroup#insertRepetition(Structure, int) 
732     */
733    public void insertOBSERVATION(RQA_I08_OBSERVATION structure, int rep) throws HL7Exception { 
734       super.insertRepetition( "OBSERVATION", structure, rep);
735    }
736
737
738    /**
739     * Inserts a specific repetition of OBSERVATION (a Group object)
740     * @see AbstractGroup#insertRepetition(Structure, int) 
741     */
742    public RQA_I08_OBSERVATION insertOBSERVATION(int rep) throws HL7Exception { 
743       return (RQA_I08_OBSERVATION)super.insertRepetition("OBSERVATION", rep);
744    }
745
746
747    /**
748     * Removes a specific repetition of OBSERVATION (a Group object)
749     * @see AbstractGroup#removeRepetition(String, int) 
750     */
751    public RQA_I08_OBSERVATION removeOBSERVATION(int rep) throws HL7Exception { 
752       return (RQA_I08_OBSERVATION)super.removeRepetition("OBSERVATION", rep);
753    }
754
755
756
757    /**
758     * Returns
759     * VISIT (a Group object) - creates it if necessary
760     */
761    public RQA_I08_VISIT getVISIT() { 
762       return getTyped("VISIT", RQA_I08_VISIT.class);
763    }
764
765
766
767
768    /**
769     * Returns
770     * the first repetition of 
771     * NTE (Notes and Comments) - creates it if necessary
772     */
773    public NTE getNTE() { 
774       return getTyped("NTE", NTE.class);
775    }
776
777
778    /**
779     * Returns a specific repetition of
780     * NTE (Notes and Comments) - creates it if necessary
781     *
782     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
783     * @throws HL7Exception if the repetition requested is more than one 
784     *     greater than the number of existing repetitions.
785     */
786    public NTE getNTE(int rep) { 
787       return getTyped("NTE", rep, NTE.class);
788    }
789
790    /** 
791     * Returns the number of existing repetitions of NTE 
792     */ 
793    public int getNTEReps() { 
794        return getReps("NTE");
795    } 
796
797    /** 
798     * <p>
799     * Returns a non-modifiable List containing all current existing repetitions of NTE.
800     * <p>
801     * <p>
802     * Note that unlike {@link #getNTE()}, this method will not create any reps
803     * if none are already present, so an empty list may be returned.
804     * </p>
805     */ 
806    public List<NTE> getNTEAll() throws HL7Exception {
807        return getAllAsList("NTE", NTE.class);
808    } 
809
810    /**
811     * Inserts a specific repetition of NTE (Notes and Comments)
812     * @see AbstractGroup#insertRepetition(Structure, int) 
813     */
814    public void insertNTE(NTE structure, int rep) throws HL7Exception { 
815       super.insertRepetition( "NTE", structure, rep);
816    }
817
818
819    /**
820     * Inserts a specific repetition of NTE (Notes and Comments)
821     * @see AbstractGroup#insertRepetition(Structure, int) 
822     */
823    public NTE insertNTE(int rep) throws HL7Exception { 
824       return (NTE)super.insertRepetition("NTE", rep);
825    }
826
827
828    /**
829     * Removes a specific repetition of NTE (Notes and Comments)
830     * @see AbstractGroup#removeRepetition(String, int) 
831     */
832    public NTE removeNTE(int rep) throws HL7Exception { 
833       return (NTE)super.removeRepetition("NTE", rep);
834    }
835
836
837
838}
839