001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * Record of transport.
052 */
053@ResourceDef(name="Transport", profile="http://hl7.org/fhir/StructureDefinition/Transport")
054public class Transport extends DomainResource {
055
056    public enum TransportIntent {
057        /**
058         * The intent is not known.  When dealing with Transport, it's not always known (or relevant) how the transport was initiated - i.e. whether it was proposed, planned, ordered or just done spontaneously.
059         */
060        UNKNOWN, 
061        /**
062         * The request is a suggestion made by someone/something that does not have an intention to ensure it occurs and without providing an authorization to act.
063         */
064        PROPOSAL, 
065        /**
066         * The request represents an intention to ensure something occurs without providing an authorization for others to act.
067         */
068        PLAN, 
069        /**
070         * The request represents a request/demand and authorization for action by a Practitioner.
071         */
072        ORDER, 
073        /**
074         * The request represents an original authorization for action.
075         */
076        ORIGINALORDER, 
077        /**
078         * The request represents an automatically generated supplemental authorization for action based on a parent authorization together with initial results of the action taken against that parent authorization.
079         */
080        REFLEXORDER, 
081        /**
082         * The request represents the view of an authorization instantiated by a fulfilling system representing the details of the fulfiller's intention to act upon a submitted order.
083         */
084        FILLERORDER, 
085        /**
086         * An order created in fulfillment of a broader order that represents the authorization for a single activity occurrence.  E.g. The administration of a single dose of a drug.
087         */
088        INSTANCEORDER, 
089        /**
090         * The request represents a component or option for a RequestOrchestration that establishes timing, conditionality and/or other constraints among a set of requests.  Refer to [[[RequestOrchestration]]] for additional information on how this status is used.
091         */
092        OPTION, 
093        /**
094         * added to help the parsers with the generic types
095         */
096        NULL;
097        public static TransportIntent fromCode(String codeString) throws FHIRException {
098            if (codeString == null || "".equals(codeString))
099                return null;
100        if ("unknown".equals(codeString))
101          return UNKNOWN;
102        if ("proposal".equals(codeString))
103          return PROPOSAL;
104        if ("plan".equals(codeString))
105          return PLAN;
106        if ("order".equals(codeString))
107          return ORDER;
108        if ("original-order".equals(codeString))
109          return ORIGINALORDER;
110        if ("reflex-order".equals(codeString))
111          return REFLEXORDER;
112        if ("filler-order".equals(codeString))
113          return FILLERORDER;
114        if ("instance-order".equals(codeString))
115          return INSTANCEORDER;
116        if ("option".equals(codeString))
117          return OPTION;
118        if (Configuration.isAcceptInvalidEnums())
119          return null;
120        else
121          throw new FHIRException("Unknown TransportIntent code '"+codeString+"'");
122        }
123        public String toCode() {
124          switch (this) {
125            case UNKNOWN: return "unknown";
126            case PROPOSAL: return "proposal";
127            case PLAN: return "plan";
128            case ORDER: return "order";
129            case ORIGINALORDER: return "original-order";
130            case REFLEXORDER: return "reflex-order";
131            case FILLERORDER: return "filler-order";
132            case INSTANCEORDER: return "instance-order";
133            case OPTION: return "option";
134            case NULL: return null;
135            default: return "?";
136          }
137        }
138        public String getSystem() {
139          switch (this) {
140            case UNKNOWN: return "http://hl7.org/fhir/transport-intent";
141            case PROPOSAL: return "http://hl7.org/fhir/request-intent";
142            case PLAN: return "http://hl7.org/fhir/request-intent";
143            case ORDER: return "http://hl7.org/fhir/request-intent";
144            case ORIGINALORDER: return "http://hl7.org/fhir/request-intent";
145            case REFLEXORDER: return "http://hl7.org/fhir/request-intent";
146            case FILLERORDER: return "http://hl7.org/fhir/request-intent";
147            case INSTANCEORDER: return "http://hl7.org/fhir/request-intent";
148            case OPTION: return "http://hl7.org/fhir/request-intent";
149            case NULL: return null;
150            default: return "?";
151          }
152        }
153        public String getDefinition() {
154          switch (this) {
155            case UNKNOWN: return "The intent is not known.  When dealing with Transport, it's not always known (or relevant) how the transport was initiated - i.e. whether it was proposed, planned, ordered or just done spontaneously.";
156            case PROPOSAL: return "The request is a suggestion made by someone/something that does not have an intention to ensure it occurs and without providing an authorization to act.";
157            case PLAN: return "The request represents an intention to ensure something occurs without providing an authorization for others to act.";
158            case ORDER: return "The request represents a request/demand and authorization for action by a Practitioner.";
159            case ORIGINALORDER: return "The request represents an original authorization for action.";
160            case REFLEXORDER: return "The request represents an automatically generated supplemental authorization for action based on a parent authorization together with initial results of the action taken against that parent authorization.";
161            case FILLERORDER: return "The request represents the view of an authorization instantiated by a fulfilling system representing the details of the fulfiller's intention to act upon a submitted order.";
162            case INSTANCEORDER: return "An order created in fulfillment of a broader order that represents the authorization for a single activity occurrence.  E.g. The administration of a single dose of a drug.";
163            case OPTION: return "The request represents a component or option for a RequestOrchestration that establishes timing, conditionality and/or other constraints among a set of requests.  Refer to [[[RequestOrchestration]]] for additional information on how this status is used.";
164            case NULL: return null;
165            default: return "?";
166          }
167        }
168        public String getDisplay() {
169          switch (this) {
170            case UNKNOWN: return "Unknown";
171            case PROPOSAL: return "Proposal";
172            case PLAN: return "Plan";
173            case ORDER: return "Order";
174            case ORIGINALORDER: return "Original Order";
175            case REFLEXORDER: return "Reflex Order";
176            case FILLERORDER: return "Filler Order";
177            case INSTANCEORDER: return "Instance Order";
178            case OPTION: return "Option";
179            case NULL: return null;
180            default: return "?";
181          }
182        }
183    }
184
185  public static class TransportIntentEnumFactory implements EnumFactory<TransportIntent> {
186    public TransportIntent fromCode(String codeString) throws IllegalArgumentException {
187      if (codeString == null || "".equals(codeString))
188            if (codeString == null || "".equals(codeString))
189                return null;
190        if ("unknown".equals(codeString))
191          return TransportIntent.UNKNOWN;
192        if ("proposal".equals(codeString))
193          return TransportIntent.PROPOSAL;
194        if ("plan".equals(codeString))
195          return TransportIntent.PLAN;
196        if ("order".equals(codeString))
197          return TransportIntent.ORDER;
198        if ("original-order".equals(codeString))
199          return TransportIntent.ORIGINALORDER;
200        if ("reflex-order".equals(codeString))
201          return TransportIntent.REFLEXORDER;
202        if ("filler-order".equals(codeString))
203          return TransportIntent.FILLERORDER;
204        if ("instance-order".equals(codeString))
205          return TransportIntent.INSTANCEORDER;
206        if ("option".equals(codeString))
207          return TransportIntent.OPTION;
208        throw new IllegalArgumentException("Unknown TransportIntent code '"+codeString+"'");
209        }
210        public Enumeration<TransportIntent> fromType(Base code) throws FHIRException {
211          if (code == null)
212            return null;
213          if (code.isEmpty())
214            return new Enumeration<TransportIntent>(this);
215          String codeString = ((PrimitiveType) code).asStringValue();
216          if (codeString == null || "".equals(codeString))
217            return null;
218        if ("unknown".equals(codeString))
219          return new Enumeration<TransportIntent>(this, TransportIntent.UNKNOWN);
220        if ("proposal".equals(codeString))
221          return new Enumeration<TransportIntent>(this, TransportIntent.PROPOSAL);
222        if ("plan".equals(codeString))
223          return new Enumeration<TransportIntent>(this, TransportIntent.PLAN);
224        if ("order".equals(codeString))
225          return new Enumeration<TransportIntent>(this, TransportIntent.ORDER);
226        if ("original-order".equals(codeString))
227          return new Enumeration<TransportIntent>(this, TransportIntent.ORIGINALORDER);
228        if ("reflex-order".equals(codeString))
229          return new Enumeration<TransportIntent>(this, TransportIntent.REFLEXORDER);
230        if ("filler-order".equals(codeString))
231          return new Enumeration<TransportIntent>(this, TransportIntent.FILLERORDER);
232        if ("instance-order".equals(codeString))
233          return new Enumeration<TransportIntent>(this, TransportIntent.INSTANCEORDER);
234        if ("option".equals(codeString))
235          return new Enumeration<TransportIntent>(this, TransportIntent.OPTION);
236        throw new FHIRException("Unknown TransportIntent code '"+codeString+"'");
237        }
238    public String toCode(TransportIntent code) {
239      if (code == TransportIntent.UNKNOWN)
240        return "unknown";
241      if (code == TransportIntent.PROPOSAL)
242        return "proposal";
243      if (code == TransportIntent.PLAN)
244        return "plan";
245      if (code == TransportIntent.ORDER)
246        return "order";
247      if (code == TransportIntent.ORIGINALORDER)
248        return "original-order";
249      if (code == TransportIntent.REFLEXORDER)
250        return "reflex-order";
251      if (code == TransportIntent.FILLERORDER)
252        return "filler-order";
253      if (code == TransportIntent.INSTANCEORDER)
254        return "instance-order";
255      if (code == TransportIntent.OPTION)
256        return "option";
257      return "?";
258      }
259    public String toSystem(TransportIntent code) {
260      return code.getSystem();
261      }
262    }
263
264    public enum TransportStatus {
265        /**
266         * Transport has started but not completed.
267         */
268        INPROGRESS, 
269        /**
270         * Transport has been completed.
271         */
272        COMPLETED, 
273        /**
274         * Transport was started but not completed.
275         */
276        ABANDONED, 
277        /**
278         * Transport was cancelled before started.
279         */
280        CANCELLED, 
281        /**
282         * Planned transport that is not yet requested.
283         */
284        PLANNED, 
285        /**
286         * This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"abandoned\" rather than \"entered-in-error\".).
287         */
288        ENTEREDINERROR, 
289        /**
290         * added to help the parsers with the generic types
291         */
292        NULL;
293        public static TransportStatus fromCode(String codeString) throws FHIRException {
294            if (codeString == null || "".equals(codeString))
295                return null;
296        if ("in-progress".equals(codeString))
297          return INPROGRESS;
298        if ("completed".equals(codeString))
299          return COMPLETED;
300        if ("abandoned".equals(codeString))
301          return ABANDONED;
302        if ("cancelled".equals(codeString))
303          return CANCELLED;
304        if ("planned".equals(codeString))
305          return PLANNED;
306        if ("entered-in-error".equals(codeString))
307          return ENTEREDINERROR;
308        if (Configuration.isAcceptInvalidEnums())
309          return null;
310        else
311          throw new FHIRException("Unknown TransportStatus code '"+codeString+"'");
312        }
313        public String toCode() {
314          switch (this) {
315            case INPROGRESS: return "in-progress";
316            case COMPLETED: return "completed";
317            case ABANDONED: return "abandoned";
318            case CANCELLED: return "cancelled";
319            case PLANNED: return "planned";
320            case ENTEREDINERROR: return "entered-in-error";
321            case NULL: return null;
322            default: return "?";
323          }
324        }
325        public String getSystem() {
326          switch (this) {
327            case INPROGRESS: return "http://hl7.org/fhir/transport-status";
328            case COMPLETED: return "http://hl7.org/fhir/transport-status";
329            case ABANDONED: return "http://hl7.org/fhir/transport-status";
330            case CANCELLED: return "http://hl7.org/fhir/transport-status";
331            case PLANNED: return "http://hl7.org/fhir/transport-status";
332            case ENTEREDINERROR: return "http://hl7.org/fhir/transport-status";
333            case NULL: return null;
334            default: return "?";
335          }
336        }
337        public String getDefinition() {
338          switch (this) {
339            case INPROGRESS: return "Transport has started but not completed.";
340            case COMPLETED: return "Transport has been completed.";
341            case ABANDONED: return "Transport was started but not completed.";
342            case CANCELLED: return "Transport was cancelled before started.";
343            case PLANNED: return "Planned transport that is not yet requested.";
344            case ENTEREDINERROR: return "This electronic record should never have existed, though it is possible that real-world decisions were based on it. (If real-world activity has occurred, the status should be \"abandoned\" rather than \"entered-in-error\".).";
345            case NULL: return null;
346            default: return "?";
347          }
348        }
349        public String getDisplay() {
350          switch (this) {
351            case INPROGRESS: return "In Progress";
352            case COMPLETED: return "Completed";
353            case ABANDONED: return "Abandoned";
354            case CANCELLED: return "Cancelled";
355            case PLANNED: return "Planned";
356            case ENTEREDINERROR: return "Entered In Error";
357            case NULL: return null;
358            default: return "?";
359          }
360        }
361    }
362
363  public static class TransportStatusEnumFactory implements EnumFactory<TransportStatus> {
364    public TransportStatus fromCode(String codeString) throws IllegalArgumentException {
365      if (codeString == null || "".equals(codeString))
366            if (codeString == null || "".equals(codeString))
367                return null;
368        if ("in-progress".equals(codeString))
369          return TransportStatus.INPROGRESS;
370        if ("completed".equals(codeString))
371          return TransportStatus.COMPLETED;
372        if ("abandoned".equals(codeString))
373          return TransportStatus.ABANDONED;
374        if ("cancelled".equals(codeString))
375          return TransportStatus.CANCELLED;
376        if ("planned".equals(codeString))
377          return TransportStatus.PLANNED;
378        if ("entered-in-error".equals(codeString))
379          return TransportStatus.ENTEREDINERROR;
380        throw new IllegalArgumentException("Unknown TransportStatus code '"+codeString+"'");
381        }
382        public Enumeration<TransportStatus> fromType(Base code) throws FHIRException {
383          if (code == null)
384            return null;
385          if (code.isEmpty())
386            return new Enumeration<TransportStatus>(this);
387          String codeString = ((PrimitiveType) code).asStringValue();
388          if (codeString == null || "".equals(codeString))
389            return null;
390        if ("in-progress".equals(codeString))
391          return new Enumeration<TransportStatus>(this, TransportStatus.INPROGRESS);
392        if ("completed".equals(codeString))
393          return new Enumeration<TransportStatus>(this, TransportStatus.COMPLETED);
394        if ("abandoned".equals(codeString))
395          return new Enumeration<TransportStatus>(this, TransportStatus.ABANDONED);
396        if ("cancelled".equals(codeString))
397          return new Enumeration<TransportStatus>(this, TransportStatus.CANCELLED);
398        if ("planned".equals(codeString))
399          return new Enumeration<TransportStatus>(this, TransportStatus.PLANNED);
400        if ("entered-in-error".equals(codeString))
401          return new Enumeration<TransportStatus>(this, TransportStatus.ENTEREDINERROR);
402        throw new FHIRException("Unknown TransportStatus code '"+codeString+"'");
403        }
404    public String toCode(TransportStatus code) {
405      if (code == TransportStatus.INPROGRESS)
406        return "in-progress";
407      if (code == TransportStatus.COMPLETED)
408        return "completed";
409      if (code == TransportStatus.ABANDONED)
410        return "abandoned";
411      if (code == TransportStatus.CANCELLED)
412        return "cancelled";
413      if (code == TransportStatus.PLANNED)
414        return "planned";
415      if (code == TransportStatus.ENTEREDINERROR)
416        return "entered-in-error";
417      return "?";
418      }
419    public String toSystem(TransportStatus code) {
420      return code.getSystem();
421      }
422    }
423
424    @Block()
425    public static class TransportRestrictionComponent extends BackboneElement implements IBaseBackboneElement {
426        /**
427         * Indicates the number of times the requested action should occur.
428         */
429        @Child(name = "repetitions", type = {PositiveIntType.class}, order=1, min=0, max=1, modifier=false, summary=false)
430        @Description(shortDefinition="How many times to repeat", formalDefinition="Indicates the number of times the requested action should occur." )
431        protected PositiveIntType repetitions;
432
433        /**
434         * Over what time-period is fulfillment sought.
435         */
436        @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false)
437        @Description(shortDefinition="When fulfillment sought", formalDefinition="Over what time-period is fulfillment sought." )
438        protected Period period;
439
440        /**
441         * For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.
442         */
443        @Child(name = "recipient", type = {Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class, Group.class, Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
444        @Description(shortDefinition="For whom is fulfillment sought?", formalDefinition="For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for." )
445        protected List<Reference> recipient;
446
447        private static final long serialVersionUID = 1673996066L;
448
449    /**
450     * Constructor
451     */
452      public TransportRestrictionComponent() {
453        super();
454      }
455
456        /**
457         * @return {@link #repetitions} (Indicates the number of times the requested action should occur.). This is the underlying object with id, value and extensions. The accessor "getRepetitions" gives direct access to the value
458         */
459        public PositiveIntType getRepetitionsElement() { 
460          if (this.repetitions == null)
461            if (Configuration.errorOnAutoCreate())
462              throw new Error("Attempt to auto-create TransportRestrictionComponent.repetitions");
463            else if (Configuration.doAutoCreate())
464              this.repetitions = new PositiveIntType(); // bb
465          return this.repetitions;
466        }
467
468        public boolean hasRepetitionsElement() { 
469          return this.repetitions != null && !this.repetitions.isEmpty();
470        }
471
472        public boolean hasRepetitions() { 
473          return this.repetitions != null && !this.repetitions.isEmpty();
474        }
475
476        /**
477         * @param value {@link #repetitions} (Indicates the number of times the requested action should occur.). This is the underlying object with id, value and extensions. The accessor "getRepetitions" gives direct access to the value
478         */
479        public TransportRestrictionComponent setRepetitionsElement(PositiveIntType value) { 
480          this.repetitions = value;
481          return this;
482        }
483
484        /**
485         * @return Indicates the number of times the requested action should occur.
486         */
487        public int getRepetitions() { 
488          return this.repetitions == null || this.repetitions.isEmpty() ? 0 : this.repetitions.getValue();
489        }
490
491        /**
492         * @param value Indicates the number of times the requested action should occur.
493         */
494        public TransportRestrictionComponent setRepetitions(int value) { 
495            if (this.repetitions == null)
496              this.repetitions = new PositiveIntType();
497            this.repetitions.setValue(value);
498          return this;
499        }
500
501        /**
502         * @return {@link #period} (Over what time-period is fulfillment sought.)
503         */
504        public Period getPeriod() { 
505          if (this.period == null)
506            if (Configuration.errorOnAutoCreate())
507              throw new Error("Attempt to auto-create TransportRestrictionComponent.period");
508            else if (Configuration.doAutoCreate())
509              this.period = new Period(); // cc
510          return this.period;
511        }
512
513        public boolean hasPeriod() { 
514          return this.period != null && !this.period.isEmpty();
515        }
516
517        /**
518         * @param value {@link #period} (Over what time-period is fulfillment sought.)
519         */
520        public TransportRestrictionComponent setPeriod(Period value) { 
521          this.period = value;
522          return this;
523        }
524
525        /**
526         * @return {@link #recipient} (For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.)
527         */
528        public List<Reference> getRecipient() { 
529          if (this.recipient == null)
530            this.recipient = new ArrayList<Reference>();
531          return this.recipient;
532        }
533
534        /**
535         * @return Returns a reference to <code>this</code> for easy method chaining
536         */
537        public TransportRestrictionComponent setRecipient(List<Reference> theRecipient) { 
538          this.recipient = theRecipient;
539          return this;
540        }
541
542        public boolean hasRecipient() { 
543          if (this.recipient == null)
544            return false;
545          for (Reference item : this.recipient)
546            if (!item.isEmpty())
547              return true;
548          return false;
549        }
550
551        public Reference addRecipient() { //3
552          Reference t = new Reference();
553          if (this.recipient == null)
554            this.recipient = new ArrayList<Reference>();
555          this.recipient.add(t);
556          return t;
557        }
558
559        public TransportRestrictionComponent addRecipient(Reference t) { //3
560          if (t == null)
561            return this;
562          if (this.recipient == null)
563            this.recipient = new ArrayList<Reference>();
564          this.recipient.add(t);
565          return this;
566        }
567
568        /**
569         * @return The first repetition of repeating field {@link #recipient}, creating it if it does not already exist {3}
570         */
571        public Reference getRecipientFirstRep() { 
572          if (getRecipient().isEmpty()) {
573            addRecipient();
574          }
575          return getRecipient().get(0);
576        }
577
578        protected void listChildren(List<Property> children) {
579          super.listChildren(children);
580          children.add(new Property("repetitions", "positiveInt", "Indicates the number of times the requested action should occur.", 0, 1, repetitions));
581          children.add(new Property("period", "Period", "Over what time-period is fulfillment sought.", 0, 1, period));
582          children.add(new Property("recipient", "Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|Group|Organization)", "For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.", 0, java.lang.Integer.MAX_VALUE, recipient));
583        }
584
585        @Override
586        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
587          switch (_hash) {
588          case 984367650: /*repetitions*/  return new Property("repetitions", "positiveInt", "Indicates the number of times the requested action should occur.", 0, 1, repetitions);
589          case -991726143: /*period*/  return new Property("period", "Period", "Over what time-period is fulfillment sought.", 0, 1, period);
590          case 820081177: /*recipient*/  return new Property("recipient", "Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|Group|Organization)", "For requests that are targeted to more than one potential recipient/target, to identify who is fulfillment is sought for.", 0, java.lang.Integer.MAX_VALUE, recipient);
591          default: return super.getNamedProperty(_hash, _name, _checkValid);
592          }
593
594        }
595
596      @Override
597      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
598        switch (hash) {
599        case 984367650: /*repetitions*/ return this.repetitions == null ? new Base[0] : new Base[] {this.repetitions}; // PositiveIntType
600        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
601        case 820081177: /*recipient*/ return this.recipient == null ? new Base[0] : this.recipient.toArray(new Base[this.recipient.size()]); // Reference
602        default: return super.getProperty(hash, name, checkValid);
603        }
604
605      }
606
607      @Override
608      public Base setProperty(int hash, String name, Base value) throws FHIRException {
609        switch (hash) {
610        case 984367650: // repetitions
611          this.repetitions = TypeConvertor.castToPositiveInt(value); // PositiveIntType
612          return value;
613        case -991726143: // period
614          this.period = TypeConvertor.castToPeriod(value); // Period
615          return value;
616        case 820081177: // recipient
617          this.getRecipient().add(TypeConvertor.castToReference(value)); // Reference
618          return value;
619        default: return super.setProperty(hash, name, value);
620        }
621
622      }
623
624      @Override
625      public Base setProperty(String name, Base value) throws FHIRException {
626        if (name.equals("repetitions")) {
627          this.repetitions = TypeConvertor.castToPositiveInt(value); // PositiveIntType
628        } else if (name.equals("period")) {
629          this.period = TypeConvertor.castToPeriod(value); // Period
630        } else if (name.equals("recipient")) {
631          this.getRecipient().add(TypeConvertor.castToReference(value));
632        } else
633          return super.setProperty(name, value);
634        return value;
635      }
636
637      @Override
638      public Base makeProperty(int hash, String name) throws FHIRException {
639        switch (hash) {
640        case 984367650:  return getRepetitionsElement();
641        case -991726143:  return getPeriod();
642        case 820081177:  return addRecipient(); 
643        default: return super.makeProperty(hash, name);
644        }
645
646      }
647
648      @Override
649      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
650        switch (hash) {
651        case 984367650: /*repetitions*/ return new String[] {"positiveInt"};
652        case -991726143: /*period*/ return new String[] {"Period"};
653        case 820081177: /*recipient*/ return new String[] {"Reference"};
654        default: return super.getTypesForProperty(hash, name);
655        }
656
657      }
658
659      @Override
660      public Base addChild(String name) throws FHIRException {
661        if (name.equals("repetitions")) {
662          throw new FHIRException("Cannot call addChild on a primitive type Transport.restriction.repetitions");
663        }
664        else if (name.equals("period")) {
665          this.period = new Period();
666          return this.period;
667        }
668        else if (name.equals("recipient")) {
669          return addRecipient();
670        }
671        else
672          return super.addChild(name);
673      }
674
675      public TransportRestrictionComponent copy() {
676        TransportRestrictionComponent dst = new TransportRestrictionComponent();
677        copyValues(dst);
678        return dst;
679      }
680
681      public void copyValues(TransportRestrictionComponent dst) {
682        super.copyValues(dst);
683        dst.repetitions = repetitions == null ? null : repetitions.copy();
684        dst.period = period == null ? null : period.copy();
685        if (recipient != null) {
686          dst.recipient = new ArrayList<Reference>();
687          for (Reference i : recipient)
688            dst.recipient.add(i.copy());
689        };
690      }
691
692      @Override
693      public boolean equalsDeep(Base other_) {
694        if (!super.equalsDeep(other_))
695          return false;
696        if (!(other_ instanceof TransportRestrictionComponent))
697          return false;
698        TransportRestrictionComponent o = (TransportRestrictionComponent) other_;
699        return compareDeep(repetitions, o.repetitions, true) && compareDeep(period, o.period, true) && compareDeep(recipient, o.recipient, true)
700          ;
701      }
702
703      @Override
704      public boolean equalsShallow(Base other_) {
705        if (!super.equalsShallow(other_))
706          return false;
707        if (!(other_ instanceof TransportRestrictionComponent))
708          return false;
709        TransportRestrictionComponent o = (TransportRestrictionComponent) other_;
710        return compareValues(repetitions, o.repetitions, true);
711      }
712
713      public boolean isEmpty() {
714        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(repetitions, period, recipient
715          );
716      }
717
718  public String fhirType() {
719    return "Transport.restriction";
720
721  }
722
723  }
724
725    @Block()
726    public static class ParameterComponent extends BackboneElement implements IBaseBackboneElement {
727        /**
728         * A code or description indicating how the input is intended to be used as part of the transport execution.
729         */
730        @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
731        @Description(shortDefinition="Label for the input", formalDefinition="A code or description indicating how the input is intended to be used as part of the transport execution." )
732        protected CodeableConcept type;
733
734        /**
735         * The value of the input parameter as a basic type.
736         */
737        @Child(name = "value", type = {Base64BinaryType.class, BooleanType.class, CanonicalType.class, CodeType.class, DateType.class, DateTimeType.class, DecimalType.class, IdType.class, InstantType.class, IntegerType.class, Integer64Type.class, MarkdownType.class, OidType.class, PositiveIntType.class, StringType.class, TimeType.class, UnsignedIntType.class, UriType.class, UrlType.class, UuidType.class, Address.class, Age.class, Annotation.class, Attachment.class, CodeableConcept.class, CodeableReference.class, Coding.class, ContactPoint.class, Count.class, Distance.class, Duration.class, HumanName.class, Identifier.class, Money.class, Period.class, Quantity.class, Range.class, Ratio.class, RatioRange.class, Reference.class, SampledData.class, Signature.class, Timing.class, ContactDetail.class, DataRequirement.class, Expression.class, ParameterDefinition.class, RelatedArtifact.class, TriggerDefinition.class, UsageContext.class, Availability.class, ExtendedContactDetail.class, Dosage.class, Meta.class}, order=2, min=1, max=1, modifier=false, summary=false)
738        @Description(shortDefinition="Content to use in performing the transport", formalDefinition="The value of the input parameter as a basic type." )
739        protected DataType value;
740
741        private static final long serialVersionUID = -1659186716L;
742
743    /**
744     * Constructor
745     */
746      public ParameterComponent() {
747        super();
748      }
749
750    /**
751     * Constructor
752     */
753      public ParameterComponent(CodeableConcept type, DataType value) {
754        super();
755        this.setType(type);
756        this.setValue(value);
757      }
758
759        /**
760         * @return {@link #type} (A code or description indicating how the input is intended to be used as part of the transport execution.)
761         */
762        public CodeableConcept getType() { 
763          if (this.type == null)
764            if (Configuration.errorOnAutoCreate())
765              throw new Error("Attempt to auto-create ParameterComponent.type");
766            else if (Configuration.doAutoCreate())
767              this.type = new CodeableConcept(); // cc
768          return this.type;
769        }
770
771        public boolean hasType() { 
772          return this.type != null && !this.type.isEmpty();
773        }
774
775        /**
776         * @param value {@link #type} (A code or description indicating how the input is intended to be used as part of the transport execution.)
777         */
778        public ParameterComponent setType(CodeableConcept value) { 
779          this.type = value;
780          return this;
781        }
782
783        /**
784         * @return {@link #value} (The value of the input parameter as a basic type.)
785         */
786        public DataType getValue() { 
787          return this.value;
788        }
789
790        /**
791         * @return {@link #value} (The value of the input parameter as a basic type.)
792         */
793        public Base64BinaryType getValueBase64BinaryType() throws FHIRException { 
794          if (this.value == null)
795            this.value = new Base64BinaryType();
796          if (!(this.value instanceof Base64BinaryType))
797            throw new FHIRException("Type mismatch: the type Base64BinaryType was expected, but "+this.value.getClass().getName()+" was encountered");
798          return (Base64BinaryType) this.value;
799        }
800
801        public boolean hasValueBase64BinaryType() { 
802          return this != null && this.value instanceof Base64BinaryType;
803        }
804
805        /**
806         * @return {@link #value} (The value of the input parameter as a basic type.)
807         */
808        public BooleanType getValueBooleanType() throws FHIRException { 
809          if (this.value == null)
810            this.value = new BooleanType();
811          if (!(this.value instanceof BooleanType))
812            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
813          return (BooleanType) this.value;
814        }
815
816        public boolean hasValueBooleanType() { 
817          return this != null && this.value instanceof BooleanType;
818        }
819
820        /**
821         * @return {@link #value} (The value of the input parameter as a basic type.)
822         */
823        public CanonicalType getValueCanonicalType() throws FHIRException { 
824          if (this.value == null)
825            this.value = new CanonicalType();
826          if (!(this.value instanceof CanonicalType))
827            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.value.getClass().getName()+" was encountered");
828          return (CanonicalType) this.value;
829        }
830
831        public boolean hasValueCanonicalType() { 
832          return this != null && this.value instanceof CanonicalType;
833        }
834
835        /**
836         * @return {@link #value} (The value of the input parameter as a basic type.)
837         */
838        public CodeType getValueCodeType() throws FHIRException { 
839          if (this.value == null)
840            this.value = new CodeType();
841          if (!(this.value instanceof CodeType))
842            throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered");
843          return (CodeType) this.value;
844        }
845
846        public boolean hasValueCodeType() { 
847          return this != null && this.value instanceof CodeType;
848        }
849
850        /**
851         * @return {@link #value} (The value of the input parameter as a basic type.)
852         */
853        public DateType getValueDateType() throws FHIRException { 
854          if (this.value == null)
855            this.value = new DateType();
856          if (!(this.value instanceof DateType))
857            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
858          return (DateType) this.value;
859        }
860
861        public boolean hasValueDateType() { 
862          return this != null && this.value instanceof DateType;
863        }
864
865        /**
866         * @return {@link #value} (The value of the input parameter as a basic type.)
867         */
868        public DateTimeType getValueDateTimeType() throws FHIRException { 
869          if (this.value == null)
870            this.value = new DateTimeType();
871          if (!(this.value instanceof DateTimeType))
872            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
873          return (DateTimeType) this.value;
874        }
875
876        public boolean hasValueDateTimeType() { 
877          return this != null && this.value instanceof DateTimeType;
878        }
879
880        /**
881         * @return {@link #value} (The value of the input parameter as a basic type.)
882         */
883        public DecimalType getValueDecimalType() throws FHIRException { 
884          if (this.value == null)
885            this.value = new DecimalType();
886          if (!(this.value instanceof DecimalType))
887            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
888          return (DecimalType) this.value;
889        }
890
891        public boolean hasValueDecimalType() { 
892          return this != null && this.value instanceof DecimalType;
893        }
894
895        /**
896         * @return {@link #value} (The value of the input parameter as a basic type.)
897         */
898        public IdType getValueIdType() throws FHIRException { 
899          if (this.value == null)
900            this.value = new IdType();
901          if (!(this.value instanceof IdType))
902            throw new FHIRException("Type mismatch: the type IdType was expected, but "+this.value.getClass().getName()+" was encountered");
903          return (IdType) this.value;
904        }
905
906        public boolean hasValueIdType() { 
907          return this != null && this.value instanceof IdType;
908        }
909
910        /**
911         * @return {@link #value} (The value of the input parameter as a basic type.)
912         */
913        public InstantType getValueInstantType() throws FHIRException { 
914          if (this.value == null)
915            this.value = new InstantType();
916          if (!(this.value instanceof InstantType))
917            throw new FHIRException("Type mismatch: the type InstantType was expected, but "+this.value.getClass().getName()+" was encountered");
918          return (InstantType) this.value;
919        }
920
921        public boolean hasValueInstantType() { 
922          return this != null && this.value instanceof InstantType;
923        }
924
925        /**
926         * @return {@link #value} (The value of the input parameter as a basic type.)
927         */
928        public IntegerType getValueIntegerType() throws FHIRException { 
929          if (this.value == null)
930            this.value = new IntegerType();
931          if (!(this.value instanceof IntegerType))
932            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
933          return (IntegerType) this.value;
934        }
935
936        public boolean hasValueIntegerType() { 
937          return this != null && this.value instanceof IntegerType;
938        }
939
940        /**
941         * @return {@link #value} (The value of the input parameter as a basic type.)
942         */
943        public Integer64Type getValueInteger64Type() throws FHIRException { 
944          if (this.value == null)
945            this.value = new Integer64Type();
946          if (!(this.value instanceof Integer64Type))
947            throw new FHIRException("Type mismatch: the type Integer64Type was expected, but "+this.value.getClass().getName()+" was encountered");
948          return (Integer64Type) this.value;
949        }
950
951        public boolean hasValueInteger64Type() { 
952          return this != null && this.value instanceof Integer64Type;
953        }
954
955        /**
956         * @return {@link #value} (The value of the input parameter as a basic type.)
957         */
958        public MarkdownType getValueMarkdownType() throws FHIRException { 
959          if (this.value == null)
960            this.value = new MarkdownType();
961          if (!(this.value instanceof MarkdownType))
962            throw new FHIRException("Type mismatch: the type MarkdownType was expected, but "+this.value.getClass().getName()+" was encountered");
963          return (MarkdownType) this.value;
964        }
965
966        public boolean hasValueMarkdownType() { 
967          return this != null && this.value instanceof MarkdownType;
968        }
969
970        /**
971         * @return {@link #value} (The value of the input parameter as a basic type.)
972         */
973        public OidType getValueOidType() throws FHIRException { 
974          if (this.value == null)
975            this.value = new OidType();
976          if (!(this.value instanceof OidType))
977            throw new FHIRException("Type mismatch: the type OidType was expected, but "+this.value.getClass().getName()+" was encountered");
978          return (OidType) this.value;
979        }
980
981        public boolean hasValueOidType() { 
982          return this != null && this.value instanceof OidType;
983        }
984
985        /**
986         * @return {@link #value} (The value of the input parameter as a basic type.)
987         */
988        public PositiveIntType getValuePositiveIntType() throws FHIRException { 
989          if (this.value == null)
990            this.value = new PositiveIntType();
991          if (!(this.value instanceof PositiveIntType))
992            throw new FHIRException("Type mismatch: the type PositiveIntType was expected, but "+this.value.getClass().getName()+" was encountered");
993          return (PositiveIntType) this.value;
994        }
995
996        public boolean hasValuePositiveIntType() { 
997          return this != null && this.value instanceof PositiveIntType;
998        }
999
1000        /**
1001         * @return {@link #value} (The value of the input parameter as a basic type.)
1002         */
1003        public StringType getValueStringType() throws FHIRException { 
1004          if (this.value == null)
1005            this.value = new StringType();
1006          if (!(this.value instanceof StringType))
1007            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
1008          return (StringType) this.value;
1009        }
1010
1011        public boolean hasValueStringType() { 
1012          return this != null && this.value instanceof StringType;
1013        }
1014
1015        /**
1016         * @return {@link #value} (The value of the input parameter as a basic type.)
1017         */
1018        public TimeType getValueTimeType() throws FHIRException { 
1019          if (this.value == null)
1020            this.value = new TimeType();
1021          if (!(this.value instanceof TimeType))
1022            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
1023          return (TimeType) this.value;
1024        }
1025
1026        public boolean hasValueTimeType() { 
1027          return this != null && this.value instanceof TimeType;
1028        }
1029
1030        /**
1031         * @return {@link #value} (The value of the input parameter as a basic type.)
1032         */
1033        public UnsignedIntType getValueUnsignedIntType() throws FHIRException { 
1034          if (this.value == null)
1035            this.value = new UnsignedIntType();
1036          if (!(this.value instanceof UnsignedIntType))
1037            throw new FHIRException("Type mismatch: the type UnsignedIntType was expected, but "+this.value.getClass().getName()+" was encountered");
1038          return (UnsignedIntType) this.value;
1039        }
1040
1041        public boolean hasValueUnsignedIntType() { 
1042          return this != null && this.value instanceof UnsignedIntType;
1043        }
1044
1045        /**
1046         * @return {@link #value} (The value of the input parameter as a basic type.)
1047         */
1048        public UriType getValueUriType() throws FHIRException { 
1049          if (this.value == null)
1050            this.value = new UriType();
1051          if (!(this.value instanceof UriType))
1052            throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.value.getClass().getName()+" was encountered");
1053          return (UriType) this.value;
1054        }
1055
1056        public boolean hasValueUriType() { 
1057          return this != null && this.value instanceof UriType;
1058        }
1059
1060        /**
1061         * @return {@link #value} (The value of the input parameter as a basic type.)
1062         */
1063        public UrlType getValueUrlType() throws FHIRException { 
1064          if (this.value == null)
1065            this.value = new UrlType();
1066          if (!(this.value instanceof UrlType))
1067            throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.value.getClass().getName()+" was encountered");
1068          return (UrlType) this.value;
1069        }
1070
1071        public boolean hasValueUrlType() { 
1072          return this != null && this.value instanceof UrlType;
1073        }
1074
1075        /**
1076         * @return {@link #value} (The value of the input parameter as a basic type.)
1077         */
1078        public UuidType getValueUuidType() throws FHIRException { 
1079          if (this.value == null)
1080            this.value = new UuidType();
1081          if (!(this.value instanceof UuidType))
1082            throw new FHIRException("Type mismatch: the type UuidType was expected, but "+this.value.getClass().getName()+" was encountered");
1083          return (UuidType) this.value;
1084        }
1085
1086        public boolean hasValueUuidType() { 
1087          return this != null && this.value instanceof UuidType;
1088        }
1089
1090        /**
1091         * @return {@link #value} (The value of the input parameter as a basic type.)
1092         */
1093        public Address getValueAddress() throws FHIRException { 
1094          if (this.value == null)
1095            this.value = new Address();
1096          if (!(this.value instanceof Address))
1097            throw new FHIRException("Type mismatch: the type Address was expected, but "+this.value.getClass().getName()+" was encountered");
1098          return (Address) this.value;
1099        }
1100
1101        public boolean hasValueAddress() { 
1102          return this != null && this.value instanceof Address;
1103        }
1104
1105        /**
1106         * @return {@link #value} (The value of the input parameter as a basic type.)
1107         */
1108        public Age getValueAge() throws FHIRException { 
1109          if (this.value == null)
1110            this.value = new Age();
1111          if (!(this.value instanceof Age))
1112            throw new FHIRException("Type mismatch: the type Age was expected, but "+this.value.getClass().getName()+" was encountered");
1113          return (Age) this.value;
1114        }
1115
1116        public boolean hasValueAge() { 
1117          return this != null && this.value instanceof Age;
1118        }
1119
1120        /**
1121         * @return {@link #value} (The value of the input parameter as a basic type.)
1122         */
1123        public Annotation getValueAnnotation() throws FHIRException { 
1124          if (this.value == null)
1125            this.value = new Annotation();
1126          if (!(this.value instanceof Annotation))
1127            throw new FHIRException("Type mismatch: the type Annotation was expected, but "+this.value.getClass().getName()+" was encountered");
1128          return (Annotation) this.value;
1129        }
1130
1131        public boolean hasValueAnnotation() { 
1132          return this != null && this.value instanceof Annotation;
1133        }
1134
1135        /**
1136         * @return {@link #value} (The value of the input parameter as a basic type.)
1137         */
1138        public Attachment getValueAttachment() throws FHIRException { 
1139          if (this.value == null)
1140            this.value = new Attachment();
1141          if (!(this.value instanceof Attachment))
1142            throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered");
1143          return (Attachment) this.value;
1144        }
1145
1146        public boolean hasValueAttachment() { 
1147          return this != null && this.value instanceof Attachment;
1148        }
1149
1150        /**
1151         * @return {@link #value} (The value of the input parameter as a basic type.)
1152         */
1153        public CodeableConcept getValueCodeableConcept() throws FHIRException { 
1154          if (this.value == null)
1155            this.value = new CodeableConcept();
1156          if (!(this.value instanceof CodeableConcept))
1157            throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered");
1158          return (CodeableConcept) this.value;
1159        }
1160
1161        public boolean hasValueCodeableConcept() { 
1162          return this != null && this.value instanceof CodeableConcept;
1163        }
1164
1165        /**
1166         * @return {@link #value} (The value of the input parameter as a basic type.)
1167         */
1168        public CodeableReference getValueCodeableReference() throws FHIRException { 
1169          if (this.value == null)
1170            this.value = new CodeableReference();
1171          if (!(this.value instanceof CodeableReference))
1172            throw new FHIRException("Type mismatch: the type CodeableReference was expected, but "+this.value.getClass().getName()+" was encountered");
1173          return (CodeableReference) this.value;
1174        }
1175
1176        public boolean hasValueCodeableReference() { 
1177          return this != null && this.value instanceof CodeableReference;
1178        }
1179
1180        /**
1181         * @return {@link #value} (The value of the input parameter as a basic type.)
1182         */
1183        public Coding getValueCoding() throws FHIRException { 
1184          if (this.value == null)
1185            this.value = new Coding();
1186          if (!(this.value instanceof Coding))
1187            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
1188          return (Coding) this.value;
1189        }
1190
1191        public boolean hasValueCoding() { 
1192          return this != null && this.value instanceof Coding;
1193        }
1194
1195        /**
1196         * @return {@link #value} (The value of the input parameter as a basic type.)
1197         */
1198        public ContactPoint getValueContactPoint() throws FHIRException { 
1199          if (this.value == null)
1200            this.value = new ContactPoint();
1201          if (!(this.value instanceof ContactPoint))
1202            throw new FHIRException("Type mismatch: the type ContactPoint was expected, but "+this.value.getClass().getName()+" was encountered");
1203          return (ContactPoint) this.value;
1204        }
1205
1206        public boolean hasValueContactPoint() { 
1207          return this != null && this.value instanceof ContactPoint;
1208        }
1209
1210        /**
1211         * @return {@link #value} (The value of the input parameter as a basic type.)
1212         */
1213        public Count getValueCount() throws FHIRException { 
1214          if (this.value == null)
1215            this.value = new Count();
1216          if (!(this.value instanceof Count))
1217            throw new FHIRException("Type mismatch: the type Count was expected, but "+this.value.getClass().getName()+" was encountered");
1218          return (Count) this.value;
1219        }
1220
1221        public boolean hasValueCount() { 
1222          return this != null && this.value instanceof Count;
1223        }
1224
1225        /**
1226         * @return {@link #value} (The value of the input parameter as a basic type.)
1227         */
1228        public Distance getValueDistance() throws FHIRException { 
1229          if (this.value == null)
1230            this.value = new Distance();
1231          if (!(this.value instanceof Distance))
1232            throw new FHIRException("Type mismatch: the type Distance was expected, but "+this.value.getClass().getName()+" was encountered");
1233          return (Distance) this.value;
1234        }
1235
1236        public boolean hasValueDistance() { 
1237          return this != null && this.value instanceof Distance;
1238        }
1239
1240        /**
1241         * @return {@link #value} (The value of the input parameter as a basic type.)
1242         */
1243        public Duration getValueDuration() throws FHIRException { 
1244          if (this.value == null)
1245            this.value = new Duration();
1246          if (!(this.value instanceof Duration))
1247            throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.value.getClass().getName()+" was encountered");
1248          return (Duration) this.value;
1249        }
1250
1251        public boolean hasValueDuration() { 
1252          return this != null && this.value instanceof Duration;
1253        }
1254
1255        /**
1256         * @return {@link #value} (The value of the input parameter as a basic type.)
1257         */
1258        public HumanName getValueHumanName() throws FHIRException { 
1259          if (this.value == null)
1260            this.value = new HumanName();
1261          if (!(this.value instanceof HumanName))
1262            throw new FHIRException("Type mismatch: the type HumanName was expected, but "+this.value.getClass().getName()+" was encountered");
1263          return (HumanName) this.value;
1264        }
1265
1266        public boolean hasValueHumanName() { 
1267          return this != null && this.value instanceof HumanName;
1268        }
1269
1270        /**
1271         * @return {@link #value} (The value of the input parameter as a basic type.)
1272         */
1273        public Identifier getValueIdentifier() throws FHIRException { 
1274          if (this.value == null)
1275            this.value = new Identifier();
1276          if (!(this.value instanceof Identifier))
1277            throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.value.getClass().getName()+" was encountered");
1278          return (Identifier) this.value;
1279        }
1280
1281        public boolean hasValueIdentifier() { 
1282          return this != null && this.value instanceof Identifier;
1283        }
1284
1285        /**
1286         * @return {@link #value} (The value of the input parameter as a basic type.)
1287         */
1288        public Money getValueMoney() throws FHIRException { 
1289          if (this.value == null)
1290            this.value = new Money();
1291          if (!(this.value instanceof Money))
1292            throw new FHIRException("Type mismatch: the type Money was expected, but "+this.value.getClass().getName()+" was encountered");
1293          return (Money) this.value;
1294        }
1295
1296        public boolean hasValueMoney() { 
1297          return this != null && this.value instanceof Money;
1298        }
1299
1300        /**
1301         * @return {@link #value} (The value of the input parameter as a basic type.)
1302         */
1303        public Period getValuePeriod() throws FHIRException { 
1304          if (this.value == null)
1305            this.value = new Period();
1306          if (!(this.value instanceof Period))
1307            throw new FHIRException("Type mismatch: the type Period was expected, but "+this.value.getClass().getName()+" was encountered");
1308          return (Period) this.value;
1309        }
1310
1311        public boolean hasValuePeriod() { 
1312          return this != null && this.value instanceof Period;
1313        }
1314
1315        /**
1316         * @return {@link #value} (The value of the input parameter as a basic type.)
1317         */
1318        public Quantity getValueQuantity() throws FHIRException { 
1319          if (this.value == null)
1320            this.value = new Quantity();
1321          if (!(this.value instanceof Quantity))
1322            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
1323          return (Quantity) this.value;
1324        }
1325
1326        public boolean hasValueQuantity() { 
1327          return this != null && this.value instanceof Quantity;
1328        }
1329
1330        /**
1331         * @return {@link #value} (The value of the input parameter as a basic type.)
1332         */
1333        public Range getValueRange() throws FHIRException { 
1334          if (this.value == null)
1335            this.value = new Range();
1336          if (!(this.value instanceof Range))
1337            throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered");
1338          return (Range) this.value;
1339        }
1340
1341        public boolean hasValueRange() { 
1342          return this != null && this.value instanceof Range;
1343        }
1344
1345        /**
1346         * @return {@link #value} (The value of the input parameter as a basic type.)
1347         */
1348        public Ratio getValueRatio() throws FHIRException { 
1349          if (this.value == null)
1350            this.value = new Ratio();
1351          if (!(this.value instanceof Ratio))
1352            throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.value.getClass().getName()+" was encountered");
1353          return (Ratio) this.value;
1354        }
1355
1356        public boolean hasValueRatio() { 
1357          return this != null && this.value instanceof Ratio;
1358        }
1359
1360        /**
1361         * @return {@link #value} (The value of the input parameter as a basic type.)
1362         */
1363        public RatioRange getValueRatioRange() throws FHIRException { 
1364          if (this.value == null)
1365            this.value = new RatioRange();
1366          if (!(this.value instanceof RatioRange))
1367            throw new FHIRException("Type mismatch: the type RatioRange was expected, but "+this.value.getClass().getName()+" was encountered");
1368          return (RatioRange) this.value;
1369        }
1370
1371        public boolean hasValueRatioRange() { 
1372          return this != null && this.value instanceof RatioRange;
1373        }
1374
1375        /**
1376         * @return {@link #value} (The value of the input parameter as a basic type.)
1377         */
1378        public Reference getValueReference() throws FHIRException { 
1379          if (this.value == null)
1380            this.value = new Reference();
1381          if (!(this.value instanceof Reference))
1382            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered");
1383          return (Reference) this.value;
1384        }
1385
1386        public boolean hasValueReference() { 
1387          return this != null && this.value instanceof Reference;
1388        }
1389
1390        /**
1391         * @return {@link #value} (The value of the input parameter as a basic type.)
1392         */
1393        public SampledData getValueSampledData() throws FHIRException { 
1394          if (this.value == null)
1395            this.value = new SampledData();
1396          if (!(this.value instanceof SampledData))
1397            throw new FHIRException("Type mismatch: the type SampledData was expected, but "+this.value.getClass().getName()+" was encountered");
1398          return (SampledData) this.value;
1399        }
1400
1401        public boolean hasValueSampledData() { 
1402          return this != null && this.value instanceof SampledData;
1403        }
1404
1405        /**
1406         * @return {@link #value} (The value of the input parameter as a basic type.)
1407         */
1408        public Signature getValueSignature() throws FHIRException { 
1409          if (this.value == null)
1410            this.value = new Signature();
1411          if (!(this.value instanceof Signature))
1412            throw new FHIRException("Type mismatch: the type Signature was expected, but "+this.value.getClass().getName()+" was encountered");
1413          return (Signature) this.value;
1414        }
1415
1416        public boolean hasValueSignature() { 
1417          return this != null && this.value instanceof Signature;
1418        }
1419
1420        /**
1421         * @return {@link #value} (The value of the input parameter as a basic type.)
1422         */
1423        public Timing getValueTiming() throws FHIRException { 
1424          if (this.value == null)
1425            this.value = new Timing();
1426          if (!(this.value instanceof Timing))
1427            throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.value.getClass().getName()+" was encountered");
1428          return (Timing) this.value;
1429        }
1430
1431        public boolean hasValueTiming() { 
1432          return this != null && this.value instanceof Timing;
1433        }
1434
1435        /**
1436         * @return {@link #value} (The value of the input parameter as a basic type.)
1437         */
1438        public ContactDetail getValueContactDetail() throws FHIRException { 
1439          if (this.value == null)
1440            this.value = new ContactDetail();
1441          if (!(this.value instanceof ContactDetail))
1442            throw new FHIRException("Type mismatch: the type ContactDetail was expected, but "+this.value.getClass().getName()+" was encountered");
1443          return (ContactDetail) this.value;
1444        }
1445
1446        public boolean hasValueContactDetail() { 
1447          return this != null && this.value instanceof ContactDetail;
1448        }
1449
1450        /**
1451         * @return {@link #value} (The value of the input parameter as a basic type.)
1452         */
1453        public DataRequirement getValueDataRequirement() throws FHIRException { 
1454          if (this.value == null)
1455            this.value = new DataRequirement();
1456          if (!(this.value instanceof DataRequirement))
1457            throw new FHIRException("Type mismatch: the type DataRequirement was expected, but "+this.value.getClass().getName()+" was encountered");
1458          return (DataRequirement) this.value;
1459        }
1460
1461        public boolean hasValueDataRequirement() { 
1462          return this != null && this.value instanceof DataRequirement;
1463        }
1464
1465        /**
1466         * @return {@link #value} (The value of the input parameter as a basic type.)
1467         */
1468        public Expression getValueExpression() throws FHIRException { 
1469          if (this.value == null)
1470            this.value = new Expression();
1471          if (!(this.value instanceof Expression))
1472            throw new FHIRException("Type mismatch: the type Expression was expected, but "+this.value.getClass().getName()+" was encountered");
1473          return (Expression) this.value;
1474        }
1475
1476        public boolean hasValueExpression() { 
1477          return this != null && this.value instanceof Expression;
1478        }
1479
1480        /**
1481         * @return {@link #value} (The value of the input parameter as a basic type.)
1482         */
1483        public ParameterDefinition getValueParameterDefinition() throws FHIRException { 
1484          if (this.value == null)
1485            this.value = new ParameterDefinition();
1486          if (!(this.value instanceof ParameterDefinition))
1487            throw new FHIRException("Type mismatch: the type ParameterDefinition was expected, but "+this.value.getClass().getName()+" was encountered");
1488          return (ParameterDefinition) this.value;
1489        }
1490
1491        public boolean hasValueParameterDefinition() { 
1492          return this != null && this.value instanceof ParameterDefinition;
1493        }
1494
1495        /**
1496         * @return {@link #value} (The value of the input parameter as a basic type.)
1497         */
1498        public RelatedArtifact getValueRelatedArtifact() throws FHIRException { 
1499          if (this.value == null)
1500            this.value = new RelatedArtifact();
1501          if (!(this.value instanceof RelatedArtifact))
1502            throw new FHIRException("Type mismatch: the type RelatedArtifact was expected, but "+this.value.getClass().getName()+" was encountered");
1503          return (RelatedArtifact) this.value;
1504        }
1505
1506        public boolean hasValueRelatedArtifact() { 
1507          return this != null && this.value instanceof RelatedArtifact;
1508        }
1509
1510        /**
1511         * @return {@link #value} (The value of the input parameter as a basic type.)
1512         */
1513        public TriggerDefinition getValueTriggerDefinition() throws FHIRException { 
1514          if (this.value == null)
1515            this.value = new TriggerDefinition();
1516          if (!(this.value instanceof TriggerDefinition))
1517            throw new FHIRException("Type mismatch: the type TriggerDefinition was expected, but "+this.value.getClass().getName()+" was encountered");
1518          return (TriggerDefinition) this.value;
1519        }
1520
1521        public boolean hasValueTriggerDefinition() { 
1522          return this != null && this.value instanceof TriggerDefinition;
1523        }
1524
1525        /**
1526         * @return {@link #value} (The value of the input parameter as a basic type.)
1527         */
1528        public UsageContext getValueUsageContext() throws FHIRException { 
1529          if (this.value == null)
1530            this.value = new UsageContext();
1531          if (!(this.value instanceof UsageContext))
1532            throw new FHIRException("Type mismatch: the type UsageContext was expected, but "+this.value.getClass().getName()+" was encountered");
1533          return (UsageContext) this.value;
1534        }
1535
1536        public boolean hasValueUsageContext() { 
1537          return this != null && this.value instanceof UsageContext;
1538        }
1539
1540        /**
1541         * @return {@link #value} (The value of the input parameter as a basic type.)
1542         */
1543        public Availability getValueAvailability() throws FHIRException { 
1544          if (this.value == null)
1545            this.value = new Availability();
1546          if (!(this.value instanceof Availability))
1547            throw new FHIRException("Type mismatch: the type Availability was expected, but "+this.value.getClass().getName()+" was encountered");
1548          return (Availability) this.value;
1549        }
1550
1551        public boolean hasValueAvailability() { 
1552          return this != null && this.value instanceof Availability;
1553        }
1554
1555        /**
1556         * @return {@link #value} (The value of the input parameter as a basic type.)
1557         */
1558        public ExtendedContactDetail getValueExtendedContactDetail() throws FHIRException { 
1559          if (this.value == null)
1560            this.value = new ExtendedContactDetail();
1561          if (!(this.value instanceof ExtendedContactDetail))
1562            throw new FHIRException("Type mismatch: the type ExtendedContactDetail was expected, but "+this.value.getClass().getName()+" was encountered");
1563          return (ExtendedContactDetail) this.value;
1564        }
1565
1566        public boolean hasValueExtendedContactDetail() { 
1567          return this != null && this.value instanceof ExtendedContactDetail;
1568        }
1569
1570        /**
1571         * @return {@link #value} (The value of the input parameter as a basic type.)
1572         */
1573        public Dosage getValueDosage() throws FHIRException { 
1574          if (this.value == null)
1575            this.value = new Dosage();
1576          if (!(this.value instanceof Dosage))
1577            throw new FHIRException("Type mismatch: the type Dosage was expected, but "+this.value.getClass().getName()+" was encountered");
1578          return (Dosage) this.value;
1579        }
1580
1581        public boolean hasValueDosage() { 
1582          return this != null && this.value instanceof Dosage;
1583        }
1584
1585        /**
1586         * @return {@link #value} (The value of the input parameter as a basic type.)
1587         */
1588        public Meta getValueMeta() throws FHIRException { 
1589          if (this.value == null)
1590            this.value = new Meta();
1591          if (!(this.value instanceof Meta))
1592            throw new FHIRException("Type mismatch: the type Meta was expected, but "+this.value.getClass().getName()+" was encountered");
1593          return (Meta) this.value;
1594        }
1595
1596        public boolean hasValueMeta() { 
1597          return this != null && this.value instanceof Meta;
1598        }
1599
1600        public boolean hasValue() { 
1601          return this.value != null && !this.value.isEmpty();
1602        }
1603
1604        /**
1605         * @param value {@link #value} (The value of the input parameter as a basic type.)
1606         */
1607        public ParameterComponent setValue(DataType value) { 
1608          if (value != null && !(value instanceof Base64BinaryType || value instanceof BooleanType || value instanceof CanonicalType || value instanceof CodeType || value instanceof DateType || value instanceof DateTimeType || value instanceof DecimalType || value instanceof IdType || value instanceof InstantType || value instanceof IntegerType || value instanceof Integer64Type || value instanceof MarkdownType || value instanceof OidType || value instanceof PositiveIntType || value instanceof StringType || value instanceof TimeType || value instanceof UnsignedIntType || value instanceof UriType || value instanceof UrlType || value instanceof UuidType || value instanceof Address || value instanceof Age || value instanceof Annotation || value instanceof Attachment || value instanceof CodeableConcept || value instanceof CodeableReference || value instanceof Coding || value instanceof ContactPoint || value instanceof Count || value instanceof Distance || value instanceof Duration || value instanceof HumanName || value instanceof Identifier || value instanceof Money || value instanceof Period || value instanceof Quantity || value instanceof Range || value instanceof Ratio || value instanceof RatioRange || value instanceof Reference || value instanceof SampledData || value instanceof Signature || value instanceof Timing || value instanceof ContactDetail || value instanceof DataRequirement || value instanceof Expression || value instanceof ParameterDefinition || value instanceof RelatedArtifact || value instanceof TriggerDefinition || value instanceof UsageContext || value instanceof Availability || value instanceof ExtendedContactDetail || value instanceof Dosage || value instanceof Meta))
1609            throw new Error("Not the right type for Transport.input.value[x]: "+value.fhirType());
1610          this.value = value;
1611          return this;
1612        }
1613
1614        protected void listChildren(List<Property> children) {
1615          super.listChildren(children);
1616          children.add(new Property("type", "CodeableConcept", "A code or description indicating how the input is intended to be used as part of the transport execution.", 0, 1, type));
1617          children.add(new Property("value[x]", "base64Binary|boolean|canonical|code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta", "The value of the input parameter as a basic type.", 0, 1, value));
1618        }
1619
1620        @Override
1621        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1622          switch (_hash) {
1623          case 3575610: /*type*/  return new Property("type", "CodeableConcept", "A code or description indicating how the input is intended to be used as part of the transport execution.", 0, 1, type);
1624          case -1410166417: /*value[x]*/  return new Property("value[x]", "base64Binary|boolean|canonical|code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta", "The value of the input parameter as a basic type.", 0, 1, value);
1625          case 111972721: /*value*/  return new Property("value[x]", "base64Binary|boolean|canonical|code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta", "The value of the input parameter as a basic type.", 0, 1, value);
1626          case -1535024575: /*valueBase64Binary*/  return new Property("value[x]", "base64Binary", "The value of the input parameter as a basic type.", 0, 1, value);
1627          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "The value of the input parameter as a basic type.", 0, 1, value);
1628          case -786218365: /*valueCanonical*/  return new Property("value[x]", "canonical", "The value of the input parameter as a basic type.", 0, 1, value);
1629          case -766209282: /*valueCode*/  return new Property("value[x]", "code", "The value of the input parameter as a basic type.", 0, 1, value);
1630          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "The value of the input parameter as a basic type.", 0, 1, value);
1631          case 1047929900: /*valueDateTime*/  return new Property("value[x]", "dateTime", "The value of the input parameter as a basic type.", 0, 1, value);
1632          case -2083993440: /*valueDecimal*/  return new Property("value[x]", "decimal", "The value of the input parameter as a basic type.", 0, 1, value);
1633          case 231604844: /*valueId*/  return new Property("value[x]", "id", "The value of the input parameter as a basic type.", 0, 1, value);
1634          case -1668687056: /*valueInstant*/  return new Property("value[x]", "instant", "The value of the input parameter as a basic type.", 0, 1, value);
1635          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "The value of the input parameter as a basic type.", 0, 1, value);
1636          case -1122120181: /*valueInteger64*/  return new Property("value[x]", "integer64", "The value of the input parameter as a basic type.", 0, 1, value);
1637          case -497880704: /*valueMarkdown*/  return new Property("value[x]", "markdown", "The value of the input parameter as a basic type.", 0, 1, value);
1638          case -1410178407: /*valueOid*/  return new Property("value[x]", "oid", "The value of the input parameter as a basic type.", 0, 1, value);
1639          case -1249932027: /*valuePositiveInt*/  return new Property("value[x]", "positiveInt", "The value of the input parameter as a basic type.", 0, 1, value);
1640          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "The value of the input parameter as a basic type.", 0, 1, value);
1641          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "The value of the input parameter as a basic type.", 0, 1, value);
1642          case 26529417: /*valueUnsignedInt*/  return new Property("value[x]", "unsignedInt", "The value of the input parameter as a basic type.", 0, 1, value);
1643          case -1410172357: /*valueUri*/  return new Property("value[x]", "uri", "The value of the input parameter as a basic type.", 0, 1, value);
1644          case -1410172354: /*valueUrl*/  return new Property("value[x]", "url", "The value of the input parameter as a basic type.", 0, 1, value);
1645          case -765667124: /*valueUuid*/  return new Property("value[x]", "uuid", "The value of the input parameter as a basic type.", 0, 1, value);
1646          case -478981821: /*valueAddress*/  return new Property("value[x]", "Address", "The value of the input parameter as a basic type.", 0, 1, value);
1647          case -1410191922: /*valueAge*/  return new Property("value[x]", "Age", "The value of the input parameter as a basic type.", 0, 1, value);
1648          case -67108992: /*valueAnnotation*/  return new Property("value[x]", "Annotation", "The value of the input parameter as a basic type.", 0, 1, value);
1649          case -475566732: /*valueAttachment*/  return new Property("value[x]", "Attachment", "The value of the input parameter as a basic type.", 0, 1, value);
1650          case 924902896: /*valueCodeableConcept*/  return new Property("value[x]", "CodeableConcept", "The value of the input parameter as a basic type.", 0, 1, value);
1651          case -257955629: /*valueCodeableReference*/  return new Property("value[x]", "CodeableReference", "The value of the input parameter as a basic type.", 0, 1, value);
1652          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "The value of the input parameter as a basic type.", 0, 1, value);
1653          case 944904545: /*valueContactPoint*/  return new Property("value[x]", "ContactPoint", "The value of the input parameter as a basic type.", 0, 1, value);
1654          case 2017332766: /*valueCount*/  return new Property("value[x]", "Count", "The value of the input parameter as a basic type.", 0, 1, value);
1655          case -456359802: /*valueDistance*/  return new Property("value[x]", "Distance", "The value of the input parameter as a basic type.", 0, 1, value);
1656          case 1558135333: /*valueDuration*/  return new Property("value[x]", "Duration", "The value of the input parameter as a basic type.", 0, 1, value);
1657          case -2026205465: /*valueHumanName*/  return new Property("value[x]", "HumanName", "The value of the input parameter as a basic type.", 0, 1, value);
1658          case -130498310: /*valueIdentifier*/  return new Property("value[x]", "Identifier", "The value of the input parameter as a basic type.", 0, 1, value);
1659          case 2026560975: /*valueMoney*/  return new Property("value[x]", "Money", "The value of the input parameter as a basic type.", 0, 1, value);
1660          case -1524344174: /*valuePeriod*/  return new Property("value[x]", "Period", "The value of the input parameter as a basic type.", 0, 1, value);
1661          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "The value of the input parameter as a basic type.", 0, 1, value);
1662          case 2030761548: /*valueRange*/  return new Property("value[x]", "Range", "The value of the input parameter as a basic type.", 0, 1, value);
1663          case 2030767386: /*valueRatio*/  return new Property("value[x]", "Ratio", "The value of the input parameter as a basic type.", 0, 1, value);
1664          case -706454461: /*valueRatioRange*/  return new Property("value[x]", "RatioRange", "The value of the input parameter as a basic type.", 0, 1, value);
1665          case 1755241690: /*valueReference*/  return new Property("value[x]", "Reference", "The value of the input parameter as a basic type.", 0, 1, value);
1666          case -962229101: /*valueSampledData*/  return new Property("value[x]", "SampledData", "The value of the input parameter as a basic type.", 0, 1, value);
1667          case -540985785: /*valueSignature*/  return new Property("value[x]", "Signature", "The value of the input parameter as a basic type.", 0, 1, value);
1668          case -1406282469: /*valueTiming*/  return new Property("value[x]", "Timing", "The value of the input parameter as a basic type.", 0, 1, value);
1669          case -1125200224: /*valueContactDetail*/  return new Property("value[x]", "ContactDetail", "The value of the input parameter as a basic type.", 0, 1, value);
1670          case 1710554248: /*valueDataRequirement*/  return new Property("value[x]", "DataRequirement", "The value of the input parameter as a basic type.", 0, 1, value);
1671          case -307517719: /*valueExpression*/  return new Property("value[x]", "Expression", "The value of the input parameter as a basic type.", 0, 1, value);
1672          case 1387478187: /*valueParameterDefinition*/  return new Property("value[x]", "ParameterDefinition", "The value of the input parameter as a basic type.", 0, 1, value);
1673          case 1748214124: /*valueRelatedArtifact*/  return new Property("value[x]", "RelatedArtifact", "The value of the input parameter as a basic type.", 0, 1, value);
1674          case 976830394: /*valueTriggerDefinition*/  return new Property("value[x]", "TriggerDefinition", "The value of the input parameter as a basic type.", 0, 1, value);
1675          case 588000479: /*valueUsageContext*/  return new Property("value[x]", "UsageContext", "The value of the input parameter as a basic type.", 0, 1, value);
1676          case 1678530924: /*valueAvailability*/  return new Property("value[x]", "Availability", "The value of the input parameter as a basic type.", 0, 1, value);
1677          case -1567222041: /*valueExtendedContactDetail*/  return new Property("value[x]", "ExtendedContactDetail", "The value of the input parameter as a basic type.", 0, 1, value);
1678          case -1858636920: /*valueDosage*/  return new Property("value[x]", "Dosage", "The value of the input parameter as a basic type.", 0, 1, value);
1679          case -765920490: /*valueMeta*/  return new Property("value[x]", "Meta", "The value of the input parameter as a basic type.", 0, 1, value);
1680          default: return super.getNamedProperty(_hash, _name, _checkValid);
1681          }
1682
1683        }
1684
1685      @Override
1686      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1687        switch (hash) {
1688        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
1689        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
1690        default: return super.getProperty(hash, name, checkValid);
1691        }
1692
1693      }
1694
1695      @Override
1696      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1697        switch (hash) {
1698        case 3575610: // type
1699          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1700          return value;
1701        case 111972721: // value
1702          this.value = TypeConvertor.castToType(value); // DataType
1703          return value;
1704        default: return super.setProperty(hash, name, value);
1705        }
1706
1707      }
1708
1709      @Override
1710      public Base setProperty(String name, Base value) throws FHIRException {
1711        if (name.equals("type")) {
1712          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1713        } else if (name.equals("value[x]")) {
1714          this.value = TypeConvertor.castToType(value); // DataType
1715        } else
1716          return super.setProperty(name, value);
1717        return value;
1718      }
1719
1720      @Override
1721      public Base makeProperty(int hash, String name) throws FHIRException {
1722        switch (hash) {
1723        case 3575610:  return getType();
1724        case -1410166417:  return getValue();
1725        case 111972721:  return getValue();
1726        default: return super.makeProperty(hash, name);
1727        }
1728
1729      }
1730
1731      @Override
1732      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1733        switch (hash) {
1734        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
1735        case 111972721: /*value*/ return new String[] {"base64Binary", "boolean", "canonical", "code", "date", "dateTime", "decimal", "id", "instant", "integer", "integer64", "markdown", "oid", "positiveInt", "string", "time", "unsignedInt", "uri", "url", "uuid", "Address", "Age", "Annotation", "Attachment", "CodeableConcept", "CodeableReference", "Coding", "ContactPoint", "Count", "Distance", "Duration", "HumanName", "Identifier", "Money", "Period", "Quantity", "Range", "Ratio", "RatioRange", "Reference", "SampledData", "Signature", "Timing", "ContactDetail", "DataRequirement", "Expression", "ParameterDefinition", "RelatedArtifact", "TriggerDefinition", "UsageContext", "Availability", "ExtendedContactDetail", "Dosage", "Meta"};
1736        default: return super.getTypesForProperty(hash, name);
1737        }
1738
1739      }
1740
1741      @Override
1742      public Base addChild(String name) throws FHIRException {
1743        if (name.equals("type")) {
1744          this.type = new CodeableConcept();
1745          return this.type;
1746        }
1747        else if (name.equals("valueBase64Binary")) {
1748          this.value = new Base64BinaryType();
1749          return this.value;
1750        }
1751        else if (name.equals("valueBoolean")) {
1752          this.value = new BooleanType();
1753          return this.value;
1754        }
1755        else if (name.equals("valueCanonical")) {
1756          this.value = new CanonicalType();
1757          return this.value;
1758        }
1759        else if (name.equals("valueCode")) {
1760          this.value = new CodeType();
1761          return this.value;
1762        }
1763        else if (name.equals("valueDate")) {
1764          this.value = new DateType();
1765          return this.value;
1766        }
1767        else if (name.equals("valueDateTime")) {
1768          this.value = new DateTimeType();
1769          return this.value;
1770        }
1771        else if (name.equals("valueDecimal")) {
1772          this.value = new DecimalType();
1773          return this.value;
1774        }
1775        else if (name.equals("valueId")) {
1776          this.value = new IdType();
1777          return this.value;
1778        }
1779        else if (name.equals("valueInstant")) {
1780          this.value = new InstantType();
1781          return this.value;
1782        }
1783        else if (name.equals("valueInteger")) {
1784          this.value = new IntegerType();
1785          return this.value;
1786        }
1787        else if (name.equals("valueInteger64")) {
1788          this.value = new Integer64Type();
1789          return this.value;
1790        }
1791        else if (name.equals("valueMarkdown")) {
1792          this.value = new MarkdownType();
1793          return this.value;
1794        }
1795        else if (name.equals("valueOid")) {
1796          this.value = new OidType();
1797          return this.value;
1798        }
1799        else if (name.equals("valuePositiveInt")) {
1800          this.value = new PositiveIntType();
1801          return this.value;
1802        }
1803        else if (name.equals("valueString")) {
1804          this.value = new StringType();
1805          return this.value;
1806        }
1807        else if (name.equals("valueTime")) {
1808          this.value = new TimeType();
1809          return this.value;
1810        }
1811        else if (name.equals("valueUnsignedInt")) {
1812          this.value = new UnsignedIntType();
1813          return this.value;
1814        }
1815        else if (name.equals("valueUri")) {
1816          this.value = new UriType();
1817          return this.value;
1818        }
1819        else if (name.equals("valueUrl")) {
1820          this.value = new UrlType();
1821          return this.value;
1822        }
1823        else if (name.equals("valueUuid")) {
1824          this.value = new UuidType();
1825          return this.value;
1826        }
1827        else if (name.equals("valueAddress")) {
1828          this.value = new Address();
1829          return this.value;
1830        }
1831        else if (name.equals("valueAge")) {
1832          this.value = new Age();
1833          return this.value;
1834        }
1835        else if (name.equals("valueAnnotation")) {
1836          this.value = new Annotation();
1837          return this.value;
1838        }
1839        else if (name.equals("valueAttachment")) {
1840          this.value = new Attachment();
1841          return this.value;
1842        }
1843        else if (name.equals("valueCodeableConcept")) {
1844          this.value = new CodeableConcept();
1845          return this.value;
1846        }
1847        else if (name.equals("valueCodeableReference")) {
1848          this.value = new CodeableReference();
1849          return this.value;
1850        }
1851        else if (name.equals("valueCoding")) {
1852          this.value = new Coding();
1853          return this.value;
1854        }
1855        else if (name.equals("valueContactPoint")) {
1856          this.value = new ContactPoint();
1857          return this.value;
1858        }
1859        else if (name.equals("valueCount")) {
1860          this.value = new Count();
1861          return this.value;
1862        }
1863        else if (name.equals("valueDistance")) {
1864          this.value = new Distance();
1865          return this.value;
1866        }
1867        else if (name.equals("valueDuration")) {
1868          this.value = new Duration();
1869          return this.value;
1870        }
1871        else if (name.equals("valueHumanName")) {
1872          this.value = new HumanName();
1873          return this.value;
1874        }
1875        else if (name.equals("valueIdentifier")) {
1876          this.value = new Identifier();
1877          return this.value;
1878        }
1879        else if (name.equals("valueMoney")) {
1880          this.value = new Money();
1881          return this.value;
1882        }
1883        else if (name.equals("valuePeriod")) {
1884          this.value = new Period();
1885          return this.value;
1886        }
1887        else if (name.equals("valueQuantity")) {
1888          this.value = new Quantity();
1889          return this.value;
1890        }
1891        else if (name.equals("valueRange")) {
1892          this.value = new Range();
1893          return this.value;
1894        }
1895        else if (name.equals("valueRatio")) {
1896          this.value = new Ratio();
1897          return this.value;
1898        }
1899        else if (name.equals("valueRatioRange")) {
1900          this.value = new RatioRange();
1901          return this.value;
1902        }
1903        else if (name.equals("valueReference")) {
1904          this.value = new Reference();
1905          return this.value;
1906        }
1907        else if (name.equals("valueSampledData")) {
1908          this.value = new SampledData();
1909          return this.value;
1910        }
1911        else if (name.equals("valueSignature")) {
1912          this.value = new Signature();
1913          return this.value;
1914        }
1915        else if (name.equals("valueTiming")) {
1916          this.value = new Timing();
1917          return this.value;
1918        }
1919        else if (name.equals("valueContactDetail")) {
1920          this.value = new ContactDetail();
1921          return this.value;
1922        }
1923        else if (name.equals("valueDataRequirement")) {
1924          this.value = new DataRequirement();
1925          return this.value;
1926        }
1927        else if (name.equals("valueExpression")) {
1928          this.value = new Expression();
1929          return this.value;
1930        }
1931        else if (name.equals("valueParameterDefinition")) {
1932          this.value = new ParameterDefinition();
1933          return this.value;
1934        }
1935        else if (name.equals("valueRelatedArtifact")) {
1936          this.value = new RelatedArtifact();
1937          return this.value;
1938        }
1939        else if (name.equals("valueTriggerDefinition")) {
1940          this.value = new TriggerDefinition();
1941          return this.value;
1942        }
1943        else if (name.equals("valueUsageContext")) {
1944          this.value = new UsageContext();
1945          return this.value;
1946        }
1947        else if (name.equals("valueAvailability")) {
1948          this.value = new Availability();
1949          return this.value;
1950        }
1951        else if (name.equals("valueExtendedContactDetail")) {
1952          this.value = new ExtendedContactDetail();
1953          return this.value;
1954        }
1955        else if (name.equals("valueDosage")) {
1956          this.value = new Dosage();
1957          return this.value;
1958        }
1959        else if (name.equals("valueMeta")) {
1960          this.value = new Meta();
1961          return this.value;
1962        }
1963        else
1964          return super.addChild(name);
1965      }
1966
1967      public ParameterComponent copy() {
1968        ParameterComponent dst = new ParameterComponent();
1969        copyValues(dst);
1970        return dst;
1971      }
1972
1973      public void copyValues(ParameterComponent dst) {
1974        super.copyValues(dst);
1975        dst.type = type == null ? null : type.copy();
1976        dst.value = value == null ? null : value.copy();
1977      }
1978
1979      @Override
1980      public boolean equalsDeep(Base other_) {
1981        if (!super.equalsDeep(other_))
1982          return false;
1983        if (!(other_ instanceof ParameterComponent))
1984          return false;
1985        ParameterComponent o = (ParameterComponent) other_;
1986        return compareDeep(type, o.type, true) && compareDeep(value, o.value, true);
1987      }
1988
1989      @Override
1990      public boolean equalsShallow(Base other_) {
1991        if (!super.equalsShallow(other_))
1992          return false;
1993        if (!(other_ instanceof ParameterComponent))
1994          return false;
1995        ParameterComponent o = (ParameterComponent) other_;
1996        return true;
1997      }
1998
1999      public boolean isEmpty() {
2000        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value);
2001      }
2002
2003  public String fhirType() {
2004    return "Transport.input";
2005
2006  }
2007
2008  }
2009
2010    @Block()
2011    public static class TransportOutputComponent extends BackboneElement implements IBaseBackboneElement {
2012        /**
2013         * The name of the Output parameter.
2014         */
2015        @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
2016        @Description(shortDefinition="Label for output", formalDefinition="The name of the Output parameter." )
2017        protected CodeableConcept type;
2018
2019        /**
2020         * The value of the Output parameter as a basic type.
2021         */
2022        @Child(name = "value", type = {Base64BinaryType.class, BooleanType.class, CanonicalType.class, CodeType.class, DateType.class, DateTimeType.class, DecimalType.class, IdType.class, InstantType.class, IntegerType.class, Integer64Type.class, MarkdownType.class, OidType.class, PositiveIntType.class, StringType.class, TimeType.class, UnsignedIntType.class, UriType.class, UrlType.class, UuidType.class, Address.class, Age.class, Annotation.class, Attachment.class, CodeableConcept.class, CodeableReference.class, Coding.class, ContactPoint.class, Count.class, Distance.class, Duration.class, HumanName.class, Identifier.class, Money.class, Period.class, Quantity.class, Range.class, Ratio.class, RatioRange.class, Reference.class, SampledData.class, Signature.class, Timing.class, ContactDetail.class, DataRequirement.class, Expression.class, ParameterDefinition.class, RelatedArtifact.class, TriggerDefinition.class, UsageContext.class, Availability.class, ExtendedContactDetail.class, Dosage.class, Meta.class}, order=2, min=1, max=1, modifier=false, summary=false)
2023        @Description(shortDefinition="Result of output", formalDefinition="The value of the Output parameter as a basic type." )
2024        protected DataType value;
2025
2026        private static final long serialVersionUID = -1659186716L;
2027
2028    /**
2029     * Constructor
2030     */
2031      public TransportOutputComponent() {
2032        super();
2033      }
2034
2035    /**
2036     * Constructor
2037     */
2038      public TransportOutputComponent(CodeableConcept type, DataType value) {
2039        super();
2040        this.setType(type);
2041        this.setValue(value);
2042      }
2043
2044        /**
2045         * @return {@link #type} (The name of the Output parameter.)
2046         */
2047        public CodeableConcept getType() { 
2048          if (this.type == null)
2049            if (Configuration.errorOnAutoCreate())
2050              throw new Error("Attempt to auto-create TransportOutputComponent.type");
2051            else if (Configuration.doAutoCreate())
2052              this.type = new CodeableConcept(); // cc
2053          return this.type;
2054        }
2055
2056        public boolean hasType() { 
2057          return this.type != null && !this.type.isEmpty();
2058        }
2059
2060        /**
2061         * @param value {@link #type} (The name of the Output parameter.)
2062         */
2063        public TransportOutputComponent setType(CodeableConcept value) { 
2064          this.type = value;
2065          return this;
2066        }
2067
2068        /**
2069         * @return {@link #value} (The value of the Output parameter as a basic type.)
2070         */
2071        public DataType getValue() { 
2072          return this.value;
2073        }
2074
2075        /**
2076         * @return {@link #value} (The value of the Output parameter as a basic type.)
2077         */
2078        public Base64BinaryType getValueBase64BinaryType() throws FHIRException { 
2079          if (this.value == null)
2080            this.value = new Base64BinaryType();
2081          if (!(this.value instanceof Base64BinaryType))
2082            throw new FHIRException("Type mismatch: the type Base64BinaryType was expected, but "+this.value.getClass().getName()+" was encountered");
2083          return (Base64BinaryType) this.value;
2084        }
2085
2086        public boolean hasValueBase64BinaryType() { 
2087          return this != null && this.value instanceof Base64BinaryType;
2088        }
2089
2090        /**
2091         * @return {@link #value} (The value of the Output parameter as a basic type.)
2092         */
2093        public BooleanType getValueBooleanType() throws FHIRException { 
2094          if (this.value == null)
2095            this.value = new BooleanType();
2096          if (!(this.value instanceof BooleanType))
2097            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
2098          return (BooleanType) this.value;
2099        }
2100
2101        public boolean hasValueBooleanType() { 
2102          return this != null && this.value instanceof BooleanType;
2103        }
2104
2105        /**
2106         * @return {@link #value} (The value of the Output parameter as a basic type.)
2107         */
2108        public CanonicalType getValueCanonicalType() throws FHIRException { 
2109          if (this.value == null)
2110            this.value = new CanonicalType();
2111          if (!(this.value instanceof CanonicalType))
2112            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.value.getClass().getName()+" was encountered");
2113          return (CanonicalType) this.value;
2114        }
2115
2116        public boolean hasValueCanonicalType() { 
2117          return this != null && this.value instanceof CanonicalType;
2118        }
2119
2120        /**
2121         * @return {@link #value} (The value of the Output parameter as a basic type.)
2122         */
2123        public CodeType getValueCodeType() throws FHIRException { 
2124          if (this.value == null)
2125            this.value = new CodeType();
2126          if (!(this.value instanceof CodeType))
2127            throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered");
2128          return (CodeType) this.value;
2129        }
2130
2131        public boolean hasValueCodeType() { 
2132          return this != null && this.value instanceof CodeType;
2133        }
2134
2135        /**
2136         * @return {@link #value} (The value of the Output parameter as a basic type.)
2137         */
2138        public DateType getValueDateType() throws FHIRException { 
2139          if (this.value == null)
2140            this.value = new DateType();
2141          if (!(this.value instanceof DateType))
2142            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
2143          return (DateType) this.value;
2144        }
2145
2146        public boolean hasValueDateType() { 
2147          return this != null && this.value instanceof DateType;
2148        }
2149
2150        /**
2151         * @return {@link #value} (The value of the Output parameter as a basic type.)
2152         */
2153        public DateTimeType getValueDateTimeType() throws FHIRException { 
2154          if (this.value == null)
2155            this.value = new DateTimeType();
2156          if (!(this.value instanceof DateTimeType))
2157            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
2158          return (DateTimeType) this.value;
2159        }
2160
2161        public boolean hasValueDateTimeType() { 
2162          return this != null && this.value instanceof DateTimeType;
2163        }
2164
2165        /**
2166         * @return {@link #value} (The value of the Output parameter as a basic type.)
2167         */
2168        public DecimalType getValueDecimalType() throws FHIRException { 
2169          if (this.value == null)
2170            this.value = new DecimalType();
2171          if (!(this.value instanceof DecimalType))
2172            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
2173          return (DecimalType) this.value;
2174        }
2175
2176        public boolean hasValueDecimalType() { 
2177          return this != null && this.value instanceof DecimalType;
2178        }
2179
2180        /**
2181         * @return {@link #value} (The value of the Output parameter as a basic type.)
2182         */
2183        public IdType getValueIdType() throws FHIRException { 
2184          if (this.value == null)
2185            this.value = new IdType();
2186          if (!(this.value instanceof IdType))
2187            throw new FHIRException("Type mismatch: the type IdType was expected, but "+this.value.getClass().getName()+" was encountered");
2188          return (IdType) this.value;
2189        }
2190
2191        public boolean hasValueIdType() { 
2192          return this != null && this.value instanceof IdType;
2193        }
2194
2195        /**
2196         * @return {@link #value} (The value of the Output parameter as a basic type.)
2197         */
2198        public InstantType getValueInstantType() throws FHIRException { 
2199          if (this.value == null)
2200            this.value = new InstantType();
2201          if (!(this.value instanceof InstantType))
2202            throw new FHIRException("Type mismatch: the type InstantType was expected, but "+this.value.getClass().getName()+" was encountered");
2203          return (InstantType) this.value;
2204        }
2205
2206        public boolean hasValueInstantType() { 
2207          return this != null && this.value instanceof InstantType;
2208        }
2209
2210        /**
2211         * @return {@link #value} (The value of the Output parameter as a basic type.)
2212         */
2213        public IntegerType getValueIntegerType() throws FHIRException { 
2214          if (this.value == null)
2215            this.value = new IntegerType();
2216          if (!(this.value instanceof IntegerType))
2217            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
2218          return (IntegerType) this.value;
2219        }
2220
2221        public boolean hasValueIntegerType() { 
2222          return this != null && this.value instanceof IntegerType;
2223        }
2224
2225        /**
2226         * @return {@link #value} (The value of the Output parameter as a basic type.)
2227         */
2228        public Integer64Type getValueInteger64Type() throws FHIRException { 
2229          if (this.value == null)
2230            this.value = new Integer64Type();
2231          if (!(this.value instanceof Integer64Type))
2232            throw new FHIRException("Type mismatch: the type Integer64Type was expected, but "+this.value.getClass().getName()+" was encountered");
2233          return (Integer64Type) this.value;
2234        }
2235
2236        public boolean hasValueInteger64Type() { 
2237          return this != null && this.value instanceof Integer64Type;
2238        }
2239
2240        /**
2241         * @return {@link #value} (The value of the Output parameter as a basic type.)
2242         */
2243        public MarkdownType getValueMarkdownType() throws FHIRException { 
2244          if (this.value == null)
2245            this.value = new MarkdownType();
2246          if (!(this.value instanceof MarkdownType))
2247            throw new FHIRException("Type mismatch: the type MarkdownType was expected, but "+this.value.getClass().getName()+" was encountered");
2248          return (MarkdownType) this.value;
2249        }
2250
2251        public boolean hasValueMarkdownType() { 
2252          return this != null && this.value instanceof MarkdownType;
2253        }
2254
2255        /**
2256         * @return {@link #value} (The value of the Output parameter as a basic type.)
2257         */
2258        public OidType getValueOidType() throws FHIRException { 
2259          if (this.value == null)
2260            this.value = new OidType();
2261          if (!(this.value instanceof OidType))
2262            throw new FHIRException("Type mismatch: the type OidType was expected, but "+this.value.getClass().getName()+" was encountered");
2263          return (OidType) this.value;
2264        }
2265
2266        public boolean hasValueOidType() { 
2267          return this != null && this.value instanceof OidType;
2268        }
2269
2270        /**
2271         * @return {@link #value} (The value of the Output parameter as a basic type.)
2272         */
2273        public PositiveIntType getValuePositiveIntType() throws FHIRException { 
2274          if (this.value == null)
2275            this.value = new PositiveIntType();
2276          if (!(this.value instanceof PositiveIntType))
2277            throw new FHIRException("Type mismatch: the type PositiveIntType was expected, but "+this.value.getClass().getName()+" was encountered");
2278          return (PositiveIntType) this.value;
2279        }
2280
2281        public boolean hasValuePositiveIntType() { 
2282          return this != null && this.value instanceof PositiveIntType;
2283        }
2284
2285        /**
2286         * @return {@link #value} (The value of the Output parameter as a basic type.)
2287         */
2288        public StringType getValueStringType() throws FHIRException { 
2289          if (this.value == null)
2290            this.value = new StringType();
2291          if (!(this.value instanceof StringType))
2292            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
2293          return (StringType) this.value;
2294        }
2295
2296        public boolean hasValueStringType() { 
2297          return this != null && this.value instanceof StringType;
2298        }
2299
2300        /**
2301         * @return {@link #value} (The value of the Output parameter as a basic type.)
2302         */
2303        public TimeType getValueTimeType() throws FHIRException { 
2304          if (this.value == null)
2305            this.value = new TimeType();
2306          if (!(this.value instanceof TimeType))
2307            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
2308          return (TimeType) this.value;
2309        }
2310
2311        public boolean hasValueTimeType() { 
2312          return this != null && this.value instanceof TimeType;
2313        }
2314
2315        /**
2316         * @return {@link #value} (The value of the Output parameter as a basic type.)
2317         */
2318        public UnsignedIntType getValueUnsignedIntType() throws FHIRException { 
2319          if (this.value == null)
2320            this.value = new UnsignedIntType();
2321          if (!(this.value instanceof UnsignedIntType))
2322            throw new FHIRException("Type mismatch: the type UnsignedIntType was expected, but "+this.value.getClass().getName()+" was encountered");
2323          return (UnsignedIntType) this.value;
2324        }
2325
2326        public boolean hasValueUnsignedIntType() { 
2327          return this != null && this.value instanceof UnsignedIntType;
2328        }
2329
2330        /**
2331         * @return {@link #value} (The value of the Output parameter as a basic type.)
2332         */
2333        public UriType getValueUriType() throws FHIRException { 
2334          if (this.value == null)
2335            this.value = new UriType();
2336          if (!(this.value instanceof UriType))
2337            throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.value.getClass().getName()+" was encountered");
2338          return (UriType) this.value;
2339        }
2340
2341        public boolean hasValueUriType() { 
2342          return this != null && this.value instanceof UriType;
2343        }
2344
2345        /**
2346         * @return {@link #value} (The value of the Output parameter as a basic type.)
2347         */
2348        public UrlType getValueUrlType() throws FHIRException { 
2349          if (this.value == null)
2350            this.value = new UrlType();
2351          if (!(this.value instanceof UrlType))
2352            throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.value.getClass().getName()+" was encountered");
2353          return (UrlType) this.value;
2354        }
2355
2356        public boolean hasValueUrlType() { 
2357          return this != null && this.value instanceof UrlType;
2358        }
2359
2360        /**
2361         * @return {@link #value} (The value of the Output parameter as a basic type.)
2362         */
2363        public UuidType getValueUuidType() throws FHIRException { 
2364          if (this.value == null)
2365            this.value = new UuidType();
2366          if (!(this.value instanceof UuidType))
2367            throw new FHIRException("Type mismatch: the type UuidType was expected, but "+this.value.getClass().getName()+" was encountered");
2368          return (UuidType) this.value;
2369        }
2370
2371        public boolean hasValueUuidType() { 
2372          return this != null && this.value instanceof UuidType;
2373        }
2374
2375        /**
2376         * @return {@link #value} (The value of the Output parameter as a basic type.)
2377         */
2378        public Address getValueAddress() throws FHIRException { 
2379          if (this.value == null)
2380            this.value = new Address();
2381          if (!(this.value instanceof Address))
2382            throw new FHIRException("Type mismatch: the type Address was expected, but "+this.value.getClass().getName()+" was encountered");
2383          return (Address) this.value;
2384        }
2385
2386        public boolean hasValueAddress() { 
2387          return this != null && this.value instanceof Address;
2388        }
2389
2390        /**
2391         * @return {@link #value} (The value of the Output parameter as a basic type.)
2392         */
2393        public Age getValueAge() throws FHIRException { 
2394          if (this.value == null)
2395            this.value = new Age();
2396          if (!(this.value instanceof Age))
2397            throw new FHIRException("Type mismatch: the type Age was expected, but "+this.value.getClass().getName()+" was encountered");
2398          return (Age) this.value;
2399        }
2400
2401        public boolean hasValueAge() { 
2402          return this != null && this.value instanceof Age;
2403        }
2404
2405        /**
2406         * @return {@link #value} (The value of the Output parameter as a basic type.)
2407         */
2408        public Annotation getValueAnnotation() throws FHIRException { 
2409          if (this.value == null)
2410            this.value = new Annotation();
2411          if (!(this.value instanceof Annotation))
2412            throw new FHIRException("Type mismatch: the type Annotation was expected, but "+this.value.getClass().getName()+" was encountered");
2413          return (Annotation) this.value;
2414        }
2415
2416        public boolean hasValueAnnotation() { 
2417          return this != null && this.value instanceof Annotation;
2418        }
2419
2420        /**
2421         * @return {@link #value} (The value of the Output parameter as a basic type.)
2422         */
2423        public Attachment getValueAttachment() throws FHIRException { 
2424          if (this.value == null)
2425            this.value = new Attachment();
2426          if (!(this.value instanceof Attachment))
2427            throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered");
2428          return (Attachment) this.value;
2429        }
2430
2431        public boolean hasValueAttachment() { 
2432          return this != null && this.value instanceof Attachment;
2433        }
2434
2435        /**
2436         * @return {@link #value} (The value of the Output parameter as a basic type.)
2437         */
2438        public CodeableConcept getValueCodeableConcept() throws FHIRException { 
2439          if (this.value == null)
2440            this.value = new CodeableConcept();
2441          if (!(this.value instanceof CodeableConcept))
2442            throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered");
2443          return (CodeableConcept) this.value;
2444        }
2445
2446        public boolean hasValueCodeableConcept() { 
2447          return this != null && this.value instanceof CodeableConcept;
2448        }
2449
2450        /**
2451         * @return {@link #value} (The value of the Output parameter as a basic type.)
2452         */
2453        public CodeableReference getValueCodeableReference() throws FHIRException { 
2454          if (this.value == null)
2455            this.value = new CodeableReference();
2456          if (!(this.value instanceof CodeableReference))
2457            throw new FHIRException("Type mismatch: the type CodeableReference was expected, but "+this.value.getClass().getName()+" was encountered");
2458          return (CodeableReference) this.value;
2459        }
2460
2461        public boolean hasValueCodeableReference() { 
2462          return this != null && this.value instanceof CodeableReference;
2463        }
2464
2465        /**
2466         * @return {@link #value} (The value of the Output parameter as a basic type.)
2467         */
2468        public Coding getValueCoding() throws FHIRException { 
2469          if (this.value == null)
2470            this.value = new Coding();
2471          if (!(this.value instanceof Coding))
2472            throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered");
2473          return (Coding) this.value;
2474        }
2475
2476        public boolean hasValueCoding() { 
2477          return this != null && this.value instanceof Coding;
2478        }
2479
2480        /**
2481         * @return {@link #value} (The value of the Output parameter as a basic type.)
2482         */
2483        public ContactPoint getValueContactPoint() throws FHIRException { 
2484          if (this.value == null)
2485            this.value = new ContactPoint();
2486          if (!(this.value instanceof ContactPoint))
2487            throw new FHIRException("Type mismatch: the type ContactPoint was expected, but "+this.value.getClass().getName()+" was encountered");
2488          return (ContactPoint) this.value;
2489        }
2490
2491        public boolean hasValueContactPoint() { 
2492          return this != null && this.value instanceof ContactPoint;
2493        }
2494
2495        /**
2496         * @return {@link #value} (The value of the Output parameter as a basic type.)
2497         */
2498        public Count getValueCount() throws FHIRException { 
2499          if (this.value == null)
2500            this.value = new Count();
2501          if (!(this.value instanceof Count))
2502            throw new FHIRException("Type mismatch: the type Count was expected, but "+this.value.getClass().getName()+" was encountered");
2503          return (Count) this.value;
2504        }
2505
2506        public boolean hasValueCount() { 
2507          return this != null && this.value instanceof Count;
2508        }
2509
2510        /**
2511         * @return {@link #value} (The value of the Output parameter as a basic type.)
2512         */
2513        public Distance getValueDistance() throws FHIRException { 
2514          if (this.value == null)
2515            this.value = new Distance();
2516          if (!(this.value instanceof Distance))
2517            throw new FHIRException("Type mismatch: the type Distance was expected, but "+this.value.getClass().getName()+" was encountered");
2518          return (Distance) this.value;
2519        }
2520
2521        public boolean hasValueDistance() { 
2522          return this != null && this.value instanceof Distance;
2523        }
2524
2525        /**
2526         * @return {@link #value} (The value of the Output parameter as a basic type.)
2527         */
2528        public Duration getValueDuration() throws FHIRException { 
2529          if (this.value == null)
2530            this.value = new Duration();
2531          if (!(this.value instanceof Duration))
2532            throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.value.getClass().getName()+" was encountered");
2533          return (Duration) this.value;
2534        }
2535
2536        public boolean hasValueDuration() { 
2537          return this != null && this.value instanceof Duration;
2538        }
2539
2540        /**
2541         * @return {@link #value} (The value of the Output parameter as a basic type.)
2542         */
2543        public HumanName getValueHumanName() throws FHIRException { 
2544          if (this.value == null)
2545            this.value = new HumanName();
2546          if (!(this.value instanceof HumanName))
2547            throw new FHIRException("Type mismatch: the type HumanName was expected, but "+this.value.getClass().getName()+" was encountered");
2548          return (HumanName) this.value;
2549        }
2550
2551        public boolean hasValueHumanName() { 
2552          return this != null && this.value instanceof HumanName;
2553        }
2554
2555        /**
2556         * @return {@link #value} (The value of the Output parameter as a basic type.)
2557         */
2558        public Identifier getValueIdentifier() throws FHIRException { 
2559          if (this.value == null)
2560            this.value = new Identifier();
2561          if (!(this.value instanceof Identifier))
2562            throw new FHIRException("Type mismatch: the type Identifier was expected, but "+this.value.getClass().getName()+" was encountered");
2563          return (Identifier) this.value;
2564        }
2565
2566        public boolean hasValueIdentifier() { 
2567          return this != null && this.value instanceof Identifier;
2568        }
2569
2570        /**
2571         * @return {@link #value} (The value of the Output parameter as a basic type.)
2572         */
2573        public Money getValueMoney() throws FHIRException { 
2574          if (this.value == null)
2575            this.value = new Money();
2576          if (!(this.value instanceof Money))
2577            throw new FHIRException("Type mismatch: the type Money was expected, but "+this.value.getClass().getName()+" was encountered");
2578          return (Money) this.value;
2579        }
2580
2581        public boolean hasValueMoney() { 
2582          return this != null && this.value instanceof Money;
2583        }
2584
2585        /**
2586         * @return {@link #value} (The value of the Output parameter as a basic type.)
2587         */
2588        public Period getValuePeriod() throws FHIRException { 
2589          if (this.value == null)
2590            this.value = new Period();
2591          if (!(this.value instanceof Period))
2592            throw new FHIRException("Type mismatch: the type Period was expected, but "+this.value.getClass().getName()+" was encountered");
2593          return (Period) this.value;
2594        }
2595
2596        public boolean hasValuePeriod() { 
2597          return this != null && this.value instanceof Period;
2598        }
2599
2600        /**
2601         * @return {@link #value} (The value of the Output parameter as a basic type.)
2602         */
2603        public Quantity getValueQuantity() throws FHIRException { 
2604          if (this.value == null)
2605            this.value = new Quantity();
2606          if (!(this.value instanceof Quantity))
2607            throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered");
2608          return (Quantity) this.value;
2609        }
2610
2611        public boolean hasValueQuantity() { 
2612          return this != null && this.value instanceof Quantity;
2613        }
2614
2615        /**
2616         * @return {@link #value} (The value of the Output parameter as a basic type.)
2617         */
2618        public Range getValueRange() throws FHIRException { 
2619          if (this.value == null)
2620            this.value = new Range();
2621          if (!(this.value instanceof Range))
2622            throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered");
2623          return (Range) this.value;
2624        }
2625
2626        public boolean hasValueRange() { 
2627          return this != null && this.value instanceof Range;
2628        }
2629
2630        /**
2631         * @return {@link #value} (The value of the Output parameter as a basic type.)
2632         */
2633        public Ratio getValueRatio() throws FHIRException { 
2634          if (this.value == null)
2635            this.value = new Ratio();
2636          if (!(this.value instanceof Ratio))
2637            throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.value.getClass().getName()+" was encountered");
2638          return (Ratio) this.value;
2639        }
2640
2641        public boolean hasValueRatio() { 
2642          return this != null && this.value instanceof Ratio;
2643        }
2644
2645        /**
2646         * @return {@link #value} (The value of the Output parameter as a basic type.)
2647         */
2648        public RatioRange getValueRatioRange() throws FHIRException { 
2649          if (this.value == null)
2650            this.value = new RatioRange();
2651          if (!(this.value instanceof RatioRange))
2652            throw new FHIRException("Type mismatch: the type RatioRange was expected, but "+this.value.getClass().getName()+" was encountered");
2653          return (RatioRange) this.value;
2654        }
2655
2656        public boolean hasValueRatioRange() { 
2657          return this != null && this.value instanceof RatioRange;
2658        }
2659
2660        /**
2661         * @return {@link #value} (The value of the Output parameter as a basic type.)
2662         */
2663        public Reference getValueReference() throws FHIRException { 
2664          if (this.value == null)
2665            this.value = new Reference();
2666          if (!(this.value instanceof Reference))
2667            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered");
2668          return (Reference) this.value;
2669        }
2670
2671        public boolean hasValueReference() { 
2672          return this != null && this.value instanceof Reference;
2673        }
2674
2675        /**
2676         * @return {@link #value} (The value of the Output parameter as a basic type.)
2677         */
2678        public SampledData getValueSampledData() throws FHIRException { 
2679          if (this.value == null)
2680            this.value = new SampledData();
2681          if (!(this.value instanceof SampledData))
2682            throw new FHIRException("Type mismatch: the type SampledData was expected, but "+this.value.getClass().getName()+" was encountered");
2683          return (SampledData) this.value;
2684        }
2685
2686        public boolean hasValueSampledData() { 
2687          return this != null && this.value instanceof SampledData;
2688        }
2689
2690        /**
2691         * @return {@link #value} (The value of the Output parameter as a basic type.)
2692         */
2693        public Signature getValueSignature() throws FHIRException { 
2694          if (this.value == null)
2695            this.value = new Signature();
2696          if (!(this.value instanceof Signature))
2697            throw new FHIRException("Type mismatch: the type Signature was expected, but "+this.value.getClass().getName()+" was encountered");
2698          return (Signature) this.value;
2699        }
2700
2701        public boolean hasValueSignature() { 
2702          return this != null && this.value instanceof Signature;
2703        }
2704
2705        /**
2706         * @return {@link #value} (The value of the Output parameter as a basic type.)
2707         */
2708        public Timing getValueTiming() throws FHIRException { 
2709          if (this.value == null)
2710            this.value = new Timing();
2711          if (!(this.value instanceof Timing))
2712            throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.value.getClass().getName()+" was encountered");
2713          return (Timing) this.value;
2714        }
2715
2716        public boolean hasValueTiming() { 
2717          return this != null && this.value instanceof Timing;
2718        }
2719
2720        /**
2721         * @return {@link #value} (The value of the Output parameter as a basic type.)
2722         */
2723        public ContactDetail getValueContactDetail() throws FHIRException { 
2724          if (this.value == null)
2725            this.value = new ContactDetail();
2726          if (!(this.value instanceof ContactDetail))
2727            throw new FHIRException("Type mismatch: the type ContactDetail was expected, but "+this.value.getClass().getName()+" was encountered");
2728          return (ContactDetail) this.value;
2729        }
2730
2731        public boolean hasValueContactDetail() { 
2732          return this != null && this.value instanceof ContactDetail;
2733        }
2734
2735        /**
2736         * @return {@link #value} (The value of the Output parameter as a basic type.)
2737         */
2738        public DataRequirement getValueDataRequirement() throws FHIRException { 
2739          if (this.value == null)
2740            this.value = new DataRequirement();
2741          if (!(this.value instanceof DataRequirement))
2742            throw new FHIRException("Type mismatch: the type DataRequirement was expected, but "+this.value.getClass().getName()+" was encountered");
2743          return (DataRequirement) this.value;
2744        }
2745
2746        public boolean hasValueDataRequirement() { 
2747          return this != null && this.value instanceof DataRequirement;
2748        }
2749
2750        /**
2751         * @return {@link #value} (The value of the Output parameter as a basic type.)
2752         */
2753        public Expression getValueExpression() throws FHIRException { 
2754          if (this.value == null)
2755            this.value = new Expression();
2756          if (!(this.value instanceof Expression))
2757            throw new FHIRException("Type mismatch: the type Expression was expected, but "+this.value.getClass().getName()+" was encountered");
2758          return (Expression) this.value;
2759        }
2760
2761        public boolean hasValueExpression() { 
2762          return this != null && this.value instanceof Expression;
2763        }
2764
2765        /**
2766         * @return {@link #value} (The value of the Output parameter as a basic type.)
2767         */
2768        public ParameterDefinition getValueParameterDefinition() throws FHIRException { 
2769          if (this.value == null)
2770            this.value = new ParameterDefinition();
2771          if (!(this.value instanceof ParameterDefinition))
2772            throw new FHIRException("Type mismatch: the type ParameterDefinition was expected, but "+this.value.getClass().getName()+" was encountered");
2773          return (ParameterDefinition) this.value;
2774        }
2775
2776        public boolean hasValueParameterDefinition() { 
2777          return this != null && this.value instanceof ParameterDefinition;
2778        }
2779
2780        /**
2781         * @return {@link #value} (The value of the Output parameter as a basic type.)
2782         */
2783        public RelatedArtifact getValueRelatedArtifact() throws FHIRException { 
2784          if (this.value == null)
2785            this.value = new RelatedArtifact();
2786          if (!(this.value instanceof RelatedArtifact))
2787            throw new FHIRException("Type mismatch: the type RelatedArtifact was expected, but "+this.value.getClass().getName()+" was encountered");
2788          return (RelatedArtifact) this.value;
2789        }
2790
2791        public boolean hasValueRelatedArtifact() { 
2792          return this != null && this.value instanceof RelatedArtifact;
2793        }
2794
2795        /**
2796         * @return {@link #value} (The value of the Output parameter as a basic type.)
2797         */
2798        public TriggerDefinition getValueTriggerDefinition() throws FHIRException { 
2799          if (this.value == null)
2800            this.value = new TriggerDefinition();
2801          if (!(this.value instanceof TriggerDefinition))
2802            throw new FHIRException("Type mismatch: the type TriggerDefinition was expected, but "+this.value.getClass().getName()+" was encountered");
2803          return (TriggerDefinition) this.value;
2804        }
2805
2806        public boolean hasValueTriggerDefinition() { 
2807          return this != null && this.value instanceof TriggerDefinition;
2808        }
2809
2810        /**
2811         * @return {@link #value} (The value of the Output parameter as a basic type.)
2812         */
2813        public UsageContext getValueUsageContext() throws FHIRException { 
2814          if (this.value == null)
2815            this.value = new UsageContext();
2816          if (!(this.value instanceof UsageContext))
2817            throw new FHIRException("Type mismatch: the type UsageContext was expected, but "+this.value.getClass().getName()+" was encountered");
2818          return (UsageContext) this.value;
2819        }
2820
2821        public boolean hasValueUsageContext() { 
2822          return this != null && this.value instanceof UsageContext;
2823        }
2824
2825        /**
2826         * @return {@link #value} (The value of the Output parameter as a basic type.)
2827         */
2828        public Availability getValueAvailability() throws FHIRException { 
2829          if (this.value == null)
2830            this.value = new Availability();
2831          if (!(this.value instanceof Availability))
2832            throw new FHIRException("Type mismatch: the type Availability was expected, but "+this.value.getClass().getName()+" was encountered");
2833          return (Availability) this.value;
2834        }
2835
2836        public boolean hasValueAvailability() { 
2837          return this != null && this.value instanceof Availability;
2838        }
2839
2840        /**
2841         * @return {@link #value} (The value of the Output parameter as a basic type.)
2842         */
2843        public ExtendedContactDetail getValueExtendedContactDetail() throws FHIRException { 
2844          if (this.value == null)
2845            this.value = new ExtendedContactDetail();
2846          if (!(this.value instanceof ExtendedContactDetail))
2847            throw new FHIRException("Type mismatch: the type ExtendedContactDetail was expected, but "+this.value.getClass().getName()+" was encountered");
2848          return (ExtendedContactDetail) this.value;
2849        }
2850
2851        public boolean hasValueExtendedContactDetail() { 
2852          return this != null && this.value instanceof ExtendedContactDetail;
2853        }
2854
2855        /**
2856         * @return {@link #value} (The value of the Output parameter as a basic type.)
2857         */
2858        public Dosage getValueDosage() throws FHIRException { 
2859          if (this.value == null)
2860            this.value = new Dosage();
2861          if (!(this.value instanceof Dosage))
2862            throw new FHIRException("Type mismatch: the type Dosage was expected, but "+this.value.getClass().getName()+" was encountered");
2863          return (Dosage) this.value;
2864        }
2865
2866        public boolean hasValueDosage() { 
2867          return this != null && this.value instanceof Dosage;
2868        }
2869
2870        /**
2871         * @return {@link #value} (The value of the Output parameter as a basic type.)
2872         */
2873        public Meta getValueMeta() throws FHIRException { 
2874          if (this.value == null)
2875            this.value = new Meta();
2876          if (!(this.value instanceof Meta))
2877            throw new FHIRException("Type mismatch: the type Meta was expected, but "+this.value.getClass().getName()+" was encountered");
2878          return (Meta) this.value;
2879        }
2880
2881        public boolean hasValueMeta() { 
2882          return this != null && this.value instanceof Meta;
2883        }
2884
2885        public boolean hasValue() { 
2886          return this.value != null && !this.value.isEmpty();
2887        }
2888
2889        /**
2890         * @param value {@link #value} (The value of the Output parameter as a basic type.)
2891         */
2892        public TransportOutputComponent setValue(DataType value) { 
2893          if (value != null && !(value instanceof Base64BinaryType || value instanceof BooleanType || value instanceof CanonicalType || value instanceof CodeType || value instanceof DateType || value instanceof DateTimeType || value instanceof DecimalType || value instanceof IdType || value instanceof InstantType || value instanceof IntegerType || value instanceof Integer64Type || value instanceof MarkdownType || value instanceof OidType || value instanceof PositiveIntType || value instanceof StringType || value instanceof TimeType || value instanceof UnsignedIntType || value instanceof UriType || value instanceof UrlType || value instanceof UuidType || value instanceof Address || value instanceof Age || value instanceof Annotation || value instanceof Attachment || value instanceof CodeableConcept || value instanceof CodeableReference || value instanceof Coding || value instanceof ContactPoint || value instanceof Count || value instanceof Distance || value instanceof Duration || value instanceof HumanName || value instanceof Identifier || value instanceof Money || value instanceof Period || value instanceof Quantity || value instanceof Range || value instanceof Ratio || value instanceof RatioRange || value instanceof Reference || value instanceof SampledData || value instanceof Signature || value instanceof Timing || value instanceof ContactDetail || value instanceof DataRequirement || value instanceof Expression || value instanceof ParameterDefinition || value instanceof RelatedArtifact || value instanceof TriggerDefinition || value instanceof UsageContext || value instanceof Availability || value instanceof ExtendedContactDetail || value instanceof Dosage || value instanceof Meta))
2894            throw new Error("Not the right type for Transport.output.value[x]: "+value.fhirType());
2895          this.value = value;
2896          return this;
2897        }
2898
2899        protected void listChildren(List<Property> children) {
2900          super.listChildren(children);
2901          children.add(new Property("type", "CodeableConcept", "The name of the Output parameter.", 0, 1, type));
2902          children.add(new Property("value[x]", "base64Binary|boolean|canonical|code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta", "The value of the Output parameter as a basic type.", 0, 1, value));
2903        }
2904
2905        @Override
2906        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2907          switch (_hash) {
2908          case 3575610: /*type*/  return new Property("type", "CodeableConcept", "The name of the Output parameter.", 0, 1, type);
2909          case -1410166417: /*value[x]*/  return new Property("value[x]", "base64Binary|boolean|canonical|code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta", "The value of the Output parameter as a basic type.", 0, 1, value);
2910          case 111972721: /*value*/  return new Property("value[x]", "base64Binary|boolean|canonical|code|date|dateTime|decimal|id|instant|integer|integer64|markdown|oid|positiveInt|string|time|unsignedInt|uri|url|uuid|Address|Age|Annotation|Attachment|CodeableConcept|CodeableReference|Coding|ContactPoint|Count|Distance|Duration|HumanName|Identifier|Money|Period|Quantity|Range|Ratio|RatioRange|Reference|SampledData|Signature|Timing|ContactDetail|DataRequirement|Expression|ParameterDefinition|RelatedArtifact|TriggerDefinition|UsageContext|Availability|ExtendedContactDetail|Dosage|Meta", "The value of the Output parameter as a basic type.", 0, 1, value);
2911          case -1535024575: /*valueBase64Binary*/  return new Property("value[x]", "base64Binary", "The value of the Output parameter as a basic type.", 0, 1, value);
2912          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "The value of the Output parameter as a basic type.", 0, 1, value);
2913          case -786218365: /*valueCanonical*/  return new Property("value[x]", "canonical", "The value of the Output parameter as a basic type.", 0, 1, value);
2914          case -766209282: /*valueCode*/  return new Property("value[x]", "code", "The value of the Output parameter as a basic type.", 0, 1, value);
2915          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "The value of the Output parameter as a basic type.", 0, 1, value);
2916          case 1047929900: /*valueDateTime*/  return new Property("value[x]", "dateTime", "The value of the Output parameter as a basic type.", 0, 1, value);
2917          case -2083993440: /*valueDecimal*/  return new Property("value[x]", "decimal", "The value of the Output parameter as a basic type.", 0, 1, value);
2918          case 231604844: /*valueId*/  return new Property("value[x]", "id", "The value of the Output parameter as a basic type.", 0, 1, value);
2919          case -1668687056: /*valueInstant*/  return new Property("value[x]", "instant", "The value of the Output parameter as a basic type.", 0, 1, value);
2920          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "The value of the Output parameter as a basic type.", 0, 1, value);
2921          case -1122120181: /*valueInteger64*/  return new Property("value[x]", "integer64", "The value of the Output parameter as a basic type.", 0, 1, value);
2922          case -497880704: /*valueMarkdown*/  return new Property("value[x]", "markdown", "The value of the Output parameter as a basic type.", 0, 1, value);
2923          case -1410178407: /*valueOid*/  return new Property("value[x]", "oid", "The value of the Output parameter as a basic type.", 0, 1, value);
2924          case -1249932027: /*valuePositiveInt*/  return new Property("value[x]", "positiveInt", "The value of the Output parameter as a basic type.", 0, 1, value);
2925          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "The value of the Output parameter as a basic type.", 0, 1, value);
2926          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "The value of the Output parameter as a basic type.", 0, 1, value);
2927          case 26529417: /*valueUnsignedInt*/  return new Property("value[x]", "unsignedInt", "The value of the Output parameter as a basic type.", 0, 1, value);
2928          case -1410172357: /*valueUri*/  return new Property("value[x]", "uri", "The value of the Output parameter as a basic type.", 0, 1, value);
2929          case -1410172354: /*valueUrl*/  return new Property("value[x]", "url", "The value of the Output parameter as a basic type.", 0, 1, value);
2930          case -765667124: /*valueUuid*/  return new Property("value[x]", "uuid", "The value of the Output parameter as a basic type.", 0, 1, value);
2931          case -478981821: /*valueAddress*/  return new Property("value[x]", "Address", "The value of the Output parameter as a basic type.", 0, 1, value);
2932          case -1410191922: /*valueAge*/  return new Property("value[x]", "Age", "The value of the Output parameter as a basic type.", 0, 1, value);
2933          case -67108992: /*valueAnnotation*/  return new Property("value[x]", "Annotation", "The value of the Output parameter as a basic type.", 0, 1, value);
2934          case -475566732: /*valueAttachment*/  return new Property("value[x]", "Attachment", "The value of the Output parameter as a basic type.", 0, 1, value);
2935          case 924902896: /*valueCodeableConcept*/  return new Property("value[x]", "CodeableConcept", "The value of the Output parameter as a basic type.", 0, 1, value);
2936          case -257955629: /*valueCodeableReference*/  return new Property("value[x]", "CodeableReference", "The value of the Output parameter as a basic type.", 0, 1, value);
2937          case -1887705029: /*valueCoding*/  return new Property("value[x]", "Coding", "The value of the Output parameter as a basic type.", 0, 1, value);
2938          case 944904545: /*valueContactPoint*/  return new Property("value[x]", "ContactPoint", "The value of the Output parameter as a basic type.", 0, 1, value);
2939          case 2017332766: /*valueCount*/  return new Property("value[x]", "Count", "The value of the Output parameter as a basic type.", 0, 1, value);
2940          case -456359802: /*valueDistance*/  return new Property("value[x]", "Distance", "The value of the Output parameter as a basic type.", 0, 1, value);
2941          case 1558135333: /*valueDuration*/  return new Property("value[x]", "Duration", "The value of the Output parameter as a basic type.", 0, 1, value);
2942          case -2026205465: /*valueHumanName*/  return new Property("value[x]", "HumanName", "The value of the Output parameter as a basic type.", 0, 1, value);
2943          case -130498310: /*valueIdentifier*/  return new Property("value[x]", "Identifier", "The value of the Output parameter as a basic type.", 0, 1, value);
2944          case 2026560975: /*valueMoney*/  return new Property("value[x]", "Money", "The value of the Output parameter as a basic type.", 0, 1, value);
2945          case -1524344174: /*valuePeriod*/  return new Property("value[x]", "Period", "The value of the Output parameter as a basic type.", 0, 1, value);
2946          case -2029823716: /*valueQuantity*/  return new Property("value[x]", "Quantity", "The value of the Output parameter as a basic type.", 0, 1, value);
2947          case 2030761548: /*valueRange*/  return new Property("value[x]", "Range", "The value of the Output parameter as a basic type.", 0, 1, value);
2948          case 2030767386: /*valueRatio*/  return new Property("value[x]", "Ratio", "The value of the Output parameter as a basic type.", 0, 1, value);
2949          case -706454461: /*valueRatioRange*/  return new Property("value[x]", "RatioRange", "The value of the Output parameter as a basic type.", 0, 1, value);
2950          case 1755241690: /*valueReference*/  return new Property("value[x]", "Reference", "The value of the Output parameter as a basic type.", 0, 1, value);
2951          case -962229101: /*valueSampledData*/  return new Property("value[x]", "SampledData", "The value of the Output parameter as a basic type.", 0, 1, value);
2952          case -540985785: /*valueSignature*/  return new Property("value[x]", "Signature", "The value of the Output parameter as a basic type.", 0, 1, value);
2953          case -1406282469: /*valueTiming*/  return new Property("value[x]", "Timing", "The value of the Output parameter as a basic type.", 0, 1, value);
2954          case -1125200224: /*valueContactDetail*/  return new Property("value[x]", "ContactDetail", "The value of the Output parameter as a basic type.", 0, 1, value);
2955          case 1710554248: /*valueDataRequirement*/  return new Property("value[x]", "DataRequirement", "The value of the Output parameter as a basic type.", 0, 1, value);
2956          case -307517719: /*valueExpression*/  return new Property("value[x]", "Expression", "The value of the Output parameter as a basic type.", 0, 1, value);
2957          case 1387478187: /*valueParameterDefinition*/  return new Property("value[x]", "ParameterDefinition", "The value of the Output parameter as a basic type.", 0, 1, value);
2958          case 1748214124: /*valueRelatedArtifact*/  return new Property("value[x]", "RelatedArtifact", "The value of the Output parameter as a basic type.", 0, 1, value);
2959          case 976830394: /*valueTriggerDefinition*/  return new Property("value[x]", "TriggerDefinition", "The value of the Output parameter as a basic type.", 0, 1, value);
2960          case 588000479: /*valueUsageContext*/  return new Property("value[x]", "UsageContext", "The value of the Output parameter as a basic type.", 0, 1, value);
2961          case 1678530924: /*valueAvailability*/  return new Property("value[x]", "Availability", "The value of the Output parameter as a basic type.", 0, 1, value);
2962          case -1567222041: /*valueExtendedContactDetail*/  return new Property("value[x]", "ExtendedContactDetail", "The value of the Output parameter as a basic type.", 0, 1, value);
2963          case -1858636920: /*valueDosage*/  return new Property("value[x]", "Dosage", "The value of the Output parameter as a basic type.", 0, 1, value);
2964          case -765920490: /*valueMeta*/  return new Property("value[x]", "Meta", "The value of the Output parameter as a basic type.", 0, 1, value);
2965          default: return super.getNamedProperty(_hash, _name, _checkValid);
2966          }
2967
2968        }
2969
2970      @Override
2971      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2972        switch (hash) {
2973        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
2974        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
2975        default: return super.getProperty(hash, name, checkValid);
2976        }
2977
2978      }
2979
2980      @Override
2981      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2982        switch (hash) {
2983        case 3575610: // type
2984          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2985          return value;
2986        case 111972721: // value
2987          this.value = TypeConvertor.castToType(value); // DataType
2988          return value;
2989        default: return super.setProperty(hash, name, value);
2990        }
2991
2992      }
2993
2994      @Override
2995      public Base setProperty(String name, Base value) throws FHIRException {
2996        if (name.equals("type")) {
2997          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2998        } else if (name.equals("value[x]")) {
2999          this.value = TypeConvertor.castToType(value); // DataType
3000        } else
3001          return super.setProperty(name, value);
3002        return value;
3003      }
3004
3005      @Override
3006      public Base makeProperty(int hash, String name) throws FHIRException {
3007        switch (hash) {
3008        case 3575610:  return getType();
3009        case -1410166417:  return getValue();
3010        case 111972721:  return getValue();
3011        default: return super.makeProperty(hash, name);
3012        }
3013
3014      }
3015
3016      @Override
3017      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3018        switch (hash) {
3019        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
3020        case 111972721: /*value*/ return new String[] {"base64Binary", "boolean", "canonical", "code", "date", "dateTime", "decimal", "id", "instant", "integer", "integer64", "markdown", "oid", "positiveInt", "string", "time", "unsignedInt", "uri", "url", "uuid", "Address", "Age", "Annotation", "Attachment", "CodeableConcept", "CodeableReference", "Coding", "ContactPoint", "Count", "Distance", "Duration", "HumanName", "Identifier", "Money", "Period", "Quantity", "Range", "Ratio", "RatioRange", "Reference", "SampledData", "Signature", "Timing", "ContactDetail", "DataRequirement", "Expression", "ParameterDefinition", "RelatedArtifact", "TriggerDefinition", "UsageContext", "Availability", "ExtendedContactDetail", "Dosage", "Meta"};
3021        default: return super.getTypesForProperty(hash, name);
3022        }
3023
3024      }
3025
3026      @Override
3027      public Base addChild(String name) throws FHIRException {
3028        if (name.equals("type")) {
3029          this.type = new CodeableConcept();
3030          return this.type;
3031        }
3032        else if (name.equals("valueBase64Binary")) {
3033          this.value = new Base64BinaryType();
3034          return this.value;
3035        }
3036        else if (name.equals("valueBoolean")) {
3037          this.value = new BooleanType();
3038          return this.value;
3039        }
3040        else if (name.equals("valueCanonical")) {
3041          this.value = new CanonicalType();
3042          return this.value;
3043        }
3044        else if (name.equals("valueCode")) {
3045          this.value = new CodeType();
3046          return this.value;
3047        }
3048        else if (name.equals("valueDate")) {
3049          this.value = new DateType();
3050          return this.value;
3051        }
3052        else if (name.equals("valueDateTime")) {
3053          this.value = new DateTimeType();
3054          return this.value;
3055        }
3056        else if (name.equals("valueDecimal")) {
3057          this.value = new DecimalType();
3058          return this.value;
3059        }
3060        else if (name.equals("valueId")) {
3061          this.value = new IdType();
3062          return this.value;
3063        }
3064        else if (name.equals("valueInstant")) {
3065          this.value = new InstantType();
3066          return this.value;
3067        }
3068        else if (name.equals("valueInteger")) {
3069          this.value = new IntegerType();
3070          return this.value;
3071        }
3072        else if (name.equals("valueInteger64")) {
3073          this.value = new Integer64Type();
3074          return this.value;
3075        }
3076        else if (name.equals("valueMarkdown")) {
3077          this.value = new MarkdownType();
3078          return this.value;
3079        }
3080        else if (name.equals("valueOid")) {
3081          this.value = new OidType();
3082          return this.value;
3083        }
3084        else if (name.equals("valuePositiveInt")) {
3085          this.value = new PositiveIntType();
3086          return this.value;
3087        }
3088        else if (name.equals("valueString")) {
3089          this.value = new StringType();
3090          return this.value;
3091        }
3092        else if (name.equals("valueTime")) {
3093          this.value = new TimeType();
3094          return this.value;
3095        }
3096        else if (name.equals("valueUnsignedInt")) {
3097          this.value = new UnsignedIntType();
3098          return this.value;
3099        }
3100        else if (name.equals("valueUri")) {
3101          this.value = new UriType();
3102          return this.value;
3103        }
3104        else if (name.equals("valueUrl")) {
3105          this.value = new UrlType();
3106          return this.value;
3107        }
3108        else if (name.equals("valueUuid")) {
3109          this.value = new UuidType();
3110          return this.value;
3111        }
3112        else if (name.equals("valueAddress")) {
3113          this.value = new Address();
3114          return this.value;
3115        }
3116        else if (name.equals("valueAge")) {
3117          this.value = new Age();
3118          return this.value;
3119        }
3120        else if (name.equals("valueAnnotation")) {
3121          this.value = new Annotation();
3122          return this.value;
3123        }
3124        else if (name.equals("valueAttachment")) {
3125          this.value = new Attachment();
3126          return this.value;
3127        }
3128        else if (name.equals("valueCodeableConcept")) {
3129          this.value = new CodeableConcept();
3130          return this.value;
3131        }
3132        else if (name.equals("valueCodeableReference")) {
3133          this.value = new CodeableReference();
3134          return this.value;
3135        }
3136        else if (name.equals("valueCoding")) {
3137          this.value = new Coding();
3138          return this.value;
3139        }
3140        else if (name.equals("valueContactPoint")) {
3141          this.value = new ContactPoint();
3142          return this.value;
3143        }
3144        else if (name.equals("valueCount")) {
3145          this.value = new Count();
3146          return this.value;
3147        }
3148        else if (name.equals("valueDistance")) {
3149          this.value = new Distance();
3150          return this.value;
3151        }
3152        else if (name.equals("valueDuration")) {
3153          this.value = new Duration();
3154          return this.value;
3155        }
3156        else if (name.equals("valueHumanName")) {
3157          this.value = new HumanName();
3158          return this.value;
3159        }
3160        else if (name.equals("valueIdentifier")) {
3161          this.value = new Identifier();
3162          return this.value;
3163        }
3164        else if (name.equals("valueMoney")) {
3165          this.value = new Money();
3166          return this.value;
3167        }
3168        else if (name.equals("valuePeriod")) {
3169          this.value = new Period();
3170          return this.value;
3171        }
3172        else if (name.equals("valueQuantity")) {
3173          this.value = new Quantity();
3174          return this.value;
3175        }
3176        else if (name.equals("valueRange")) {
3177          this.value = new Range();
3178          return this.value;
3179        }
3180        else if (name.equals("valueRatio")) {
3181          this.value = new Ratio();
3182          return this.value;
3183        }
3184        else if (name.equals("valueRatioRange")) {
3185          this.value = new RatioRange();
3186          return this.value;
3187        }
3188        else if (name.equals("valueReference")) {
3189          this.value = new Reference();
3190          return this.value;
3191        }
3192        else if (name.equals("valueSampledData")) {
3193          this.value = new SampledData();
3194          return this.value;
3195        }
3196        else if (name.equals("valueSignature")) {
3197          this.value = new Signature();
3198          return this.value;
3199        }
3200        else if (name.equals("valueTiming")) {
3201          this.value = new Timing();
3202          return this.value;
3203        }
3204        else if (name.equals("valueContactDetail")) {
3205          this.value = new ContactDetail();
3206          return this.value;
3207        }
3208        else if (name.equals("valueDataRequirement")) {
3209          this.value = new DataRequirement();
3210          return this.value;
3211        }
3212        else if (name.equals("valueExpression")) {
3213          this.value = new Expression();
3214          return this.value;
3215        }
3216        else if (name.equals("valueParameterDefinition")) {
3217          this.value = new ParameterDefinition();
3218          return this.value;
3219        }
3220        else if (name.equals("valueRelatedArtifact")) {
3221          this.value = new RelatedArtifact();
3222          return this.value;
3223        }
3224        else if (name.equals("valueTriggerDefinition")) {
3225          this.value = new TriggerDefinition();
3226          return this.value;
3227        }
3228        else if (name.equals("valueUsageContext")) {
3229          this.value = new UsageContext();
3230          return this.value;
3231        }
3232        else if (name.equals("valueAvailability")) {
3233          this.value = new Availability();
3234          return this.value;
3235        }
3236        else if (name.equals("valueExtendedContactDetail")) {
3237          this.value = new ExtendedContactDetail();
3238          return this.value;
3239        }
3240        else if (name.equals("valueDosage")) {
3241          this.value = new Dosage();
3242          return this.value;
3243        }
3244        else if (name.equals("valueMeta")) {
3245          this.value = new Meta();
3246          return this.value;
3247        }
3248        else
3249          return super.addChild(name);
3250      }
3251
3252      public TransportOutputComponent copy() {
3253        TransportOutputComponent dst = new TransportOutputComponent();
3254        copyValues(dst);
3255        return dst;
3256      }
3257
3258      public void copyValues(TransportOutputComponent dst) {
3259        super.copyValues(dst);
3260        dst.type = type == null ? null : type.copy();
3261        dst.value = value == null ? null : value.copy();
3262      }
3263
3264      @Override
3265      public boolean equalsDeep(Base other_) {
3266        if (!super.equalsDeep(other_))
3267          return false;
3268        if (!(other_ instanceof TransportOutputComponent))
3269          return false;
3270        TransportOutputComponent o = (TransportOutputComponent) other_;
3271        return compareDeep(type, o.type, true) && compareDeep(value, o.value, true);
3272      }
3273
3274      @Override
3275      public boolean equalsShallow(Base other_) {
3276        if (!super.equalsShallow(other_))
3277          return false;
3278        if (!(other_ instanceof TransportOutputComponent))
3279          return false;
3280        TransportOutputComponent o = (TransportOutputComponent) other_;
3281        return true;
3282      }
3283
3284      public boolean isEmpty() {
3285        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, value);
3286      }
3287
3288  public String fhirType() {
3289    return "Transport.output";
3290
3291  }
3292
3293  }
3294
3295    /**
3296     * Identifier for the transport event that is used to identify it across multiple disparate systems.
3297     */
3298    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3299    @Description(shortDefinition="External identifier", formalDefinition="Identifier for the transport event that is used to identify it across multiple disparate systems." )
3300    protected List<Identifier> identifier;
3301
3302    /**
3303     * The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.
3304     */
3305    @Child(name = "instantiatesCanonical", type = {CanonicalType.class}, order=1, min=0, max=1, modifier=false, summary=true)
3306    @Description(shortDefinition="Formal definition of transport", formalDefinition="The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport." )
3307    protected CanonicalType instantiatesCanonical;
3308
3309    /**
3310     * The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.
3311     */
3312    @Child(name = "instantiatesUri", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=true)
3313    @Description(shortDefinition="Formal definition of transport", formalDefinition="The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport." )
3314    protected UriType instantiatesUri;
3315
3316    /**
3317     * BasedOn refers to a higher-level authorization that triggered the creation of the transport.  It references a "request" resource such as a ServiceRequest or Transport, which is distinct from the "request" resource the Transport is seeking to fulfill.  This latter resource is referenced by FocusOn.  For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab.
3318     */
3319    @Child(name = "basedOn", type = {Reference.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3320    @Description(shortDefinition="Request fulfilled by this transport", formalDefinition="BasedOn refers to a higher-level authorization that triggered the creation of the transport.  It references a \"request\" resource such as a ServiceRequest or Transport, which is distinct from the \"request\" resource the Transport is seeking to fulfill.  This latter resource is referenced by FocusOn.  For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab." )
3321    protected List<Reference> basedOn;
3322
3323    /**
3324     * An identifier that links together multiple transports and other requests that were created in the same context.
3325     */
3326    @Child(name = "groupIdentifier", type = {Identifier.class}, order=4, min=0, max=1, modifier=false, summary=true)
3327    @Description(shortDefinition="Requisition or grouper id", formalDefinition="An identifier that links together multiple transports and other requests that were created in the same context." )
3328    protected Identifier groupIdentifier;
3329
3330    /**
3331     * A larger event of which this particular event is a component or step.
3332     */
3333    @Child(name = "partOf", type = {Transport.class, Contract.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3334    @Description(shortDefinition="Part of referenced event", formalDefinition="A larger event of which this particular event is a component or step." )
3335    protected List<Reference> partOf;
3336
3337    /**
3338     * A code specifying the state of the transport event.
3339     */
3340    @Child(name = "status", type = {CodeType.class}, order=6, min=0, max=1, modifier=true, summary=true)
3341    @Description(shortDefinition="in-progress | completed | abandoned | cancelled | planned | entered-in-error", formalDefinition="A code specifying the state of the transport event." )
3342    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/transport-status")
3343    protected Enumeration<TransportStatus> status;
3344
3345    /**
3346     * An explanation as to why this transport is held, failed, was refused, etc.
3347     */
3348    @Child(name = "statusReason", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=true)
3349    @Description(shortDefinition="Reason for current status", formalDefinition="An explanation as to why this transport is held, failed, was refused, etc." )
3350    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/transport-status-reason")
3351    protected CodeableConcept statusReason;
3352
3353    /**
3354     * Indicates the "level" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.
3355     */
3356    @Child(name = "intent", type = {CodeType.class}, order=8, min=1, max=1, modifier=false, summary=true)
3357    @Description(shortDefinition="unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option", formalDefinition="Indicates the \"level\" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc." )
3358    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/transport-intent")
3359    protected Enumeration<TransportIntent> intent;
3360
3361    /**
3362     * Indicates how quickly the Transport should be addressed with respect to other requests.
3363     */
3364    @Child(name = "priority", type = {CodeType.class}, order=9, min=0, max=1, modifier=false, summary=false)
3365    @Description(shortDefinition="routine | urgent | asap | stat", formalDefinition="Indicates how quickly the Transport should be addressed with respect to other requests." )
3366    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/request-priority")
3367    protected Enumeration<RequestPriority> priority;
3368
3369    /**
3370     * A name or code (or both) briefly describing what the transport involves.
3371     */
3372    @Child(name = "code", type = {CodeableConcept.class}, order=10, min=0, max=1, modifier=false, summary=true)
3373    @Description(shortDefinition="Transport Type", formalDefinition="A name or code (or both) briefly describing what the transport involves." )
3374    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/transport-code")
3375    protected CodeableConcept code;
3376
3377    /**
3378     * A free-text description of what is to be performed.
3379     */
3380    @Child(name = "description", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true)
3381    @Description(shortDefinition="Human-readable explanation of transport", formalDefinition="A free-text description of what is to be performed." )
3382    protected StringType description;
3383
3384    /**
3385     * The request being actioned or the resource being manipulated by this transport.
3386     */
3387    @Child(name = "focus", type = {Reference.class}, order=12, min=0, max=1, modifier=false, summary=true)
3388    @Description(shortDefinition="What transport is acting on", formalDefinition="The request being actioned or the resource being manipulated by this transport." )
3389    protected Reference focus;
3390
3391    /**
3392     * The entity who benefits from the performance of the service specified in the transport (e.g., the patient).
3393     */
3394    @Child(name = "for", type = {Reference.class}, order=13, min=0, max=1, modifier=false, summary=true)
3395    @Description(shortDefinition="Beneficiary of the Transport", formalDefinition="The entity who benefits from the performance of the service specified in the transport (e.g., the patient)." )
3396    protected Reference for_;
3397
3398    /**
3399     * The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.
3400     */
3401    @Child(name = "encounter", type = {Encounter.class}, order=14, min=0, max=1, modifier=false, summary=true)
3402    @Description(shortDefinition="Healthcare event during which this transport originated", formalDefinition="The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created." )
3403    protected Reference encounter;
3404
3405    /**
3406     * Identifies the completion time of the event (the occurrence).
3407     */
3408    @Child(name = "completionTime", type = {DateTimeType.class}, order=15, min=0, max=1, modifier=false, summary=true)
3409    @Description(shortDefinition="Completion time of the event (the occurrence)", formalDefinition="Identifies the completion time of the event (the occurrence)." )
3410    protected DateTimeType completionTime;
3411
3412    /**
3413     * The date and time this transport was created.
3414     */
3415    @Child(name = "authoredOn", type = {DateTimeType.class}, order=16, min=0, max=1, modifier=false, summary=false)
3416    @Description(shortDefinition="Transport Creation Date", formalDefinition="The date and time this transport was created." )
3417    protected DateTimeType authoredOn;
3418
3419    /**
3420     * The date and time of last modification to this transport.
3421     */
3422    @Child(name = "lastModified", type = {DateTimeType.class}, order=17, min=0, max=1, modifier=false, summary=true)
3423    @Description(shortDefinition="Transport Last Modified Date", formalDefinition="The date and time of last modification to this transport." )
3424    protected DateTimeType lastModified;
3425
3426    /**
3427     * The creator of the transport.
3428     */
3429    @Child(name = "requester", type = {Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class}, order=18, min=0, max=1, modifier=false, summary=true)
3430    @Description(shortDefinition="Who is asking for transport to be done", formalDefinition="The creator of the transport." )
3431    protected Reference requester;
3432
3433    /**
3434     * The kind of participant that should perform the transport.
3435     */
3436    @Child(name = "performerType", type = {CodeableConcept.class}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3437    @Description(shortDefinition="Requested performer", formalDefinition="The kind of participant that should perform the transport." )
3438    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/performer-role")
3439    protected List<CodeableConcept> performerType;
3440
3441    /**
3442     * Individual organization or Device currently responsible for transport execution.
3443     */
3444    @Child(name = "owner", type = {Practitioner.class, PractitionerRole.class, Organization.class, CareTeam.class, HealthcareService.class, Patient.class, Device.class, RelatedPerson.class}, order=20, min=0, max=1, modifier=false, summary=true)
3445    @Description(shortDefinition="Responsible individual", formalDefinition="Individual organization or Device currently responsible for transport execution." )
3446    protected Reference owner;
3447
3448    /**
3449     * Principal physical location where this transport is performed.
3450     */
3451    @Child(name = "location", type = {Location.class}, order=21, min=0, max=1, modifier=false, summary=true)
3452    @Description(shortDefinition="Where transport occurs", formalDefinition="Principal physical location where this transport is performed." )
3453    protected Reference location;
3454
3455    /**
3456     * A description or code indicating why this transport needs to be performed.
3457     */
3458    @Child(name = "reasonCode", type = {CodeableConcept.class}, order=22, min=0, max=1, modifier=false, summary=false)
3459    @Description(shortDefinition="Why transport is needed", formalDefinition="A description or code indicating why this transport needs to be performed." )
3460    protected CodeableConcept reasonCode;
3461
3462    /**
3463     * A resource reference indicating why this transport needs to be performed.
3464     */
3465    @Child(name = "reasonReference", type = {Reference.class}, order=23, min=0, max=1, modifier=false, summary=false)
3466    @Description(shortDefinition="Why transport is needed", formalDefinition="A resource reference indicating why this transport needs to be performed." )
3467    protected Reference reasonReference;
3468
3469    /**
3470     * Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.
3471     */
3472    @Child(name = "insurance", type = {Coverage.class, ClaimResponse.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3473    @Description(shortDefinition="Associated insurance coverage", formalDefinition="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport." )
3474    protected List<Reference> insurance;
3475
3476    /**
3477     * Free-text information captured about the transport as it progresses.
3478     */
3479    @Child(name = "note", type = {Annotation.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3480    @Description(shortDefinition="Comments made about the transport", formalDefinition="Free-text information captured about the transport as it progresses." )
3481    protected List<Annotation> note;
3482
3483    /**
3484     * Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport.
3485     */
3486    @Child(name = "relevantHistory", type = {Provenance.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3487    @Description(shortDefinition="Key events in history of the Transport", formalDefinition="Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport." )
3488    protected List<Reference> relevantHistory;
3489
3490    /**
3491     * If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.
3492     */
3493    @Child(name = "restriction", type = {}, order=27, min=0, max=1, modifier=false, summary=false)
3494    @Description(shortDefinition="Constraints on fulfillment transports", formalDefinition="If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned." )
3495    protected TransportRestrictionComponent restriction;
3496
3497    /**
3498     * Additional information that may be needed in the execution of the transport.
3499     */
3500    @Child(name = "input", type = {}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3501    @Description(shortDefinition="Information used to perform transport", formalDefinition="Additional information that may be needed in the execution of the transport." )
3502    protected List<ParameterComponent> input;
3503
3504    /**
3505     * Outputs produced by the Transport.
3506     */
3507    @Child(name = "output", type = {}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3508    @Description(shortDefinition="Information produced as part of transport", formalDefinition="Outputs produced by the Transport." )
3509    protected List<TransportOutputComponent> output;
3510
3511    /**
3512     * The desired or final location for the transport.
3513     */
3514    @Child(name = "requestedLocation", type = {Location.class}, order=30, min=1, max=1, modifier=false, summary=true)
3515    @Description(shortDefinition="The desired location", formalDefinition="The desired or final location for the transport." )
3516    protected Reference requestedLocation;
3517
3518    /**
3519     * The current location for the entity to be transported.
3520     */
3521    @Child(name = "currentLocation", type = {Location.class}, order=31, min=1, max=1, modifier=false, summary=true)
3522    @Description(shortDefinition="The current location", formalDefinition="The current location for the entity to be transported." )
3523    protected Reference currentLocation;
3524
3525    /**
3526     * The transport event prior to this one.
3527     */
3528    @Child(name = "history", type = {Transport.class}, order=32, min=0, max=1, modifier=false, summary=false)
3529    @Description(shortDefinition="Parent (or preceding) transport", formalDefinition="The transport event prior to this one." )
3530    protected Reference history;
3531
3532    private static final long serialVersionUID = 991678619L;
3533
3534  /**
3535   * Constructor
3536   */
3537    public Transport() {
3538      super();
3539    }
3540
3541  /**
3542   * Constructor
3543   */
3544    public Transport(TransportIntent intent, Reference requestedLocation, Reference currentLocation) {
3545      super();
3546      this.setIntent(intent);
3547      this.setRequestedLocation(requestedLocation);
3548      this.setCurrentLocation(currentLocation);
3549    }
3550
3551    /**
3552     * @return {@link #identifier} (Identifier for the transport event that is used to identify it across multiple disparate systems.)
3553     */
3554    public List<Identifier> getIdentifier() { 
3555      if (this.identifier == null)
3556        this.identifier = new ArrayList<Identifier>();
3557      return this.identifier;
3558    }
3559
3560    /**
3561     * @return Returns a reference to <code>this</code> for easy method chaining
3562     */
3563    public Transport setIdentifier(List<Identifier> theIdentifier) { 
3564      this.identifier = theIdentifier;
3565      return this;
3566    }
3567
3568    public boolean hasIdentifier() { 
3569      if (this.identifier == null)
3570        return false;
3571      for (Identifier item : this.identifier)
3572        if (!item.isEmpty())
3573          return true;
3574      return false;
3575    }
3576
3577    public Identifier addIdentifier() { //3
3578      Identifier t = new Identifier();
3579      if (this.identifier == null)
3580        this.identifier = new ArrayList<Identifier>();
3581      this.identifier.add(t);
3582      return t;
3583    }
3584
3585    public Transport addIdentifier(Identifier t) { //3
3586      if (t == null)
3587        return this;
3588      if (this.identifier == null)
3589        this.identifier = new ArrayList<Identifier>();
3590      this.identifier.add(t);
3591      return this;
3592    }
3593
3594    /**
3595     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
3596     */
3597    public Identifier getIdentifierFirstRep() { 
3598      if (getIdentifier().isEmpty()) {
3599        addIdentifier();
3600      }
3601      return getIdentifier().get(0);
3602    }
3603
3604    /**
3605     * @return {@link #instantiatesCanonical} (The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.). This is the underlying object with id, value and extensions. The accessor "getInstantiatesCanonical" gives direct access to the value
3606     */
3607    public CanonicalType getInstantiatesCanonicalElement() { 
3608      if (this.instantiatesCanonical == null)
3609        if (Configuration.errorOnAutoCreate())
3610          throw new Error("Attempt to auto-create Transport.instantiatesCanonical");
3611        else if (Configuration.doAutoCreate())
3612          this.instantiatesCanonical = new CanonicalType(); // bb
3613      return this.instantiatesCanonical;
3614    }
3615
3616    public boolean hasInstantiatesCanonicalElement() { 
3617      return this.instantiatesCanonical != null && !this.instantiatesCanonical.isEmpty();
3618    }
3619
3620    public boolean hasInstantiatesCanonical() { 
3621      return this.instantiatesCanonical != null && !this.instantiatesCanonical.isEmpty();
3622    }
3623
3624    /**
3625     * @param value {@link #instantiatesCanonical} (The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.). This is the underlying object with id, value and extensions. The accessor "getInstantiatesCanonical" gives direct access to the value
3626     */
3627    public Transport setInstantiatesCanonicalElement(CanonicalType value) { 
3628      this.instantiatesCanonical = value;
3629      return this;
3630    }
3631
3632    /**
3633     * @return The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.
3634     */
3635    public String getInstantiatesCanonical() { 
3636      return this.instantiatesCanonical == null ? null : this.instantiatesCanonical.getValue();
3637    }
3638
3639    /**
3640     * @param value The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.
3641     */
3642    public Transport setInstantiatesCanonical(String value) { 
3643      if (Utilities.noString(value))
3644        this.instantiatesCanonical = null;
3645      else {
3646        if (this.instantiatesCanonical == null)
3647          this.instantiatesCanonical = new CanonicalType();
3648        this.instantiatesCanonical.setValue(value);
3649      }
3650      return this;
3651    }
3652
3653    /**
3654     * @return {@link #instantiatesUri} (The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.). This is the underlying object with id, value and extensions. The accessor "getInstantiatesUri" gives direct access to the value
3655     */
3656    public UriType getInstantiatesUriElement() { 
3657      if (this.instantiatesUri == null)
3658        if (Configuration.errorOnAutoCreate())
3659          throw new Error("Attempt to auto-create Transport.instantiatesUri");
3660        else if (Configuration.doAutoCreate())
3661          this.instantiatesUri = new UriType(); // bb
3662      return this.instantiatesUri;
3663    }
3664
3665    public boolean hasInstantiatesUriElement() { 
3666      return this.instantiatesUri != null && !this.instantiatesUri.isEmpty();
3667    }
3668
3669    public boolean hasInstantiatesUri() { 
3670      return this.instantiatesUri != null && !this.instantiatesUri.isEmpty();
3671    }
3672
3673    /**
3674     * @param value {@link #instantiatesUri} (The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.). This is the underlying object with id, value and extensions. The accessor "getInstantiatesUri" gives direct access to the value
3675     */
3676    public Transport setInstantiatesUriElement(UriType value) { 
3677      this.instantiatesUri = value;
3678      return this;
3679    }
3680
3681    /**
3682     * @return The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.
3683     */
3684    public String getInstantiatesUri() { 
3685      return this.instantiatesUri == null ? null : this.instantiatesUri.getValue();
3686    }
3687
3688    /**
3689     * @param value The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.
3690     */
3691    public Transport setInstantiatesUri(String value) { 
3692      if (Utilities.noString(value))
3693        this.instantiatesUri = null;
3694      else {
3695        if (this.instantiatesUri == null)
3696          this.instantiatesUri = new UriType();
3697        this.instantiatesUri.setValue(value);
3698      }
3699      return this;
3700    }
3701
3702    /**
3703     * @return {@link #basedOn} (BasedOn refers to a higher-level authorization that triggered the creation of the transport.  It references a "request" resource such as a ServiceRequest or Transport, which is distinct from the "request" resource the Transport is seeking to fulfill.  This latter resource is referenced by FocusOn.  For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab.)
3704     */
3705    public List<Reference> getBasedOn() { 
3706      if (this.basedOn == null)
3707        this.basedOn = new ArrayList<Reference>();
3708      return this.basedOn;
3709    }
3710
3711    /**
3712     * @return Returns a reference to <code>this</code> for easy method chaining
3713     */
3714    public Transport setBasedOn(List<Reference> theBasedOn) { 
3715      this.basedOn = theBasedOn;
3716      return this;
3717    }
3718
3719    public boolean hasBasedOn() { 
3720      if (this.basedOn == null)
3721        return false;
3722      for (Reference item : this.basedOn)
3723        if (!item.isEmpty())
3724          return true;
3725      return false;
3726    }
3727
3728    public Reference addBasedOn() { //3
3729      Reference t = new Reference();
3730      if (this.basedOn == null)
3731        this.basedOn = new ArrayList<Reference>();
3732      this.basedOn.add(t);
3733      return t;
3734    }
3735
3736    public Transport addBasedOn(Reference t) { //3
3737      if (t == null)
3738        return this;
3739      if (this.basedOn == null)
3740        this.basedOn = new ArrayList<Reference>();
3741      this.basedOn.add(t);
3742      return this;
3743    }
3744
3745    /**
3746     * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3}
3747     */
3748    public Reference getBasedOnFirstRep() { 
3749      if (getBasedOn().isEmpty()) {
3750        addBasedOn();
3751      }
3752      return getBasedOn().get(0);
3753    }
3754
3755    /**
3756     * @return {@link #groupIdentifier} (An identifier that links together multiple transports and other requests that were created in the same context.)
3757     */
3758    public Identifier getGroupIdentifier() { 
3759      if (this.groupIdentifier == null)
3760        if (Configuration.errorOnAutoCreate())
3761          throw new Error("Attempt to auto-create Transport.groupIdentifier");
3762        else if (Configuration.doAutoCreate())
3763          this.groupIdentifier = new Identifier(); // cc
3764      return this.groupIdentifier;
3765    }
3766
3767    public boolean hasGroupIdentifier() { 
3768      return this.groupIdentifier != null && !this.groupIdentifier.isEmpty();
3769    }
3770
3771    /**
3772     * @param value {@link #groupIdentifier} (An identifier that links together multiple transports and other requests that were created in the same context.)
3773     */
3774    public Transport setGroupIdentifier(Identifier value) { 
3775      this.groupIdentifier = value;
3776      return this;
3777    }
3778
3779    /**
3780     * @return {@link #partOf} (A larger event of which this particular event is a component or step.)
3781     */
3782    public List<Reference> getPartOf() { 
3783      if (this.partOf == null)
3784        this.partOf = new ArrayList<Reference>();
3785      return this.partOf;
3786    }
3787
3788    /**
3789     * @return Returns a reference to <code>this</code> for easy method chaining
3790     */
3791    public Transport setPartOf(List<Reference> thePartOf) { 
3792      this.partOf = thePartOf;
3793      return this;
3794    }
3795
3796    public boolean hasPartOf() { 
3797      if (this.partOf == null)
3798        return false;
3799      for (Reference item : this.partOf)
3800        if (!item.isEmpty())
3801          return true;
3802      return false;
3803    }
3804
3805    public Reference addPartOf() { //3
3806      Reference t = new Reference();
3807      if (this.partOf == null)
3808        this.partOf = new ArrayList<Reference>();
3809      this.partOf.add(t);
3810      return t;
3811    }
3812
3813    public Transport addPartOf(Reference t) { //3
3814      if (t == null)
3815        return this;
3816      if (this.partOf == null)
3817        this.partOf = new ArrayList<Reference>();
3818      this.partOf.add(t);
3819      return this;
3820    }
3821
3822    /**
3823     * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist {3}
3824     */
3825    public Reference getPartOfFirstRep() { 
3826      if (getPartOf().isEmpty()) {
3827        addPartOf();
3828      }
3829      return getPartOf().get(0);
3830    }
3831
3832    /**
3833     * @return {@link #status} (A code specifying the state of the transport event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
3834     */
3835    public Enumeration<TransportStatus> getStatusElement() { 
3836      if (this.status == null)
3837        if (Configuration.errorOnAutoCreate())
3838          throw new Error("Attempt to auto-create Transport.status");
3839        else if (Configuration.doAutoCreate())
3840          this.status = new Enumeration<TransportStatus>(new TransportStatusEnumFactory()); // bb
3841      return this.status;
3842    }
3843
3844    public boolean hasStatusElement() { 
3845      return this.status != null && !this.status.isEmpty();
3846    }
3847
3848    public boolean hasStatus() { 
3849      return this.status != null && !this.status.isEmpty();
3850    }
3851
3852    /**
3853     * @param value {@link #status} (A code specifying the state of the transport event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
3854     */
3855    public Transport setStatusElement(Enumeration<TransportStatus> value) { 
3856      this.status = value;
3857      return this;
3858    }
3859
3860    /**
3861     * @return A code specifying the state of the transport event.
3862     */
3863    public TransportStatus getStatus() { 
3864      return this.status == null ? null : this.status.getValue();
3865    }
3866
3867    /**
3868     * @param value A code specifying the state of the transport event.
3869     */
3870    public Transport setStatus(TransportStatus value) { 
3871      if (value == null)
3872        this.status = null;
3873      else {
3874        if (this.status == null)
3875          this.status = new Enumeration<TransportStatus>(new TransportStatusEnumFactory());
3876        this.status.setValue(value);
3877      }
3878      return this;
3879    }
3880
3881    /**
3882     * @return {@link #statusReason} (An explanation as to why this transport is held, failed, was refused, etc.)
3883     */
3884    public CodeableConcept getStatusReason() { 
3885      if (this.statusReason == null)
3886        if (Configuration.errorOnAutoCreate())
3887          throw new Error("Attempt to auto-create Transport.statusReason");
3888        else if (Configuration.doAutoCreate())
3889          this.statusReason = new CodeableConcept(); // cc
3890      return this.statusReason;
3891    }
3892
3893    public boolean hasStatusReason() { 
3894      return this.statusReason != null && !this.statusReason.isEmpty();
3895    }
3896
3897    /**
3898     * @param value {@link #statusReason} (An explanation as to why this transport is held, failed, was refused, etc.)
3899     */
3900    public Transport setStatusReason(CodeableConcept value) { 
3901      this.statusReason = value;
3902      return this;
3903    }
3904
3905    /**
3906     * @return {@link #intent} (Indicates the "level" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.). This is the underlying object with id, value and extensions. The accessor "getIntent" gives direct access to the value
3907     */
3908    public Enumeration<TransportIntent> getIntentElement() { 
3909      if (this.intent == null)
3910        if (Configuration.errorOnAutoCreate())
3911          throw new Error("Attempt to auto-create Transport.intent");
3912        else if (Configuration.doAutoCreate())
3913          this.intent = new Enumeration<TransportIntent>(new TransportIntentEnumFactory()); // bb
3914      return this.intent;
3915    }
3916
3917    public boolean hasIntentElement() { 
3918      return this.intent != null && !this.intent.isEmpty();
3919    }
3920
3921    public boolean hasIntent() { 
3922      return this.intent != null && !this.intent.isEmpty();
3923    }
3924
3925    /**
3926     * @param value {@link #intent} (Indicates the "level" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.). This is the underlying object with id, value and extensions. The accessor "getIntent" gives direct access to the value
3927     */
3928    public Transport setIntentElement(Enumeration<TransportIntent> value) { 
3929      this.intent = value;
3930      return this;
3931    }
3932
3933    /**
3934     * @return Indicates the "level" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.
3935     */
3936    public TransportIntent getIntent() { 
3937      return this.intent == null ? null : this.intent.getValue();
3938    }
3939
3940    /**
3941     * @param value Indicates the "level" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.
3942     */
3943    public Transport setIntent(TransportIntent value) { 
3944        if (this.intent == null)
3945          this.intent = new Enumeration<TransportIntent>(new TransportIntentEnumFactory());
3946        this.intent.setValue(value);
3947      return this;
3948    }
3949
3950    /**
3951     * @return {@link #priority} (Indicates how quickly the Transport should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
3952     */
3953    public Enumeration<RequestPriority> getPriorityElement() { 
3954      if (this.priority == null)
3955        if (Configuration.errorOnAutoCreate())
3956          throw new Error("Attempt to auto-create Transport.priority");
3957        else if (Configuration.doAutoCreate())
3958          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); // bb
3959      return this.priority;
3960    }
3961
3962    public boolean hasPriorityElement() { 
3963      return this.priority != null && !this.priority.isEmpty();
3964    }
3965
3966    public boolean hasPriority() { 
3967      return this.priority != null && !this.priority.isEmpty();
3968    }
3969
3970    /**
3971     * @param value {@link #priority} (Indicates how quickly the Transport should be addressed with respect to other requests.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value
3972     */
3973    public Transport setPriorityElement(Enumeration<RequestPriority> value) { 
3974      this.priority = value;
3975      return this;
3976    }
3977
3978    /**
3979     * @return Indicates how quickly the Transport should be addressed with respect to other requests.
3980     */
3981    public RequestPriority getPriority() { 
3982      return this.priority == null ? null : this.priority.getValue();
3983    }
3984
3985    /**
3986     * @param value Indicates how quickly the Transport should be addressed with respect to other requests.
3987     */
3988    public Transport setPriority(RequestPriority value) { 
3989      if (value == null)
3990        this.priority = null;
3991      else {
3992        if (this.priority == null)
3993          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory());
3994        this.priority.setValue(value);
3995      }
3996      return this;
3997    }
3998
3999    /**
4000     * @return {@link #code} (A name or code (or both) briefly describing what the transport involves.)
4001     */
4002    public CodeableConcept getCode() { 
4003      if (this.code == null)
4004        if (Configuration.errorOnAutoCreate())
4005          throw new Error("Attempt to auto-create Transport.code");
4006        else if (Configuration.doAutoCreate())
4007          this.code = new CodeableConcept(); // cc
4008      return this.code;
4009    }
4010
4011    public boolean hasCode() { 
4012      return this.code != null && !this.code.isEmpty();
4013    }
4014
4015    /**
4016     * @param value {@link #code} (A name or code (or both) briefly describing what the transport involves.)
4017     */
4018    public Transport setCode(CodeableConcept value) { 
4019      this.code = value;
4020      return this;
4021    }
4022
4023    /**
4024     * @return {@link #description} (A free-text description of what is to be performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4025     */
4026    public StringType getDescriptionElement() { 
4027      if (this.description == null)
4028        if (Configuration.errorOnAutoCreate())
4029          throw new Error("Attempt to auto-create Transport.description");
4030        else if (Configuration.doAutoCreate())
4031          this.description = new StringType(); // bb
4032      return this.description;
4033    }
4034
4035    public boolean hasDescriptionElement() { 
4036      return this.description != null && !this.description.isEmpty();
4037    }
4038
4039    public boolean hasDescription() { 
4040      return this.description != null && !this.description.isEmpty();
4041    }
4042
4043    /**
4044     * @param value {@link #description} (A free-text description of what is to be performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4045     */
4046    public Transport setDescriptionElement(StringType value) { 
4047      this.description = value;
4048      return this;
4049    }
4050
4051    /**
4052     * @return A free-text description of what is to be performed.
4053     */
4054    public String getDescription() { 
4055      return this.description == null ? null : this.description.getValue();
4056    }
4057
4058    /**
4059     * @param value A free-text description of what is to be performed.
4060     */
4061    public Transport setDescription(String value) { 
4062      if (Utilities.noString(value))
4063        this.description = null;
4064      else {
4065        if (this.description == null)
4066          this.description = new StringType();
4067        this.description.setValue(value);
4068      }
4069      return this;
4070    }
4071
4072    /**
4073     * @return {@link #focus} (The request being actioned or the resource being manipulated by this transport.)
4074     */
4075    public Reference getFocus() { 
4076      if (this.focus == null)
4077        if (Configuration.errorOnAutoCreate())
4078          throw new Error("Attempt to auto-create Transport.focus");
4079        else if (Configuration.doAutoCreate())
4080          this.focus = new Reference(); // cc
4081      return this.focus;
4082    }
4083
4084    public boolean hasFocus() { 
4085      return this.focus != null && !this.focus.isEmpty();
4086    }
4087
4088    /**
4089     * @param value {@link #focus} (The request being actioned or the resource being manipulated by this transport.)
4090     */
4091    public Transport setFocus(Reference value) { 
4092      this.focus = value;
4093      return this;
4094    }
4095
4096    /**
4097     * @return {@link #for_} (The entity who benefits from the performance of the service specified in the transport (e.g., the patient).)
4098     */
4099    public Reference getFor() { 
4100      if (this.for_ == null)
4101        if (Configuration.errorOnAutoCreate())
4102          throw new Error("Attempt to auto-create Transport.for_");
4103        else if (Configuration.doAutoCreate())
4104          this.for_ = new Reference(); // cc
4105      return this.for_;
4106    }
4107
4108    public boolean hasFor() { 
4109      return this.for_ != null && !this.for_.isEmpty();
4110    }
4111
4112    /**
4113     * @param value {@link #for_} (The entity who benefits from the performance of the service specified in the transport (e.g., the patient).)
4114     */
4115    public Transport setFor(Reference value) { 
4116      this.for_ = value;
4117      return this;
4118    }
4119
4120    /**
4121     * @return {@link #encounter} (The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.)
4122     */
4123    public Reference getEncounter() { 
4124      if (this.encounter == null)
4125        if (Configuration.errorOnAutoCreate())
4126          throw new Error("Attempt to auto-create Transport.encounter");
4127        else if (Configuration.doAutoCreate())
4128          this.encounter = new Reference(); // cc
4129      return this.encounter;
4130    }
4131
4132    public boolean hasEncounter() { 
4133      return this.encounter != null && !this.encounter.isEmpty();
4134    }
4135
4136    /**
4137     * @param value {@link #encounter} (The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.)
4138     */
4139    public Transport setEncounter(Reference value) { 
4140      this.encounter = value;
4141      return this;
4142    }
4143
4144    /**
4145     * @return {@link #completionTime} (Identifies the completion time of the event (the occurrence).). This is the underlying object with id, value and extensions. The accessor "getCompletionTime" gives direct access to the value
4146     */
4147    public DateTimeType getCompletionTimeElement() { 
4148      if (this.completionTime == null)
4149        if (Configuration.errorOnAutoCreate())
4150          throw new Error("Attempt to auto-create Transport.completionTime");
4151        else if (Configuration.doAutoCreate())
4152          this.completionTime = new DateTimeType(); // bb
4153      return this.completionTime;
4154    }
4155
4156    public boolean hasCompletionTimeElement() { 
4157      return this.completionTime != null && !this.completionTime.isEmpty();
4158    }
4159
4160    public boolean hasCompletionTime() { 
4161      return this.completionTime != null && !this.completionTime.isEmpty();
4162    }
4163
4164    /**
4165     * @param value {@link #completionTime} (Identifies the completion time of the event (the occurrence).). This is the underlying object with id, value and extensions. The accessor "getCompletionTime" gives direct access to the value
4166     */
4167    public Transport setCompletionTimeElement(DateTimeType value) { 
4168      this.completionTime = value;
4169      return this;
4170    }
4171
4172    /**
4173     * @return Identifies the completion time of the event (the occurrence).
4174     */
4175    public Date getCompletionTime() { 
4176      return this.completionTime == null ? null : this.completionTime.getValue();
4177    }
4178
4179    /**
4180     * @param value Identifies the completion time of the event (the occurrence).
4181     */
4182    public Transport setCompletionTime(Date value) { 
4183      if (value == null)
4184        this.completionTime = null;
4185      else {
4186        if (this.completionTime == null)
4187          this.completionTime = new DateTimeType();
4188        this.completionTime.setValue(value);
4189      }
4190      return this;
4191    }
4192
4193    /**
4194     * @return {@link #authoredOn} (The date and time this transport was created.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
4195     */
4196    public DateTimeType getAuthoredOnElement() { 
4197      if (this.authoredOn == null)
4198        if (Configuration.errorOnAutoCreate())
4199          throw new Error("Attempt to auto-create Transport.authoredOn");
4200        else if (Configuration.doAutoCreate())
4201          this.authoredOn = new DateTimeType(); // bb
4202      return this.authoredOn;
4203    }
4204
4205    public boolean hasAuthoredOnElement() { 
4206      return this.authoredOn != null && !this.authoredOn.isEmpty();
4207    }
4208
4209    public boolean hasAuthoredOn() { 
4210      return this.authoredOn != null && !this.authoredOn.isEmpty();
4211    }
4212
4213    /**
4214     * @param value {@link #authoredOn} (The date and time this transport was created.). This is the underlying object with id, value and extensions. The accessor "getAuthoredOn" gives direct access to the value
4215     */
4216    public Transport setAuthoredOnElement(DateTimeType value) { 
4217      this.authoredOn = value;
4218      return this;
4219    }
4220
4221    /**
4222     * @return The date and time this transport was created.
4223     */
4224    public Date getAuthoredOn() { 
4225      return this.authoredOn == null ? null : this.authoredOn.getValue();
4226    }
4227
4228    /**
4229     * @param value The date and time this transport was created.
4230     */
4231    public Transport setAuthoredOn(Date value) { 
4232      if (value == null)
4233        this.authoredOn = null;
4234      else {
4235        if (this.authoredOn == null)
4236          this.authoredOn = new DateTimeType();
4237        this.authoredOn.setValue(value);
4238      }
4239      return this;
4240    }
4241
4242    /**
4243     * @return {@link #lastModified} (The date and time of last modification to this transport.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value
4244     */
4245    public DateTimeType getLastModifiedElement() { 
4246      if (this.lastModified == null)
4247        if (Configuration.errorOnAutoCreate())
4248          throw new Error("Attempt to auto-create Transport.lastModified");
4249        else if (Configuration.doAutoCreate())
4250          this.lastModified = new DateTimeType(); // bb
4251      return this.lastModified;
4252    }
4253
4254    public boolean hasLastModifiedElement() { 
4255      return this.lastModified != null && !this.lastModified.isEmpty();
4256    }
4257
4258    public boolean hasLastModified() { 
4259      return this.lastModified != null && !this.lastModified.isEmpty();
4260    }
4261
4262    /**
4263     * @param value {@link #lastModified} (The date and time of last modification to this transport.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value
4264     */
4265    public Transport setLastModifiedElement(DateTimeType value) { 
4266      this.lastModified = value;
4267      return this;
4268    }
4269
4270    /**
4271     * @return The date and time of last modification to this transport.
4272     */
4273    public Date getLastModified() { 
4274      return this.lastModified == null ? null : this.lastModified.getValue();
4275    }
4276
4277    /**
4278     * @param value The date and time of last modification to this transport.
4279     */
4280    public Transport setLastModified(Date value) { 
4281      if (value == null)
4282        this.lastModified = null;
4283      else {
4284        if (this.lastModified == null)
4285          this.lastModified = new DateTimeType();
4286        this.lastModified.setValue(value);
4287      }
4288      return this;
4289    }
4290
4291    /**
4292     * @return {@link #requester} (The creator of the transport.)
4293     */
4294    public Reference getRequester() { 
4295      if (this.requester == null)
4296        if (Configuration.errorOnAutoCreate())
4297          throw new Error("Attempt to auto-create Transport.requester");
4298        else if (Configuration.doAutoCreate())
4299          this.requester = new Reference(); // cc
4300      return this.requester;
4301    }
4302
4303    public boolean hasRequester() { 
4304      return this.requester != null && !this.requester.isEmpty();
4305    }
4306
4307    /**
4308     * @param value {@link #requester} (The creator of the transport.)
4309     */
4310    public Transport setRequester(Reference value) { 
4311      this.requester = value;
4312      return this;
4313    }
4314
4315    /**
4316     * @return {@link #performerType} (The kind of participant that should perform the transport.)
4317     */
4318    public List<CodeableConcept> getPerformerType() { 
4319      if (this.performerType == null)
4320        this.performerType = new ArrayList<CodeableConcept>();
4321      return this.performerType;
4322    }
4323
4324    /**
4325     * @return Returns a reference to <code>this</code> for easy method chaining
4326     */
4327    public Transport setPerformerType(List<CodeableConcept> thePerformerType) { 
4328      this.performerType = thePerformerType;
4329      return this;
4330    }
4331
4332    public boolean hasPerformerType() { 
4333      if (this.performerType == null)
4334        return false;
4335      for (CodeableConcept item : this.performerType)
4336        if (!item.isEmpty())
4337          return true;
4338      return false;
4339    }
4340
4341    public CodeableConcept addPerformerType() { //3
4342      CodeableConcept t = new CodeableConcept();
4343      if (this.performerType == null)
4344        this.performerType = new ArrayList<CodeableConcept>();
4345      this.performerType.add(t);
4346      return t;
4347    }
4348
4349    public Transport addPerformerType(CodeableConcept t) { //3
4350      if (t == null)
4351        return this;
4352      if (this.performerType == null)
4353        this.performerType = new ArrayList<CodeableConcept>();
4354      this.performerType.add(t);
4355      return this;
4356    }
4357
4358    /**
4359     * @return The first repetition of repeating field {@link #performerType}, creating it if it does not already exist {3}
4360     */
4361    public CodeableConcept getPerformerTypeFirstRep() { 
4362      if (getPerformerType().isEmpty()) {
4363        addPerformerType();
4364      }
4365      return getPerformerType().get(0);
4366    }
4367
4368    /**
4369     * @return {@link #owner} (Individual organization or Device currently responsible for transport execution.)
4370     */
4371    public Reference getOwner() { 
4372      if (this.owner == null)
4373        if (Configuration.errorOnAutoCreate())
4374          throw new Error("Attempt to auto-create Transport.owner");
4375        else if (Configuration.doAutoCreate())
4376          this.owner = new Reference(); // cc
4377      return this.owner;
4378    }
4379
4380    public boolean hasOwner() { 
4381      return this.owner != null && !this.owner.isEmpty();
4382    }
4383
4384    /**
4385     * @param value {@link #owner} (Individual organization or Device currently responsible for transport execution.)
4386     */
4387    public Transport setOwner(Reference value) { 
4388      this.owner = value;
4389      return this;
4390    }
4391
4392    /**
4393     * @return {@link #location} (Principal physical location where this transport is performed.)
4394     */
4395    public Reference getLocation() { 
4396      if (this.location == null)
4397        if (Configuration.errorOnAutoCreate())
4398          throw new Error("Attempt to auto-create Transport.location");
4399        else if (Configuration.doAutoCreate())
4400          this.location = new Reference(); // cc
4401      return this.location;
4402    }
4403
4404    public boolean hasLocation() { 
4405      return this.location != null && !this.location.isEmpty();
4406    }
4407
4408    /**
4409     * @param value {@link #location} (Principal physical location where this transport is performed.)
4410     */
4411    public Transport setLocation(Reference value) { 
4412      this.location = value;
4413      return this;
4414    }
4415
4416    /**
4417     * @return {@link #reasonCode} (A description or code indicating why this transport needs to be performed.)
4418     */
4419    public CodeableConcept getReasonCode() { 
4420      if (this.reasonCode == null)
4421        if (Configuration.errorOnAutoCreate())
4422          throw new Error("Attempt to auto-create Transport.reasonCode");
4423        else if (Configuration.doAutoCreate())
4424          this.reasonCode = new CodeableConcept(); // cc
4425      return this.reasonCode;
4426    }
4427
4428    public boolean hasReasonCode() { 
4429      return this.reasonCode != null && !this.reasonCode.isEmpty();
4430    }
4431
4432    /**
4433     * @param value {@link #reasonCode} (A description or code indicating why this transport needs to be performed.)
4434     */
4435    public Transport setReasonCode(CodeableConcept value) { 
4436      this.reasonCode = value;
4437      return this;
4438    }
4439
4440    /**
4441     * @return {@link #reasonReference} (A resource reference indicating why this transport needs to be performed.)
4442     */
4443    public Reference getReasonReference() { 
4444      if (this.reasonReference == null)
4445        if (Configuration.errorOnAutoCreate())
4446          throw new Error("Attempt to auto-create Transport.reasonReference");
4447        else if (Configuration.doAutoCreate())
4448          this.reasonReference = new Reference(); // cc
4449      return this.reasonReference;
4450    }
4451
4452    public boolean hasReasonReference() { 
4453      return this.reasonReference != null && !this.reasonReference.isEmpty();
4454    }
4455
4456    /**
4457     * @param value {@link #reasonReference} (A resource reference indicating why this transport needs to be performed.)
4458     */
4459    public Transport setReasonReference(Reference value) { 
4460      this.reasonReference = value;
4461      return this;
4462    }
4463
4464    /**
4465     * @return {@link #insurance} (Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.)
4466     */
4467    public List<Reference> getInsurance() { 
4468      if (this.insurance == null)
4469        this.insurance = new ArrayList<Reference>();
4470      return this.insurance;
4471    }
4472
4473    /**
4474     * @return Returns a reference to <code>this</code> for easy method chaining
4475     */
4476    public Transport setInsurance(List<Reference> theInsurance) { 
4477      this.insurance = theInsurance;
4478      return this;
4479    }
4480
4481    public boolean hasInsurance() { 
4482      if (this.insurance == null)
4483        return false;
4484      for (Reference item : this.insurance)
4485        if (!item.isEmpty())
4486          return true;
4487      return false;
4488    }
4489
4490    public Reference addInsurance() { //3
4491      Reference t = new Reference();
4492      if (this.insurance == null)
4493        this.insurance = new ArrayList<Reference>();
4494      this.insurance.add(t);
4495      return t;
4496    }
4497
4498    public Transport addInsurance(Reference t) { //3
4499      if (t == null)
4500        return this;
4501      if (this.insurance == null)
4502        this.insurance = new ArrayList<Reference>();
4503      this.insurance.add(t);
4504      return this;
4505    }
4506
4507    /**
4508     * @return The first repetition of repeating field {@link #insurance}, creating it if it does not already exist {3}
4509     */
4510    public Reference getInsuranceFirstRep() { 
4511      if (getInsurance().isEmpty()) {
4512        addInsurance();
4513      }
4514      return getInsurance().get(0);
4515    }
4516
4517    /**
4518     * @return {@link #note} (Free-text information captured about the transport as it progresses.)
4519     */
4520    public List<Annotation> getNote() { 
4521      if (this.note == null)
4522        this.note = new ArrayList<Annotation>();
4523      return this.note;
4524    }
4525
4526    /**
4527     * @return Returns a reference to <code>this</code> for easy method chaining
4528     */
4529    public Transport setNote(List<Annotation> theNote) { 
4530      this.note = theNote;
4531      return this;
4532    }
4533
4534    public boolean hasNote() { 
4535      if (this.note == null)
4536        return false;
4537      for (Annotation item : this.note)
4538        if (!item.isEmpty())
4539          return true;
4540      return false;
4541    }
4542
4543    public Annotation addNote() { //3
4544      Annotation t = new Annotation();
4545      if (this.note == null)
4546        this.note = new ArrayList<Annotation>();
4547      this.note.add(t);
4548      return t;
4549    }
4550
4551    public Transport addNote(Annotation t) { //3
4552      if (t == null)
4553        return this;
4554      if (this.note == null)
4555        this.note = new ArrayList<Annotation>();
4556      this.note.add(t);
4557      return this;
4558    }
4559
4560    /**
4561     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
4562     */
4563    public Annotation getNoteFirstRep() { 
4564      if (getNote().isEmpty()) {
4565        addNote();
4566      }
4567      return getNote().get(0);
4568    }
4569
4570    /**
4571     * @return {@link #relevantHistory} (Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport.)
4572     */
4573    public List<Reference> getRelevantHistory() { 
4574      if (this.relevantHistory == null)
4575        this.relevantHistory = new ArrayList<Reference>();
4576      return this.relevantHistory;
4577    }
4578
4579    /**
4580     * @return Returns a reference to <code>this</code> for easy method chaining
4581     */
4582    public Transport setRelevantHistory(List<Reference> theRelevantHistory) { 
4583      this.relevantHistory = theRelevantHistory;
4584      return this;
4585    }
4586
4587    public boolean hasRelevantHistory() { 
4588      if (this.relevantHistory == null)
4589        return false;
4590      for (Reference item : this.relevantHistory)
4591        if (!item.isEmpty())
4592          return true;
4593      return false;
4594    }
4595
4596    public Reference addRelevantHistory() { //3
4597      Reference t = new Reference();
4598      if (this.relevantHistory == null)
4599        this.relevantHistory = new ArrayList<Reference>();
4600      this.relevantHistory.add(t);
4601      return t;
4602    }
4603
4604    public Transport addRelevantHistory(Reference t) { //3
4605      if (t == null)
4606        return this;
4607      if (this.relevantHistory == null)
4608        this.relevantHistory = new ArrayList<Reference>();
4609      this.relevantHistory.add(t);
4610      return this;
4611    }
4612
4613    /**
4614     * @return The first repetition of repeating field {@link #relevantHistory}, creating it if it does not already exist {3}
4615     */
4616    public Reference getRelevantHistoryFirstRep() { 
4617      if (getRelevantHistory().isEmpty()) {
4618        addRelevantHistory();
4619      }
4620      return getRelevantHistory().get(0);
4621    }
4622
4623    /**
4624     * @return {@link #restriction} (If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.)
4625     */
4626    public TransportRestrictionComponent getRestriction() { 
4627      if (this.restriction == null)
4628        if (Configuration.errorOnAutoCreate())
4629          throw new Error("Attempt to auto-create Transport.restriction");
4630        else if (Configuration.doAutoCreate())
4631          this.restriction = new TransportRestrictionComponent(); // cc
4632      return this.restriction;
4633    }
4634
4635    public boolean hasRestriction() { 
4636      return this.restriction != null && !this.restriction.isEmpty();
4637    }
4638
4639    /**
4640     * @param value {@link #restriction} (If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.)
4641     */
4642    public Transport setRestriction(TransportRestrictionComponent value) { 
4643      this.restriction = value;
4644      return this;
4645    }
4646
4647    /**
4648     * @return {@link #input} (Additional information that may be needed in the execution of the transport.)
4649     */
4650    public List<ParameterComponent> getInput() { 
4651      if (this.input == null)
4652        this.input = new ArrayList<ParameterComponent>();
4653      return this.input;
4654    }
4655
4656    /**
4657     * @return Returns a reference to <code>this</code> for easy method chaining
4658     */
4659    public Transport setInput(List<ParameterComponent> theInput) { 
4660      this.input = theInput;
4661      return this;
4662    }
4663
4664    public boolean hasInput() { 
4665      if (this.input == null)
4666        return false;
4667      for (ParameterComponent item : this.input)
4668        if (!item.isEmpty())
4669          return true;
4670      return false;
4671    }
4672
4673    public ParameterComponent addInput() { //3
4674      ParameterComponent t = new ParameterComponent();
4675      if (this.input == null)
4676        this.input = new ArrayList<ParameterComponent>();
4677      this.input.add(t);
4678      return t;
4679    }
4680
4681    public Transport addInput(ParameterComponent t) { //3
4682      if (t == null)
4683        return this;
4684      if (this.input == null)
4685        this.input = new ArrayList<ParameterComponent>();
4686      this.input.add(t);
4687      return this;
4688    }
4689
4690    /**
4691     * @return The first repetition of repeating field {@link #input}, creating it if it does not already exist {3}
4692     */
4693    public ParameterComponent getInputFirstRep() { 
4694      if (getInput().isEmpty()) {
4695        addInput();
4696      }
4697      return getInput().get(0);
4698    }
4699
4700    /**
4701     * @return {@link #output} (Outputs produced by the Transport.)
4702     */
4703    public List<TransportOutputComponent> getOutput() { 
4704      if (this.output == null)
4705        this.output = new ArrayList<TransportOutputComponent>();
4706      return this.output;
4707    }
4708
4709    /**
4710     * @return Returns a reference to <code>this</code> for easy method chaining
4711     */
4712    public Transport setOutput(List<TransportOutputComponent> theOutput) { 
4713      this.output = theOutput;
4714      return this;
4715    }
4716
4717    public boolean hasOutput() { 
4718      if (this.output == null)
4719        return false;
4720      for (TransportOutputComponent item : this.output)
4721        if (!item.isEmpty())
4722          return true;
4723      return false;
4724    }
4725
4726    public TransportOutputComponent addOutput() { //3
4727      TransportOutputComponent t = new TransportOutputComponent();
4728      if (this.output == null)
4729        this.output = new ArrayList<TransportOutputComponent>();
4730      this.output.add(t);
4731      return t;
4732    }
4733
4734    public Transport addOutput(TransportOutputComponent t) { //3
4735      if (t == null)
4736        return this;
4737      if (this.output == null)
4738        this.output = new ArrayList<TransportOutputComponent>();
4739      this.output.add(t);
4740      return this;
4741    }
4742
4743    /**
4744     * @return The first repetition of repeating field {@link #output}, creating it if it does not already exist {3}
4745     */
4746    public TransportOutputComponent getOutputFirstRep() { 
4747      if (getOutput().isEmpty()) {
4748        addOutput();
4749      }
4750      return getOutput().get(0);
4751    }
4752
4753    /**
4754     * @return {@link #requestedLocation} (The desired or final location for the transport.)
4755     */
4756    public Reference getRequestedLocation() { 
4757      if (this.requestedLocation == null)
4758        if (Configuration.errorOnAutoCreate())
4759          throw new Error("Attempt to auto-create Transport.requestedLocation");
4760        else if (Configuration.doAutoCreate())
4761          this.requestedLocation = new Reference(); // cc
4762      return this.requestedLocation;
4763    }
4764
4765    public boolean hasRequestedLocation() { 
4766      return this.requestedLocation != null && !this.requestedLocation.isEmpty();
4767    }
4768
4769    /**
4770     * @param value {@link #requestedLocation} (The desired or final location for the transport.)
4771     */
4772    public Transport setRequestedLocation(Reference value) { 
4773      this.requestedLocation = value;
4774      return this;
4775    }
4776
4777    /**
4778     * @return {@link #currentLocation} (The current location for the entity to be transported.)
4779     */
4780    public Reference getCurrentLocation() { 
4781      if (this.currentLocation == null)
4782        if (Configuration.errorOnAutoCreate())
4783          throw new Error("Attempt to auto-create Transport.currentLocation");
4784        else if (Configuration.doAutoCreate())
4785          this.currentLocation = new Reference(); // cc
4786      return this.currentLocation;
4787    }
4788
4789    public boolean hasCurrentLocation() { 
4790      return this.currentLocation != null && !this.currentLocation.isEmpty();
4791    }
4792
4793    /**
4794     * @param value {@link #currentLocation} (The current location for the entity to be transported.)
4795     */
4796    public Transport setCurrentLocation(Reference value) { 
4797      this.currentLocation = value;
4798      return this;
4799    }
4800
4801    /**
4802     * @return {@link #history} (The transport event prior to this one.)
4803     */
4804    public Reference getHistory() { 
4805      if (this.history == null)
4806        if (Configuration.errorOnAutoCreate())
4807          throw new Error("Attempt to auto-create Transport.history");
4808        else if (Configuration.doAutoCreate())
4809          this.history = new Reference(); // cc
4810      return this.history;
4811    }
4812
4813    public boolean hasHistory() { 
4814      return this.history != null && !this.history.isEmpty();
4815    }
4816
4817    /**
4818     * @param value {@link #history} (The transport event prior to this one.)
4819     */
4820    public Transport setHistory(Reference value) { 
4821      this.history = value;
4822      return this;
4823    }
4824
4825      protected void listChildren(List<Property> children) {
4826        super.listChildren(children);
4827        children.add(new Property("identifier", "Identifier", "Identifier for the transport event that is used to identify it across multiple disparate systems.", 0, java.lang.Integer.MAX_VALUE, identifier));
4828        children.add(new Property("instantiatesCanonical", "canonical(ActivityDefinition)", "The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.", 0, 1, instantiatesCanonical));
4829        children.add(new Property("instantiatesUri", "uri", "The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.", 0, 1, instantiatesUri));
4830        children.add(new Property("basedOn", "Reference(Any)", "BasedOn refers to a higher-level authorization that triggered the creation of the transport.  It references a \"request\" resource such as a ServiceRequest or Transport, which is distinct from the \"request\" resource the Transport is seeking to fulfill.  This latter resource is referenced by FocusOn.  For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab.", 0, java.lang.Integer.MAX_VALUE, basedOn));
4831        children.add(new Property("groupIdentifier", "Identifier", "An identifier that links together multiple transports and other requests that were created in the same context.", 0, 1, groupIdentifier));
4832        children.add(new Property("partOf", "Reference(Transport|Contract)", "A larger event of which this particular event is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf));
4833        children.add(new Property("status", "code", "A code specifying the state of the transport event.", 0, 1, status));
4834        children.add(new Property("statusReason", "CodeableConcept", "An explanation as to why this transport is held, failed, was refused, etc.", 0, 1, statusReason));
4835        children.add(new Property("intent", "code", "Indicates the \"level\" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.", 0, 1, intent));
4836        children.add(new Property("priority", "code", "Indicates how quickly the Transport should be addressed with respect to other requests.", 0, 1, priority));
4837        children.add(new Property("code", "CodeableConcept", "A name or code (or both) briefly describing what the transport involves.", 0, 1, code));
4838        children.add(new Property("description", "string", "A free-text description of what is to be performed.", 0, 1, description));
4839        children.add(new Property("focus", "Reference(Any)", "The request being actioned or the resource being manipulated by this transport.", 0, 1, focus));
4840        children.add(new Property("for", "Reference(Any)", "The entity who benefits from the performance of the service specified in the transport (e.g., the patient).", 0, 1, for_));
4841        children.add(new Property("encounter", "Reference(Encounter)", "The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.", 0, 1, encounter));
4842        children.add(new Property("completionTime", "dateTime", "Identifies the completion time of the event (the occurrence).", 0, 1, completionTime));
4843        children.add(new Property("authoredOn", "dateTime", "The date and time this transport was created.", 0, 1, authoredOn));
4844        children.add(new Property("lastModified", "dateTime", "The date and time of last modification to this transport.", 0, 1, lastModified));
4845        children.add(new Property("requester", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "The creator of the transport.", 0, 1, requester));
4846        children.add(new Property("performerType", "CodeableConcept", "The kind of participant that should perform the transport.", 0, java.lang.Integer.MAX_VALUE, performerType));
4847        children.add(new Property("owner", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|HealthcareService|Patient|Device|RelatedPerson)", "Individual organization or Device currently responsible for transport execution.", 0, 1, owner));
4848        children.add(new Property("location", "Reference(Location)", "Principal physical location where this transport is performed.", 0, 1, location));
4849        children.add(new Property("reasonCode", "CodeableConcept", "A description or code indicating why this transport needs to be performed.", 0, 1, reasonCode));
4850        children.add(new Property("reasonReference", "Reference(Any)", "A resource reference indicating why this transport needs to be performed.", 0, 1, reasonReference));
4851        children.add(new Property("insurance", "Reference(Coverage|ClaimResponse)", "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.", 0, java.lang.Integer.MAX_VALUE, insurance));
4852        children.add(new Property("note", "Annotation", "Free-text information captured about the transport as it progresses.", 0, java.lang.Integer.MAX_VALUE, note));
4853        children.add(new Property("relevantHistory", "Reference(Provenance)", "Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport.", 0, java.lang.Integer.MAX_VALUE, relevantHistory));
4854        children.add(new Property("restriction", "", "If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.", 0, 1, restriction));
4855        children.add(new Property("input", "", "Additional information that may be needed in the execution of the transport.", 0, java.lang.Integer.MAX_VALUE, input));
4856        children.add(new Property("output", "", "Outputs produced by the Transport.", 0, java.lang.Integer.MAX_VALUE, output));
4857        children.add(new Property("requestedLocation", "Reference(Location)", "The desired or final location for the transport.", 0, 1, requestedLocation));
4858        children.add(new Property("currentLocation", "Reference(Location)", "The current location for the entity to be transported.", 0, 1, currentLocation));
4859        children.add(new Property("history", "Reference(Transport)", "The transport event prior to this one.", 0, 1, history));
4860      }
4861
4862      @Override
4863      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4864        switch (_hash) {
4865        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier for the transport event that is used to identify it across multiple disparate systems.", 0, java.lang.Integer.MAX_VALUE, identifier);
4866        case 8911915: /*instantiatesCanonical*/  return new Property("instantiatesCanonical", "canonical(ActivityDefinition)", "The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.", 0, 1, instantiatesCanonical);
4867        case -1926393373: /*instantiatesUri*/  return new Property("instantiatesUri", "uri", "The URL pointing to an *externally* maintained  protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Transport.", 0, 1, instantiatesUri);
4868        case -332612366: /*basedOn*/  return new Property("basedOn", "Reference(Any)", "BasedOn refers to a higher-level authorization that triggered the creation of the transport.  It references a \"request\" resource such as a ServiceRequest or Transport, which is distinct from the \"request\" resource the Transport is seeking to fulfill.  This latter resource is referenced by FocusOn.  For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab.", 0, java.lang.Integer.MAX_VALUE, basedOn);
4869        case -445338488: /*groupIdentifier*/  return new Property("groupIdentifier", "Identifier", "An identifier that links together multiple transports and other requests that were created in the same context.", 0, 1, groupIdentifier);
4870        case -995410646: /*partOf*/  return new Property("partOf", "Reference(Transport|Contract)", "A larger event of which this particular event is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf);
4871        case -892481550: /*status*/  return new Property("status", "code", "A code specifying the state of the transport event.", 0, 1, status);
4872        case 2051346646: /*statusReason*/  return new Property("statusReason", "CodeableConcept", "An explanation as to why this transport is held, failed, was refused, etc.", 0, 1, statusReason);
4873        case -1183762788: /*intent*/  return new Property("intent", "code", "Indicates the \"level\" of actionability associated with the Transport, i.e. i+R[9]Cs this a proposed transport, a planned transport, an actionable transport, etc.", 0, 1, intent);
4874        case -1165461084: /*priority*/  return new Property("priority", "code", "Indicates how quickly the Transport should be addressed with respect to other requests.", 0, 1, priority);
4875        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A name or code (or both) briefly describing what the transport involves.", 0, 1, code);
4876        case -1724546052: /*description*/  return new Property("description", "string", "A free-text description of what is to be performed.", 0, 1, description);
4877        case 97604824: /*focus*/  return new Property("focus", "Reference(Any)", "The request being actioned or the resource being manipulated by this transport.", 0, 1, focus);
4878        case 101577: /*for*/  return new Property("for", "Reference(Any)", "The entity who benefits from the performance of the service specified in the transport (e.g., the patient).", 0, 1, for_);
4879        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.", 0, 1, encounter);
4880        case 1146641609: /*completionTime*/  return new Property("completionTime", "dateTime", "Identifies the completion time of the event (the occurrence).", 0, 1, completionTime);
4881        case -1500852503: /*authoredOn*/  return new Property("authoredOn", "dateTime", "The date and time this transport was created.", 0, 1, authoredOn);
4882        case 1959003007: /*lastModified*/  return new Property("lastModified", "dateTime", "The date and time of last modification to this transport.", 0, 1, lastModified);
4883        case 693933948: /*requester*/  return new Property("requester", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "The creator of the transport.", 0, 1, requester);
4884        case -901444568: /*performerType*/  return new Property("performerType", "CodeableConcept", "The kind of participant that should perform the transport.", 0, java.lang.Integer.MAX_VALUE, performerType);
4885        case 106164915: /*owner*/  return new Property("owner", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|HealthcareService|Patient|Device|RelatedPerson)", "Individual organization or Device currently responsible for transport execution.", 0, 1, owner);
4886        case 1901043637: /*location*/  return new Property("location", "Reference(Location)", "Principal physical location where this transport is performed.", 0, 1, location);
4887        case 722137681: /*reasonCode*/  return new Property("reasonCode", "CodeableConcept", "A description or code indicating why this transport needs to be performed.", 0, 1, reasonCode);
4888        case -1146218137: /*reasonReference*/  return new Property("reasonReference", "Reference(Any)", "A resource reference indicating why this transport needs to be performed.", 0, 1, reasonReference);
4889        case 73049818: /*insurance*/  return new Property("insurance", "Reference(Coverage|ClaimResponse)", "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.", 0, java.lang.Integer.MAX_VALUE, insurance);
4890        case 3387378: /*note*/  return new Property("note", "Annotation", "Free-text information captured about the transport as it progresses.", 0, java.lang.Integer.MAX_VALUE, note);
4891        case 1538891575: /*relevantHistory*/  return new Property("relevantHistory", "Reference(Provenance)", "Links to Provenance records for past versions of this Transport that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the transport.", 0, java.lang.Integer.MAX_VALUE, relevantHistory);
4892        case -1561062452: /*restriction*/  return new Property("restriction", "", "If the Transport.focus is a request resource and the transport is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.", 0, 1, restriction);
4893        case 100358090: /*input*/  return new Property("input", "", "Additional information that may be needed in the execution of the transport.", 0, java.lang.Integer.MAX_VALUE, input);
4894        case -1005512447: /*output*/  return new Property("output", "", "Outputs produced by the Transport.", 0, java.lang.Integer.MAX_VALUE, output);
4895        case -1788392125: /*requestedLocation*/  return new Property("requestedLocation", "Reference(Location)", "The desired or final location for the transport.", 0, 1, requestedLocation);
4896        case -140429234: /*currentLocation*/  return new Property("currentLocation", "Reference(Location)", "The current location for the entity to be transported.", 0, 1, currentLocation);
4897        case 926934164: /*history*/  return new Property("history", "Reference(Transport)", "The transport event prior to this one.", 0, 1, history);
4898        default: return super.getNamedProperty(_hash, _name, _checkValid);
4899        }
4900
4901      }
4902
4903      @Override
4904      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4905        switch (hash) {
4906        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
4907        case 8911915: /*instantiatesCanonical*/ return this.instantiatesCanonical == null ? new Base[0] : new Base[] {this.instantiatesCanonical}; // CanonicalType
4908        case -1926393373: /*instantiatesUri*/ return this.instantiatesUri == null ? new Base[0] : new Base[] {this.instantiatesUri}; // UriType
4909        case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference
4910        case -445338488: /*groupIdentifier*/ return this.groupIdentifier == null ? new Base[0] : new Base[] {this.groupIdentifier}; // Identifier
4911        case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference
4912        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<TransportStatus>
4913        case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : new Base[] {this.statusReason}; // CodeableConcept
4914        case -1183762788: /*intent*/ return this.intent == null ? new Base[0] : new Base[] {this.intent}; // Enumeration<TransportIntent>
4915        case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<RequestPriority>
4916        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
4917        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
4918        case 97604824: /*focus*/ return this.focus == null ? new Base[0] : new Base[] {this.focus}; // Reference
4919        case 101577: /*for*/ return this.for_ == null ? new Base[0] : new Base[] {this.for_}; // Reference
4920        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
4921        case 1146641609: /*completionTime*/ return this.completionTime == null ? new Base[0] : new Base[] {this.completionTime}; // DateTimeType
4922        case -1500852503: /*authoredOn*/ return this.authoredOn == null ? new Base[0] : new Base[] {this.authoredOn}; // DateTimeType
4923        case 1959003007: /*lastModified*/ return this.lastModified == null ? new Base[0] : new Base[] {this.lastModified}; // DateTimeType
4924        case 693933948: /*requester*/ return this.requester == null ? new Base[0] : new Base[] {this.requester}; // Reference
4925        case -901444568: /*performerType*/ return this.performerType == null ? new Base[0] : this.performerType.toArray(new Base[this.performerType.size()]); // CodeableConcept
4926        case 106164915: /*owner*/ return this.owner == null ? new Base[0] : new Base[] {this.owner}; // Reference
4927        case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference
4928        case 722137681: /*reasonCode*/ return this.reasonCode == null ? new Base[0] : new Base[] {this.reasonCode}; // CodeableConcept
4929        case -1146218137: /*reasonReference*/ return this.reasonReference == null ? new Base[0] : new Base[] {this.reasonReference}; // Reference
4930        case 73049818: /*insurance*/ return this.insurance == null ? new Base[0] : this.insurance.toArray(new Base[this.insurance.size()]); // Reference
4931        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
4932        case 1538891575: /*relevantHistory*/ return this.relevantHistory == null ? new Base[0] : this.relevantHistory.toArray(new Base[this.relevantHistory.size()]); // Reference
4933        case -1561062452: /*restriction*/ return this.restriction == null ? new Base[0] : new Base[] {this.restriction}; // TransportRestrictionComponent
4934        case 100358090: /*input*/ return this.input == null ? new Base[0] : this.input.toArray(new Base[this.input.size()]); // ParameterComponent
4935        case -1005512447: /*output*/ return this.output == null ? new Base[0] : this.output.toArray(new Base[this.output.size()]); // TransportOutputComponent
4936        case -1788392125: /*requestedLocation*/ return this.requestedLocation == null ? new Base[0] : new Base[] {this.requestedLocation}; // Reference
4937        case -140429234: /*currentLocation*/ return this.currentLocation == null ? new Base[0] : new Base[] {this.currentLocation}; // Reference
4938        case 926934164: /*history*/ return this.history == null ? new Base[0] : new Base[] {this.history}; // Reference
4939        default: return super.getProperty(hash, name, checkValid);
4940        }
4941
4942      }
4943
4944      @Override
4945      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4946        switch (hash) {
4947        case -1618432855: // identifier
4948          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
4949          return value;
4950        case 8911915: // instantiatesCanonical
4951          this.instantiatesCanonical = TypeConvertor.castToCanonical(value); // CanonicalType
4952          return value;
4953        case -1926393373: // instantiatesUri
4954          this.instantiatesUri = TypeConvertor.castToUri(value); // UriType
4955          return value;
4956        case -332612366: // basedOn
4957          this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference
4958          return value;
4959        case -445338488: // groupIdentifier
4960          this.groupIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
4961          return value;
4962        case -995410646: // partOf
4963          this.getPartOf().add(TypeConvertor.castToReference(value)); // Reference
4964          return value;
4965        case -892481550: // status
4966          value = new TransportStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
4967          this.status = (Enumeration) value; // Enumeration<TransportStatus>
4968          return value;
4969        case 2051346646: // statusReason
4970          this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
4971          return value;
4972        case -1183762788: // intent
4973          value = new TransportIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
4974          this.intent = (Enumeration) value; // Enumeration<TransportIntent>
4975          return value;
4976        case -1165461084: // priority
4977          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
4978          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
4979          return value;
4980        case 3059181: // code
4981          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
4982          return value;
4983        case -1724546052: // description
4984          this.description = TypeConvertor.castToString(value); // StringType
4985          return value;
4986        case 97604824: // focus
4987          this.focus = TypeConvertor.castToReference(value); // Reference
4988          return value;
4989        case 101577: // for
4990          this.for_ = TypeConvertor.castToReference(value); // Reference
4991          return value;
4992        case 1524132147: // encounter
4993          this.encounter = TypeConvertor.castToReference(value); // Reference
4994          return value;
4995        case 1146641609: // completionTime
4996          this.completionTime = TypeConvertor.castToDateTime(value); // DateTimeType
4997          return value;
4998        case -1500852503: // authoredOn
4999          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
5000          return value;
5001        case 1959003007: // lastModified
5002          this.lastModified = TypeConvertor.castToDateTime(value); // DateTimeType
5003          return value;
5004        case 693933948: // requester
5005          this.requester = TypeConvertor.castToReference(value); // Reference
5006          return value;
5007        case -901444568: // performerType
5008          this.getPerformerType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5009          return value;
5010        case 106164915: // owner
5011          this.owner = TypeConvertor.castToReference(value); // Reference
5012          return value;
5013        case 1901043637: // location
5014          this.location = TypeConvertor.castToReference(value); // Reference
5015          return value;
5016        case 722137681: // reasonCode
5017          this.reasonCode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5018          return value;
5019        case -1146218137: // reasonReference
5020          this.reasonReference = TypeConvertor.castToReference(value); // Reference
5021          return value;
5022        case 73049818: // insurance
5023          this.getInsurance().add(TypeConvertor.castToReference(value)); // Reference
5024          return value;
5025        case 3387378: // note
5026          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
5027          return value;
5028        case 1538891575: // relevantHistory
5029          this.getRelevantHistory().add(TypeConvertor.castToReference(value)); // Reference
5030          return value;
5031        case -1561062452: // restriction
5032          this.restriction = (TransportRestrictionComponent) value; // TransportRestrictionComponent
5033          return value;
5034        case 100358090: // input
5035          this.getInput().add((ParameterComponent) value); // ParameterComponent
5036          return value;
5037        case -1005512447: // output
5038          this.getOutput().add((TransportOutputComponent) value); // TransportOutputComponent
5039          return value;
5040        case -1788392125: // requestedLocation
5041          this.requestedLocation = TypeConvertor.castToReference(value); // Reference
5042          return value;
5043        case -140429234: // currentLocation
5044          this.currentLocation = TypeConvertor.castToReference(value); // Reference
5045          return value;
5046        case 926934164: // history
5047          this.history = TypeConvertor.castToReference(value); // Reference
5048          return value;
5049        default: return super.setProperty(hash, name, value);
5050        }
5051
5052      }
5053
5054      @Override
5055      public Base setProperty(String name, Base value) throws FHIRException {
5056        if (name.equals("identifier")) {
5057          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
5058        } else if (name.equals("instantiatesCanonical")) {
5059          this.instantiatesCanonical = TypeConvertor.castToCanonical(value); // CanonicalType
5060        } else if (name.equals("instantiatesUri")) {
5061          this.instantiatesUri = TypeConvertor.castToUri(value); // UriType
5062        } else if (name.equals("basedOn")) {
5063          this.getBasedOn().add(TypeConvertor.castToReference(value));
5064        } else if (name.equals("groupIdentifier")) {
5065          this.groupIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
5066        } else if (name.equals("partOf")) {
5067          this.getPartOf().add(TypeConvertor.castToReference(value));
5068        } else if (name.equals("status")) {
5069          value = new TransportStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5070          this.status = (Enumeration) value; // Enumeration<TransportStatus>
5071        } else if (name.equals("statusReason")) {
5072          this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5073        } else if (name.equals("intent")) {
5074          value = new TransportIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
5075          this.intent = (Enumeration) value; // Enumeration<TransportIntent>
5076        } else if (name.equals("priority")) {
5077          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
5078          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
5079        } else if (name.equals("code")) {
5080          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5081        } else if (name.equals("description")) {
5082          this.description = TypeConvertor.castToString(value); // StringType
5083        } else if (name.equals("focus")) {
5084          this.focus = TypeConvertor.castToReference(value); // Reference
5085        } else if (name.equals("for")) {
5086          this.for_ = TypeConvertor.castToReference(value); // Reference
5087        } else if (name.equals("encounter")) {
5088          this.encounter = TypeConvertor.castToReference(value); // Reference
5089        } else if (name.equals("completionTime")) {
5090          this.completionTime = TypeConvertor.castToDateTime(value); // DateTimeType
5091        } else if (name.equals("authoredOn")) {
5092          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
5093        } else if (name.equals("lastModified")) {
5094          this.lastModified = TypeConvertor.castToDateTime(value); // DateTimeType
5095        } else if (name.equals("requester")) {
5096          this.requester = TypeConvertor.castToReference(value); // Reference
5097        } else if (name.equals("performerType")) {
5098          this.getPerformerType().add(TypeConvertor.castToCodeableConcept(value));
5099        } else if (name.equals("owner")) {
5100          this.owner = TypeConvertor.castToReference(value); // Reference
5101        } else if (name.equals("location")) {
5102          this.location = TypeConvertor.castToReference(value); // Reference
5103        } else if (name.equals("reasonCode")) {
5104          this.reasonCode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5105        } else if (name.equals("reasonReference")) {
5106          this.reasonReference = TypeConvertor.castToReference(value); // Reference
5107        } else if (name.equals("insurance")) {
5108          this.getInsurance().add(TypeConvertor.castToReference(value));
5109        } else if (name.equals("note")) {
5110          this.getNote().add(TypeConvertor.castToAnnotation(value));
5111        } else if (name.equals("relevantHistory")) {
5112          this.getRelevantHistory().add(TypeConvertor.castToReference(value));
5113        } else if (name.equals("restriction")) {
5114          this.restriction = (TransportRestrictionComponent) value; // TransportRestrictionComponent
5115        } else if (name.equals("input")) {
5116          this.getInput().add((ParameterComponent) value);
5117        } else if (name.equals("output")) {
5118          this.getOutput().add((TransportOutputComponent) value);
5119        } else if (name.equals("requestedLocation")) {
5120          this.requestedLocation = TypeConvertor.castToReference(value); // Reference
5121        } else if (name.equals("currentLocation")) {
5122          this.currentLocation = TypeConvertor.castToReference(value); // Reference
5123        } else if (name.equals("history")) {
5124          this.history = TypeConvertor.castToReference(value); // Reference
5125        } else
5126          return super.setProperty(name, value);
5127        return value;
5128      }
5129
5130      @Override
5131      public Base makeProperty(int hash, String name) throws FHIRException {
5132        switch (hash) {
5133        case -1618432855:  return addIdentifier(); 
5134        case 8911915:  return getInstantiatesCanonicalElement();
5135        case -1926393373:  return getInstantiatesUriElement();
5136        case -332612366:  return addBasedOn(); 
5137        case -445338488:  return getGroupIdentifier();
5138        case -995410646:  return addPartOf(); 
5139        case -892481550:  return getStatusElement();
5140        case 2051346646:  return getStatusReason();
5141        case -1183762788:  return getIntentElement();
5142        case -1165461084:  return getPriorityElement();
5143        case 3059181:  return getCode();
5144        case -1724546052:  return getDescriptionElement();
5145        case 97604824:  return getFocus();
5146        case 101577:  return getFor();
5147        case 1524132147:  return getEncounter();
5148        case 1146641609:  return getCompletionTimeElement();
5149        case -1500852503:  return getAuthoredOnElement();
5150        case 1959003007:  return getLastModifiedElement();
5151        case 693933948:  return getRequester();
5152        case -901444568:  return addPerformerType(); 
5153        case 106164915:  return getOwner();
5154        case 1901043637:  return getLocation();
5155        case 722137681:  return getReasonCode();
5156        case -1146218137:  return getReasonReference();
5157        case 73049818:  return addInsurance(); 
5158        case 3387378:  return addNote(); 
5159        case 1538891575:  return addRelevantHistory(); 
5160        case -1561062452:  return getRestriction();
5161        case 100358090:  return addInput(); 
5162        case -1005512447:  return addOutput(); 
5163        case -1788392125:  return getRequestedLocation();
5164        case -140429234:  return getCurrentLocation();
5165        case 926934164:  return getHistory();
5166        default: return super.makeProperty(hash, name);
5167        }
5168
5169      }
5170
5171      @Override
5172      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
5173        switch (hash) {
5174        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
5175        case 8911915: /*instantiatesCanonical*/ return new String[] {"canonical"};
5176        case -1926393373: /*instantiatesUri*/ return new String[] {"uri"};
5177        case -332612366: /*basedOn*/ return new String[] {"Reference"};
5178        case -445338488: /*groupIdentifier*/ return new String[] {"Identifier"};
5179        case -995410646: /*partOf*/ return new String[] {"Reference"};
5180        case -892481550: /*status*/ return new String[] {"code"};
5181        case 2051346646: /*statusReason*/ return new String[] {"CodeableConcept"};
5182        case -1183762788: /*intent*/ return new String[] {"code"};
5183        case -1165461084: /*priority*/ return new String[] {"code"};
5184        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
5185        case -1724546052: /*description*/ return new String[] {"string"};
5186        case 97604824: /*focus*/ return new String[] {"Reference"};
5187        case 101577: /*for*/ return new String[] {"Reference"};
5188        case 1524132147: /*encounter*/ return new String[] {"Reference"};
5189        case 1146641609: /*completionTime*/ return new String[] {"dateTime"};
5190        case -1500852503: /*authoredOn*/ return new String[] {"dateTime"};
5191        case 1959003007: /*lastModified*/ return new String[] {"dateTime"};
5192        case 693933948: /*requester*/ return new String[] {"Reference"};
5193        case -901444568: /*performerType*/ return new String[] {"CodeableConcept"};
5194        case 106164915: /*owner*/ return new String[] {"Reference"};
5195        case 1901043637: /*location*/ return new String[] {"Reference"};
5196        case 722137681: /*reasonCode*/ return new String[] {"CodeableConcept"};
5197        case -1146218137: /*reasonReference*/ return new String[] {"Reference"};
5198        case 73049818: /*insurance*/ return new String[] {"Reference"};
5199        case 3387378: /*note*/ return new String[] {"Annotation"};
5200        case 1538891575: /*relevantHistory*/ return new String[] {"Reference"};
5201        case -1561062452: /*restriction*/ return new String[] {};
5202        case 100358090: /*input*/ return new String[] {};
5203        case -1005512447: /*output*/ return new String[] {};
5204        case -1788392125: /*requestedLocation*/ return new String[] {"Reference"};
5205        case -140429234: /*currentLocation*/ return new String[] {"Reference"};
5206        case 926934164: /*history*/ return new String[] {"Reference"};
5207        default: return super.getTypesForProperty(hash, name);
5208        }
5209
5210      }
5211
5212      @Override
5213      public Base addChild(String name) throws FHIRException {
5214        if (name.equals("identifier")) {
5215          return addIdentifier();
5216        }
5217        else if (name.equals("instantiatesCanonical")) {
5218          throw new FHIRException("Cannot call addChild on a primitive type Transport.instantiatesCanonical");
5219        }
5220        else if (name.equals("instantiatesUri")) {
5221          throw new FHIRException("Cannot call addChild on a primitive type Transport.instantiatesUri");
5222        }
5223        else if (name.equals("basedOn")) {
5224          return addBasedOn();
5225        }
5226        else if (name.equals("groupIdentifier")) {
5227          this.groupIdentifier = new Identifier();
5228          return this.groupIdentifier;
5229        }
5230        else if (name.equals("partOf")) {
5231          return addPartOf();
5232        }
5233        else if (name.equals("status")) {
5234          throw new FHIRException("Cannot call addChild on a primitive type Transport.status");
5235        }
5236        else if (name.equals("statusReason")) {
5237          this.statusReason = new CodeableConcept();
5238          return this.statusReason;
5239        }
5240        else if (name.equals("intent")) {
5241          throw new FHIRException("Cannot call addChild on a primitive type Transport.intent");
5242        }
5243        else if (name.equals("priority")) {
5244          throw new FHIRException("Cannot call addChild on a primitive type Transport.priority");
5245        }
5246        else if (name.equals("code")) {
5247          this.code = new CodeableConcept();
5248          return this.code;
5249        }
5250        else if (name.equals("description")) {
5251          throw new FHIRException("Cannot call addChild on a primitive type Transport.description");
5252        }
5253        else if (name.equals("focus")) {
5254          this.focus = new Reference();
5255          return this.focus;
5256        }
5257        else if (name.equals("for")) {
5258          this.for_ = new Reference();
5259          return this.for_;
5260        }
5261        else if (name.equals("encounter")) {
5262          this.encounter = new Reference();
5263          return this.encounter;
5264        }
5265        else if (name.equals("completionTime")) {
5266          throw new FHIRException("Cannot call addChild on a primitive type Transport.completionTime");
5267        }
5268        else if (name.equals("authoredOn")) {
5269          throw new FHIRException("Cannot call addChild on a primitive type Transport.authoredOn");
5270        }
5271        else if (name.equals("lastModified")) {
5272          throw new FHIRException("Cannot call addChild on a primitive type Transport.lastModified");
5273        }
5274        else if (name.equals("requester")) {
5275          this.requester = new Reference();
5276          return this.requester;
5277        }
5278        else if (name.equals("performerType")) {
5279          return addPerformerType();
5280        }
5281        else if (name.equals("owner")) {
5282          this.owner = new Reference();
5283          return this.owner;
5284        }
5285        else if (name.equals("location")) {
5286          this.location = new Reference();
5287          return this.location;
5288        }
5289        else if (name.equals("reasonCode")) {
5290          this.reasonCode = new CodeableConcept();
5291          return this.reasonCode;
5292        }
5293        else if (name.equals("reasonReference")) {
5294          this.reasonReference = new Reference();
5295          return this.reasonReference;
5296        }
5297        else if (name.equals("insurance")) {
5298          return addInsurance();
5299        }
5300        else if (name.equals("note")) {
5301          return addNote();
5302        }
5303        else if (name.equals("relevantHistory")) {
5304          return addRelevantHistory();
5305        }
5306        else if (name.equals("restriction")) {
5307          this.restriction = new TransportRestrictionComponent();
5308          return this.restriction;
5309        }
5310        else if (name.equals("input")) {
5311          return addInput();
5312        }
5313        else if (name.equals("output")) {
5314          return addOutput();
5315        }
5316        else if (name.equals("requestedLocation")) {
5317          this.requestedLocation = new Reference();
5318          return this.requestedLocation;
5319        }
5320        else if (name.equals("currentLocation")) {
5321          this.currentLocation = new Reference();
5322          return this.currentLocation;
5323        }
5324        else if (name.equals("history")) {
5325          this.history = new Reference();
5326          return this.history;
5327        }
5328        else
5329          return super.addChild(name);
5330      }
5331
5332  public String fhirType() {
5333    return "Transport";
5334
5335  }
5336
5337      public Transport copy() {
5338        Transport dst = new Transport();
5339        copyValues(dst);
5340        return dst;
5341      }
5342
5343      public void copyValues(Transport dst) {
5344        super.copyValues(dst);
5345        if (identifier != null) {
5346          dst.identifier = new ArrayList<Identifier>();
5347          for (Identifier i : identifier)
5348            dst.identifier.add(i.copy());
5349        };
5350        dst.instantiatesCanonical = instantiatesCanonical == null ? null : instantiatesCanonical.copy();
5351        dst.instantiatesUri = instantiatesUri == null ? null : instantiatesUri.copy();
5352        if (basedOn != null) {
5353          dst.basedOn = new ArrayList<Reference>();
5354          for (Reference i : basedOn)
5355            dst.basedOn.add(i.copy());
5356        };
5357        dst.groupIdentifier = groupIdentifier == null ? null : groupIdentifier.copy();
5358        if (partOf != null) {
5359          dst.partOf = new ArrayList<Reference>();
5360          for (Reference i : partOf)
5361            dst.partOf.add(i.copy());
5362        };
5363        dst.status = status == null ? null : status.copy();
5364        dst.statusReason = statusReason == null ? null : statusReason.copy();
5365        dst.intent = intent == null ? null : intent.copy();
5366        dst.priority = priority == null ? null : priority.copy();
5367        dst.code = code == null ? null : code.copy();
5368        dst.description = description == null ? null : description.copy();
5369        dst.focus = focus == null ? null : focus.copy();
5370        dst.for_ = for_ == null ? null : for_.copy();
5371        dst.encounter = encounter == null ? null : encounter.copy();
5372        dst.completionTime = completionTime == null ? null : completionTime.copy();
5373        dst.authoredOn = authoredOn == null ? null : authoredOn.copy();
5374        dst.lastModified = lastModified == null ? null : lastModified.copy();
5375        dst.requester = requester == null ? null : requester.copy();
5376        if (performerType != null) {
5377          dst.performerType = new ArrayList<CodeableConcept>();
5378          for (CodeableConcept i : performerType)
5379            dst.performerType.add(i.copy());
5380        };
5381        dst.owner = owner == null ? null : owner.copy();
5382        dst.location = location == null ? null : location.copy();
5383        dst.reasonCode = reasonCode == null ? null : reasonCode.copy();
5384        dst.reasonReference = reasonReference == null ? null : reasonReference.copy();
5385        if (insurance != null) {
5386          dst.insurance = new ArrayList<Reference>();
5387          for (Reference i : insurance)
5388            dst.insurance.add(i.copy());
5389        };
5390        if (note != null) {
5391          dst.note = new ArrayList<Annotation>();
5392          for (Annotation i : note)
5393            dst.note.add(i.copy());
5394        };
5395        if (relevantHistory != null) {
5396          dst.relevantHistory = new ArrayList<Reference>();
5397          for (Reference i : relevantHistory)
5398            dst.relevantHistory.add(i.copy());
5399        };
5400        dst.restriction = restriction == null ? null : restriction.copy();
5401        if (input != null) {
5402          dst.input = new ArrayList<ParameterComponent>();
5403          for (ParameterComponent i : input)
5404            dst.input.add(i.copy());
5405        };
5406        if (output != null) {
5407          dst.output = new ArrayList<TransportOutputComponent>();
5408          for (TransportOutputComponent i : output)
5409            dst.output.add(i.copy());
5410        };
5411        dst.requestedLocation = requestedLocation == null ? null : requestedLocation.copy();
5412        dst.currentLocation = currentLocation == null ? null : currentLocation.copy();
5413        dst.history = history == null ? null : history.copy();
5414      }
5415
5416      protected Transport typedCopy() {
5417        return copy();
5418      }
5419
5420      @Override
5421      public boolean equalsDeep(Base other_) {
5422        if (!super.equalsDeep(other_))
5423          return false;
5424        if (!(other_ instanceof Transport))
5425          return false;
5426        Transport o = (Transport) other_;
5427        return compareDeep(identifier, o.identifier, true) && compareDeep(instantiatesCanonical, o.instantiatesCanonical, true)
5428           && compareDeep(instantiatesUri, o.instantiatesUri, true) && compareDeep(basedOn, o.basedOn, true)
5429           && compareDeep(groupIdentifier, o.groupIdentifier, true) && compareDeep(partOf, o.partOf, true)
5430           && compareDeep(status, o.status, true) && compareDeep(statusReason, o.statusReason, true) && compareDeep(intent, o.intent, true)
5431           && compareDeep(priority, o.priority, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true)
5432           && compareDeep(focus, o.focus, true) && compareDeep(for_, o.for_, true) && compareDeep(encounter, o.encounter, true)
5433           && compareDeep(completionTime, o.completionTime, true) && compareDeep(authoredOn, o.authoredOn, true)
5434           && compareDeep(lastModified, o.lastModified, true) && compareDeep(requester, o.requester, true)
5435           && compareDeep(performerType, o.performerType, true) && compareDeep(owner, o.owner, true) && compareDeep(location, o.location, true)
5436           && compareDeep(reasonCode, o.reasonCode, true) && compareDeep(reasonReference, o.reasonReference, true)
5437           && compareDeep(insurance, o.insurance, true) && compareDeep(note, o.note, true) && compareDeep(relevantHistory, o.relevantHistory, true)
5438           && compareDeep(restriction, o.restriction, true) && compareDeep(input, o.input, true) && compareDeep(output, o.output, true)
5439           && compareDeep(requestedLocation, o.requestedLocation, true) && compareDeep(currentLocation, o.currentLocation, true)
5440           && compareDeep(history, o.history, true);
5441      }
5442
5443      @Override
5444      public boolean equalsShallow(Base other_) {
5445        if (!super.equalsShallow(other_))
5446          return false;
5447        if (!(other_ instanceof Transport))
5448          return false;
5449        Transport o = (Transport) other_;
5450        return compareValues(instantiatesCanonical, o.instantiatesCanonical, true) && compareValues(instantiatesUri, o.instantiatesUri, true)
5451           && compareValues(status, o.status, true) && compareValues(intent, o.intent, true) && compareValues(priority, o.priority, true)
5452           && compareValues(description, o.description, true) && compareValues(completionTime, o.completionTime, true)
5453           && compareValues(authoredOn, o.authoredOn, true) && compareValues(lastModified, o.lastModified, true)
5454          ;
5455      }
5456
5457      public boolean isEmpty() {
5458        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, instantiatesCanonical
5459          , instantiatesUri, basedOn, groupIdentifier, partOf, status, statusReason, intent
5460          , priority, code, description, focus, for_, encounter, completionTime, authoredOn
5461          , lastModified, requester, performerType, owner, location, reasonCode, reasonReference
5462          , insurance, note, relevantHistory, restriction, input, output, requestedLocation
5463          , currentLocation, history);
5464      }
5465
5466  @Override
5467  public ResourceType getResourceType() {
5468    return ResourceType.Transport;
5469   }
5470
5471 /**
5472   * Search parameter: <b>identifier</b>
5473   * <p>
5474   * Description: <b>External identifier</b><br>
5475   * Type: <b>token</b><br>
5476   * Path: <b>Transport.identifier</b><br>
5477   * </p>
5478   */
5479  @SearchParamDefinition(name="identifier", path="Transport.identifier", description="External identifier", type="token" )
5480  public static final String SP_IDENTIFIER = "identifier";
5481 /**
5482   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
5483   * <p>
5484   * Description: <b>External identifier</b><br>
5485   * Type: <b>token</b><br>
5486   * Path: <b>Transport.identifier</b><br>
5487   * </p>
5488   */
5489  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
5490
5491 /**
5492   * Search parameter: <b>status</b>
5493   * <p>
5494   * Description: <b>in-progress | completed | entered-in-error</b><br>
5495   * Type: <b>token</b><br>
5496   * Path: <b>Transport.status</b><br>
5497   * </p>
5498   */
5499  @SearchParamDefinition(name="status", path="Transport.status", description="in-progress | completed | entered-in-error", type="token" )
5500  public static final String SP_STATUS = "status";
5501 /**
5502   * <b>Fluent Client</b> search parameter constant for <b>status</b>
5503   * <p>
5504   * Description: <b>in-progress | completed | entered-in-error</b><br>
5505   * Type: <b>token</b><br>
5506   * Path: <b>Transport.status</b><br>
5507   * </p>
5508   */
5509  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
5510
5511
5512}
5513