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.v25.group;
035
036import ca.uhn.hl7v2.model.v25.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 PRR_PC5_PROBLEM 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: PRB (Problem Details) <b> </b></li>
051                 * <li>2: NTE (Notes and Comments) <b>optional repeating</b></li>
052                 * <li>3: VAR (Variance) <b>optional repeating</b></li>
053                 * <li>4: PRR_PC5_PROBLEM_ROLE (a Group object) <b>optional repeating</b></li>
054                 * <li>5: PRR_PC5_PROBLEM_PATHWAY (a Group object) <b>optional repeating</b></li>
055                 * <li>6: PRR_PC5_PROBLEM_OBSERVATION (a Group object) <b>optional repeating</b></li>
056                 * <li>7: PRR_PC5_GOAL (a Group object) <b>optional repeating</b></li>
057                 * <li>8: PRR_PC5_ORDER (a Group object) <b>optional repeating</b></li>
058 * </ul>
059 */
060@SuppressWarnings("unused")
061public class PRR_PC5_PROBLEM extends AbstractGroup {
062
063    /** 
064     * Creates a new PRR_PC5_PROBLEM group
065     */
066    public PRR_PC5_PROBLEM(Group parent, ModelClassFactory factory) {
067       super(parent, factory);
068       init(factory);
069    }
070
071    private void init(ModelClassFactory factory) {
072       try {
073                          this.add(PRB.class, true, false);
074                          this.add(NTE.class, false, true);
075                          this.add(VAR.class, false, true);
076                          this.add(PRR_PC5_PROBLEM_ROLE.class, false, true);
077                          this.add(PRR_PC5_PROBLEM_PATHWAY.class, false, true);
078                          this.add(PRR_PC5_PROBLEM_OBSERVATION.class, false, true);
079                          this.add(PRR_PC5_GOAL.class, false, true);
080                          this.add(PRR_PC5_ORDER.class, false, true);
081       } catch(HL7Exception e) {
082          log.error("Unexpected error creating PRR_PC5_PROBLEM - this is probably a bug in the source code generator.", e);
083       }
084    }
085
086    /** 
087     * Returns "2.5"
088     */
089    public String getVersion() {
090       return "2.5";
091    }
092
093
094
095    /**
096     * Returns
097     * PRB (Problem Details) - creates it if necessary
098     */
099    public PRB getPRB() { 
100       PRB retVal = getTyped("PRB", PRB.class);
101       return retVal;
102    }
103
104
105
106
107    /**
108     * Returns
109     * the first repetition of 
110     * NTE (Notes and Comments) - creates it if necessary
111     */
112    public NTE getNTE() { 
113       NTE retVal = getTyped("NTE", NTE.class);
114       return retVal;
115    }
116
117
118    /**
119     * Returns a specific repetition of
120     * NTE (Notes and Comments) - 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 NTE getNTE(int rep) { 
127       NTE retVal = getTyped("NTE", rep, NTE.class);
128       return retVal;
129    }
130
131    /** 
132     * Returns the number of existing repetitions of NTE 
133     */ 
134    public int getNTEReps() {  
135        return getReps("NTE");
136    } 
137
138    /** 
139     * <p>
140     * Returns a non-modifiable List containing all current existing repetitions of NTE.
141     * <p>
142     * <p>
143     * Note that unlike {@link #getNTE()}, 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<NTE> getNTEAll() throws HL7Exception {
148        return getAllAsList("NTE", NTE.class);
149    } 
150
151    /**
152     * Inserts a specific repetition of NTE (Notes and Comments)
153     * @see AbstractGroup#insertRepetition(Structure, int) 
154     */
155    public void insertNTE(NTE structure, int rep) throws HL7Exception { 
156       super.insertRepetition("NTE", structure, rep);
157    }
158
159
160    /**
161     * Inserts a specific repetition of NTE (Notes and Comments)
162     * @see AbstractGroup#insertRepetition(Structure, int) 
163     */
164    public NTE insertNTE(int rep) throws HL7Exception { 
165       return (NTE)super.insertRepetition("NTE", rep);
166    }
167
168
169    /**
170     * Removes a specific repetition of NTE (Notes and Comments)
171     * @see AbstractGroup#removeRepetition(String, int) 
172     */
173    public NTE removeNTE(int rep) throws HL7Exception { 
174       return (NTE)super.removeRepetition("NTE", rep);
175    }
176
177
178
179    /**
180     * Returns
181     * the first repetition of 
182     * VAR (Variance) - creates it if necessary
183     */
184    public VAR getVAR() { 
185       VAR retVal = getTyped("VAR", VAR.class);
186       return retVal;
187    }
188
189
190    /**
191     * Returns a specific repetition of
192     * VAR (Variance) - 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 VAR getVAR(int rep) { 
199       VAR retVal = getTyped("VAR", rep, VAR.class);
200       return retVal;
201    }
202
203    /** 
204     * Returns the number of existing repetitions of VAR 
205     */ 
206    public int getVARReps() {  
207        return getReps("VAR");
208    } 
209
210    /** 
211     * <p>
212     * Returns a non-modifiable List containing all current existing repetitions of VAR.
213     * <p>
214     * <p>
215     * Note that unlike {@link #getVAR()}, 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<VAR> getVARAll() throws HL7Exception {
220        return getAllAsList("VAR", VAR.class);
221    } 
222
223    /**
224     * Inserts a specific repetition of VAR (Variance)
225     * @see AbstractGroup#insertRepetition(Structure, int) 
226     */
227    public void insertVAR(VAR structure, int rep) throws HL7Exception { 
228       super.insertRepetition("VAR", structure, rep);
229    }
230
231
232    /**
233     * Inserts a specific repetition of VAR (Variance)
234     * @see AbstractGroup#insertRepetition(Structure, int) 
235     */
236    public VAR insertVAR(int rep) throws HL7Exception { 
237       return (VAR)super.insertRepetition("VAR", rep);
238    }
239
240
241    /**
242     * Removes a specific repetition of VAR (Variance)
243     * @see AbstractGroup#removeRepetition(String, int) 
244     */
245    public VAR removeVAR(int rep) throws HL7Exception { 
246       return (VAR)super.removeRepetition("VAR", rep);
247    }
248
249
250
251    /**
252     * Returns
253     * the first repetition of 
254     * PROBLEM_ROLE (a Group object) - creates it if necessary
255     */
256    public PRR_PC5_PROBLEM_ROLE getPROBLEM_ROLE() { 
257       PRR_PC5_PROBLEM_ROLE retVal = getTyped("PROBLEM_ROLE", PRR_PC5_PROBLEM_ROLE.class);
258       return retVal;
259    }
260
261
262    /**
263     * Returns a specific repetition of
264     * PROBLEM_ROLE (a Group object) - 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 PRR_PC5_PROBLEM_ROLE getPROBLEM_ROLE(int rep) { 
271       PRR_PC5_PROBLEM_ROLE retVal = getTyped("PROBLEM_ROLE", rep, PRR_PC5_PROBLEM_ROLE.class);
272       return retVal;
273    }
274
275    /** 
276     * Returns the number of existing repetitions of PROBLEM_ROLE 
277     */ 
278    public int getPROBLEM_ROLEReps() {  
279        return getReps("PROBLEM_ROLE");
280    } 
281
282    /** 
283     * <p>
284     * Returns a non-modifiable List containing all current existing repetitions of PROBLEM_ROLE.
285     * <p>
286     * <p>
287     * Note that unlike {@link #getPROBLEM_ROLE()}, 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<PRR_PC5_PROBLEM_ROLE> getPROBLEM_ROLEAll() throws HL7Exception {
292        return getAllAsList("PROBLEM_ROLE", PRR_PC5_PROBLEM_ROLE.class);
293    } 
294
295    /**
296     * Inserts a specific repetition of PROBLEM_ROLE (a Group object)
297     * @see AbstractGroup#insertRepetition(Structure, int) 
298     */
299    public void insertPROBLEM_ROLE(PRR_PC5_PROBLEM_ROLE structure, int rep) throws HL7Exception { 
300       super.insertRepetition("PROBLEM_ROLE", structure, rep);
301    }
302
303
304    /**
305     * Inserts a specific repetition of PROBLEM_ROLE (a Group object)
306     * @see AbstractGroup#insertRepetition(Structure, int) 
307     */
308    public PRR_PC5_PROBLEM_ROLE insertPROBLEM_ROLE(int rep) throws HL7Exception { 
309       return (PRR_PC5_PROBLEM_ROLE)super.insertRepetition("PROBLEM_ROLE", rep);
310    }
311
312
313    /**
314     * Removes a specific repetition of PROBLEM_ROLE (a Group object)
315     * @see AbstractGroup#removeRepetition(String, int) 
316     */
317    public PRR_PC5_PROBLEM_ROLE removePROBLEM_ROLE(int rep) throws HL7Exception { 
318       return (PRR_PC5_PROBLEM_ROLE)super.removeRepetition("PROBLEM_ROLE", rep);
319    }
320
321
322
323    /**
324     * Returns
325     * the first repetition of 
326     * PROBLEM_PATHWAY (a Group object) - creates it if necessary
327     */
328    public PRR_PC5_PROBLEM_PATHWAY getPROBLEM_PATHWAY() { 
329       PRR_PC5_PROBLEM_PATHWAY retVal = getTyped("PROBLEM_PATHWAY", PRR_PC5_PROBLEM_PATHWAY.class);
330       return retVal;
331    }
332
333
334    /**
335     * Returns a specific repetition of
336     * PROBLEM_PATHWAY (a Group object) - 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 PRR_PC5_PROBLEM_PATHWAY getPROBLEM_PATHWAY(int rep) { 
343       PRR_PC5_PROBLEM_PATHWAY retVal = getTyped("PROBLEM_PATHWAY", rep, PRR_PC5_PROBLEM_PATHWAY.class);
344       return retVal;
345    }
346
347    /** 
348     * Returns the number of existing repetitions of PROBLEM_PATHWAY 
349     */ 
350    public int getPROBLEM_PATHWAYReps() {  
351        return getReps("PROBLEM_PATHWAY");
352    } 
353
354    /** 
355     * <p>
356     * Returns a non-modifiable List containing all current existing repetitions of PROBLEM_PATHWAY.
357     * <p>
358     * <p>
359     * Note that unlike {@link #getPROBLEM_PATHWAY()}, 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<PRR_PC5_PROBLEM_PATHWAY> getPROBLEM_PATHWAYAll() throws HL7Exception {
364        return getAllAsList("PROBLEM_PATHWAY", PRR_PC5_PROBLEM_PATHWAY.class);
365    } 
366
367    /**
368     * Inserts a specific repetition of PROBLEM_PATHWAY (a Group object)
369     * @see AbstractGroup#insertRepetition(Structure, int) 
370     */
371    public void insertPROBLEM_PATHWAY(PRR_PC5_PROBLEM_PATHWAY structure, int rep) throws HL7Exception { 
372       super.insertRepetition("PROBLEM_PATHWAY", structure, rep);
373    }
374
375
376    /**
377     * Inserts a specific repetition of PROBLEM_PATHWAY (a Group object)
378     * @see AbstractGroup#insertRepetition(Structure, int) 
379     */
380    public PRR_PC5_PROBLEM_PATHWAY insertPROBLEM_PATHWAY(int rep) throws HL7Exception { 
381       return (PRR_PC5_PROBLEM_PATHWAY)super.insertRepetition("PROBLEM_PATHWAY", rep);
382    }
383
384
385    /**
386     * Removes a specific repetition of PROBLEM_PATHWAY (a Group object)
387     * @see AbstractGroup#removeRepetition(String, int) 
388     */
389    public PRR_PC5_PROBLEM_PATHWAY removePROBLEM_PATHWAY(int rep) throws HL7Exception { 
390       return (PRR_PC5_PROBLEM_PATHWAY)super.removeRepetition("PROBLEM_PATHWAY", rep);
391    }
392
393
394
395    /**
396     * Returns
397     * the first repetition of 
398     * PROBLEM_OBSERVATION (a Group object) - creates it if necessary
399     */
400    public PRR_PC5_PROBLEM_OBSERVATION getPROBLEM_OBSERVATION() { 
401       PRR_PC5_PROBLEM_OBSERVATION retVal = getTyped("PROBLEM_OBSERVATION", PRR_PC5_PROBLEM_OBSERVATION.class);
402       return retVal;
403    }
404
405
406    /**
407     * Returns a specific repetition of
408     * PROBLEM_OBSERVATION (a Group object) - 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 PRR_PC5_PROBLEM_OBSERVATION getPROBLEM_OBSERVATION(int rep) { 
415       PRR_PC5_PROBLEM_OBSERVATION retVal = getTyped("PROBLEM_OBSERVATION", rep, PRR_PC5_PROBLEM_OBSERVATION.class);
416       return retVal;
417    }
418
419    /** 
420     * Returns the number of existing repetitions of PROBLEM_OBSERVATION 
421     */ 
422    public int getPROBLEM_OBSERVATIONReps() {  
423        return getReps("PROBLEM_OBSERVATION");
424    } 
425
426    /** 
427     * <p>
428     * Returns a non-modifiable List containing all current existing repetitions of PROBLEM_OBSERVATION.
429     * <p>
430     * <p>
431     * Note that unlike {@link #getPROBLEM_OBSERVATION()}, 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<PRR_PC5_PROBLEM_OBSERVATION> getPROBLEM_OBSERVATIONAll() throws HL7Exception {
436        return getAllAsList("PROBLEM_OBSERVATION", PRR_PC5_PROBLEM_OBSERVATION.class);
437    } 
438
439    /**
440     * Inserts a specific repetition of PROBLEM_OBSERVATION (a Group object)
441     * @see AbstractGroup#insertRepetition(Structure, int) 
442     */
443    public void insertPROBLEM_OBSERVATION(PRR_PC5_PROBLEM_OBSERVATION structure, int rep) throws HL7Exception { 
444       super.insertRepetition("PROBLEM_OBSERVATION", structure, rep);
445    }
446
447
448    /**
449     * Inserts a specific repetition of PROBLEM_OBSERVATION (a Group object)
450     * @see AbstractGroup#insertRepetition(Structure, int) 
451     */
452    public PRR_PC5_PROBLEM_OBSERVATION insertPROBLEM_OBSERVATION(int rep) throws HL7Exception { 
453       return (PRR_PC5_PROBLEM_OBSERVATION)super.insertRepetition("PROBLEM_OBSERVATION", rep);
454    }
455
456
457    /**
458     * Removes a specific repetition of PROBLEM_OBSERVATION (a Group object)
459     * @see AbstractGroup#removeRepetition(String, int) 
460     */
461    public PRR_PC5_PROBLEM_OBSERVATION removePROBLEM_OBSERVATION(int rep) throws HL7Exception { 
462       return (PRR_PC5_PROBLEM_OBSERVATION)super.removeRepetition("PROBLEM_OBSERVATION", rep);
463    }
464
465
466
467    /**
468     * Returns
469     * the first repetition of 
470     * GOAL (a Group object) - creates it if necessary
471     */
472    public PRR_PC5_GOAL getGOAL() { 
473       PRR_PC5_GOAL retVal = getTyped("GOAL", PRR_PC5_GOAL.class);
474       return retVal;
475    }
476
477
478    /**
479     * Returns a specific repetition of
480     * GOAL (a Group object) - creates it if necessary
481     *
482     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
483     * @throws HL7Exception if the repetition requested is more than one 
484     *     greater than the number of existing repetitions.
485     */
486    public PRR_PC5_GOAL getGOAL(int rep) { 
487       PRR_PC5_GOAL retVal = getTyped("GOAL", rep, PRR_PC5_GOAL.class);
488       return retVal;
489    }
490
491    /** 
492     * Returns the number of existing repetitions of GOAL 
493     */ 
494    public int getGOALReps() {  
495        return getReps("GOAL");
496    } 
497
498    /** 
499     * <p>
500     * Returns a non-modifiable List containing all current existing repetitions of GOAL.
501     * <p>
502     * <p>
503     * Note that unlike {@link #getGOAL()}, this method will not create any reps
504     * if none are already present, so an empty list may be returned.
505     * </p>
506     */ 
507    public List<PRR_PC5_GOAL> getGOALAll() throws HL7Exception {
508        return getAllAsList("GOAL", PRR_PC5_GOAL.class);
509    } 
510
511    /**
512     * Inserts a specific repetition of GOAL (a Group object)
513     * @see AbstractGroup#insertRepetition(Structure, int) 
514     */
515    public void insertGOAL(PRR_PC5_GOAL structure, int rep) throws HL7Exception { 
516       super.insertRepetition("GOAL", structure, rep);
517    }
518
519
520    /**
521     * Inserts a specific repetition of GOAL (a Group object)
522     * @see AbstractGroup#insertRepetition(Structure, int) 
523     */
524    public PRR_PC5_GOAL insertGOAL(int rep) throws HL7Exception { 
525       return (PRR_PC5_GOAL)super.insertRepetition("GOAL", rep);
526    }
527
528
529    /**
530     * Removes a specific repetition of GOAL (a Group object)
531     * @see AbstractGroup#removeRepetition(String, int) 
532     */
533    public PRR_PC5_GOAL removeGOAL(int rep) throws HL7Exception { 
534       return (PRR_PC5_GOAL)super.removeRepetition("GOAL", rep);
535    }
536
537
538
539    /**
540     * Returns
541     * the first repetition of 
542     * ORDER (a Group object) - creates it if necessary
543     */
544    public PRR_PC5_ORDER getORDER() { 
545       PRR_PC5_ORDER retVal = getTyped("ORDER", PRR_PC5_ORDER.class);
546       return retVal;
547    }
548
549
550    /**
551     * Returns a specific repetition of
552     * ORDER (a Group object) - creates it if necessary
553     *
554     * @param rep The repetition index (0-indexed, i.e. the first repetition is at index 0)
555     * @throws HL7Exception if the repetition requested is more than one 
556     *     greater than the number of existing repetitions.
557     */
558    public PRR_PC5_ORDER getORDER(int rep) { 
559       PRR_PC5_ORDER retVal = getTyped("ORDER", rep, PRR_PC5_ORDER.class);
560       return retVal;
561    }
562
563    /** 
564     * Returns the number of existing repetitions of ORDER 
565     */ 
566    public int getORDERReps() {  
567        return getReps("ORDER");
568    } 
569
570    /** 
571     * <p>
572     * Returns a non-modifiable List containing all current existing repetitions of ORDER.
573     * <p>
574     * <p>
575     * Note that unlike {@link #getORDER()}, this method will not create any reps
576     * if none are already present, so an empty list may be returned.
577     * </p>
578     */ 
579    public List<PRR_PC5_ORDER> getORDERAll() throws HL7Exception {
580        return getAllAsList("ORDER", PRR_PC5_ORDER.class);
581    } 
582
583    /**
584     * Inserts a specific repetition of ORDER (a Group object)
585     * @see AbstractGroup#insertRepetition(Structure, int) 
586     */
587    public void insertORDER(PRR_PC5_ORDER structure, int rep) throws HL7Exception { 
588       super.insertRepetition("ORDER", structure, rep);
589    }
590
591
592    /**
593     * Inserts a specific repetition of ORDER (a Group object)
594     * @see AbstractGroup#insertRepetition(Structure, int) 
595     */
596    public PRR_PC5_ORDER insertORDER(int rep) throws HL7Exception { 
597       return (PRR_PC5_ORDER)super.insertRepetition("ORDER", rep);
598    }
599
600
601    /**
602     * Removes a specific repetition of ORDER (a Group object)
603     * @see AbstractGroup#removeRepetition(String, int) 
604     */
605    public PRR_PC5_ORDER removeORDER(int rep) throws HL7Exception { 
606       return (PRR_PC5_ORDER)super.removeRepetition("ORDER", rep);
607    }
608
609
610
611}
612