View Javadoc
1   /*
2    * This class is an auto-generated source file for a HAPI
3    * HL7 v2.x standard structure class.
4    *
5    * For more information, visit: http://hl7api.sourceforge.net/
6    * 
7    * The contents of this file are subject to the Mozilla Public License Version 1.1 
8    * (the "License"); you may not use this file except in compliance with the License. 
9    * You may obtain a copy of the License at http://www.mozilla.org/MPL/ 
10   * Software distributed under the License is distributed on an "AS IS" basis, 
11   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
12   * specific language governing rights and limitations under the License. 
13   * 
14   * The Original Code is "[file_name]".  Description: 
15   * "[one_line_description]" 
16   * 
17   * The Initial Developer of the Original Code is University Health Network. Copyright (C) 
18   * 2012.  All Rights Reserved. 
19   * 
20   * Contributor(s): ______________________________________. 
21   * 
22   * Alternatively, the contents of this file may be used under the terms of the 
23   * GNU General Public License (the  "GPL"), in which case the provisions of the GPL are 
24   * applicable instead of those above.  If you wish to allow use of your version of this 
25   * file only under the terms of the GPL and not to allow others to use your version 
26   * of this file under the MPL, indicate your decision by deleting  the provisions above 
27   * and replace  them with the notice and other provisions required by the GPL License.  
28   * If you do not delete the provisions above, a recipient may use your version of 
29   * this file under either the MPL or the GPL. 
30   * 
31   */
32  
33  
34  package ca.uhn.hl7v2.model.v24.segment;
35  
36  // import ca.uhn.hl7v2.model.v24.group.*;
37  import ca.uhn.hl7v2.model.v24.datatype.*;
38  import ca.uhn.hl7v2.HL7Exception;
39  import ca.uhn.hl7v2.parser.ModelClassFactory;
40  import ca.uhn.hl7v2.parser.DefaultModelClassFactory;
41  import ca.uhn.hl7v2.model.AbstractMessage;
42  import ca.uhn.hl7v2.model.Group;
43  import ca.uhn.hl7v2.model.Type;
44  import ca.uhn.hl7v2.model.AbstractSegment;
45  import ca.uhn.hl7v2.model.Varies;
46  
47  
48  /**
49   *<p>Represents an HL7 IN3 message segment (Insurance Additional Information, Certification). 
50   * This segment has the following fields:</p>
51   * <ul>
52       * <li>IN3-1: Set ID - IN3 (SI) <b> </b>
53       * <li>IN3-2: Certification Number (CX) <b>optional </b>
54       * <li>IN3-3: Certified By (XCN) <b>optional repeating</b>
55       * <li>IN3-4: Certification Required (ID) <b>optional </b>
56       * <li>IN3-5: Penalty (MOP) <b>optional </b>
57       * <li>IN3-6: Certification Date/Time (TS) <b>optional </b>
58       * <li>IN3-7: Certification Modify Date/Time (TS) <b>optional </b>
59       * <li>IN3-8: Operator (XCN) <b>optional repeating</b>
60       * <li>IN3-9: Certification Begin Date (DT) <b>optional </b>
61       * <li>IN3-10: Certification End Date (DT) <b>optional </b>
62       * <li>IN3-11: Days (DTN) <b>optional </b>
63       * <li>IN3-12: Non-Concur Code/Description (CE) <b>optional </b>
64       * <li>IN3-13: Non-Concur Effective Date/Time (TS) <b>optional </b>
65       * <li>IN3-14: Physician Reviewer (XCN) <b>optional repeating</b>
66       * <li>IN3-15: Certification Contact (ST) <b>optional </b>
67       * <li>IN3-16: Certification Contact Phone Number (XTN) <b>optional repeating</b>
68       * <li>IN3-17: Appeal Reason (CE) <b>optional </b>
69       * <li>IN3-18: Certification Agency (CE) <b>optional </b>
70       * <li>IN3-19: Certification Agency Phone Number (XTN) <b>optional repeating</b>
71       * <li>IN3-20: Pre-Certification Req/Window (PCF) <b>optional repeating</b>
72       * <li>IN3-21: Case Manager (ST) <b>optional </b>
73       * <li>IN3-22: Second Opinion Date (DT) <b>optional </b>
74       * <li>IN3-23: Second Opinion Status (IS) <b>optional </b>
75       * <li>IN3-24: Second Opinion Documentation Received (IS) <b>optional repeating</b>
76       * <li>IN3-25: Second Opinion Physician (XCN) <b>optional repeating</b>
77   * </ul>
78   */
79  @SuppressWarnings("unused")
80  public class IN3 extends AbstractSegment {
81  
82      /** 
83       * Creates a new IN3 segment
84       */
85      public IN3(Group parent, ModelClassFactory factory) {
86         super(parent, factory);
87         init(factory);
88      }
89  
90      private void init(ModelClassFactory factory) {
91         try {
92                                    this.add(SI.class, true, 1, 4, new Object[]{ getMessage() }, "Set ID - IN3");
93                                    this.add(CX.class, false, 1, 250, new Object[]{ getMessage() }, "Certification Number");
94                                    this.add(XCN.class, false, 0, 250, new Object[]{ getMessage() }, "Certified By");
95                                                this.add(ID.class, false, 1, 1, new Object[]{ getMessage(), new Integer(136) }, "Certification Required");
96                                    this.add(MOP.class, false, 1, 10, new Object[]{ getMessage() }, "Penalty");
97                                    this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Certification Date/Time");
98                                    this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Certification Modify Date/Time");
99                                    this.add(XCN.class, false, 0, 250, 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(DTN.class, false, 1, 3, new Object[]{ getMessage() }, "Days");
103                                   this.add(CE.class, false, 1, 250, 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, 250, 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, 250, new Object[]{ getMessage() }, "Certification Contact Phone Number");
108                                   this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Appeal Reason");
109                                   this.add(CE.class, false, 1, 250, new Object[]{ getMessage() }, "Certification Agency");
110                                   this.add(XTN.class, false, 0, 250, new Object[]{ getMessage() }, "Certification Agency Phone Number");
111                                   this.add(PCF.class, false, 0, 40, new Object[]{ getMessage() }, "Pre-Certification Req/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, 250, 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 - IN3" - creates it if necessary
127      */
128     public SI getSetIDIN3() { 
129 		SI retVal = this.getTypedField(1, 0);
130 		return retVal;
131     }
132     
133     /**
134      * Returns
135      * IN3-1: "Set ID - IN3" - creates it if necessary
136      */
137     public SI getIn31_SetIDIN3() { 
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 MOP getPenalty() { 
298 		MOP retVal = this.getTypedField(5, 0);
299 		return retVal;
300     }
301     
302     /**
303      * Returns
304      * IN3-5: "Penalty" - creates it if necessary
305      */
306     public MOP getIn35_Penalty() { 
307 		MOP 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 DTN getDays() { 
507 		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 DTN getIn311_Days() { 
516 		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 Req/Window (IN3-20).
950      */
951     public PCF[] getPreCertificationReqWindow() {
952     	PCF[] retVal = this.getTypedField(20, new PCF[0]);
953     	return retVal;
954     }
955 
956 
957     /**
958      * Returns all repetitions of Pre-Certification Req/Window (IN3-20).
959      */
960     public PCF[] getIn320_PreCertificationReqWindow() {
961     	PCF[] retVal = this.getTypedField(20, new PCF[0]);
962     	return retVal;
963     }
964 
965 
966     /**
967      * Returns a count of the current number of repetitions of Pre-Certification Req/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 getPreCertificationReqWindowReps() {
972     	return this.getReps(20);
973     }
974 
975 
976     /**
977      * Returns a specific repetition of
978      * IN3-20: "Pre-Certification Req/Window" - creates it if necessary
979      *
980      * @param rep The repetition index (0-indexed)
981      */
982     public PCF getPreCertificationReqWindow(int rep) { 
983 		PCF retVal = this.getTypedField(20, rep);
984 		return retVal;
985     }
986 
987     /**
988      * Returns a specific repetition of
989      * IN3-20: "Pre-Certification Req/Window" - creates it if necessary
990      *
991      * @param rep The repetition index (0-indexed)
992      */
993     public PCF getIn320_PreCertificationReqWindow(int rep) { 
994 		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 Req/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_PreCertificationReqWindowReps() {
1004     	return this.getReps(20);
1005     }
1006 
1007 
1008     /**
1009      * Inserts a repetition of
1010      * IN3-20: "Pre-Certification Req/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 PCF insertPreCertificationReqWindow(int rep) throws HL7Exception { 
1016         return (PCF) super.insertRepetition(20, rep);
1017     }
1018 
1019 
1020     /**
1021      * Inserts a repetition of
1022      * IN3-20: "Pre-Certification Req/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 PCF insertIn320_PreCertificationReqWindow(int rep) throws HL7Exception { 
1028         return (PCF) super.insertRepetition(20, rep);
1029     }
1030 
1031 
1032     /**
1033      * Removes a repetition of
1034      * IN3-20: "Pre-Certification Req/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 PCF removePreCertificationReqWindow(int rep) throws HL7Exception { 
1040         return (PCF) super.removeRepetition(20, rep);
1041     }
1042 
1043 
1044     /**
1045      * Removes a repetition of
1046      * IN3-20: "Pre-Certification Req/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 PCF removeIn320_PreCertificationReqWindow(int rep) throws HL7Exception { 
1052         return (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 MOP(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 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 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