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 PRD message segment (Provider Data). 
050 * This segment has the following fields:</p>
051 * <ul>
052     * <li>PRD-1: Role (CE) <b> repeating</b>
053     * <li>PRD-2: Provider Name (XPN) <b>optional repeating</b>
054     * <li>PRD-3: Provider Address (XAD) <b>optional </b>
055     * <li>PRD-4: Provider Location (PL) <b>optional </b>
056     * <li>PRD-5: Provider Communication Information (XTN) <b>optional repeating</b>
057     * <li>PRD-6: Preferred Method of Contact (CE) <b>optional </b>
058     * <li>PRD-7: Provider Identifiers (CM_PI) <b>optional repeating</b>
059     * <li>PRD-8: Effective Start Date of Role (TS) <b>optional </b>
060     * <li>PRD-9: Effective End Date of Role (TS) <b>optional </b>
061 * </ul>
062 */
063@SuppressWarnings("unused")
064public class PRD extends AbstractSegment {
065
066    /** 
067     * Creates a new PRD segment
068     */
069    public PRD(Group parent, ModelClassFactory factory) {
070       super(parent, factory);
071       init(factory);
072    }
073
074    private void init(ModelClassFactory factory) {
075       try {
076                                  this.add(CE.class, true, 0, 200, new Object[]{ getMessage() }, "Role");
077                                  this.add(XPN.class, false, 0, 106, new Object[]{ getMessage() }, "Provider Name");
078                                  this.add(XAD.class, false, 1, 60, new Object[]{ getMessage() }, "Provider Address");
079                                  this.add(PL.class, false, 1, 60, new Object[]{ getMessage() }, "Provider Location");
080                                  this.add(XTN.class, false, 0, 20, new Object[]{ getMessage() }, "Provider Communication Information");
081                                  this.add(CE.class, false, 1, 200, new Object[]{ getMessage() }, "Preferred Method of Contact");
082                                  this.add(CM_PI.class, false, 0, 100, new Object[]{ getMessage() }, "Provider Identifiers");
083                                  this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Effective Start Date of Role");
084                                  this.add(TS.class, false, 1, 26, new Object[]{ getMessage() }, "Effective End Date of Role");
085       } catch(HL7Exception e) {
086          log.error("Unexpected error creating PRD - this is probably a bug in the source code generator.", e);
087       }
088    }
089
090
091    /**
092     * Returns all repetitions of Role (PRD-1).
093     */
094    public CE[] getRole() {
095        CE[] retVal = this.getTypedField(1, new CE[0]);
096        return retVal;
097    }
098
099
100    /**
101     * Returns all repetitions of Role (PRD-1).
102     */
103    public CE[] getPrd1_Role() {
104        CE[] retVal = this.getTypedField(1, new CE[0]);
105        return retVal;
106    }
107
108
109    /**
110     * Returns a count of the current number of repetitions of Role (PRD-1).
111     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
112     * it will return zero.
113     */
114    public int getRoleReps() {
115        return this.getReps(1);
116    }
117
118
119    /**
120     * Returns a specific repetition of
121     * PRD-1: "Role" - creates it if necessary
122     *
123     * @param rep The repetition index (0-indexed)
124     */
125    public CE getRole(int rep) { 
126                CE retVal = this.getTypedField(1, rep);
127                return retVal;
128    }
129
130    /**
131     * Returns a specific repetition of
132     * PRD-1: "Role" - creates it if necessary
133     *
134     * @param rep The repetition index (0-indexed)
135     */
136    public CE getPrd1_Role(int rep) { 
137                CE retVal = this.getTypedField(1, rep);
138                return retVal;
139    }
140
141    /**
142     * Returns a count of the current number of repetitions of Role (PRD-1).
143     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
144     * it will return zero.
145     */
146    public int getPrd1_RoleReps() {
147        return this.getReps(1);
148    }
149
150
151    /**
152     * Inserts a repetition of
153     * PRD-1: "Role" at a specific index
154     *
155     * @param rep The repetition index (0-indexed)
156     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
157     */
158    public CE insertRole(int rep) throws HL7Exception { 
159        return (CE) super.insertRepetition(1, rep);
160    }
161
162
163    /**
164     * Inserts a repetition of
165     * PRD-1: "Role" at a specific index
166     *
167     * @param rep The repetition index (0-indexed)
168     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
169     */
170    public CE insertPrd1_Role(int rep) throws HL7Exception { 
171        return (CE) super.insertRepetition(1, rep);
172    }
173
174
175    /**
176     * Removes a repetition of
177     * PRD-1: "Role" at a specific index
178     *
179     * @param rep The repetition index (0-indexed)
180     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
181     */
182    public CE removeRole(int rep) throws HL7Exception { 
183        return (CE) super.removeRepetition(1, rep);
184    }
185
186
187    /**
188     * Removes a repetition of
189     * PRD-1: "Role" at a specific index
190     *
191     * @param rep The repetition index (0-indexed)
192     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
193     */
194    public CE removePrd1_Role(int rep) throws HL7Exception { 
195        return (CE) super.removeRepetition(1, rep);
196    }
197
198
199
200    /**
201     * Returns all repetitions of Provider Name (PRD-2).
202     */
203    public XPN[] getProviderName() {
204        XPN[] retVal = this.getTypedField(2, new XPN[0]);
205        return retVal;
206    }
207
208
209    /**
210     * Returns all repetitions of Provider Name (PRD-2).
211     */
212    public XPN[] getPrd2_ProviderName() {
213        XPN[] retVal = this.getTypedField(2, new XPN[0]);
214        return retVal;
215    }
216
217
218    /**
219     * Returns a count of the current number of repetitions of Provider Name (PRD-2).
220     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
221     * it will return zero.
222     */
223    public int getProviderNameReps() {
224        return this.getReps(2);
225    }
226
227
228    /**
229     * Returns a specific repetition of
230     * PRD-2: "Provider Name" - creates it if necessary
231     *
232     * @param rep The repetition index (0-indexed)
233     */
234    public XPN getProviderName(int rep) { 
235                XPN retVal = this.getTypedField(2, rep);
236                return retVal;
237    }
238
239    /**
240     * Returns a specific repetition of
241     * PRD-2: "Provider Name" - creates it if necessary
242     *
243     * @param rep The repetition index (0-indexed)
244     */
245    public XPN getPrd2_ProviderName(int rep) { 
246                XPN retVal = this.getTypedField(2, rep);
247                return retVal;
248    }
249
250    /**
251     * Returns a count of the current number of repetitions of Provider Name (PRD-2).
252     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
253     * it will return zero.
254     */
255    public int getPrd2_ProviderNameReps() {
256        return this.getReps(2);
257    }
258
259
260    /**
261     * Inserts a repetition of
262     * PRD-2: "Provider Name" at a specific index
263     *
264     * @param rep The repetition index (0-indexed)
265     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
266     */
267    public XPN insertProviderName(int rep) throws HL7Exception { 
268        return (XPN) super.insertRepetition(2, rep);
269    }
270
271
272    /**
273     * Inserts a repetition of
274     * PRD-2: "Provider Name" at a specific index
275     *
276     * @param rep The repetition index (0-indexed)
277     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
278     */
279    public XPN insertPrd2_ProviderName(int rep) throws HL7Exception { 
280        return (XPN) super.insertRepetition(2, rep);
281    }
282
283
284    /**
285     * Removes a repetition of
286     * PRD-2: "Provider Name" at a specific index
287     *
288     * @param rep The repetition index (0-indexed)
289     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
290     */
291    public XPN removeProviderName(int rep) throws HL7Exception { 
292        return (XPN) super.removeRepetition(2, rep);
293    }
294
295
296    /**
297     * Removes a repetition of
298     * PRD-2: "Provider Name" at a specific index
299     *
300     * @param rep The repetition index (0-indexed)
301     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
302     */
303    public XPN removePrd2_ProviderName(int rep) throws HL7Exception { 
304        return (XPN) super.removeRepetition(2, rep);
305    }
306
307
308
309
310    /**
311     * Returns
312     * PRD-3: "Provider Address" - creates it if necessary
313     */
314    public XAD getProviderAddress() { 
315                XAD retVal = this.getTypedField(3, 0);
316                return retVal;
317    }
318    
319    /**
320     * Returns
321     * PRD-3: "Provider Address" - creates it if necessary
322     */
323    public XAD getPrd3_ProviderAddress() { 
324                XAD retVal = this.getTypedField(3, 0);
325                return retVal;
326    }
327
328
329
330    /**
331     * Returns
332     * PRD-4: "Provider Location" - creates it if necessary
333     */
334    public PL getProviderLocation() { 
335                PL retVal = this.getTypedField(4, 0);
336                return retVal;
337    }
338    
339    /**
340     * Returns
341     * PRD-4: "Provider Location" - creates it if necessary
342     */
343    public PL getPrd4_ProviderLocation() { 
344                PL retVal = this.getTypedField(4, 0);
345                return retVal;
346    }
347
348
349    /**
350     * Returns all repetitions of Provider Communication Information (PRD-5).
351     */
352    public XTN[] getProviderCommunicationInformation() {
353        XTN[] retVal = this.getTypedField(5, new XTN[0]);
354        return retVal;
355    }
356
357
358    /**
359     * Returns all repetitions of Provider Communication Information (PRD-5).
360     */
361    public XTN[] getPrd5_ProviderCommunicationInformation() {
362        XTN[] retVal = this.getTypedField(5, new XTN[0]);
363        return retVal;
364    }
365
366
367    /**
368     * Returns a count of the current number of repetitions of Provider Communication Information (PRD-5).
369     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
370     * it will return zero.
371     */
372    public int getProviderCommunicationInformationReps() {
373        return this.getReps(5);
374    }
375
376
377    /**
378     * Returns a specific repetition of
379     * PRD-5: "Provider Communication Information" - creates it if necessary
380     *
381     * @param rep The repetition index (0-indexed)
382     */
383    public XTN getProviderCommunicationInformation(int rep) { 
384                XTN retVal = this.getTypedField(5, rep);
385                return retVal;
386    }
387
388    /**
389     * Returns a specific repetition of
390     * PRD-5: "Provider Communication Information" - creates it if necessary
391     *
392     * @param rep The repetition index (0-indexed)
393     */
394    public XTN getPrd5_ProviderCommunicationInformation(int rep) { 
395                XTN retVal = this.getTypedField(5, rep);
396                return retVal;
397    }
398
399    /**
400     * Returns a count of the current number of repetitions of Provider Communication Information (PRD-5).
401     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
402     * it will return zero.
403     */
404    public int getPrd5_ProviderCommunicationInformationReps() {
405        return this.getReps(5);
406    }
407
408
409    /**
410     * Inserts a repetition of
411     * PRD-5: "Provider Communication Information" at a specific index
412     *
413     * @param rep The repetition index (0-indexed)
414     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
415     */
416    public XTN insertProviderCommunicationInformation(int rep) throws HL7Exception { 
417        return (XTN) super.insertRepetition(5, rep);
418    }
419
420
421    /**
422     * Inserts a repetition of
423     * PRD-5: "Provider Communication Information" at a specific index
424     *
425     * @param rep The repetition index (0-indexed)
426     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
427     */
428    public XTN insertPrd5_ProviderCommunicationInformation(int rep) throws HL7Exception { 
429        return (XTN) super.insertRepetition(5, rep);
430    }
431
432
433    /**
434     * Removes a repetition of
435     * PRD-5: "Provider Communication Information" at a specific index
436     *
437     * @param rep The repetition index (0-indexed)
438     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
439     */
440    public XTN removeProviderCommunicationInformation(int rep) throws HL7Exception { 
441        return (XTN) super.removeRepetition(5, rep);
442    }
443
444
445    /**
446     * Removes a repetition of
447     * PRD-5: "Provider Communication Information" at a specific index
448     *
449     * @param rep The repetition index (0-indexed)
450     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
451     */
452    public XTN removePrd5_ProviderCommunicationInformation(int rep) throws HL7Exception { 
453        return (XTN) super.removeRepetition(5, rep);
454    }
455
456
457
458
459    /**
460     * Returns
461     * PRD-6: "Preferred Method of Contact" - creates it if necessary
462     */
463    public CE getPreferredMethodOfContact() { 
464                CE retVal = this.getTypedField(6, 0);
465                return retVal;
466    }
467    
468    /**
469     * Returns
470     * PRD-6: "Preferred Method of Contact" - creates it if necessary
471     */
472    public CE getPrd6_PreferredMethodOfContact() { 
473                CE retVal = this.getTypedField(6, 0);
474                return retVal;
475    }
476
477
478    /**
479     * Returns all repetitions of Provider Identifiers (PRD-7).
480     */
481    public CM_PI[] getProviderIdentifiers() {
482        CM_PI[] retVal = this.getTypedField(7, new CM_PI[0]);
483        return retVal;
484    }
485
486
487    /**
488     * Returns all repetitions of Provider Identifiers (PRD-7).
489     */
490    public CM_PI[] getPrd7_ProviderIdentifiers() {
491        CM_PI[] retVal = this.getTypedField(7, new CM_PI[0]);
492        return retVal;
493    }
494
495
496    /**
497     * Returns a count of the current number of repetitions of Provider Identifiers (PRD-7).
498     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
499     * it will return zero.
500     */
501    public int getProviderIdentifiersReps() {
502        return this.getReps(7);
503    }
504
505
506    /**
507     * Returns a specific repetition of
508     * PRD-7: "Provider Identifiers" - creates it if necessary
509     *
510     * @param rep The repetition index (0-indexed)
511     */
512    public CM_PI getProviderIdentifiers(int rep) { 
513                CM_PI retVal = this.getTypedField(7, rep);
514                return retVal;
515    }
516
517    /**
518     * Returns a specific repetition of
519     * PRD-7: "Provider Identifiers" - creates it if necessary
520     *
521     * @param rep The repetition index (0-indexed)
522     */
523    public CM_PI getPrd7_ProviderIdentifiers(int rep) { 
524                CM_PI retVal = this.getTypedField(7, rep);
525                return retVal;
526    }
527
528    /**
529     * Returns a count of the current number of repetitions of Provider Identifiers (PRD-7).
530     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
531     * it will return zero.
532     */
533    public int getPrd7_ProviderIdentifiersReps() {
534        return this.getReps(7);
535    }
536
537
538    /**
539     * Inserts a repetition of
540     * PRD-7: "Provider Identifiers" at a specific index
541     *
542     * @param rep The repetition index (0-indexed)
543     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
544     */
545    public CM_PI insertProviderIdentifiers(int rep) throws HL7Exception { 
546        return (CM_PI) super.insertRepetition(7, rep);
547    }
548
549
550    /**
551     * Inserts a repetition of
552     * PRD-7: "Provider Identifiers" at a specific index
553     *
554     * @param rep The repetition index (0-indexed)
555     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
556     */
557    public CM_PI insertPrd7_ProviderIdentifiers(int rep) throws HL7Exception { 
558        return (CM_PI) super.insertRepetition(7, rep);
559    }
560
561
562    /**
563     * Removes a repetition of
564     * PRD-7: "Provider Identifiers" at a specific index
565     *
566     * @param rep The repetition index (0-indexed)
567     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
568     */
569    public CM_PI removeProviderIdentifiers(int rep) throws HL7Exception { 
570        return (CM_PI) super.removeRepetition(7, rep);
571    }
572
573
574    /**
575     * Removes a repetition of
576     * PRD-7: "Provider Identifiers" at a specific index
577     *
578     * @param rep The repetition index (0-indexed)
579     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
580     */
581    public CM_PI removePrd7_ProviderIdentifiers(int rep) throws HL7Exception { 
582        return (CM_PI) super.removeRepetition(7, rep);
583    }
584
585
586
587
588    /**
589     * Returns
590     * PRD-8: "Effective Start Date of Role" - creates it if necessary
591     */
592    public TS getEffectiveStartDateOfRole() { 
593                TS retVal = this.getTypedField(8, 0);
594                return retVal;
595    }
596    
597    /**
598     * Returns
599     * PRD-8: "Effective Start Date of Role" - creates it if necessary
600     */
601    public TS getPrd8_EffectiveStartDateOfRole() { 
602                TS retVal = this.getTypedField(8, 0);
603                return retVal;
604    }
605
606
607
608    /**
609     * Returns
610     * PRD-9: "Effective End Date of Role" - creates it if necessary
611     */
612    public TS getEffectiveEndDateOfRole() { 
613                TS retVal = this.getTypedField(9, 0);
614                return retVal;
615    }
616    
617    /**
618     * Returns
619     * PRD-9: "Effective End Date of Role" - creates it if necessary
620     */
621    public TS getPrd9_EffectiveEndDateOfRole() { 
622                TS retVal = this.getTypedField(9, 0);
623                return retVal;
624    }
625
626
627
628
629
630    /** {@inheritDoc} */   
631    protected Type createNewTypeWithoutReflection(int field) {
632       switch (field) {
633          case 0: return new CE(getMessage());
634          case 1: return new XPN(getMessage());
635          case 2: return new XAD(getMessage());
636          case 3: return new PL(getMessage());
637          case 4: return new XTN(getMessage());
638          case 5: return new CE(getMessage());
639          case 6: return new CM_PI(getMessage());
640          case 7: return new TS(getMessage());
641          case 8: return new TS(getMessage());
642          default: return null;
643       }
644   }
645
646
647}
648