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.v23.segment;
035
036// import ca.uhn.hl7v2.model.v23.group.*;
037import ca.uhn.hl7v2.model.v23.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 IN3 message segment (Insurance additional info - certification). 
050 * This segment has the following fields:</p>
051 * <ul>
052     * <li>IN3-1: Set ID - Insurance Certification (SI) <b> </b>
053     * <li>IN3-2: Certification Number (CX) <b>optional </b>
054     * <li>IN3-3: Certified By (XCN) <b>optional repeating</b>
055     * <li>IN3-4: Certification Required (ID) <b>optional </b>
056     * <li>IN3-5: Penalty (CM_PEN) <b>optional </b>
057     * <li>IN3-6: Certification Date/Time (TS) <b>optional </b>
058     * <li>IN3-7: Certification Modify Date/Time (TS) <b>optional </b>
059     * <li>IN3-8: Operator (XCN) <b>optional repeating</b>
060     * <li>IN3-9: Certification Begin Date (DT) <b>optional </b>
061     * <li>IN3-10: Certification End Date (DT) <b>optional </b>
062     * <li>IN3-11: Days (CM_DTN) <b>optional </b>
063     * <li>IN3-12: Non-Concur Code/Description (CE) <b>optional </b>
064     * <li>IN3-13: Non-Concur Effective Date/Time (TS) <b>optional </b>
065     * <li>IN3-14: Physician Reviewer (XCN) <b>optional repeating</b>
066     * <li>IN3-15: Certification Contact (ST) <b>optional </b>
067     * <li>IN3-16: Certification Contact Phone Number (XTN) <b>optional repeating</b>
068     * <li>IN3-17: Appeal Reason (CE) <b>optional </b>
069     * <li>IN3-18: Certification Agency (CE) <b>optional </b>
070     * <li>IN3-19: Certification Agency Phone Number (XTN) <b>optional repeating</b>
071     * <li>IN3-20: Pre-Certification required/Window (CM_PCF) <b>optional repeating</b>
072     * <li>IN3-21: Case Manager (ST) <b>optional </b>
073     * <li>IN3-22: Second Opinion Date (DT) <b>optional </b>
074     * <li>IN3-23: Second Opinion Status (IS) <b>optional </b>
075     * <li>IN3-24: Second Opinion Documentation Received (IS) <b>optional repeating</b>
076     * <li>IN3-25: Second Opinion Physician (XCN) <b>optional repeating</b>
077 * </ul>
078 */
079@SuppressWarnings("unused")
080public class IN3 extends AbstractSegment {
081
082    /** 
083     * Creates a new IN3 segment
084     */
085    public IN3(Group parent, ModelClassFactory factory) {
086       super(parent, factory);
087       init(factory);
088    }
089
090    private void init(ModelClassFactory factory) {
091       try {
092                                  this.add(SI.class, true, 1, 4, new Object[]{ getMessage() }, "Set ID - Insurance Certification");
093                                  this.add(CX.class, false, 1, 59, new Object[]{ getMessage() }, "Certification Number");
094                                  this.add(XCN.class, false, 0, 60, new Object[]{ getMessage() }, "Certified By");
095                                              this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(136) }, "Certification Required");
096                                  this.add(CM_PEN.class, false, 1, 10, new Object[]{ getMessage() }, "Penalty");
097                                  this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Certification Date/Time");
098                                  this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Certification Modify Date/Time");
099                                  this.add(XCN.class, false, 0, 60, new Object[]{ getMessage() }, "Operator");
100                                  this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "Certification Begin Date");
101                                  this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "Certification End Date");
102                                  this.add(CM_DTN.class, false, 1, 3, new Object[]{ getMessage() }, "Days");
103                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Non-Concur Code/Description");
104                                  this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Non-Concur Effective Date/Time");
105                                  this.add(XCN.class, false, 0, 60, new Object[]{ getMessage() }, "Physician Reviewer");
106                                  this.add(ST.class, false, 1, 48, new Object[]{ getMessage() }, "Certification Contact");
107                                  this.add(XTN.class, false, 0, 40, new Object[]{ getMessage() }, "Certification Contact Phone Number");
108                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Appeal Reason");
109                                  this.add(CE.class, false, 1, 60, new Object[]{ getMessage() }, "Certification Agency");
110                                  this.add(XTN.class, false, 0, 40, new Object[]{ getMessage() }, "Certification Agency Phone Number");
111                                  this.add(CM_PCF.class, false, 0, 40, new Object[]{ getMessage() }, "Pre-Certification required/Window");
112                                  this.add(ST.class, false, 1, 48, new Object[]{ getMessage() }, "Case Manager");
113                                  this.add(DT.class, false, 1, 8, new Object[]{ getMessage() }, "Second Opinion Date");
114                                              this.add(IS.class, false, 1, 1, new Object[]{ getMessage(), new Integer(151) }, "Second Opinion Status");
115                                              this.add(IS.class, false, 0, 1, new Object[]{ getMessage(), new Integer(152) }, "Second Opinion Documentation Received");
116                                  this.add(XCN.class, false, 0, 60, new Object[]{ getMessage() }, "Second Opinion Physician");
117       } catch(HL7Exception e) {
118          log.error("Unexpected error creating IN3 - this is probably a bug in the source code generator.", e);
119       }
120    }
121
122
123
124    /**
125     * Returns
126     * IN3-1: "Set ID - Insurance Certification" - creates it if necessary
127     */
128    public SI getSetIDInsuranceCertification() { 
129                SI retVal = this.getTypedField(1, 0);
130                return retVal;
131    }
132    
133    /**
134     * Returns
135     * IN3-1: "Set ID - Insurance Certification" - creates it if necessary
136     */
137    public SI getIn31_SetIDInsuranceCertification() { 
138                SI retVal = this.getTypedField(1, 0);
139                return retVal;
140    }
141
142
143
144    /**
145     * Returns
146     * IN3-2: "Certification Number" - creates it if necessary
147     */
148    public CX getCertificationNumber() { 
149                CX retVal = this.getTypedField(2, 0);
150                return retVal;
151    }
152    
153    /**
154     * Returns
155     * IN3-2: "Certification Number" - creates it if necessary
156     */
157    public CX getIn32_CertificationNumber() { 
158                CX retVal = this.getTypedField(2, 0);
159                return retVal;
160    }
161
162
163    /**
164     * Returns all repetitions of Certified By (IN3-3).
165     */
166    public XCN[] getCertifiedBy() {
167        XCN[] retVal = this.getTypedField(3, new XCN[0]);
168        return retVal;
169    }
170
171
172    /**
173     * Returns all repetitions of Certified By (IN3-3).
174     */
175    public XCN[] getIn33_CertifiedBy() {
176        XCN[] retVal = this.getTypedField(3, new XCN[0]);
177        return retVal;
178    }
179
180
181    /**
182     * Returns a count of the current number of repetitions of Certified By (IN3-3).
183     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
184     * it will return zero.
185     */
186    public int getCertifiedByReps() {
187        return this.getReps(3);
188    }
189
190
191    /**
192     * Returns a specific repetition of
193     * IN3-3: "Certified By" - creates it if necessary
194     *
195     * @param rep The repetition index (0-indexed)
196     */
197    public XCN getCertifiedBy(int rep) { 
198                XCN retVal = this.getTypedField(3, rep);
199                return retVal;
200    }
201
202    /**
203     * Returns a specific repetition of
204     * IN3-3: "Certified By" - creates it if necessary
205     *
206     * @param rep The repetition index (0-indexed)
207     */
208    public XCN getIn33_CertifiedBy(int rep) { 
209                XCN retVal = this.getTypedField(3, rep);
210                return retVal;
211    }
212
213    /**
214     * Returns a count of the current number of repetitions of Certified By (IN3-3).
215     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
216     * it will return zero.
217     */
218    public int getIn33_CertifiedByReps() {
219        return this.getReps(3);
220    }
221
222
223    /**
224     * Inserts a repetition of
225     * IN3-3: "Certified By" at a specific index
226     *
227     * @param rep The repetition index (0-indexed)
228     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
229     */
230    public XCN insertCertifiedBy(int rep) throws HL7Exception { 
231        return (XCN) super.insertRepetition(3, rep);
232    }
233
234
235    /**
236     * Inserts a repetition of
237     * IN3-3: "Certified By" at a specific index
238     *
239     * @param rep The repetition index (0-indexed)
240     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
241     */
242    public XCN insertIn33_CertifiedBy(int rep) throws HL7Exception { 
243        return (XCN) super.insertRepetition(3, rep);
244    }
245
246
247    /**
248     * Removes a repetition of
249     * IN3-3: "Certified By" at a specific index
250     *
251     * @param rep The repetition index (0-indexed)
252     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
253     */
254    public XCN removeCertifiedBy(int rep) throws HL7Exception { 
255        return (XCN) super.removeRepetition(3, rep);
256    }
257
258
259    /**
260     * Removes a repetition of
261     * IN3-3: "Certified By" at a specific index
262     *
263     * @param rep The repetition index (0-indexed)
264     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
265     */
266    public XCN removeIn33_CertifiedBy(int rep) throws HL7Exception { 
267        return (XCN) super.removeRepetition(3, rep);
268    }
269
270
271
272
273    /**
274     * Returns
275     * IN3-4: "Certification Required" - creates it if necessary
276     */
277    public ID getCertificationRequired() { 
278                ID retVal = this.getTypedField(4, 0);
279                return retVal;
280    }
281    
282    /**
283     * Returns
284     * IN3-4: "Certification Required" - creates it if necessary
285     */
286    public ID getIn34_CertificationRequired() { 
287                ID retVal = this.getTypedField(4, 0);
288                return retVal;
289    }
290
291
292
293    /**
294     * Returns
295     * IN3-5: "Penalty" - creates it if necessary
296     */
297    public CM_PEN getPenalty() { 
298                CM_PEN retVal = this.getTypedField(5, 0);
299                return retVal;
300    }
301    
302    /**
303     * Returns
304     * IN3-5: "Penalty" - creates it if necessary
305     */
306    public CM_PEN getIn35_Penalty() { 
307                CM_PEN retVal = this.getTypedField(5, 0);
308                return retVal;
309    }
310
311
312
313    /**
314     * Returns
315     * IN3-6: "Certification Date/Time" - creates it if necessary
316     */
317    public TS getCertificationDateTime() { 
318                TS retVal = this.getTypedField(6, 0);
319                return retVal;
320    }
321    
322    /**
323     * Returns
324     * IN3-6: "Certification Date/Time" - creates it if necessary
325     */
326    public TS getIn36_CertificationDateTime() { 
327                TS retVal = this.getTypedField(6, 0);
328                return retVal;
329    }
330
331
332
333    /**
334     * Returns
335     * IN3-7: "Certification Modify Date/Time" - creates it if necessary
336     */
337    public TS getCertificationModifyDateTime() { 
338                TS retVal = this.getTypedField(7, 0);
339                return retVal;
340    }
341    
342    /**
343     * Returns
344     * IN3-7: "Certification Modify Date/Time" - creates it if necessary
345     */
346    public TS getIn37_CertificationModifyDateTime() { 
347                TS retVal = this.getTypedField(7, 0);
348                return retVal;
349    }
350
351
352    /**
353     * Returns all repetitions of Operator (IN3-8).
354     */
355    public XCN[] getOperator() {
356        XCN[] retVal = this.getTypedField(8, new XCN[0]);
357        return retVal;
358    }
359
360
361    /**
362     * Returns all repetitions of Operator (IN3-8).
363     */
364    public XCN[] getIn38_Operator() {
365        XCN[] retVal = this.getTypedField(8, new XCN[0]);
366        return retVal;
367    }
368
369
370    /**
371     * Returns a count of the current number of repetitions of Operator (IN3-8).
372     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
373     * it will return zero.
374     */
375    public int getOperatorReps() {
376        return this.getReps(8);
377    }
378
379
380    /**
381     * Returns a specific repetition of
382     * IN3-8: "Operator" - creates it if necessary
383     *
384     * @param rep The repetition index (0-indexed)
385     */
386    public XCN getOperator(int rep) { 
387                XCN retVal = this.getTypedField(8, rep);
388                return retVal;
389    }
390
391    /**
392     * Returns a specific repetition of
393     * IN3-8: "Operator" - creates it if necessary
394     *
395     * @param rep The repetition index (0-indexed)
396     */
397    public XCN getIn38_Operator(int rep) { 
398                XCN retVal = this.getTypedField(8, rep);
399                return retVal;
400    }
401
402    /**
403     * Returns a count of the current number of repetitions of Operator (IN3-8).
404     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
405     * it will return zero.
406     */
407    public int getIn38_OperatorReps() {
408        return this.getReps(8);
409    }
410
411
412    /**
413     * Inserts a repetition of
414     * IN3-8: "Operator" at a specific index
415     *
416     * @param rep The repetition index (0-indexed)
417     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
418     */
419    public XCN insertOperator(int rep) throws HL7Exception { 
420        return (XCN) super.insertRepetition(8, rep);
421    }
422
423
424    /**
425     * Inserts a repetition of
426     * IN3-8: "Operator" at a specific index
427     *
428     * @param rep The repetition index (0-indexed)
429     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
430     */
431    public XCN insertIn38_Operator(int rep) throws HL7Exception { 
432        return (XCN) super.insertRepetition(8, rep);
433    }
434
435
436    /**
437     * Removes a repetition of
438     * IN3-8: "Operator" at a specific index
439     *
440     * @param rep The repetition index (0-indexed)
441     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
442     */
443    public XCN removeOperator(int rep) throws HL7Exception { 
444        return (XCN) super.removeRepetition(8, rep);
445    }
446
447
448    /**
449     * Removes a repetition of
450     * IN3-8: "Operator" at a specific index
451     *
452     * @param rep The repetition index (0-indexed)
453     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
454     */
455    public XCN removeIn38_Operator(int rep) throws HL7Exception { 
456        return (XCN) super.removeRepetition(8, rep);
457    }
458
459
460
461
462    /**
463     * Returns
464     * IN3-9: "Certification Begin Date" - creates it if necessary
465     */
466    public DT getCertificationBeginDate() { 
467                DT retVal = this.getTypedField(9, 0);
468                return retVal;
469    }
470    
471    /**
472     * Returns
473     * IN3-9: "Certification Begin Date" - creates it if necessary
474     */
475    public DT getIn39_CertificationBeginDate() { 
476                DT retVal = this.getTypedField(9, 0);
477                return retVal;
478    }
479
480
481
482    /**
483     * Returns
484     * IN3-10: "Certification End Date" - creates it if necessary
485     */
486    public DT getCertificationEndDate() { 
487                DT retVal = this.getTypedField(10, 0);
488                return retVal;
489    }
490    
491    /**
492     * Returns
493     * IN3-10: "Certification End Date" - creates it if necessary
494     */
495    public DT getIn310_CertificationEndDate() { 
496                DT retVal = this.getTypedField(10, 0);
497                return retVal;
498    }
499
500
501
502    /**
503     * Returns
504     * IN3-11: "Days" - creates it if necessary
505     */
506    public CM_DTN getDays() { 
507                CM_DTN retVal = this.getTypedField(11, 0);
508                return retVal;
509    }
510    
511    /**
512     * Returns
513     * IN3-11: "Days" - creates it if necessary
514     */
515    public CM_DTN getIn311_Days() { 
516                CM_DTN retVal = this.getTypedField(11, 0);
517                return retVal;
518    }
519
520
521
522    /**
523     * Returns
524     * IN3-12: "Non-Concur Code/Description" - creates it if necessary
525     */
526    public CE getNonConcurCodeDescription() { 
527                CE retVal = this.getTypedField(12, 0);
528                return retVal;
529    }
530    
531    /**
532     * Returns
533     * IN3-12: "Non-Concur Code/Description" - creates it if necessary
534     */
535    public CE getIn312_NonConcurCodeDescription() { 
536                CE retVal = this.getTypedField(12, 0);
537                return retVal;
538    }
539
540
541
542    /**
543     * Returns
544     * IN3-13: "Non-Concur Effective Date/Time" - creates it if necessary
545     */
546    public TS getNonConcurEffectiveDateTime() { 
547                TS retVal = this.getTypedField(13, 0);
548                return retVal;
549    }
550    
551    /**
552     * Returns
553     * IN3-13: "Non-Concur Effective Date/Time" - creates it if necessary
554     */
555    public TS getIn313_NonConcurEffectiveDateTime() { 
556                TS retVal = this.getTypedField(13, 0);
557                return retVal;
558    }
559
560
561    /**
562     * Returns all repetitions of Physician Reviewer (IN3-14).
563     */
564    public XCN[] getPhysicianReviewer() {
565        XCN[] retVal = this.getTypedField(14, new XCN[0]);
566        return retVal;
567    }
568
569
570    /**
571     * Returns all repetitions of Physician Reviewer (IN3-14).
572     */
573    public XCN[] getIn314_PhysicianReviewer() {
574        XCN[] retVal = this.getTypedField(14, new XCN[0]);
575        return retVal;
576    }
577
578
579    /**
580     * Returns a count of the current number of repetitions of Physician Reviewer (IN3-14).
581     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
582     * it will return zero.
583     */
584    public int getPhysicianReviewerReps() {
585        return this.getReps(14);
586    }
587
588
589    /**
590     * Returns a specific repetition of
591     * IN3-14: "Physician Reviewer" - creates it if necessary
592     *
593     * @param rep The repetition index (0-indexed)
594     */
595    public XCN getPhysicianReviewer(int rep) { 
596                XCN retVal = this.getTypedField(14, rep);
597                return retVal;
598    }
599
600    /**
601     * Returns a specific repetition of
602     * IN3-14: "Physician Reviewer" - creates it if necessary
603     *
604     * @param rep The repetition index (0-indexed)
605     */
606    public XCN getIn314_PhysicianReviewer(int rep) { 
607                XCN retVal = this.getTypedField(14, rep);
608                return retVal;
609    }
610
611    /**
612     * Returns a count of the current number of repetitions of Physician Reviewer (IN3-14).
613     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
614     * it will return zero.
615     */
616    public int getIn314_PhysicianReviewerReps() {
617        return this.getReps(14);
618    }
619
620
621    /**
622     * Inserts a repetition of
623     * IN3-14: "Physician Reviewer" at a specific index
624     *
625     * @param rep The repetition index (0-indexed)
626     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
627     */
628    public XCN insertPhysicianReviewer(int rep) throws HL7Exception { 
629        return (XCN) super.insertRepetition(14, rep);
630    }
631
632
633    /**
634     * Inserts a repetition of
635     * IN3-14: "Physician Reviewer" at a specific index
636     *
637     * @param rep The repetition index (0-indexed)
638     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
639     */
640    public XCN insertIn314_PhysicianReviewer(int rep) throws HL7Exception { 
641        return (XCN) super.insertRepetition(14, rep);
642    }
643
644
645    /**
646     * Removes a repetition of
647     * IN3-14: "Physician Reviewer" at a specific index
648     *
649     * @param rep The repetition index (0-indexed)
650     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
651     */
652    public XCN removePhysicianReviewer(int rep) throws HL7Exception { 
653        return (XCN) super.removeRepetition(14, rep);
654    }
655
656
657    /**
658     * Removes a repetition of
659     * IN3-14: "Physician Reviewer" at a specific index
660     *
661     * @param rep The repetition index (0-indexed)
662     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
663     */
664    public XCN removeIn314_PhysicianReviewer(int rep) throws HL7Exception { 
665        return (XCN) super.removeRepetition(14, rep);
666    }
667
668
669
670
671    /**
672     * Returns
673     * IN3-15: "Certification Contact" - creates it if necessary
674     */
675    public ST getCertificationContact() { 
676                ST retVal = this.getTypedField(15, 0);
677                return retVal;
678    }
679    
680    /**
681     * Returns
682     * IN3-15: "Certification Contact" - creates it if necessary
683     */
684    public ST getIn315_CertificationContact() { 
685                ST retVal = this.getTypedField(15, 0);
686                return retVal;
687    }
688
689
690    /**
691     * Returns all repetitions of Certification Contact Phone Number (IN3-16).
692     */
693    public XTN[] getCertificationContactPhoneNumber() {
694        XTN[] retVal = this.getTypedField(16, new XTN[0]);
695        return retVal;
696    }
697
698
699    /**
700     * Returns all repetitions of Certification Contact Phone Number (IN3-16).
701     */
702    public XTN[] getIn316_CertificationContactPhoneNumber() {
703        XTN[] retVal = this.getTypedField(16, new XTN[0]);
704        return retVal;
705    }
706
707
708    /**
709     * Returns a count of the current number of repetitions of Certification Contact Phone Number (IN3-16).
710     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
711     * it will return zero.
712     */
713    public int getCertificationContactPhoneNumberReps() {
714        return this.getReps(16);
715    }
716
717
718    /**
719     * Returns a specific repetition of
720     * IN3-16: "Certification Contact Phone Number" - creates it if necessary
721     *
722     * @param rep The repetition index (0-indexed)
723     */
724    public XTN getCertificationContactPhoneNumber(int rep) { 
725                XTN retVal = this.getTypedField(16, rep);
726                return retVal;
727    }
728
729    /**
730     * Returns a specific repetition of
731     * IN3-16: "Certification Contact Phone Number" - creates it if necessary
732     *
733     * @param rep The repetition index (0-indexed)
734     */
735    public XTN getIn316_CertificationContactPhoneNumber(int rep) { 
736                XTN retVal = this.getTypedField(16, rep);
737                return retVal;
738    }
739
740    /**
741     * Returns a count of the current number of repetitions of Certification Contact Phone Number (IN3-16).
742     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
743     * it will return zero.
744     */
745    public int getIn316_CertificationContactPhoneNumberReps() {
746        return this.getReps(16);
747    }
748
749
750    /**
751     * Inserts a repetition of
752     * IN3-16: "Certification Contact Phone Number" at a specific index
753     *
754     * @param rep The repetition index (0-indexed)
755     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
756     */
757    public XTN insertCertificationContactPhoneNumber(int rep) throws HL7Exception { 
758        return (XTN) super.insertRepetition(16, rep);
759    }
760
761
762    /**
763     * Inserts a repetition of
764     * IN3-16: "Certification Contact Phone Number" at a specific index
765     *
766     * @param rep The repetition index (0-indexed)
767     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
768     */
769    public XTN insertIn316_CertificationContactPhoneNumber(int rep) throws HL7Exception { 
770        return (XTN) super.insertRepetition(16, rep);
771    }
772
773
774    /**
775     * Removes a repetition of
776     * IN3-16: "Certification Contact Phone Number" at a specific index
777     *
778     * @param rep The repetition index (0-indexed)
779     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
780     */
781    public XTN removeCertificationContactPhoneNumber(int rep) throws HL7Exception { 
782        return (XTN) super.removeRepetition(16, rep);
783    }
784
785
786    /**
787     * Removes a repetition of
788     * IN3-16: "Certification Contact Phone Number" at a specific index
789     *
790     * @param rep The repetition index (0-indexed)
791     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
792     */
793    public XTN removeIn316_CertificationContactPhoneNumber(int rep) throws HL7Exception { 
794        return (XTN) super.removeRepetition(16, rep);
795    }
796
797
798
799
800    /**
801     * Returns
802     * IN3-17: "Appeal Reason" - creates it if necessary
803     */
804    public CE getAppealReason() { 
805                CE retVal = this.getTypedField(17, 0);
806                return retVal;
807    }
808    
809    /**
810     * Returns
811     * IN3-17: "Appeal Reason" - creates it if necessary
812     */
813    public CE getIn317_AppealReason() { 
814                CE retVal = this.getTypedField(17, 0);
815                return retVal;
816    }
817
818
819
820    /**
821     * Returns
822     * IN3-18: "Certification Agency" - creates it if necessary
823     */
824    public CE getCertificationAgency() { 
825                CE retVal = this.getTypedField(18, 0);
826                return retVal;
827    }
828    
829    /**
830     * Returns
831     * IN3-18: "Certification Agency" - creates it if necessary
832     */
833    public CE getIn318_CertificationAgency() { 
834                CE retVal = this.getTypedField(18, 0);
835                return retVal;
836    }
837
838
839    /**
840     * Returns all repetitions of Certification Agency Phone Number (IN3-19).
841     */
842    public XTN[] getCertificationAgencyPhoneNumber() {
843        XTN[] retVal = this.getTypedField(19, new XTN[0]);
844        return retVal;
845    }
846
847
848    /**
849     * Returns all repetitions of Certification Agency Phone Number (IN3-19).
850     */
851    public XTN[] getIn319_CertificationAgencyPhoneNumber() {
852        XTN[] retVal = this.getTypedField(19, new XTN[0]);
853        return retVal;
854    }
855
856
857    /**
858     * Returns a count of the current number of repetitions of Certification Agency Phone Number (IN3-19).
859     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
860     * it will return zero.
861     */
862    public int getCertificationAgencyPhoneNumberReps() {
863        return this.getReps(19);
864    }
865
866
867    /**
868     * Returns a specific repetition of
869     * IN3-19: "Certification Agency Phone Number" - creates it if necessary
870     *
871     * @param rep The repetition index (0-indexed)
872     */
873    public XTN getCertificationAgencyPhoneNumber(int rep) { 
874                XTN retVal = this.getTypedField(19, rep);
875                return retVal;
876    }
877
878    /**
879     * Returns a specific repetition of
880     * IN3-19: "Certification Agency Phone Number" - creates it if necessary
881     *
882     * @param rep The repetition index (0-indexed)
883     */
884    public XTN getIn319_CertificationAgencyPhoneNumber(int rep) { 
885                XTN retVal = this.getTypedField(19, rep);
886                return retVal;
887    }
888
889    /**
890     * Returns a count of the current number of repetitions of Certification Agency Phone Number (IN3-19).
891     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
892     * it will return zero.
893     */
894    public int getIn319_CertificationAgencyPhoneNumberReps() {
895        return this.getReps(19);
896    }
897
898
899    /**
900     * Inserts a repetition of
901     * IN3-19: "Certification Agency Phone Number" at a specific index
902     *
903     * @param rep The repetition index (0-indexed)
904     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
905     */
906    public XTN insertCertificationAgencyPhoneNumber(int rep) throws HL7Exception { 
907        return (XTN) super.insertRepetition(19, rep);
908    }
909
910
911    /**
912     * Inserts a repetition of
913     * IN3-19: "Certification Agency Phone Number" at a specific index
914     *
915     * @param rep The repetition index (0-indexed)
916     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
917     */
918    public XTN insertIn319_CertificationAgencyPhoneNumber(int rep) throws HL7Exception { 
919        return (XTN) super.insertRepetition(19, rep);
920    }
921
922
923    /**
924     * Removes a repetition of
925     * IN3-19: "Certification Agency Phone Number" at a specific index
926     *
927     * @param rep The repetition index (0-indexed)
928     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
929     */
930    public XTN removeCertificationAgencyPhoneNumber(int rep) throws HL7Exception { 
931        return (XTN) super.removeRepetition(19, rep);
932    }
933
934
935    /**
936     * Removes a repetition of
937     * IN3-19: "Certification Agency Phone Number" at a specific index
938     *
939     * @param rep The repetition index (0-indexed)
940     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
941     */
942    public XTN removeIn319_CertificationAgencyPhoneNumber(int rep) throws HL7Exception { 
943        return (XTN) super.removeRepetition(19, rep);
944    }
945
946
947
948    /**
949     * Returns all repetitions of Pre-Certification required/Window (IN3-20).
950     */
951    public CM_PCF[] getPreCertificationRequiredWindow() {
952        CM_PCF[] retVal = this.getTypedField(20, new CM_PCF[0]);
953        return retVal;
954    }
955
956
957    /**
958     * Returns all repetitions of Pre-Certification required/Window (IN3-20).
959     */
960    public CM_PCF[] getIn320_PreCertificationRequiredWindow() {
961        CM_PCF[] retVal = this.getTypedField(20, new CM_PCF[0]);
962        return retVal;
963    }
964
965
966    /**
967     * Returns a count of the current number of repetitions of Pre-Certification required/Window (IN3-20).
968     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
969     * it will return zero.
970     */
971    public int getPreCertificationRequiredWindowReps() {
972        return this.getReps(20);
973    }
974
975
976    /**
977     * Returns a specific repetition of
978     * IN3-20: "Pre-Certification required/Window" - creates it if necessary
979     *
980     * @param rep The repetition index (0-indexed)
981     */
982    public CM_PCF getPreCertificationRequiredWindow(int rep) { 
983                CM_PCF retVal = this.getTypedField(20, rep);
984                return retVal;
985    }
986
987    /**
988     * Returns a specific repetition of
989     * IN3-20: "Pre-Certification required/Window" - creates it if necessary
990     *
991     * @param rep The repetition index (0-indexed)
992     */
993    public CM_PCF getIn320_PreCertificationRequiredWindow(int rep) { 
994                CM_PCF retVal = this.getTypedField(20, rep);
995                return retVal;
996    }
997
998    /**
999     * Returns a count of the current number of repetitions of Pre-Certification required/Window (IN3-20).
1000     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1001     * it will return zero.
1002     */
1003    public int getIn320_PreCertificationRequiredWindowReps() {
1004        return this.getReps(20);
1005    }
1006
1007
1008    /**
1009     * Inserts a repetition of
1010     * IN3-20: "Pre-Certification required/Window" at a specific index
1011     *
1012     * @param rep The repetition index (0-indexed)
1013     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1014     */
1015    public CM_PCF insertPreCertificationRequiredWindow(int rep) throws HL7Exception { 
1016        return (CM_PCF) super.insertRepetition(20, rep);
1017    }
1018
1019
1020    /**
1021     * Inserts a repetition of
1022     * IN3-20: "Pre-Certification required/Window" at a specific index
1023     *
1024     * @param rep The repetition index (0-indexed)
1025     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1026     */
1027    public CM_PCF insertIn320_PreCertificationRequiredWindow(int rep) throws HL7Exception { 
1028        return (CM_PCF) super.insertRepetition(20, rep);
1029    }
1030
1031
1032    /**
1033     * Removes a repetition of
1034     * IN3-20: "Pre-Certification required/Window" at a specific index
1035     *
1036     * @param rep The repetition index (0-indexed)
1037     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1038     */
1039    public CM_PCF removePreCertificationRequiredWindow(int rep) throws HL7Exception { 
1040        return (CM_PCF) super.removeRepetition(20, rep);
1041    }
1042
1043
1044    /**
1045     * Removes a repetition of
1046     * IN3-20: "Pre-Certification required/Window" at a specific index
1047     *
1048     * @param rep The repetition index (0-indexed)
1049     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1050     */
1051    public CM_PCF removeIn320_PreCertificationRequiredWindow(int rep) throws HL7Exception { 
1052        return (CM_PCF) super.removeRepetition(20, rep);
1053    }
1054
1055
1056
1057
1058    /**
1059     * Returns
1060     * IN3-21: "Case Manager" - creates it if necessary
1061     */
1062    public ST getCaseManager() { 
1063                ST retVal = this.getTypedField(21, 0);
1064                return retVal;
1065    }
1066    
1067    /**
1068     * Returns
1069     * IN3-21: "Case Manager" - creates it if necessary
1070     */
1071    public ST getIn321_CaseManager() { 
1072                ST retVal = this.getTypedField(21, 0);
1073                return retVal;
1074    }
1075
1076
1077
1078    /**
1079     * Returns
1080     * IN3-22: "Second Opinion Date" - creates it if necessary
1081     */
1082    public DT getSecondOpinionDate() { 
1083                DT retVal = this.getTypedField(22, 0);
1084                return retVal;
1085    }
1086    
1087    /**
1088     * Returns
1089     * IN3-22: "Second Opinion Date" - creates it if necessary
1090     */
1091    public DT getIn322_SecondOpinionDate() { 
1092                DT retVal = this.getTypedField(22, 0);
1093                return retVal;
1094    }
1095
1096
1097
1098    /**
1099     * Returns
1100     * IN3-23: "Second Opinion Status" - creates it if necessary
1101     */
1102    public IS getSecondOpinionStatus() { 
1103                IS retVal = this.getTypedField(23, 0);
1104                return retVal;
1105    }
1106    
1107    /**
1108     * Returns
1109     * IN3-23: "Second Opinion Status" - creates it if necessary
1110     */
1111    public IS getIn323_SecondOpinionStatus() { 
1112                IS retVal = this.getTypedField(23, 0);
1113                return retVal;
1114    }
1115
1116
1117    /**
1118     * Returns all repetitions of Second Opinion Documentation Received (IN3-24).
1119     */
1120    public IS[] getSecondOpinionDocumentationReceived() {
1121        IS[] retVal = this.getTypedField(24, new IS[0]);
1122        return retVal;
1123    }
1124
1125
1126    /**
1127     * Returns all repetitions of Second Opinion Documentation Received (IN3-24).
1128     */
1129    public IS[] getIn324_SecondOpinionDocumentationReceived() {
1130        IS[] retVal = this.getTypedField(24, new IS[0]);
1131        return retVal;
1132    }
1133
1134
1135    /**
1136     * Returns a count of the current number of repetitions of Second Opinion Documentation Received (IN3-24).
1137     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1138     * it will return zero.
1139     */
1140    public int getSecondOpinionDocumentationReceivedReps() {
1141        return this.getReps(24);
1142    }
1143
1144
1145    /**
1146     * Returns a specific repetition of
1147     * IN3-24: "Second Opinion Documentation Received" - creates it if necessary
1148     *
1149     * @param rep The repetition index (0-indexed)
1150     */
1151    public IS getSecondOpinionDocumentationReceived(int rep) { 
1152                IS retVal = this.getTypedField(24, rep);
1153                return retVal;
1154    }
1155
1156    /**
1157     * Returns a specific repetition of
1158     * IN3-24: "Second Opinion Documentation Received" - creates it if necessary
1159     *
1160     * @param rep The repetition index (0-indexed)
1161     */
1162    public IS getIn324_SecondOpinionDocumentationReceived(int rep) { 
1163                IS retVal = this.getTypedField(24, rep);
1164                return retVal;
1165    }
1166
1167    /**
1168     * Returns a count of the current number of repetitions of Second Opinion Documentation Received (IN3-24).
1169     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1170     * it will return zero.
1171     */
1172    public int getIn324_SecondOpinionDocumentationReceivedReps() {
1173        return this.getReps(24);
1174    }
1175
1176
1177    /**
1178     * Inserts a repetition of
1179     * IN3-24: "Second Opinion Documentation Received" at a specific index
1180     *
1181     * @param rep The repetition index (0-indexed)
1182     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1183     */
1184    public IS insertSecondOpinionDocumentationReceived(int rep) throws HL7Exception { 
1185        return (IS) super.insertRepetition(24, rep);
1186    }
1187
1188
1189    /**
1190     * Inserts a repetition of
1191     * IN3-24: "Second Opinion Documentation Received" at a specific index
1192     *
1193     * @param rep The repetition index (0-indexed)
1194     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1195     */
1196    public IS insertIn324_SecondOpinionDocumentationReceived(int rep) throws HL7Exception { 
1197        return (IS) super.insertRepetition(24, rep);
1198    }
1199
1200
1201    /**
1202     * Removes a repetition of
1203     * IN3-24: "Second Opinion Documentation Received" at a specific index
1204     *
1205     * @param rep The repetition index (0-indexed)
1206     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1207     */
1208    public IS removeSecondOpinionDocumentationReceived(int rep) throws HL7Exception { 
1209        return (IS) super.removeRepetition(24, rep);
1210    }
1211
1212
1213    /**
1214     * Removes a repetition of
1215     * IN3-24: "Second Opinion Documentation Received" at a specific index
1216     *
1217     * @param rep The repetition index (0-indexed)
1218     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1219     */
1220    public IS removeIn324_SecondOpinionDocumentationReceived(int rep) throws HL7Exception { 
1221        return (IS) super.removeRepetition(24, rep);
1222    }
1223
1224
1225
1226    /**
1227     * Returns all repetitions of Second Opinion Physician (IN3-25).
1228     */
1229    public XCN[] getSecondOpinionPhysician() {
1230        XCN[] retVal = this.getTypedField(25, new XCN[0]);
1231        return retVal;
1232    }
1233
1234
1235    /**
1236     * Returns all repetitions of Second Opinion Physician (IN3-25).
1237     */
1238    public XCN[] getIn325_SecondOpinionPhysician() {
1239        XCN[] retVal = this.getTypedField(25, new XCN[0]);
1240        return retVal;
1241    }
1242
1243
1244    /**
1245     * Returns a count of the current number of repetitions of Second Opinion Physician (IN3-25).
1246     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1247     * it will return zero.
1248     */
1249    public int getSecondOpinionPhysicianReps() {
1250        return this.getReps(25);
1251    }
1252
1253
1254    /**
1255     * Returns a specific repetition of
1256     * IN3-25: "Second Opinion Physician" - creates it if necessary
1257     *
1258     * @param rep The repetition index (0-indexed)
1259     */
1260    public XCN getSecondOpinionPhysician(int rep) { 
1261                XCN retVal = this.getTypedField(25, rep);
1262                return retVal;
1263    }
1264
1265    /**
1266     * Returns a specific repetition of
1267     * IN3-25: "Second Opinion Physician" - creates it if necessary
1268     *
1269     * @param rep The repetition index (0-indexed)
1270     */
1271    public XCN getIn325_SecondOpinionPhysician(int rep) { 
1272                XCN retVal = this.getTypedField(25, rep);
1273                return retVal;
1274    }
1275
1276    /**
1277     * Returns a count of the current number of repetitions of Second Opinion Physician (IN3-25).
1278     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
1279     * it will return zero.
1280     */
1281    public int getIn325_SecondOpinionPhysicianReps() {
1282        return this.getReps(25);
1283    }
1284
1285
1286    /**
1287     * Inserts a repetition of
1288     * IN3-25: "Second Opinion Physician" at a specific index
1289     *
1290     * @param rep The repetition index (0-indexed)
1291     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1292     */
1293    public XCN insertSecondOpinionPhysician(int rep) throws HL7Exception { 
1294        return (XCN) super.insertRepetition(25, rep);
1295    }
1296
1297
1298    /**
1299     * Inserts a repetition of
1300     * IN3-25: "Second Opinion Physician" at a specific index
1301     *
1302     * @param rep The repetition index (0-indexed)
1303     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1304     */
1305    public XCN insertIn325_SecondOpinionPhysician(int rep) throws HL7Exception { 
1306        return (XCN) super.insertRepetition(25, rep);
1307    }
1308
1309
1310    /**
1311     * Removes a repetition of
1312     * IN3-25: "Second Opinion Physician" at a specific index
1313     *
1314     * @param rep The repetition index (0-indexed)
1315     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1316     */
1317    public XCN removeSecondOpinionPhysician(int rep) throws HL7Exception { 
1318        return (XCN) super.removeRepetition(25, rep);
1319    }
1320
1321
1322    /**
1323     * Removes a repetition of
1324     * IN3-25: "Second Opinion Physician" at a specific index
1325     *
1326     * @param rep The repetition index (0-indexed)
1327     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
1328     */
1329    public XCN removeIn325_SecondOpinionPhysician(int rep) throws HL7Exception { 
1330        return (XCN) super.removeRepetition(25, rep);
1331    }
1332
1333
1334
1335
1336
1337
1338    /** {@inheritDoc} */   
1339    protected Type createNewTypeWithoutReflection(int field) {
1340       switch (field) {
1341          case 0: return new SI(getMessage());
1342          case 1: return new CX(getMessage());
1343          case 2: return new XCN(getMessage());
1344          case 3: return new ID(getMessage(), new Integer( 136 ));
1345          case 4: return new CM_PEN(getMessage());
1346          case 5: return new TS(getMessage());
1347          case 6: return new TS(getMessage());
1348          case 7: return new XCN(getMessage());
1349          case 8: return new DT(getMessage());
1350          case 9: return new DT(getMessage());
1351          case 10: return new CM_DTN(getMessage());
1352          case 11: return new CE(getMessage());
1353          case 12: return new TS(getMessage());
1354          case 13: return new XCN(getMessage());
1355          case 14: return new ST(getMessage());
1356          case 15: return new XTN(getMessage());
1357          case 16: return new CE(getMessage());
1358          case 17: return new CE(getMessage());
1359          case 18: return new XTN(getMessage());
1360          case 19: return new CM_PCF(getMessage());
1361          case 20: return new ST(getMessage());
1362          case 21: return new DT(getMessage());
1363          case 22: return new IS(getMessage(), new Integer( 151 ));
1364          case 23: return new IS(getMessage(), new Integer( 152 ));
1365          case 24: return new XCN(getMessage());
1366          default: return null;
1367       }
1368   }
1369
1370
1371}
1372