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.v22.segment;
035
036// import ca.uhn.hl7v2.model.v22.group.*;
037import ca.uhn.hl7v2.model.v22.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). 
050 * This segment has the following fields:</p>
051 * <ul>
052     * <li>RXG-1: Give Sub-ID Counter (NM) <b> </b>
053     * <li>RXG-2: Dispense Sub-ID Counter (NM) <b>optional </b>
054     * <li>RXG-3: Quantity / timing (TQ) <b>optional repeating</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 (ST) <b>optional </b>
061     * <li>RXG-10: Substitution Status (ID) <b>optional </b>
062     * <li>RXG-11: Deliver-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 repeating</b>
065     * <li>RXG-14: Give Per (Time Unit) (ST) <b>optional </b>
066     * <li>RXG-15: Give Rate Amount (CE) <b>optional </b>
067     * <li>RXG-16: Give Rate Units (CE) <b>optional </b>
068 * </ul>
069 */
070@SuppressWarnings("unused")
071public class RXG extends AbstractSegment {
072
073    /** 
074     * Creates a new RXG segment
075     */
076    public RXG(Group parent, ModelClassFactory factory) {
077       super(parent, factory);
078       init(factory);
079    }
080
081    private void init(ModelClassFactory factory) {
082       try {
083                                  this.add(NM.class, true, 1, 4, new Object[]{ getMessage() }, "Give Sub-ID Counter");
084                                  this.add(NM.class, false, 1, 4, new Object[]{ getMessage() }, "Dispense Sub-ID Counter");
085                                  this.add(TQ.class, false, 0, 200, new Object[]{ getMessage() }, "Quantity / timing");
086                                  this.add(CE.class, true, 1, 100, new Object[]{ getMessage() }, "Give Code");
087                                  this.add(NM.class, true, 1, 20, new Object[]{ getMessage() }, "Give Amount - Minimum");
088                                  this.add(NM.class, false, 1, 20, new Object[]{ getMessage() }, "Give Amount - Maximum");
089                                  this.add(CE.class, true, 1, 60, new Object[]{ getMessage() }, "Give Units");
090                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Give Dosage Form");
091                                  this.add(ST.class, false, 1, 200, new Object[]{ getMessage() }, "Administration Notes");
092                                              this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(167) }, "Substitution Status");
093                                  this.add(CM_LA1.class, false, 1, 12, new Object[]{ getMessage() }, "Deliver-to location");
094                                              this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(0) }, "Needs Human Review");
095                                  this.add(CE.class, false, 0, 200, new Object[]{ getMessage() }, "Pharmacy Special Administration Instructions");
096                                  this.add(ST.class, false, 1, 20, new Object[]{ getMessage() }, "Give Per (Time Unit)");
097                                  this.add(CE.class, false, 1, 6, new Object[]{ getMessage() }, "Give Rate Amount");
098                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Give Rate Units");
099       } catch(HL7Exception e) {
100          log.error("Unexpected error creating RXG - this is probably a bug in the source code generator.", e);
101       }
102    }
103
104
105
106    /**
107     * Returns
108     * RXG-1: "Give Sub-ID Counter" - creates it if necessary
109     */
110    public NM getGiveSubIDCounter() { 
111                NM retVal = this.getTypedField(1, 0);
112                return retVal;
113    }
114    
115    /**
116     * Returns
117     * RXG-1: "Give Sub-ID Counter" - creates it if necessary
118     */
119    public NM getRxg1_GiveSubIDCounter() { 
120                NM retVal = this.getTypedField(1, 0);
121                return retVal;
122    }
123
124
125
126    /**
127     * Returns
128     * RXG-2: "Dispense Sub-ID Counter" - creates it if necessary
129     */
130    public NM getDispenseSubIDCounter() { 
131                NM retVal = this.getTypedField(2, 0);
132                return retVal;
133    }
134    
135    /**
136     * Returns
137     * RXG-2: "Dispense Sub-ID Counter" - creates it if necessary
138     */
139    public NM getRxg2_DispenseSubIDCounter() { 
140                NM retVal = this.getTypedField(2, 0);
141                return retVal;
142    }
143
144
145    /**
146     * Returns all repetitions of Quantity / timing (RXG-3).
147     */
148    public TQ[] getQuantityTiming() {
149        TQ[] retVal = this.getTypedField(3, new TQ[0]);
150        return retVal;
151    }
152
153
154    /**
155     * Returns all repetitions of Quantity / timing (RXG-3).
156     */
157    public TQ[] getRxg3_QuantityTiming() {
158        TQ[] retVal = this.getTypedField(3, new TQ[0]);
159        return retVal;
160    }
161
162
163    /**
164     * Returns a count of the current number of repetitions of Quantity / timing (RXG-3).
165     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
166     * it will return zero.
167     */
168    public int getQuantityTimingReps() {
169        return this.getReps(3);
170    }
171
172
173    /**
174     * Returns a specific repetition of
175     * RXG-3: "Quantity / timing" - creates it if necessary
176     *
177     * @param rep The repetition index (0-indexed)
178     */
179    public TQ getQuantityTiming(int rep) { 
180                TQ retVal = this.getTypedField(3, rep);
181                return retVal;
182    }
183
184    /**
185     * Returns a specific repetition of
186     * RXG-3: "Quantity / timing" - creates it if necessary
187     *
188     * @param rep The repetition index (0-indexed)
189     */
190    public TQ getRxg3_QuantityTiming(int rep) { 
191                TQ retVal = this.getTypedField(3, rep);
192                return retVal;
193    }
194
195    /**
196     * Returns a count of the current number of repetitions of Quantity / timing (RXG-3).
197     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
198     * it will return zero.
199     */
200    public int getRxg3_QuantityTimingReps() {
201        return this.getReps(3);
202    }
203
204
205    /**
206     * Inserts a repetition of
207     * RXG-3: "Quantity / timing" at a specific index
208     *
209     * @param rep The repetition index (0-indexed)
210     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
211     */
212    public TQ insertQuantityTiming(int rep) throws HL7Exception { 
213        return (TQ) super.insertRepetition(3, rep);
214    }
215
216
217    /**
218     * Inserts a repetition of
219     * RXG-3: "Quantity / timing" at a specific index
220     *
221     * @param rep The repetition index (0-indexed)
222     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
223     */
224    public TQ insertRxg3_QuantityTiming(int rep) throws HL7Exception { 
225        return (TQ) super.insertRepetition(3, rep);
226    }
227
228
229    /**
230     * Removes a repetition of
231     * RXG-3: "Quantity / timing" at a specific index
232     *
233     * @param rep The repetition index (0-indexed)
234     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
235     */
236    public TQ removeQuantityTiming(int rep) throws HL7Exception { 
237        return (TQ) super.removeRepetition(3, rep);
238    }
239
240
241    /**
242     * Removes a repetition of
243     * RXG-3: "Quantity / timing" at a specific index
244     *
245     * @param rep The repetition index (0-indexed)
246     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
247     */
248    public TQ removeRxg3_QuantityTiming(int rep) throws HL7Exception { 
249        return (TQ) super.removeRepetition(3, rep);
250    }
251
252
253
254
255    /**
256     * Returns
257     * RXG-4: "Give Code" - creates it if necessary
258     */
259    public CE getGiveCode() { 
260                CE retVal = this.getTypedField(4, 0);
261                return retVal;
262    }
263    
264    /**
265     * Returns
266     * RXG-4: "Give Code" - creates it if necessary
267     */
268    public CE getRxg4_GiveCode() { 
269                CE retVal = this.getTypedField(4, 0);
270                return retVal;
271    }
272
273
274
275    /**
276     * Returns
277     * RXG-5: "Give Amount - Minimum" - creates it if necessary
278     */
279    public NM getGiveAmountMinimum() { 
280                NM retVal = this.getTypedField(5, 0);
281                return retVal;
282    }
283    
284    /**
285     * Returns
286     * RXG-5: "Give Amount - Minimum" - creates it if necessary
287     */
288    public NM getRxg5_GiveAmountMinimum() { 
289                NM retVal = this.getTypedField(5, 0);
290                return retVal;
291    }
292
293
294
295    /**
296     * Returns
297     * RXG-6: "Give Amount - Maximum" - creates it if necessary
298     */
299    public NM getGiveAmountMaximum() { 
300                NM retVal = this.getTypedField(6, 0);
301                return retVal;
302    }
303    
304    /**
305     * Returns
306     * RXG-6: "Give Amount - Maximum" - creates it if necessary
307     */
308    public NM getRxg6_GiveAmountMaximum() { 
309                NM retVal = this.getTypedField(6, 0);
310                return retVal;
311    }
312
313
314
315    /**
316     * Returns
317     * RXG-7: "Give Units" - creates it if necessary
318     */
319    public CE getGiveUnits() { 
320                CE retVal = this.getTypedField(7, 0);
321                return retVal;
322    }
323    
324    /**
325     * Returns
326     * RXG-7: "Give Units" - creates it if necessary
327     */
328    public CE getRxg7_GiveUnits() { 
329                CE retVal = this.getTypedField(7, 0);
330                return retVal;
331    }
332
333
334
335    /**
336     * Returns
337     * RXG-8: "Give Dosage Form" - creates it if necessary
338     */
339    public CE getGiveDosageForm() { 
340                CE retVal = this.getTypedField(8, 0);
341                return retVal;
342    }
343    
344    /**
345     * Returns
346     * RXG-8: "Give Dosage Form" - creates it if necessary
347     */
348    public CE getRxg8_GiveDosageForm() { 
349                CE retVal = this.getTypedField(8, 0);
350                return retVal;
351    }
352
353
354
355    /**
356     * Returns
357     * RXG-9: "Administration Notes" - creates it if necessary
358     */
359    public ST getAdministrationNotes() { 
360                ST retVal = this.getTypedField(9, 0);
361                return retVal;
362    }
363    
364    /**
365     * Returns
366     * RXG-9: "Administration Notes" - creates it if necessary
367     */
368    public ST getRxg9_AdministrationNotes() { 
369                ST retVal = this.getTypedField(9, 0);
370                return retVal;
371    }
372
373
374
375    /**
376     * Returns
377     * RXG-10: "Substitution Status" - creates it if necessary
378     */
379    public ID getSubstitutionStatus() { 
380                ID retVal = this.getTypedField(10, 0);
381                return retVal;
382    }
383    
384    /**
385     * Returns
386     * RXG-10: "Substitution Status" - creates it if necessary
387     */
388    public ID getRxg10_SubstitutionStatus() { 
389                ID retVal = this.getTypedField(10, 0);
390                return retVal;
391    }
392
393
394
395    /**
396     * Returns
397     * RXG-11: "Deliver-to location" - creates it if necessary
398     */
399    public CM_LA1 getDeliverToLocation() { 
400                CM_LA1 retVal = this.getTypedField(11, 0);
401                return retVal;
402    }
403    
404    /**
405     * Returns
406     * RXG-11: "Deliver-to location" - creates it if necessary
407     */
408    public CM_LA1 getRxg11_DeliverToLocation() { 
409                CM_LA1 retVal = this.getTypedField(11, 0);
410                return retVal;
411    }
412
413
414
415    /**
416     * Returns
417     * RXG-12: "Needs Human Review" - creates it if necessary
418     */
419    public ID getNeedsHumanReview() { 
420                ID retVal = this.getTypedField(12, 0);
421                return retVal;
422    }
423    
424    /**
425     * Returns
426     * RXG-12: "Needs Human Review" - creates it if necessary
427     */
428    public ID getRxg12_NeedsHumanReview() { 
429                ID retVal = this.getTypedField(12, 0);
430                return retVal;
431    }
432
433
434    /**
435     * Returns all repetitions of Pharmacy Special Administration Instructions (RXG-13).
436     */
437    public CE[] getPharmacySpecialAdministrationInstructions() {
438        CE[] retVal = this.getTypedField(13, new CE[0]);
439        return retVal;
440    }
441
442
443    /**
444     * Returns all repetitions of Pharmacy Special Administration Instructions (RXG-13).
445     */
446    public CE[] getRxg13_PharmacySpecialAdministrationInstructions() {
447        CE[] retVal = this.getTypedField(13, new CE[0]);
448        return retVal;
449    }
450
451
452    /**
453     * Returns a count of the current number of repetitions of Pharmacy Special Administration Instructions (RXG-13).
454     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
455     * it will return zero.
456     */
457    public int getPharmacySpecialAdministrationInstructionsReps() {
458        return this.getReps(13);
459    }
460
461
462    /**
463     * Returns a specific repetition of
464     * RXG-13: "Pharmacy Special Administration Instructions" - creates it if necessary
465     *
466     * @param rep The repetition index (0-indexed)
467     */
468    public CE getPharmacySpecialAdministrationInstructions(int rep) { 
469                CE retVal = this.getTypedField(13, rep);
470                return retVal;
471    }
472
473    /**
474     * Returns a specific repetition of
475     * RXG-13: "Pharmacy Special Administration Instructions" - creates it if necessary
476     *
477     * @param rep The repetition index (0-indexed)
478     */
479    public CE getRxg13_PharmacySpecialAdministrationInstructions(int rep) { 
480                CE retVal = this.getTypedField(13, rep);
481                return retVal;
482    }
483
484    /**
485     * Returns a count of the current number of repetitions of Pharmacy Special Administration Instructions (RXG-13).
486     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
487     * it will return zero.
488     */
489    public int getRxg13_PharmacySpecialAdministrationInstructionsReps() {
490        return this.getReps(13);
491    }
492
493
494    /**
495     * Inserts a repetition of
496     * RXG-13: "Pharmacy Special Administration Instructions" at a specific index
497     *
498     * @param rep The repetition index (0-indexed)
499     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
500     */
501    public CE insertPharmacySpecialAdministrationInstructions(int rep) throws HL7Exception { 
502        return (CE) super.insertRepetition(13, rep);
503    }
504
505
506    /**
507     * Inserts a repetition of
508     * RXG-13: "Pharmacy Special Administration Instructions" at a specific index
509     *
510     * @param rep The repetition index (0-indexed)
511     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
512     */
513    public CE insertRxg13_PharmacySpecialAdministrationInstructions(int rep) throws HL7Exception { 
514        return (CE) super.insertRepetition(13, rep);
515    }
516
517
518    /**
519     * Removes a repetition of
520     * RXG-13: "Pharmacy Special Administration Instructions" at a specific index
521     *
522     * @param rep The repetition index (0-indexed)
523     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
524     */
525    public CE removePharmacySpecialAdministrationInstructions(int rep) throws HL7Exception { 
526        return (CE) super.removeRepetition(13, rep);
527    }
528
529
530    /**
531     * Removes a repetition of
532     * RXG-13: "Pharmacy Special Administration Instructions" at a specific index
533     *
534     * @param rep The repetition index (0-indexed)
535     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
536     */
537    public CE removeRxg13_PharmacySpecialAdministrationInstructions(int rep) throws HL7Exception { 
538        return (CE) super.removeRepetition(13, rep);
539    }
540
541
542
543
544    /**
545     * Returns
546     * RXG-14: "Give Per (Time Unit)" - creates it if necessary
547     */
548    public ST getGivePerTimeUnit() { 
549                ST retVal = this.getTypedField(14, 0);
550                return retVal;
551    }
552    
553    /**
554     * Returns
555     * RXG-14: "Give Per (Time Unit)" - creates it if necessary
556     */
557    public ST getRxg14_GivePerTimeUnit() { 
558                ST retVal = this.getTypedField(14, 0);
559                return retVal;
560    }
561
562
563
564    /**
565     * Returns
566     * RXG-15: "Give Rate Amount" - creates it if necessary
567     */
568    public CE getGiveRateAmount() { 
569                CE retVal = this.getTypedField(15, 0);
570                return retVal;
571    }
572    
573    /**
574     * Returns
575     * RXG-15: "Give Rate Amount" - creates it if necessary
576     */
577    public CE getRxg15_GiveRateAmount() { 
578                CE retVal = this.getTypedField(15, 0);
579                return retVal;
580    }
581
582
583
584    /**
585     * Returns
586     * RXG-16: "Give Rate Units" - creates it if necessary
587     */
588    public CE getGiveRateUnits() { 
589                CE retVal = this.getTypedField(16, 0);
590                return retVal;
591    }
592    
593    /**
594     * Returns
595     * RXG-16: "Give Rate Units" - creates it if necessary
596     */
597    public CE getRxg16_GiveRateUnits() { 
598                CE retVal = this.getTypedField(16, 0);
599                return retVal;
600    }
601
602
603
604
605
606    /** {@inheritDoc} */   
607    protected Type createNewTypeWithoutReflection(int field) {
608       switch (field) {
609          case 0: return new NM(getMessage());
610          case 1: return new NM(getMessage());
611          case 2: return new TQ(getMessage());
612          case 3: return new CE(getMessage());
613          case 4: return new NM(getMessage());
614          case 5: return new NM(getMessage());
615          case 6: return new CE(getMessage());
616          case 7: return new CE(getMessage());
617          case 8: return new ST(getMessage());
618          case 9: return new ID(getMessage(), new Integer( 167 ));
619          case 10: return new CM_LA1(getMessage());
620          case 11: return new ID(getMessage(), new Integer( 0 ));
621          case 12: return new CE(getMessage());
622          case 13: return new ST(getMessage());
623          case 14: return new CE(getMessage());
624          case 15: return new CE(getMessage());
625          default: return null;
626       }
627   }
628
629
630}
631