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    
008    package ca.uhn.hl7v2.model.v231.segment;
009    
010    // import ca.uhn.hl7v2.model.v231.group.*;
011    import ca.uhn.hl7v2.model.v231.datatype.*;
012    import ca.uhn.log.HapiLogFactory;
013    import ca.uhn.hl7v2.HL7Exception;
014    import ca.uhn.hl7v2.parser.ModelClassFactory;
015    import ca.uhn.hl7v2.parser.DefaultModelClassFactory;
016    import ca.uhn.hl7v2.model.AbstractMessage;
017    import ca.uhn.hl7v2.model.Group;
018    import ca.uhn.hl7v2.model.Type;
019    import ca.uhn.hl7v2.model.AbstractSegment;
020    import ca.uhn.hl7v2.model.Varies;
021    
022    /**
023     *<p>Represents an HL7 RXD message segment (RXD - pharmacy/treatment dispense segment). 
024     * This segment has the following fields:</p>
025     * <ul>
026         * <li>RXD-1: Dispense Sub-ID Counter (NM) <b> </b>
027         * <li>RXD-2: Dispense/Give Code (CE) <b> </b>
028         * <li>RXD-3: Date/Time Dispensed (TS) <b> </b>
029         * <li>RXD-4: Actual Dispense Amount (NM) <b> </b>
030         * <li>RXD-5: Actual Dispense Units (CE) <b>optional </b>
031         * <li>RXD-6: Actual Dosage Form (CE) <b>optional </b>
032         * <li>RXD-7: Prescription Number (ST) <b> </b>
033         * <li>RXD-8: Number of Refills Remaining (NM) <b>optional </b>
034         * <li>RXD-9: Dispense Notes (ST) <b>optional repeating</b>
035         * <li>RXD-10: Dispensing Provider (XCN) <b>optional repeating</b>
036         * <li>RXD-11: Substitution Status (ID) <b>optional </b>
037         * <li>RXD-12: Total Daily Dose (CQ) <b>optional </b>
038         * <li>RXD-13: Dispense-To Location (LA2) <b>optional </b>
039         * <li>RXD-14: Needs Human Review (ID) <b>optional </b>
040         * <li>RXD-15: Pharmacy/Treatment Supplier’s Special Dispensing Instructions (CE) <b>optional repeating</b>
041         * <li>RXD-16: Actual Strength (NM) <b>optional </b>
042         * <li>RXD-17: Actual Strength Unit (CE) <b>optional </b>
043         * <li>RXD-18: Substance Lot Number (ST) <b>optional repeating</b>
044         * <li>RXD-19: Substance Expiration Date (TS) <b>optional repeating</b>
045         * <li>RXD-20: Substance Manufacturer Name (CE) <b>optional repeating</b>
046         * <li>RXD-21: Indication (CE) <b>optional repeating</b>
047         * <li>RXD-22: Dispense Package Size (NM) <b>optional </b>
048         * <li>RXD-23: Dispense Package Size Unit (CE) <b>optional </b>
049         * <li>RXD-24: Dispense Package Method (ID) <b>optional </b>
050     * </ul>
051     */
052    public class RXD extends AbstractSegment {
053    
054        /** 
055         * Creates a new RXD segment
056         */
057        public RXD(Group parent, ModelClassFactory factory) {
058           super(parent, factory);
059           init(factory);
060        }
061    
062        private void init(ModelClassFactory factory) {
063           try {
064                                      this.add(NM.class, true, 1, 4, new Object[]{ getMessage(), new Integer(0) }, "Dispense Sub-ID Counter");
065                                      this.add(CE.class, true, 1, 100, new Object[]{ getMessage(), new Integer(292) }, "Dispense/Give Code");
066                                      this.add(TS.class, true, 1, 26, new Object[]{ getMessage(), new Integer(0) }, "Date/Time Dispensed");
067                                      this.add(NM.class, true, 1, 20, new Object[]{ getMessage(), new Integer(0) }, "Actual Dispense Amount");
068                                      this.add(CE.class, false, 1, 60, new Object[]{ getMessage(), new Integer(0) }, "Actual Dispense Units");
069                                      this.add(CE.class, false, 1, 60, new Object[]{ getMessage(), new Integer(0) }, "Actual Dosage Form");
070                                      this.add(ST.class, true, 1, 20, new Object[]{ getMessage(), new Integer(0) }, "Prescription Number");
071                                      this.add(NM.class, false, 1, 20, new Object[]{ getMessage(), new Integer(0) }, "Number of Refills Remaining");
072                                      this.add(ST.class, false, 0, 200, new Object[]{ getMessage(), new Integer(0) }, "Dispense Notes");
073                                      this.add(XCN.class, false, 0, 200, new Object[]{ getMessage(), new Integer(0) }, "Dispensing Provider");
074                                      this.add(ID.class, false, 1, 1, new Object[]{ getMessage() }, "Substitution Status");
075                                      this.add(CQ.class, false, 1, 10, new Object[]{ getMessage(), new Integer(0) }, "Total Daily Dose");
076                                      this.add(LA2.class, false, 1, 200, new Object[]{ getMessage(), new Integer(0) }, "Dispense-To Location");
077                                      this.add(ID.class, false, 1, 1, new Object[]{ getMessage() }, "Needs Human Review");
078                                      this.add(CE.class, false, 0, 200, new Object[]{ getMessage(), new Integer(0) }, "Pharmacy/Treatment Supplier’s Special Dispensing Instructions");
079                                      this.add(NM.class, false, 1, 20, new Object[]{ getMessage(), new Integer(0) }, "Actual Strength");
080                                      this.add(CE.class, false, 1, 60, new Object[]{ getMessage(), new Integer(0) }, "Actual Strength Unit");
081                                      this.add(ST.class, false, 0, 20, new Object[]{ getMessage(), new Integer(0) }, "Substance Lot Number");
082                                      this.add(TS.class, false, 0, 26, new Object[]{ getMessage(), new Integer(0) }, "Substance Expiration Date");
083                                      this.add(CE.class, false, 0, 60, new Object[]{ getMessage(), new Integer(227) }, "Substance Manufacturer Name");
084                                      this.add(CE.class, false, 0, 200, new Object[]{ getMessage(), new Integer(0) }, "Indication");
085                                      this.add(NM.class, false, 1, 20, new Object[]{ getMessage(), new Integer(0) }, "Dispense Package Size");
086                                      this.add(CE.class, false, 1, 60, new Object[]{ getMessage(), new Integer(0) }, "Dispense Package Size Unit");
087                                      this.add(ID.class, false, 1, 2, new Object[]{ getMessage() }, "Dispense Package Method");
088           } catch(HL7Exception e) {
089              HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected error creating RXD - this is probably a bug in the source code generator.", e);
090           }
091        }
092    
093    
094    
095        /**
096         * Returns
097         * RXD-1: "Dispense Sub-ID Counter" - creates it if necessary
098         */
099        public NM getDispenseSubIDCounter() { 
100            NM ret = null;
101            try {
102                Type t = this.getField(1, 0);
103                ret = (NM)t;
104            } catch (ClassCastException cce) {
105                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
106                throw new RuntimeException(cce);
107            } catch (HL7Exception he) {
108                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
109                throw new RuntimeException(he);
110            }
111            return ret;
112        }
113    
114    
115        /**
116         * Returns
117         * RXD-1: "Dispense Sub-ID Counter" - creates it if necessary
118         */
119        public NM getRxd1_DispenseSubIDCounter() { 
120            NM ret = null;
121            try {
122                Type t = this.getField(1, 0);
123                ret = (NM)t;
124            } catch (ClassCastException cce) {
125                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
126                throw new RuntimeException(cce);
127            } catch (HL7Exception he) {
128                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
129                throw new RuntimeException(he);
130            }
131            return ret;
132        }
133    
134    
135    
136        /**
137         * Returns
138         * RXD-2: "Dispense/Give Code" - creates it if necessary
139         */
140        public CE getDispenseGiveCode() { 
141            CE ret = null;
142            try {
143                Type t = this.getField(2, 0);
144                ret = (CE)t;
145            } catch (ClassCastException cce) {
146                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
147                throw new RuntimeException(cce);
148            } catch (HL7Exception he) {
149                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
150                throw new RuntimeException(he);
151            }
152            return ret;
153        }
154    
155    
156        /**
157         * Returns
158         * RXD-2: "Dispense/Give Code" - creates it if necessary
159         */
160        public CE getRxd2_DispenseGiveCode() { 
161            CE ret = null;
162            try {
163                Type t = this.getField(2, 0);
164                ret = (CE)t;
165            } catch (ClassCastException cce) {
166                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
167                throw new RuntimeException(cce);
168            } catch (HL7Exception he) {
169                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
170                throw new RuntimeException(he);
171            }
172            return ret;
173        }
174    
175    
176    
177        /**
178         * Returns
179         * RXD-3: "Date/Time Dispensed" - creates it if necessary
180         */
181        public TS getDateTimeDispensed() { 
182            TS ret = null;
183            try {
184                Type t = this.getField(3, 0);
185                ret = (TS)t;
186            } catch (ClassCastException cce) {
187                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
188                throw new RuntimeException(cce);
189            } catch (HL7Exception he) {
190                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
191                throw new RuntimeException(he);
192            }
193            return ret;
194        }
195    
196    
197        /**
198         * Returns
199         * RXD-3: "Date/Time Dispensed" - creates it if necessary
200         */
201        public TS getRxd3_DateTimeDispensed() { 
202            TS ret = null;
203            try {
204                Type t = this.getField(3, 0);
205                ret = (TS)t;
206            } catch (ClassCastException cce) {
207                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
208                throw new RuntimeException(cce);
209            } catch (HL7Exception he) {
210                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
211                throw new RuntimeException(he);
212            }
213            return ret;
214        }
215    
216    
217    
218        /**
219         * Returns
220         * RXD-4: "Actual Dispense Amount" - creates it if necessary
221         */
222        public NM getActualDispenseAmount() { 
223            NM ret = null;
224            try {
225                Type t = this.getField(4, 0);
226                ret = (NM)t;
227            } catch (ClassCastException cce) {
228                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
229                throw new RuntimeException(cce);
230            } catch (HL7Exception he) {
231                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
232                throw new RuntimeException(he);
233            }
234            return ret;
235        }
236    
237    
238        /**
239         * Returns
240         * RXD-4: "Actual Dispense Amount" - creates it if necessary
241         */
242        public NM getRxd4_ActualDispenseAmount() { 
243            NM ret = null;
244            try {
245                Type t = this.getField(4, 0);
246                ret = (NM)t;
247            } catch (ClassCastException cce) {
248                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
249                throw new RuntimeException(cce);
250            } catch (HL7Exception he) {
251                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
252                throw new RuntimeException(he);
253            }
254            return ret;
255        }
256    
257    
258    
259        /**
260         * Returns
261         * RXD-5: "Actual Dispense Units" - creates it if necessary
262         */
263        public CE getActualDispenseUnits() { 
264            CE ret = null;
265            try {
266                Type t = this.getField(5, 0);
267                ret = (CE)t;
268            } catch (ClassCastException cce) {
269                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
270                throw new RuntimeException(cce);
271            } catch (HL7Exception he) {
272                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
273                throw new RuntimeException(he);
274            }
275            return ret;
276        }
277    
278    
279        /**
280         * Returns
281         * RXD-5: "Actual Dispense Units" - creates it if necessary
282         */
283        public CE getRxd5_ActualDispenseUnits() { 
284            CE ret = null;
285            try {
286                Type t = this.getField(5, 0);
287                ret = (CE)t;
288            } catch (ClassCastException cce) {
289                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
290                throw new RuntimeException(cce);
291            } catch (HL7Exception he) {
292                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
293                throw new RuntimeException(he);
294            }
295            return ret;
296        }
297    
298    
299    
300        /**
301         * Returns
302         * RXD-6: "Actual Dosage Form" - creates it if necessary
303         */
304        public CE getActualDosageForm() { 
305            CE ret = null;
306            try {
307                Type t = this.getField(6, 0);
308                ret = (CE)t;
309            } catch (ClassCastException cce) {
310                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
311                throw new RuntimeException(cce);
312            } catch (HL7Exception he) {
313                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
314                throw new RuntimeException(he);
315            }
316            return ret;
317        }
318    
319    
320        /**
321         * Returns
322         * RXD-6: "Actual Dosage Form" - creates it if necessary
323         */
324        public CE getRxd6_ActualDosageForm() { 
325            CE ret = null;
326            try {
327                Type t = this.getField(6, 0);
328                ret = (CE)t;
329            } catch (ClassCastException cce) {
330                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
331                throw new RuntimeException(cce);
332            } catch (HL7Exception he) {
333                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
334                throw new RuntimeException(he);
335            }
336            return ret;
337        }
338    
339    
340    
341        /**
342         * Returns
343         * RXD-7: "Prescription Number" - creates it if necessary
344         */
345        public ST getPrescriptionNumber() { 
346            ST ret = null;
347            try {
348                Type t = this.getField(7, 0);
349                ret = (ST)t;
350            } catch (ClassCastException cce) {
351                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
352                throw new RuntimeException(cce);
353            } catch (HL7Exception he) {
354                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
355                throw new RuntimeException(he);
356            }
357            return ret;
358        }
359    
360    
361        /**
362         * Returns
363         * RXD-7: "Prescription Number" - creates it if necessary
364         */
365        public ST getRxd7_PrescriptionNumber() { 
366            ST ret = null;
367            try {
368                Type t = this.getField(7, 0);
369                ret = (ST)t;
370            } catch (ClassCastException cce) {
371                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
372                throw new RuntimeException(cce);
373            } catch (HL7Exception he) {
374                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
375                throw new RuntimeException(he);
376            }
377            return ret;
378        }
379    
380    
381    
382        /**
383         * Returns
384         * RXD-8: "Number of Refills Remaining" - creates it if necessary
385         */
386        public NM getNumberOfRefillsRemaining() { 
387            NM ret = null;
388            try {
389                Type t = this.getField(8, 0);
390                ret = (NM)t;
391            } catch (ClassCastException cce) {
392                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
393                throw new RuntimeException(cce);
394            } catch (HL7Exception he) {
395                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
396                throw new RuntimeException(he);
397            }
398            return ret;
399        }
400    
401    
402        /**
403         * Returns
404         * RXD-8: "Number of Refills Remaining" - creates it if necessary
405         */
406        public NM getRxd8_NumberOfRefillsRemaining() { 
407            NM ret = null;
408            try {
409                Type t = this.getField(8, 0);
410                ret = (NM)t;
411            } catch (ClassCastException cce) {
412                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
413                throw new RuntimeException(cce);
414            } catch (HL7Exception he) {
415                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
416                throw new RuntimeException(he);
417            }
418            return ret;
419        }
420    
421    
422        /**
423         * Returns all repetitions of Dispense Notes (RXD-9).
424         */
425        public ST[] getDispenseNotes() {
426            ST[] ret = null;
427            try {
428                Type[] t = this.getField(9);  
429                ret = new ST[t.length];
430                for (int i = 0; i < ret.length; i++) {
431                    ret[i] = (ST)t[i];
432                }
433            } catch (ClassCastException cce) {
434                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
435                throw new RuntimeException(cce);
436            } catch (HL7Exception he) {
437                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
438                throw new RuntimeException(he);
439            }
440            return ret;
441        }
442    
443    
444        /**
445         * Returns a count of the current number of repetitions of Dispense Notes (RXD-9).
446         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
447         * it will return zero.
448         */
449        public int getDispenseNotesReps() {
450            ST[] ret = null;
451            try {
452                Type[] t = this.getField(9);
453                return t.length;  
454            } catch (ClassCastException cce) {
455                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
456                throw new RuntimeException(cce);
457            } catch (HL7Exception he) {
458                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
459                throw new RuntimeException(he);
460            }
461        }
462    
463    
464        /**
465         * Returns a specific repetition of
466         * RXD-9: "Dispense Notes" - creates it if necessary
467         *
468         * @param rep The repetition index (0-indexed)
469         */
470        public ST getDispenseNotes(int rep) { 
471            ST ret = null;
472            try {
473                Type t = this.getField(9, rep);
474                ret = (ST)t;
475            } catch (ClassCastException cce) {
476                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
477                throw new RuntimeException(cce);
478            } catch (HL7Exception he) {
479                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
480                throw new RuntimeException(he);
481            }
482            return ret;
483        }
484    
485        /**
486         * Returns a specific repetition of
487         * RXD-9: "Dispense Notes" - creates it if necessary
488         *
489         * @param rep The repetition index (0-indexed)
490         */
491        public ST getRxd9_DispenseNotes(int rep) { 
492            ST ret = null;
493            try {
494                Type t = this.getField(9, rep);
495                ret = (ST)t;
496            } catch (ClassCastException cce) {
497                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
498                throw new RuntimeException(cce);
499            } catch (HL7Exception he) {
500                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
501                throw new RuntimeException(he);
502            }
503            return ret;
504        }
505    
506    
507        /**
508         * Returns a count of the current number of repetitions of Dispense Notes (RXD-9).
509         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
510         * it will return zero.
511         */
512        public int getRxd9_DispenseNotesReps() {
513            ST[] ret = null;
514            try {
515                Type[] t = this.getField(9);
516                return t.length;  
517            } catch (ClassCastException cce) {
518                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
519                throw new RuntimeException(cce);
520            } catch (HL7Exception he) {
521                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
522                throw new RuntimeException(he);
523            }
524        }
525    
526    
527    
528        /**
529         * Inserts a repetition of
530         * RXD-9: "Dispense Notes" at a specific index
531         *
532         * @param rep The repetition index (0-indexed)
533         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
534         */
535        public ST insertDispenseNotes(int rep) throws HL7Exception { 
536            return (ST) super.insertRepetition(9, rep);
537        }
538    
539    
540    
541        /**
542         * Inserts a repetition of
543         * RXD-9: "Dispense Notes" at a specific index
544         *
545         * @param rep The repetition index (0-indexed)
546         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
547         */
548        public ST insertRxd9_DispenseNotes(int rep) throws HL7Exception { 
549            return (ST) super.insertRepetition(9, rep);
550        }
551    
552    
553        /**
554         * Removes a repetition of
555         * RXD-9: "Dispense Notes" at a specific index
556         *
557         * @param rep The repetition index (0-indexed)
558         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
559         */
560        public ST removeDispenseNotes(int rep) throws HL7Exception { 
561            return (ST) super.removeRepetition(9, rep);
562        }
563    
564    
565        /**
566         * Removes a repetition of
567         * RXD-9: "Dispense Notes" at a specific index
568         *
569         * @param rep The repetition index (0-indexed)
570         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
571         */
572        public ST removeRxd9_DispenseNotes(int rep) throws HL7Exception { 
573            return (ST) super.removeRepetition(9, rep);
574        }
575    
576    
577    
578        /**
579         * Returns all repetitions of Dispensing Provider (RXD-10).
580         */
581        public XCN[] getDispensingProvider() {
582            XCN[] ret = null;
583            try {
584                Type[] t = this.getField(10);  
585                ret = new XCN[t.length];
586                for (int i = 0; i < ret.length; i++) {
587                    ret[i] = (XCN)t[i];
588                }
589            } catch (ClassCastException cce) {
590                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
591                throw new RuntimeException(cce);
592            } catch (HL7Exception he) {
593                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
594                throw new RuntimeException(he);
595            }
596            return ret;
597        }
598    
599    
600        /**
601         * Returns a count of the current number of repetitions of Dispensing Provider (RXD-10).
602         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
603         * it will return zero.
604         */
605        public int getDispensingProviderReps() {
606            XCN[] ret = null;
607            try {
608                Type[] t = this.getField(10);
609                return t.length;  
610            } catch (ClassCastException cce) {
611                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
612                throw new RuntimeException(cce);
613            } catch (HL7Exception he) {
614                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
615                throw new RuntimeException(he);
616            }
617        }
618    
619    
620        /**
621         * Returns a specific repetition of
622         * RXD-10: "Dispensing Provider" - creates it if necessary
623         *
624         * @param rep The repetition index (0-indexed)
625         */
626        public XCN getDispensingProvider(int rep) { 
627            XCN ret = null;
628            try {
629                Type t = this.getField(10, rep);
630                ret = (XCN)t;
631            } catch (ClassCastException cce) {
632                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
633                throw new RuntimeException(cce);
634            } catch (HL7Exception he) {
635                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
636                throw new RuntimeException(he);
637            }
638            return ret;
639        }
640    
641        /**
642         * Returns a specific repetition of
643         * RXD-10: "Dispensing Provider" - creates it if necessary
644         *
645         * @param rep The repetition index (0-indexed)
646         */
647        public XCN getRxd10_DispensingProvider(int rep) { 
648            XCN ret = null;
649            try {
650                Type t = this.getField(10, rep);
651                ret = (XCN)t;
652            } catch (ClassCastException cce) {
653                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
654                throw new RuntimeException(cce);
655            } catch (HL7Exception he) {
656                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
657                throw new RuntimeException(he);
658            }
659            return ret;
660        }
661    
662    
663        /**
664         * Returns a count of the current number of repetitions of Dispensing Provider (RXD-10).
665         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
666         * it will return zero.
667         */
668        public int getRxd10_DispensingProviderReps() {
669            XCN[] ret = null;
670            try {
671                Type[] t = this.getField(10);
672                return t.length;  
673            } catch (ClassCastException cce) {
674                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
675                throw new RuntimeException(cce);
676            } catch (HL7Exception he) {
677                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
678                throw new RuntimeException(he);
679            }
680        }
681    
682    
683    
684        /**
685         * Inserts a repetition of
686         * RXD-10: "Dispensing Provider" at a specific index
687         *
688         * @param rep The repetition index (0-indexed)
689         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
690         */
691        public XCN insertDispensingProvider(int rep) throws HL7Exception { 
692            return (XCN) super.insertRepetition(10, rep);
693        }
694    
695    
696    
697        /**
698         * Inserts a repetition of
699         * RXD-10: "Dispensing Provider" at a specific index
700         *
701         * @param rep The repetition index (0-indexed)
702         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
703         */
704        public XCN insertRxd10_DispensingProvider(int rep) throws HL7Exception { 
705            return (XCN) super.insertRepetition(10, rep);
706        }
707    
708    
709        /**
710         * Removes a repetition of
711         * RXD-10: "Dispensing Provider" at a specific index
712         *
713         * @param rep The repetition index (0-indexed)
714         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
715         */
716        public XCN removeDispensingProvider(int rep) throws HL7Exception { 
717            return (XCN) super.removeRepetition(10, rep);
718        }
719    
720    
721        /**
722         * Removes a repetition of
723         * RXD-10: "Dispensing Provider" at a specific index
724         *
725         * @param rep The repetition index (0-indexed)
726         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
727         */
728        public XCN removeRxd10_DispensingProvider(int rep) throws HL7Exception { 
729            return (XCN) super.removeRepetition(10, rep);
730        }
731    
732    
733    
734    
735        /**
736         * Returns
737         * RXD-11: "Substitution Status" - creates it if necessary
738         */
739        public ID getSubstitutionStatus() { 
740            ID ret = null;
741            try {
742                Type t = this.getField(11, 0);
743                ret = (ID)t;
744            } catch (ClassCastException cce) {
745                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
746                throw new RuntimeException(cce);
747            } catch (HL7Exception he) {
748                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
749                throw new RuntimeException(he);
750            }
751            return ret;
752        }
753    
754    
755        /**
756         * Returns
757         * RXD-11: "Substitution Status" - creates it if necessary
758         */
759        public ID getRxd11_SubstitutionStatus() { 
760            ID ret = null;
761            try {
762                Type t = this.getField(11, 0);
763                ret = (ID)t;
764            } catch (ClassCastException cce) {
765                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
766                throw new RuntimeException(cce);
767            } catch (HL7Exception he) {
768                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
769                throw new RuntimeException(he);
770            }
771            return ret;
772        }
773    
774    
775    
776        /**
777         * Returns
778         * RXD-12: "Total Daily Dose" - creates it if necessary
779         */
780        public CQ getTotalDailyDose() { 
781            CQ ret = null;
782            try {
783                Type t = this.getField(12, 0);
784                ret = (CQ)t;
785            } catch (ClassCastException cce) {
786                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
787                throw new RuntimeException(cce);
788            } catch (HL7Exception he) {
789                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
790                throw new RuntimeException(he);
791            }
792            return ret;
793        }
794    
795    
796        /**
797         * Returns
798         * RXD-12: "Total Daily Dose" - creates it if necessary
799         */
800        public CQ getRxd12_TotalDailyDose() { 
801            CQ ret = null;
802            try {
803                Type t = this.getField(12, 0);
804                ret = (CQ)t;
805            } catch (ClassCastException cce) {
806                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
807                throw new RuntimeException(cce);
808            } catch (HL7Exception he) {
809                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
810                throw new RuntimeException(he);
811            }
812            return ret;
813        }
814    
815    
816    
817        /**
818         * Returns
819         * RXD-13: "Dispense-To Location" - creates it if necessary
820         */
821        public LA2 getDispenseToLocation() { 
822            LA2 ret = null;
823            try {
824                Type t = this.getField(13, 0);
825                ret = (LA2)t;
826            } catch (ClassCastException cce) {
827                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
828                throw new RuntimeException(cce);
829            } catch (HL7Exception he) {
830                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
831                throw new RuntimeException(he);
832            }
833            return ret;
834        }
835    
836    
837        /**
838         * Returns
839         * RXD-13: "Dispense-To Location" - creates it if necessary
840         */
841        public LA2 getRxd13_DispenseToLocation() { 
842            LA2 ret = null;
843            try {
844                Type t = this.getField(13, 0);
845                ret = (LA2)t;
846            } catch (ClassCastException cce) {
847                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
848                throw new RuntimeException(cce);
849            } catch (HL7Exception he) {
850                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
851                throw new RuntimeException(he);
852            }
853            return ret;
854        }
855    
856    
857    
858        /**
859         * Returns
860         * RXD-14: "Needs Human Review" - creates it if necessary
861         */
862        public ID getNeedsHumanReview() { 
863            ID ret = null;
864            try {
865                Type t = this.getField(14, 0);
866                ret = (ID)t;
867            } catch (ClassCastException cce) {
868                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
869                throw new RuntimeException(cce);
870            } catch (HL7Exception he) {
871                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
872                throw new RuntimeException(he);
873            }
874            return ret;
875        }
876    
877    
878        /**
879         * Returns
880         * RXD-14: "Needs Human Review" - creates it if necessary
881         */
882        public ID getRxd14_NeedsHumanReview() { 
883            ID ret = null;
884            try {
885                Type t = this.getField(14, 0);
886                ret = (ID)t;
887            } catch (ClassCastException cce) {
888                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
889                throw new RuntimeException(cce);
890            } catch (HL7Exception he) {
891                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
892                throw new RuntimeException(he);
893            }
894            return ret;
895        }
896    
897    
898        /**
899         * Returns all repetitions of Pharmacy/Treatment Supplier’s Special Dispensing Instructions (RXD-15).
900         */
901        public CE[] getPharmacyTreatmentSupplierSSpecialDispensingInstructions() {
902            CE[] ret = null;
903            try {
904                Type[] t = this.getField(15);  
905                ret = new CE[t.length];
906                for (int i = 0; i < ret.length; i++) {
907                    ret[i] = (CE)t[i];
908                }
909            } catch (ClassCastException cce) {
910                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
911                throw new RuntimeException(cce);
912            } catch (HL7Exception he) {
913                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
914                throw new RuntimeException(he);
915            }
916            return ret;
917        }
918    
919    
920        /**
921         * Returns a count of the current number of repetitions of Pharmacy/Treatment Supplier’s Special Dispensing Instructions (RXD-15).
922         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
923         * it will return zero.
924         */
925        public int getPharmacyTreatmentSupplierSSpecialDispensingInstructionsReps() {
926            CE[] ret = null;
927            try {
928                Type[] t = this.getField(15);
929                return t.length;  
930            } catch (ClassCastException cce) {
931                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
932                throw new RuntimeException(cce);
933            } catch (HL7Exception he) {
934                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
935                throw new RuntimeException(he);
936            }
937        }
938    
939    
940        /**
941         * Returns a specific repetition of
942         * RXD-15: "Pharmacy/Treatment Supplier’s Special Dispensing Instructions" - creates it if necessary
943         *
944         * @param rep The repetition index (0-indexed)
945         */
946        public CE getPharmacyTreatmentSupplierSSpecialDispensingInstructions(int rep) { 
947            CE ret = null;
948            try {
949                Type t = this.getField(15, rep);
950                ret = (CE)t;
951            } catch (ClassCastException cce) {
952                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
953                throw new RuntimeException(cce);
954            } catch (HL7Exception he) {
955                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
956                throw new RuntimeException(he);
957            }
958            return ret;
959        }
960    
961        /**
962         * Returns a specific repetition of
963         * RXD-15: "Pharmacy/Treatment Supplier’s Special Dispensing Instructions" - creates it if necessary
964         *
965         * @param rep The repetition index (0-indexed)
966         */
967        public CE getRxd15_PharmacyTreatmentSupplierSSpecialDispensingInstructions(int rep) { 
968            CE ret = null;
969            try {
970                Type t = this.getField(15, rep);
971                ret = (CE)t;
972            } catch (ClassCastException cce) {
973                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
974                throw new RuntimeException(cce);
975            } catch (HL7Exception he) {
976                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
977                throw new RuntimeException(he);
978            }
979            return ret;
980        }
981    
982    
983        /**
984         * Returns a count of the current number of repetitions of Pharmacy/Treatment Supplier’s Special Dispensing Instructions (RXD-15).
985         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
986         * it will return zero.
987         */
988        public int getRxd15_PharmacyTreatmentSupplierSSpecialDispensingInstructionsReps() {
989            CE[] ret = null;
990            try {
991                Type[] t = this.getField(15);
992                return t.length;  
993            } catch (ClassCastException cce) {
994                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
995                throw new RuntimeException(cce);
996            } catch (HL7Exception he) {
997                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
998                throw new RuntimeException(he);
999            }
1000        }
1001    
1002    
1003    
1004        /**
1005         * Inserts a repetition of
1006         * RXD-15: "Pharmacy/Treatment Supplier’s Special Dispensing Instructions" at a specific index
1007         *
1008         * @param rep The repetition index (0-indexed)
1009         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1010         */
1011        public CE insertPharmacyTreatmentSupplierSSpecialDispensingInstructions(int rep) throws HL7Exception { 
1012            return (CE) super.insertRepetition(15, rep);
1013        }
1014    
1015    
1016    
1017        /**
1018         * Inserts a repetition of
1019         * RXD-15: "Pharmacy/Treatment Supplier’s Special Dispensing Instructions" at a specific index
1020         *
1021         * @param rep The repetition index (0-indexed)
1022         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1023         */
1024        public CE insertRxd15_PharmacyTreatmentSupplierSSpecialDispensingInstructions(int rep) throws HL7Exception { 
1025            return (CE) super.insertRepetition(15, rep);
1026        }
1027    
1028    
1029        /**
1030         * Removes a repetition of
1031         * RXD-15: "Pharmacy/Treatment Supplier’s Special Dispensing Instructions" at a specific index
1032         *
1033         * @param rep The repetition index (0-indexed)
1034         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1035         */
1036        public CE removePharmacyTreatmentSupplierSSpecialDispensingInstructions(int rep) throws HL7Exception { 
1037            return (CE) super.removeRepetition(15, rep);
1038        }
1039    
1040    
1041        /**
1042         * Removes a repetition of
1043         * RXD-15: "Pharmacy/Treatment Supplier’s Special Dispensing Instructions" at a specific index
1044         *
1045         * @param rep The repetition index (0-indexed)
1046         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1047         */
1048        public CE removeRxd15_PharmacyTreatmentSupplierSSpecialDispensingInstructions(int rep) throws HL7Exception { 
1049            return (CE) super.removeRepetition(15, rep);
1050        }
1051    
1052    
1053    
1054    
1055        /**
1056         * Returns
1057         * RXD-16: "Actual Strength" - creates it if necessary
1058         */
1059        public NM getActualStrength() { 
1060            NM ret = null;
1061            try {
1062                Type t = this.getField(16, 0);
1063                ret = (NM)t;
1064            } catch (ClassCastException cce) {
1065                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1066                throw new RuntimeException(cce);
1067            } catch (HL7Exception he) {
1068                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1069                throw new RuntimeException(he);
1070            }
1071            return ret;
1072        }
1073    
1074    
1075        /**
1076         * Returns
1077         * RXD-16: "Actual Strength" - creates it if necessary
1078         */
1079        public NM getRxd16_ActualStrength() { 
1080            NM ret = null;
1081            try {
1082                Type t = this.getField(16, 0);
1083                ret = (NM)t;
1084            } catch (ClassCastException cce) {
1085                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1086                throw new RuntimeException(cce);
1087            } catch (HL7Exception he) {
1088                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1089                throw new RuntimeException(he);
1090            }
1091            return ret;
1092        }
1093    
1094    
1095    
1096        /**
1097         * Returns
1098         * RXD-17: "Actual Strength Unit" - creates it if necessary
1099         */
1100        public CE getActualStrengthUnit() { 
1101            CE ret = null;
1102            try {
1103                Type t = this.getField(17, 0);
1104                ret = (CE)t;
1105            } catch (ClassCastException cce) {
1106                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1107                throw new RuntimeException(cce);
1108            } catch (HL7Exception he) {
1109                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1110                throw new RuntimeException(he);
1111            }
1112            return ret;
1113        }
1114    
1115    
1116        /**
1117         * Returns
1118         * RXD-17: "Actual Strength Unit" - creates it if necessary
1119         */
1120        public CE getRxd17_ActualStrengthUnit() { 
1121            CE ret = null;
1122            try {
1123                Type t = this.getField(17, 0);
1124                ret = (CE)t;
1125            } catch (ClassCastException cce) {
1126                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1127                throw new RuntimeException(cce);
1128            } catch (HL7Exception he) {
1129                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1130                throw new RuntimeException(he);
1131            }
1132            return ret;
1133        }
1134    
1135    
1136        /**
1137         * Returns all repetitions of Substance Lot Number (RXD-18).
1138         */
1139        public ST[] getSubstanceLotNumber() {
1140            ST[] ret = null;
1141            try {
1142                Type[] t = this.getField(18);  
1143                ret = new ST[t.length];
1144                for (int i = 0; i < ret.length; i++) {
1145                    ret[i] = (ST)t[i];
1146                }
1147            } catch (ClassCastException cce) {
1148                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1149                throw new RuntimeException(cce);
1150            } catch (HL7Exception he) {
1151                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1152                throw new RuntimeException(he);
1153            }
1154            return ret;
1155        }
1156    
1157    
1158        /**
1159         * Returns a count of the current number of repetitions of Substance Lot Number (RXD-18).
1160         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1161         * it will return zero.
1162         */
1163        public int getSubstanceLotNumberReps() {
1164            ST[] ret = null;
1165            try {
1166                Type[] t = this.getField(18);
1167                return t.length;  
1168            } catch (ClassCastException cce) {
1169                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1170                throw new RuntimeException(cce);
1171            } catch (HL7Exception he) {
1172                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1173                throw new RuntimeException(he);
1174            }
1175        }
1176    
1177    
1178        /**
1179         * Returns a specific repetition of
1180         * RXD-18: "Substance Lot Number" - creates it if necessary
1181         *
1182         * @param rep The repetition index (0-indexed)
1183         */
1184        public ST getSubstanceLotNumber(int rep) { 
1185            ST ret = null;
1186            try {
1187                Type t = this.getField(18, rep);
1188                ret = (ST)t;
1189            } catch (ClassCastException cce) {
1190                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1191                throw new RuntimeException(cce);
1192            } catch (HL7Exception he) {
1193                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1194                throw new RuntimeException(he);
1195            }
1196            return ret;
1197        }
1198    
1199        /**
1200         * Returns a specific repetition of
1201         * RXD-18: "Substance Lot Number" - creates it if necessary
1202         *
1203         * @param rep The repetition index (0-indexed)
1204         */
1205        public ST getRxd18_SubstanceLotNumber(int rep) { 
1206            ST ret = null;
1207            try {
1208                Type t = this.getField(18, rep);
1209                ret = (ST)t;
1210            } catch (ClassCastException cce) {
1211                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1212                throw new RuntimeException(cce);
1213            } catch (HL7Exception he) {
1214                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1215                throw new RuntimeException(he);
1216            }
1217            return ret;
1218        }
1219    
1220    
1221        /**
1222         * Returns a count of the current number of repetitions of Substance Lot Number (RXD-18).
1223         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1224         * it will return zero.
1225         */
1226        public int getRxd18_SubstanceLotNumberReps() {
1227            ST[] ret = null;
1228            try {
1229                Type[] t = this.getField(18);
1230                return t.length;  
1231            } catch (ClassCastException cce) {
1232                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1233                throw new RuntimeException(cce);
1234            } catch (HL7Exception he) {
1235                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1236                throw new RuntimeException(he);
1237            }
1238        }
1239    
1240    
1241    
1242        /**
1243         * Inserts a repetition of
1244         * RXD-18: "Substance Lot Number" at a specific index
1245         *
1246         * @param rep The repetition index (0-indexed)
1247         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1248         */
1249        public ST insertSubstanceLotNumber(int rep) throws HL7Exception { 
1250            return (ST) super.insertRepetition(18, rep);
1251        }
1252    
1253    
1254    
1255        /**
1256         * Inserts a repetition of
1257         * RXD-18: "Substance Lot Number" at a specific index
1258         *
1259         * @param rep The repetition index (0-indexed)
1260         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1261         */
1262        public ST insertRxd18_SubstanceLotNumber(int rep) throws HL7Exception { 
1263            return (ST) super.insertRepetition(18, rep);
1264        }
1265    
1266    
1267        /**
1268         * Removes a repetition of
1269         * RXD-18: "Substance Lot Number" at a specific index
1270         *
1271         * @param rep The repetition index (0-indexed)
1272         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1273         */
1274        public ST removeSubstanceLotNumber(int rep) throws HL7Exception { 
1275            return (ST) super.removeRepetition(18, rep);
1276        }
1277    
1278    
1279        /**
1280         * Removes a repetition of
1281         * RXD-18: "Substance Lot Number" at a specific index
1282         *
1283         * @param rep The repetition index (0-indexed)
1284         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1285         */
1286        public ST removeRxd18_SubstanceLotNumber(int rep) throws HL7Exception { 
1287            return (ST) super.removeRepetition(18, rep);
1288        }
1289    
1290    
1291    
1292        /**
1293         * Returns all repetitions of Substance Expiration Date (RXD-19).
1294         */
1295        public TS[] getSubstanceExpirationDate() {
1296            TS[] ret = null;
1297            try {
1298                Type[] t = this.getField(19);  
1299                ret = new TS[t.length];
1300                for (int i = 0; i < ret.length; i++) {
1301                    ret[i] = (TS)t[i];
1302                }
1303            } catch (ClassCastException cce) {
1304                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1305                throw new RuntimeException(cce);
1306            } catch (HL7Exception he) {
1307                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1308                throw new RuntimeException(he);
1309            }
1310            return ret;
1311        }
1312    
1313    
1314        /**
1315         * Returns a count of the current number of repetitions of Substance Expiration Date (RXD-19).
1316         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1317         * it will return zero.
1318         */
1319        public int getSubstanceExpirationDateReps() {
1320            TS[] ret = null;
1321            try {
1322                Type[] t = this.getField(19);
1323                return t.length;  
1324            } catch (ClassCastException cce) {
1325                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1326                throw new RuntimeException(cce);
1327            } catch (HL7Exception he) {
1328                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1329                throw new RuntimeException(he);
1330            }
1331        }
1332    
1333    
1334        /**
1335         * Returns a specific repetition of
1336         * RXD-19: "Substance Expiration Date" - creates it if necessary
1337         *
1338         * @param rep The repetition index (0-indexed)
1339         */
1340        public TS getSubstanceExpirationDate(int rep) { 
1341            TS ret = null;
1342            try {
1343                Type t = this.getField(19, rep);
1344                ret = (TS)t;
1345            } catch (ClassCastException cce) {
1346                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1347                throw new RuntimeException(cce);
1348            } catch (HL7Exception he) {
1349                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1350                throw new RuntimeException(he);
1351            }
1352            return ret;
1353        }
1354    
1355        /**
1356         * Returns a specific repetition of
1357         * RXD-19: "Substance Expiration Date" - creates it if necessary
1358         *
1359         * @param rep The repetition index (0-indexed)
1360         */
1361        public TS getRxd19_SubstanceExpirationDate(int rep) { 
1362            TS ret = null;
1363            try {
1364                Type t = this.getField(19, rep);
1365                ret = (TS)t;
1366            } catch (ClassCastException cce) {
1367                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1368                throw new RuntimeException(cce);
1369            } catch (HL7Exception he) {
1370                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1371                throw new RuntimeException(he);
1372            }
1373            return ret;
1374        }
1375    
1376    
1377        /**
1378         * Returns a count of the current number of repetitions of Substance Expiration Date (RXD-19).
1379         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1380         * it will return zero.
1381         */
1382        public int getRxd19_SubstanceExpirationDateReps() {
1383            TS[] ret = null;
1384            try {
1385                Type[] t = this.getField(19);
1386                return t.length;  
1387            } catch (ClassCastException cce) {
1388                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1389                throw new RuntimeException(cce);
1390            } catch (HL7Exception he) {
1391                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1392                throw new RuntimeException(he);
1393            }
1394        }
1395    
1396    
1397    
1398        /**
1399         * Inserts a repetition of
1400         * RXD-19: "Substance Expiration Date" at a specific index
1401         *
1402         * @param rep The repetition index (0-indexed)
1403         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1404         */
1405        public TS insertSubstanceExpirationDate(int rep) throws HL7Exception { 
1406            return (TS) super.insertRepetition(19, rep);
1407        }
1408    
1409    
1410    
1411        /**
1412         * Inserts a repetition of
1413         * RXD-19: "Substance Expiration Date" at a specific index
1414         *
1415         * @param rep The repetition index (0-indexed)
1416         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1417         */
1418        public TS insertRxd19_SubstanceExpirationDate(int rep) throws HL7Exception { 
1419            return (TS) super.insertRepetition(19, rep);
1420        }
1421    
1422    
1423        /**
1424         * Removes a repetition of
1425         * RXD-19: "Substance Expiration Date" at a specific index
1426         *
1427         * @param rep The repetition index (0-indexed)
1428         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1429         */
1430        public TS removeSubstanceExpirationDate(int rep) throws HL7Exception { 
1431            return (TS) super.removeRepetition(19, rep);
1432        }
1433    
1434    
1435        /**
1436         * Removes a repetition of
1437         * RXD-19: "Substance Expiration Date" at a specific index
1438         *
1439         * @param rep The repetition index (0-indexed)
1440         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1441         */
1442        public TS removeRxd19_SubstanceExpirationDate(int rep) throws HL7Exception { 
1443            return (TS) super.removeRepetition(19, rep);
1444        }
1445    
1446    
1447    
1448        /**
1449         * Returns all repetitions of Substance Manufacturer Name (RXD-20).
1450         */
1451        public CE[] getSubstanceManufacturerName() {
1452            CE[] ret = null;
1453            try {
1454                Type[] t = this.getField(20);  
1455                ret = new CE[t.length];
1456                for (int i = 0; i < ret.length; i++) {
1457                    ret[i] = (CE)t[i];
1458                }
1459            } catch (ClassCastException cce) {
1460                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1461                throw new RuntimeException(cce);
1462            } catch (HL7Exception he) {
1463                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1464                throw new RuntimeException(he);
1465            }
1466            return ret;
1467        }
1468    
1469    
1470        /**
1471         * Returns a count of the current number of repetitions of Substance Manufacturer Name (RXD-20).
1472         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1473         * it will return zero.
1474         */
1475        public int getSubstanceManufacturerNameReps() {
1476            CE[] ret = null;
1477            try {
1478                Type[] t = this.getField(20);
1479                return t.length;  
1480            } catch (ClassCastException cce) {
1481                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1482                throw new RuntimeException(cce);
1483            } catch (HL7Exception he) {
1484                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1485                throw new RuntimeException(he);
1486            }
1487        }
1488    
1489    
1490        /**
1491         * Returns a specific repetition of
1492         * RXD-20: "Substance Manufacturer Name" - creates it if necessary
1493         *
1494         * @param rep The repetition index (0-indexed)
1495         */
1496        public CE getSubstanceManufacturerName(int rep) { 
1497            CE ret = null;
1498            try {
1499                Type t = this.getField(20, rep);
1500                ret = (CE)t;
1501            } catch (ClassCastException cce) {
1502                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1503                throw new RuntimeException(cce);
1504            } catch (HL7Exception he) {
1505                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1506                throw new RuntimeException(he);
1507            }
1508            return ret;
1509        }
1510    
1511        /**
1512         * Returns a specific repetition of
1513         * RXD-20: "Substance Manufacturer Name" - creates it if necessary
1514         *
1515         * @param rep The repetition index (0-indexed)
1516         */
1517        public CE getRxd20_SubstanceManufacturerName(int rep) { 
1518            CE ret = null;
1519            try {
1520                Type t = this.getField(20, rep);
1521                ret = (CE)t;
1522            } catch (ClassCastException cce) {
1523                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1524                throw new RuntimeException(cce);
1525            } catch (HL7Exception he) {
1526                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1527                throw new RuntimeException(he);
1528            }
1529            return ret;
1530        }
1531    
1532    
1533        /**
1534         * Returns a count of the current number of repetitions of Substance Manufacturer Name (RXD-20).
1535         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1536         * it will return zero.
1537         */
1538        public int getRxd20_SubstanceManufacturerNameReps() {
1539            CE[] ret = null;
1540            try {
1541                Type[] t = this.getField(20);
1542                return t.length;  
1543            } catch (ClassCastException cce) {
1544                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1545                throw new RuntimeException(cce);
1546            } catch (HL7Exception he) {
1547                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1548                throw new RuntimeException(he);
1549            }
1550        }
1551    
1552    
1553    
1554        /**
1555         * Inserts a repetition of
1556         * RXD-20: "Substance Manufacturer Name" at a specific index
1557         *
1558         * @param rep The repetition index (0-indexed)
1559         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1560         */
1561        public CE insertSubstanceManufacturerName(int rep) throws HL7Exception { 
1562            return (CE) super.insertRepetition(20, rep);
1563        }
1564    
1565    
1566    
1567        /**
1568         * Inserts a repetition of
1569         * RXD-20: "Substance Manufacturer Name" at a specific index
1570         *
1571         * @param rep The repetition index (0-indexed)
1572         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1573         */
1574        public CE insertRxd20_SubstanceManufacturerName(int rep) throws HL7Exception { 
1575            return (CE) super.insertRepetition(20, rep);
1576        }
1577    
1578    
1579        /**
1580         * Removes a repetition of
1581         * RXD-20: "Substance Manufacturer Name" at a specific index
1582         *
1583         * @param rep The repetition index (0-indexed)
1584         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1585         */
1586        public CE removeSubstanceManufacturerName(int rep) throws HL7Exception { 
1587            return (CE) super.removeRepetition(20, rep);
1588        }
1589    
1590    
1591        /**
1592         * Removes a repetition of
1593         * RXD-20: "Substance Manufacturer Name" at a specific index
1594         *
1595         * @param rep The repetition index (0-indexed)
1596         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1597         */
1598        public CE removeRxd20_SubstanceManufacturerName(int rep) throws HL7Exception { 
1599            return (CE) super.removeRepetition(20, rep);
1600        }
1601    
1602    
1603    
1604        /**
1605         * Returns all repetitions of Indication (RXD-21).
1606         */
1607        public CE[] getIndication() {
1608            CE[] ret = null;
1609            try {
1610                Type[] t = this.getField(21);  
1611                ret = new CE[t.length];
1612                for (int i = 0; i < ret.length; i++) {
1613                    ret[i] = (CE)t[i];
1614                }
1615            } catch (ClassCastException cce) {
1616                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1617                throw new RuntimeException(cce);
1618            } catch (HL7Exception he) {
1619                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1620                throw new RuntimeException(he);
1621            }
1622            return ret;
1623        }
1624    
1625    
1626        /**
1627         * Returns a count of the current number of repetitions of Indication (RXD-21).
1628         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1629         * it will return zero.
1630         */
1631        public int getIndicationReps() {
1632            CE[] ret = null;
1633            try {
1634                Type[] t = this.getField(21);
1635                return t.length;  
1636            } catch (ClassCastException cce) {
1637                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1638                throw new RuntimeException(cce);
1639            } catch (HL7Exception he) {
1640                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1641                throw new RuntimeException(he);
1642            }
1643        }
1644    
1645    
1646        /**
1647         * Returns a specific repetition of
1648         * RXD-21: "Indication" - creates it if necessary
1649         *
1650         * @param rep The repetition index (0-indexed)
1651         */
1652        public CE getIndication(int rep) { 
1653            CE ret = null;
1654            try {
1655                Type t = this.getField(21, rep);
1656                ret = (CE)t;
1657            } catch (ClassCastException cce) {
1658                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1659                throw new RuntimeException(cce);
1660            } catch (HL7Exception he) {
1661                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1662                throw new RuntimeException(he);
1663            }
1664            return ret;
1665        }
1666    
1667        /**
1668         * Returns a specific repetition of
1669         * RXD-21: "Indication" - creates it if necessary
1670         *
1671         * @param rep The repetition index (0-indexed)
1672         */
1673        public CE getRxd21_Indication(int rep) { 
1674            CE ret = null;
1675            try {
1676                Type t = this.getField(21, rep);
1677                ret = (CE)t;
1678            } catch (ClassCastException cce) {
1679                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1680                throw new RuntimeException(cce);
1681            } catch (HL7Exception he) {
1682                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1683                throw new RuntimeException(he);
1684            }
1685            return ret;
1686        }
1687    
1688    
1689        /**
1690         * Returns a count of the current number of repetitions of Indication (RXD-21).
1691         * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1692         * it will return zero.
1693         */
1694        public int getRxd21_IndicationReps() {
1695            CE[] ret = null;
1696            try {
1697                Type[] t = this.getField(21);
1698                return t.length;  
1699            } catch (ClassCastException cce) {
1700                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1701                throw new RuntimeException(cce);
1702            } catch (HL7Exception he) {
1703                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1704                throw new RuntimeException(he);
1705            }
1706        }
1707    
1708    
1709    
1710        /**
1711         * Inserts a repetition of
1712         * RXD-21: "Indication" at a specific index
1713         *
1714         * @param rep The repetition index (0-indexed)
1715         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1716         */
1717        public CE insertIndication(int rep) throws HL7Exception { 
1718            return (CE) super.insertRepetition(21, rep);
1719        }
1720    
1721    
1722    
1723        /**
1724         * Inserts a repetition of
1725         * RXD-21: "Indication" at a specific index
1726         *
1727         * @param rep The repetition index (0-indexed)
1728         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1729         */
1730        public CE insertRxd21_Indication(int rep) throws HL7Exception { 
1731            return (CE) super.insertRepetition(21, rep);
1732        }
1733    
1734    
1735        /**
1736         * Removes a repetition of
1737         * RXD-21: "Indication" at a specific index
1738         *
1739         * @param rep The repetition index (0-indexed)
1740         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1741         */
1742        public CE removeIndication(int rep) throws HL7Exception { 
1743            return (CE) super.removeRepetition(21, rep);
1744        }
1745    
1746    
1747        /**
1748         * Removes a repetition of
1749         * RXD-21: "Indication" at a specific index
1750         *
1751         * @param rep The repetition index (0-indexed)
1752         * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1753         */
1754        public CE removeRxd21_Indication(int rep) throws HL7Exception { 
1755            return (CE) super.removeRepetition(21, rep);
1756        }
1757    
1758    
1759    
1760    
1761        /**
1762         * Returns
1763         * RXD-22: "Dispense Package Size" - creates it if necessary
1764         */
1765        public NM getDispensePackageSize() { 
1766            NM ret = null;
1767            try {
1768                Type t = this.getField(22, 0);
1769                ret = (NM)t;
1770            } catch (ClassCastException cce) {
1771                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1772                throw new RuntimeException(cce);
1773            } catch (HL7Exception he) {
1774                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1775                throw new RuntimeException(he);
1776            }
1777            return ret;
1778        }
1779    
1780    
1781        /**
1782         * Returns
1783         * RXD-22: "Dispense Package Size" - creates it if necessary
1784         */
1785        public NM getRxd22_DispensePackageSize() { 
1786            NM ret = null;
1787            try {
1788                Type t = this.getField(22, 0);
1789                ret = (NM)t;
1790            } catch (ClassCastException cce) {
1791                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1792                throw new RuntimeException(cce);
1793            } catch (HL7Exception he) {
1794                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1795                throw new RuntimeException(he);
1796            }
1797            return ret;
1798        }
1799    
1800    
1801    
1802        /**
1803         * Returns
1804         * RXD-23: "Dispense Package Size Unit" - creates it if necessary
1805         */
1806        public CE getDispensePackageSizeUnit() { 
1807            CE ret = null;
1808            try {
1809                Type t = this.getField(23, 0);
1810                ret = (CE)t;
1811            } catch (ClassCastException cce) {
1812                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1813                throw new RuntimeException(cce);
1814            } catch (HL7Exception he) {
1815                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1816                throw new RuntimeException(he);
1817            }
1818            return ret;
1819        }
1820    
1821    
1822        /**
1823         * Returns
1824         * RXD-23: "Dispense Package Size Unit" - creates it if necessary
1825         */
1826        public CE getRxd23_DispensePackageSizeUnit() { 
1827            CE ret = null;
1828            try {
1829                Type t = this.getField(23, 0);
1830                ret = (CE)t;
1831            } catch (ClassCastException cce) {
1832                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1833                throw new RuntimeException(cce);
1834            } catch (HL7Exception he) {
1835                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1836                throw new RuntimeException(he);
1837            }
1838            return ret;
1839        }
1840    
1841    
1842    
1843        /**
1844         * Returns
1845         * RXD-24: "Dispense Package Method" - creates it if necessary
1846         */
1847        public ID getDispensePackageMethod() { 
1848            ID ret = null;
1849            try {
1850                Type t = this.getField(24, 0);
1851                ret = (ID)t;
1852            } catch (ClassCastException cce) {
1853                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1854                throw new RuntimeException(cce);
1855            } catch (HL7Exception he) {
1856                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1857                throw new RuntimeException(he);
1858            }
1859            return ret;
1860        }
1861    
1862    
1863        /**
1864         * Returns
1865         * RXD-24: "Dispense Package Method" - creates it if necessary
1866         */
1867        public ID getRxd24_DispensePackageMethod() { 
1868            ID ret = null;
1869            try {
1870                Type t = this.getField(24, 0);
1871                ret = (ID)t;
1872            } catch (ClassCastException cce) {
1873                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
1874                throw new RuntimeException(cce);
1875            } catch (HL7Exception he) {
1876                HapiLogFactory.getHapiLog(this.getClass()).error("Unexpected problem obtaining field value.  This is a bug.", he);
1877                throw new RuntimeException(he);
1878            }
1879            return ret;
1880        }
1881    
1882    
1883    
1884    
1885    
1886        /** {@inheritDoc} */   
1887        protected Type createNewTypeWithoutReflection(int field) {
1888           switch (field) {
1889              case 0: return new NM(getMessage());
1890              case 1: return new CE(getMessage());
1891              case 2: return new TS(getMessage());
1892              case 3: return new NM(getMessage());
1893              case 4: return new CE(getMessage());
1894              case 5: return new CE(getMessage());
1895              case 6: return new ST(getMessage());
1896              case 7: return new NM(getMessage());
1897              case 8: return new ST(getMessage());
1898              case 9: return new XCN(getMessage());
1899              case 10: return new ID(getMessage(), new Integer( 167 ));
1900              case 11: return new CQ(getMessage());
1901              case 12: return new LA2(getMessage());
1902              case 13: return new ID(getMessage(), new Integer( 136 ));
1903              case 14: return new CE(getMessage());
1904              case 15: return new NM(getMessage());
1905              case 16: return new CE(getMessage());
1906              case 17: return new ST(getMessage());
1907              case 18: return new TS(getMessage());
1908              case 19: return new CE(getMessage());
1909              case 20: return new CE(getMessage());
1910              case 21: return new NM(getMessage());
1911              case 22: return new CE(getMessage());
1912              case 23: return new ID(getMessage(), new Integer( 321 ));
1913              default: return null;
1914           }
1915       }
1916    
1917    
1918    }
1919