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.v21.group;
035
036import ca.uhn.hl7v2.model.v21.segment.*;
037
038import java.util.List;
039
040import ca.uhn.hl7v2.HL7Exception;
041import ca.uhn.hl7v2.parser.ModelClassFactory;
042import ca.uhn.hl7v2.model.*;
043
044/**
045 * <p>Represents a BAR_P01_VISIT group structure (a Group object).
046 * A Group is an ordered collection of message segments that can repeat together or be optionally in/excluded together.
047 * This Group contains the following elements:  
048 * </p>
049 * <ul>
050                 * <li>1: PV1 (PATIENT VISIT) <b>optional </b></li>
051                 * <li>2: DG1 (DIAGNOSIS) <b>optional repeating</b></li>
052                 * <li>3: PR1 (PROCEDURES) <b>optional repeating</b></li>
053                 * <li>4: GT1 (GUARANTOR) <b>optional repeating</b></li>
054                 * <li>5: NK1 (NEXT OF KIN) <b>optional repeating</b></li>
055                 * <li>6: IN1 (INSURANCE) <b>optional repeating</b></li>
056                 * <li>7: ACC (ACCIDENT) <b>optional </b></li>
057                 * <li>8: UB1 (UB82 DATA) <b>optional </b></li>
058 * </ul>
059 */
060@SuppressWarnings("unused")
061public class BAR_P01_VISIT extends AbstractGroup {
062
063    /** 
064     * Creates a new BAR_P01_VISIT group
065     */
066    public BAR_P01_VISIT(Group parent, ModelClassFactory factory) {
067       super(parent, factory);
068       init(factory);
069    }
070
071    private void init(ModelClassFactory factory) {
072       try {
073                          this.add(PV1.class, false, false);
074                          this.add(DG1.class, false, true);
075                          this.add(PR1.class, false, true);
076                          this.add(GT1.class, false, true);
077                          this.add(NK1.class, false, true);
078                          this.add(IN1.class, false, true);
079                          this.add(ACC.class, false, false);
080                          this.add(UB1.class, false, false);
081       } catch(HL7Exception e) {
082          log.error("Unexpected error creating BAR_P01_VISIT - this is probably a bug in the source code generator.", e);
083       }
084    }
085
086    /** 
087     * Returns "2.1"
088     */
089    public String getVersion() {
090       return "2.1";
091    }
092
093
094
095    /**
096     * Returns
097     * PV1 (PATIENT VISIT) - creates it if necessary
098     */
099    public PV1 getPV1() { 
100       PV1 retVal = getTyped("PV1", PV1.class);
101       return retVal;
102    }
103
104
105
106
107    /**
108     * Returns
109     * the first repetition of 
110     * DG1 (DIAGNOSIS) - creates it if necessary
111     */
112    public DG1 getDG1() { 
113       DG1 retVal = getTyped("DG1", DG1.class);
114       return retVal;
115    }
116
117
118    /**
119     * Returns a specific repetition of
120     * DG1 (DIAGNOSIS) - creates it if necessary
121     *
122     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
123     * @throws HL7Exception if the repetition requested is more than one 
124     *     greater than the number of existing repetitions.
125     */
126    public DG1 getDG1(int rep) { 
127       DG1 retVal = getTyped("DG1", rep, DG1.class);
128       return retVal;
129    }
130
131    /** 
132     * Returns the number of existing repetitions of DG1 
133     */ 
134    public int getDG1Reps() {  
135        return getReps("DG1");
136    } 
137
138    /** 
139     * <p>
140     * Returns a non-modifiable List containing all current existing repetitions of DG1.
141     * <p>
142     * <p>
143     * Note that unlike {@link #getDG1()}, this method will not create any reps
144     * if none are already present, so an empty list may be returned.
145     * </p>
146     */ 
147    public List<DG1> getDG1All() throws HL7Exception {
148        return getAllAsList("DG1", DG1.class);
149    } 
150
151    /**
152     * Inserts a specific repetition of DG1 (DIAGNOSIS)
153     * @see AbstractGroup#insertRepetition(Structure, int) 
154     */
155    public void insertDG1(DG1 structure, int rep) throws HL7Exception { 
156       super.insertRepetition("DG1", structure, rep);
157    }
158
159
160    /**
161     * Inserts a specific repetition of DG1 (DIAGNOSIS)
162     * @see AbstractGroup#insertRepetition(Structure, int) 
163     */
164    public DG1 insertDG1(int rep) throws HL7Exception { 
165       return (DG1)super.insertRepetition("DG1", rep);
166    }
167
168
169    /**
170     * Removes a specific repetition of DG1 (DIAGNOSIS)
171     * @see AbstractGroup#removeRepetition(String, int) 
172     */
173    public DG1 removeDG1(int rep) throws HL7Exception { 
174       return (DG1)super.removeRepetition("DG1", rep);
175    }
176
177
178
179    /**
180     * Returns
181     * the first repetition of 
182     * PR1 (PROCEDURES) - creates it if necessary
183     */
184    public PR1 getPR1() { 
185       PR1 retVal = getTyped("PR1", PR1.class);
186       return retVal;
187    }
188
189
190    /**
191     * Returns a specific repetition of
192     * PR1 (PROCEDURES) - creates it if necessary
193     *
194     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
195     * @throws HL7Exception if the repetition requested is more than one 
196     *     greater than the number of existing repetitions.
197     */
198    public PR1 getPR1(int rep) { 
199       PR1 retVal = getTyped("PR1", rep, PR1.class);
200       return retVal;
201    }
202
203    /** 
204     * Returns the number of existing repetitions of PR1 
205     */ 
206    public int getPR1Reps() {  
207        return getReps("PR1");
208    } 
209
210    /** 
211     * <p>
212     * Returns a non-modifiable List containing all current existing repetitions of PR1.
213     * <p>
214     * <p>
215     * Note that unlike {@link #getPR1()}, this method will not create any reps
216     * if none are already present, so an empty list may be returned.
217     * </p>
218     */ 
219    public List<PR1> getPR1All() throws HL7Exception {
220        return getAllAsList("PR1", PR1.class);
221    } 
222
223    /**
224     * Inserts a specific repetition of PR1 (PROCEDURES)
225     * @see AbstractGroup#insertRepetition(Structure, int) 
226     */
227    public void insertPR1(PR1 structure, int rep) throws HL7Exception { 
228       super.insertRepetition("PR1", structure, rep);
229    }
230
231
232    /**
233     * Inserts a specific repetition of PR1 (PROCEDURES)
234     * @see AbstractGroup#insertRepetition(Structure, int) 
235     */
236    public PR1 insertPR1(int rep) throws HL7Exception { 
237       return (PR1)super.insertRepetition("PR1", rep);
238    }
239
240
241    /**
242     * Removes a specific repetition of PR1 (PROCEDURES)
243     * @see AbstractGroup#removeRepetition(String, int) 
244     */
245    public PR1 removePR1(int rep) throws HL7Exception { 
246       return (PR1)super.removeRepetition("PR1", rep);
247    }
248
249
250
251    /**
252     * Returns
253     * the first repetition of 
254     * GT1 (GUARANTOR) - creates it if necessary
255     */
256    public GT1 getGT1() { 
257       GT1 retVal = getTyped("GT1", GT1.class);
258       return retVal;
259    }
260
261
262    /**
263     * Returns a specific repetition of
264     * GT1 (GUARANTOR) - creates it if necessary
265     *
266     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
267     * @throws HL7Exception if the repetition requested is more than one 
268     *     greater than the number of existing repetitions.
269     */
270    public GT1 getGT1(int rep) { 
271       GT1 retVal = getTyped("GT1", rep, GT1.class);
272       return retVal;
273    }
274
275    /** 
276     * Returns the number of existing repetitions of GT1 
277     */ 
278    public int getGT1Reps() {  
279        return getReps("GT1");
280    } 
281
282    /** 
283     * <p>
284     * Returns a non-modifiable List containing all current existing repetitions of GT1.
285     * <p>
286     * <p>
287     * Note that unlike {@link #getGT1()}, this method will not create any reps
288     * if none are already present, so an empty list may be returned.
289     * </p>
290     */ 
291    public List<GT1> getGT1All() throws HL7Exception {
292        return getAllAsList("GT1", GT1.class);
293    } 
294
295    /**
296     * Inserts a specific repetition of GT1 (GUARANTOR)
297     * @see AbstractGroup#insertRepetition(Structure, int) 
298     */
299    public void insertGT1(GT1 structure, int rep) throws HL7Exception { 
300       super.insertRepetition("GT1", structure, rep);
301    }
302
303
304    /**
305     * Inserts a specific repetition of GT1 (GUARANTOR)
306     * @see AbstractGroup#insertRepetition(Structure, int) 
307     */
308    public GT1 insertGT1(int rep) throws HL7Exception { 
309       return (GT1)super.insertRepetition("GT1", rep);
310    }
311
312
313    /**
314     * Removes a specific repetition of GT1 (GUARANTOR)
315     * @see AbstractGroup#removeRepetition(String, int) 
316     */
317    public GT1 removeGT1(int rep) throws HL7Exception { 
318       return (GT1)super.removeRepetition("GT1", rep);
319    }
320
321
322
323    /**
324     * Returns
325     * the first repetition of 
326     * NK1 (NEXT OF KIN) - creates it if necessary
327     */
328    public NK1 getNK1() { 
329       NK1 retVal = getTyped("NK1", NK1.class);
330       return retVal;
331    }
332
333
334    /**
335     * Returns a specific repetition of
336     * NK1 (NEXT OF KIN) - creates it if necessary
337     *
338     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
339     * @throws HL7Exception if the repetition requested is more than one 
340     *     greater than the number of existing repetitions.
341     */
342    public NK1 getNK1(int rep) { 
343       NK1 retVal = getTyped("NK1", rep, NK1.class);
344       return retVal;
345    }
346
347    /** 
348     * Returns the number of existing repetitions of NK1 
349     */ 
350    public int getNK1Reps() {  
351        return getReps("NK1");
352    } 
353
354    /** 
355     * <p>
356     * Returns a non-modifiable List containing all current existing repetitions of NK1.
357     * <p>
358     * <p>
359     * Note that unlike {@link #getNK1()}, this method will not create any reps
360     * if none are already present, so an empty list may be returned.
361     * </p>
362     */ 
363    public List<NK1> getNK1All() throws HL7Exception {
364        return getAllAsList("NK1", NK1.class);
365    } 
366
367    /**
368     * Inserts a specific repetition of NK1 (NEXT OF KIN)
369     * @see AbstractGroup#insertRepetition(Structure, int) 
370     */
371    public void insertNK1(NK1 structure, int rep) throws HL7Exception { 
372       super.insertRepetition("NK1", structure, rep);
373    }
374
375
376    /**
377     * Inserts a specific repetition of NK1 (NEXT OF KIN)
378     * @see AbstractGroup#insertRepetition(Structure, int) 
379     */
380    public NK1 insertNK1(int rep) throws HL7Exception { 
381       return (NK1)super.insertRepetition("NK1", rep);
382    }
383
384
385    /**
386     * Removes a specific repetition of NK1 (NEXT OF KIN)
387     * @see AbstractGroup#removeRepetition(String, int) 
388     */
389    public NK1 removeNK1(int rep) throws HL7Exception { 
390       return (NK1)super.removeRepetition("NK1", rep);
391    }
392
393
394
395    /**
396     * Returns
397     * the first repetition of 
398     * IN1 (INSURANCE) - creates it if necessary
399     */
400    public IN1 getIN1() { 
401       IN1 retVal = getTyped("IN1", IN1.class);
402       return retVal;
403    }
404
405
406    /**
407     * Returns a specific repetition of
408     * IN1 (INSURANCE) - creates it if necessary
409     *
410     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
411     * @throws HL7Exception if the repetition requested is more than one 
412     *     greater than the number of existing repetitions.
413     */
414    public IN1 getIN1(int rep) { 
415       IN1 retVal = getTyped("IN1", rep, IN1.class);
416       return retVal;
417    }
418
419    /** 
420     * Returns the number of existing repetitions of IN1 
421     */ 
422    public int getIN1Reps() {  
423        return getReps("IN1");
424    } 
425
426    /** 
427     * <p>
428     * Returns a non-modifiable List containing all current existing repetitions of IN1.
429     * <p>
430     * <p>
431     * Note that unlike {@link #getIN1()}, this method will not create any reps
432     * if none are already present, so an empty list may be returned.
433     * </p>
434     */ 
435    public List<IN1> getIN1All() throws HL7Exception {
436        return getAllAsList("IN1", IN1.class);
437    } 
438
439    /**
440     * Inserts a specific repetition of IN1 (INSURANCE)
441     * @see AbstractGroup#insertRepetition(Structure, int) 
442     */
443    public void insertIN1(IN1 structure, int rep) throws HL7Exception { 
444       super.insertRepetition("IN1", structure, rep);
445    }
446
447
448    /**
449     * Inserts a specific repetition of IN1 (INSURANCE)
450     * @see AbstractGroup#insertRepetition(Structure, int) 
451     */
452    public IN1 insertIN1(int rep) throws HL7Exception { 
453       return (IN1)super.insertRepetition("IN1", rep);
454    }
455
456
457    /**
458     * Removes a specific repetition of IN1 (INSURANCE)
459     * @see AbstractGroup#removeRepetition(String, int) 
460     */
461    public IN1 removeIN1(int rep) throws HL7Exception { 
462       return (IN1)super.removeRepetition("IN1", rep);
463    }
464
465
466
467    /**
468     * Returns
469     * ACC (ACCIDENT) - creates it if necessary
470     */
471    public ACC getACC() { 
472       ACC retVal = getTyped("ACC", ACC.class);
473       return retVal;
474    }
475
476
477
478
479    /**
480     * Returns
481     * UB1 (UB82 DATA) - creates it if necessary
482     */
483    public UB1 getUB1() { 
484       UB1 retVal = getTyped("UB1", UB1.class);
485       return retVal;
486    }
487
488
489
490
491}
492