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 Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
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 the requestor.
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 the requestor.";
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(PrimitiveType<?> code) throws FHIRException {
211          if (code == null)
212            return null;
213          if (code.isEmpty())
214            return new Enumeration<TransportIntent>(this, TransportIntent.NULL, code);
215          String codeString = ((PrimitiveType) code).asStringValue();
216          if (codeString == null || "".equals(codeString))
217            return new Enumeration<TransportIntent>(this, TransportIntent.NULL, code);
218        if ("unknown".equals(codeString))
219          return new Enumeration<TransportIntent>(this, TransportIntent.UNKNOWN, code);
220        if ("proposal".equals(codeString))
221          return new Enumeration<TransportIntent>(this, TransportIntent.PROPOSAL, code);
222        if ("plan".equals(codeString))
223          return new Enumeration<TransportIntent>(this, TransportIntent.PLAN, code);
224        if ("order".equals(codeString))
225          return new Enumeration<TransportIntent>(this, TransportIntent.ORDER, code);
226        if ("original-order".equals(codeString))
227          return new Enumeration<TransportIntent>(this, TransportIntent.ORIGINALORDER, code);
228        if ("reflex-order".equals(codeString))
229          return new Enumeration<TransportIntent>(this, TransportIntent.REFLEXORDER, code);
230        if ("filler-order".equals(codeString))
231          return new Enumeration<TransportIntent>(this, TransportIntent.FILLERORDER, code);
232        if ("instance-order".equals(codeString))
233          return new Enumeration<TransportIntent>(this, TransportIntent.INSTANCEORDER, code);
234        if ("option".equals(codeString))
235          return new Enumeration<TransportIntent>(this, TransportIntent.OPTION, code);
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(PrimitiveType<?> code) throws FHIRException {
383          if (code == null)
384            return null;
385          if (code.isEmpty())
386            return new Enumeration<TransportStatus>(this, TransportStatus.NULL, code);
387          String codeString = ((PrimitiveType) code).asStringValue();
388          if (codeString == null || "".equals(codeString))
389            return new Enumeration<TransportStatus>(this, TransportStatus.NULL, code);
390        if ("in-progress".equals(codeString))
391          return new Enumeration<TransportStatus>(this, TransportStatus.INPROGRESS, code);
392        if ("completed".equals(codeString))
393          return new Enumeration<TransportStatus>(this, TransportStatus.COMPLETED, code);
394        if ("abandoned".equals(codeString))
395          return new Enumeration<TransportStatus>(this, TransportStatus.ABANDONED, code);
396        if ("cancelled".equals(codeString))
397          return new Enumeration<TransportStatus>(this, TransportStatus.CANCELLED, code);
398        if ("planned".equals(codeString))
399          return new Enumeration<TransportStatus>(this, TransportStatus.PLANNED, code);
400        if ("entered-in-error".equals(codeString))
401          return new Enumeration<TransportStatus>(this, TransportStatus.ENTEREDINERROR, code);
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 singleton property 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 FHIRException("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 FHIRException("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     * A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.
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="A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time." )
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}, 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     * Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.
3457     */
3458    @Child(name = "insurance", type = {Coverage.class, ClaimResponse.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3459    @Description(shortDefinition="Associated insurance coverage", formalDefinition="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport." )
3460    protected List<Reference> insurance;
3461
3462    /**
3463     * Free-text information captured about the transport as it progresses.
3464     */
3465    @Child(name = "note", type = {Annotation.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3466    @Description(shortDefinition="Comments made about the transport", formalDefinition="Free-text information captured about the transport as it progresses." )
3467    protected List<Annotation> note;
3468
3469    /**
3470     * 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.
3471     */
3472    @Child(name = "relevantHistory", type = {Provenance.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3473    @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." )
3474    protected List<Reference> relevantHistory;
3475
3476    /**
3477     * 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.
3478     */
3479    @Child(name = "restriction", type = {}, order=25, min=0, max=1, modifier=false, summary=false)
3480    @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." )
3481    protected TransportRestrictionComponent restriction;
3482
3483    /**
3484     * Additional information that may be needed in the execution of the transport.
3485     */
3486    @Child(name = "input", type = {}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3487    @Description(shortDefinition="Information used to perform transport", formalDefinition="Additional information that may be needed in the execution of the transport." )
3488    protected List<ParameterComponent> input;
3489
3490    /**
3491     * Outputs produced by the Transport.
3492     */
3493    @Child(name = "output", type = {}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3494    @Description(shortDefinition="Information produced as part of transport", formalDefinition="Outputs produced by the Transport." )
3495    protected List<TransportOutputComponent> output;
3496
3497    /**
3498     * The desired or final location for the transport.
3499     */
3500    @Child(name = "requestedLocation", type = {Location.class}, order=28, min=1, max=1, modifier=false, summary=true)
3501    @Description(shortDefinition="The desired location", formalDefinition="The desired or final location for the transport." )
3502    protected Reference requestedLocation;
3503
3504    /**
3505     * The current location for the entity to be transported.
3506     */
3507    @Child(name = "currentLocation", type = {Location.class}, order=29, min=1, max=1, modifier=false, summary=true)
3508    @Description(shortDefinition="The entity current location", formalDefinition="The current location for the entity to be transported." )
3509    protected Reference currentLocation;
3510
3511    /**
3512     * A resource reference indicating why this transport needs to be performed.
3513     */
3514    @Child(name = "reason", type = {CodeableReference.class}, order=30, min=0, max=1, modifier=false, summary=false)
3515    @Description(shortDefinition="Why transport is needed", formalDefinition="A resource reference indicating why this transport needs to be performed." )
3516    protected CodeableReference reason;
3517
3518    /**
3519     * The transport event prior to this one.
3520     */
3521    @Child(name = "history", type = {Transport.class}, order=31, min=0, max=1, modifier=false, summary=false)
3522    @Description(shortDefinition="Parent (or preceding) transport", formalDefinition="The transport event prior to this one." )
3523    protected Reference history;
3524
3525    private static final long serialVersionUID = -2095581755L;
3526
3527  /**
3528   * Constructor
3529   */
3530    public Transport() {
3531      super();
3532    }
3533
3534  /**
3535   * Constructor
3536   */
3537    public Transport(TransportIntent intent, Reference requestedLocation, Reference currentLocation) {
3538      super();
3539      this.setIntent(intent);
3540      this.setRequestedLocation(requestedLocation);
3541      this.setCurrentLocation(currentLocation);
3542    }
3543
3544    /**
3545     * @return {@link #identifier} (Identifier for the transport event that is used to identify it across multiple disparate systems.)
3546     */
3547    public List<Identifier> getIdentifier() { 
3548      if (this.identifier == null)
3549        this.identifier = new ArrayList<Identifier>();
3550      return this.identifier;
3551    }
3552
3553    /**
3554     * @return Returns a reference to <code>this</code> for easy method chaining
3555     */
3556    public Transport setIdentifier(List<Identifier> theIdentifier) { 
3557      this.identifier = theIdentifier;
3558      return this;
3559    }
3560
3561    public boolean hasIdentifier() { 
3562      if (this.identifier == null)
3563        return false;
3564      for (Identifier item : this.identifier)
3565        if (!item.isEmpty())
3566          return true;
3567      return false;
3568    }
3569
3570    public Identifier addIdentifier() { //3
3571      Identifier t = new Identifier();
3572      if (this.identifier == null)
3573        this.identifier = new ArrayList<Identifier>();
3574      this.identifier.add(t);
3575      return t;
3576    }
3577
3578    public Transport addIdentifier(Identifier t) { //3
3579      if (t == null)
3580        return this;
3581      if (this.identifier == null)
3582        this.identifier = new ArrayList<Identifier>();
3583      this.identifier.add(t);
3584      return this;
3585    }
3586
3587    /**
3588     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
3589     */
3590    public Identifier getIdentifierFirstRep() { 
3591      if (getIdentifier().isEmpty()) {
3592        addIdentifier();
3593      }
3594      return getIdentifier().get(0);
3595    }
3596
3597    /**
3598     * @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
3599     */
3600    public CanonicalType getInstantiatesCanonicalElement() { 
3601      if (this.instantiatesCanonical == null)
3602        if (Configuration.errorOnAutoCreate())
3603          throw new Error("Attempt to auto-create Transport.instantiatesCanonical");
3604        else if (Configuration.doAutoCreate())
3605          this.instantiatesCanonical = new CanonicalType(); // bb
3606      return this.instantiatesCanonical;
3607    }
3608
3609    public boolean hasInstantiatesCanonicalElement() { 
3610      return this.instantiatesCanonical != null && !this.instantiatesCanonical.isEmpty();
3611    }
3612
3613    public boolean hasInstantiatesCanonical() { 
3614      return this.instantiatesCanonical != null && !this.instantiatesCanonical.isEmpty();
3615    }
3616
3617    /**
3618     * @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
3619     */
3620    public Transport setInstantiatesCanonicalElement(CanonicalType value) { 
3621      this.instantiatesCanonical = value;
3622      return this;
3623    }
3624
3625    /**
3626     * @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.
3627     */
3628    public String getInstantiatesCanonical() { 
3629      return this.instantiatesCanonical == null ? null : this.instantiatesCanonical.getValue();
3630    }
3631
3632    /**
3633     * @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.
3634     */
3635    public Transport setInstantiatesCanonical(String value) { 
3636      if (Utilities.noString(value))
3637        this.instantiatesCanonical = null;
3638      else {
3639        if (this.instantiatesCanonical == null)
3640          this.instantiatesCanonical = new CanonicalType();
3641        this.instantiatesCanonical.setValue(value);
3642      }
3643      return this;
3644    }
3645
3646    /**
3647     * @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
3648     */
3649    public UriType getInstantiatesUriElement() { 
3650      if (this.instantiatesUri == null)
3651        if (Configuration.errorOnAutoCreate())
3652          throw new Error("Attempt to auto-create Transport.instantiatesUri");
3653        else if (Configuration.doAutoCreate())
3654          this.instantiatesUri = new UriType(); // bb
3655      return this.instantiatesUri;
3656    }
3657
3658    public boolean hasInstantiatesUriElement() { 
3659      return this.instantiatesUri != null && !this.instantiatesUri.isEmpty();
3660    }
3661
3662    public boolean hasInstantiatesUri() { 
3663      return this.instantiatesUri != null && !this.instantiatesUri.isEmpty();
3664    }
3665
3666    /**
3667     * @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
3668     */
3669    public Transport setInstantiatesUriElement(UriType value) { 
3670      this.instantiatesUri = value;
3671      return this;
3672    }
3673
3674    /**
3675     * @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.
3676     */
3677    public String getInstantiatesUri() { 
3678      return this.instantiatesUri == null ? null : this.instantiatesUri.getValue();
3679    }
3680
3681    /**
3682     * @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.
3683     */
3684    public Transport setInstantiatesUri(String value) { 
3685      if (Utilities.noString(value))
3686        this.instantiatesUri = null;
3687      else {
3688        if (this.instantiatesUri == null)
3689          this.instantiatesUri = new UriType();
3690        this.instantiatesUri.setValue(value);
3691      }
3692      return this;
3693    }
3694
3695    /**
3696     * @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.)
3697     */
3698    public List<Reference> getBasedOn() { 
3699      if (this.basedOn == null)
3700        this.basedOn = new ArrayList<Reference>();
3701      return this.basedOn;
3702    }
3703
3704    /**
3705     * @return Returns a reference to <code>this</code> for easy method chaining
3706     */
3707    public Transport setBasedOn(List<Reference> theBasedOn) { 
3708      this.basedOn = theBasedOn;
3709      return this;
3710    }
3711
3712    public boolean hasBasedOn() { 
3713      if (this.basedOn == null)
3714        return false;
3715      for (Reference item : this.basedOn)
3716        if (!item.isEmpty())
3717          return true;
3718      return false;
3719    }
3720
3721    public Reference addBasedOn() { //3
3722      Reference t = new Reference();
3723      if (this.basedOn == null)
3724        this.basedOn = new ArrayList<Reference>();
3725      this.basedOn.add(t);
3726      return t;
3727    }
3728
3729    public Transport addBasedOn(Reference t) { //3
3730      if (t == null)
3731        return this;
3732      if (this.basedOn == null)
3733        this.basedOn = new ArrayList<Reference>();
3734      this.basedOn.add(t);
3735      return this;
3736    }
3737
3738    /**
3739     * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist {3}
3740     */
3741    public Reference getBasedOnFirstRep() { 
3742      if (getBasedOn().isEmpty()) {
3743        addBasedOn();
3744      }
3745      return getBasedOn().get(0);
3746    }
3747
3748    /**
3749     * @return {@link #groupIdentifier} (A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.)
3750     */
3751    public Identifier getGroupIdentifier() { 
3752      if (this.groupIdentifier == null)
3753        if (Configuration.errorOnAutoCreate())
3754          throw new Error("Attempt to auto-create Transport.groupIdentifier");
3755        else if (Configuration.doAutoCreate())
3756          this.groupIdentifier = new Identifier(); // cc
3757      return this.groupIdentifier;
3758    }
3759
3760    public boolean hasGroupIdentifier() { 
3761      return this.groupIdentifier != null && !this.groupIdentifier.isEmpty();
3762    }
3763
3764    /**
3765     * @param value {@link #groupIdentifier} (A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.)
3766     */
3767    public Transport setGroupIdentifier(Identifier value) { 
3768      this.groupIdentifier = value;
3769      return this;
3770    }
3771
3772    /**
3773     * @return {@link #partOf} (A larger event of which this particular event is a component or step.)
3774     */
3775    public List<Reference> getPartOf() { 
3776      if (this.partOf == null)
3777        this.partOf = new ArrayList<Reference>();
3778      return this.partOf;
3779    }
3780
3781    /**
3782     * @return Returns a reference to <code>this</code> for easy method chaining
3783     */
3784    public Transport setPartOf(List<Reference> thePartOf) { 
3785      this.partOf = thePartOf;
3786      return this;
3787    }
3788
3789    public boolean hasPartOf() { 
3790      if (this.partOf == null)
3791        return false;
3792      for (Reference item : this.partOf)
3793        if (!item.isEmpty())
3794          return true;
3795      return false;
3796    }
3797
3798    public Reference addPartOf() { //3
3799      Reference t = new Reference();
3800      if (this.partOf == null)
3801        this.partOf = new ArrayList<Reference>();
3802      this.partOf.add(t);
3803      return t;
3804    }
3805
3806    public Transport addPartOf(Reference t) { //3
3807      if (t == null)
3808        return this;
3809      if (this.partOf == null)
3810        this.partOf = new ArrayList<Reference>();
3811      this.partOf.add(t);
3812      return this;
3813    }
3814
3815    /**
3816     * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist {3}
3817     */
3818    public Reference getPartOfFirstRep() { 
3819      if (getPartOf().isEmpty()) {
3820        addPartOf();
3821      }
3822      return getPartOf().get(0);
3823    }
3824
3825    /**
3826     * @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
3827     */
3828    public Enumeration<TransportStatus> getStatusElement() { 
3829      if (this.status == null)
3830        if (Configuration.errorOnAutoCreate())
3831          throw new Error("Attempt to auto-create Transport.status");
3832        else if (Configuration.doAutoCreate())
3833          this.status = new Enumeration<TransportStatus>(new TransportStatusEnumFactory()); // bb
3834      return this.status;
3835    }
3836
3837    public boolean hasStatusElement() { 
3838      return this.status != null && !this.status.isEmpty();
3839    }
3840
3841    public boolean hasStatus() { 
3842      return this.status != null && !this.status.isEmpty();
3843    }
3844
3845    /**
3846     * @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
3847     */
3848    public Transport setStatusElement(Enumeration<TransportStatus> value) { 
3849      this.status = value;
3850      return this;
3851    }
3852
3853    /**
3854     * @return A code specifying the state of the transport event.
3855     */
3856    public TransportStatus getStatus() { 
3857      return this.status == null ? null : this.status.getValue();
3858    }
3859
3860    /**
3861     * @param value A code specifying the state of the transport event.
3862     */
3863    public Transport setStatus(TransportStatus value) { 
3864      if (value == null)
3865        this.status = null;
3866      else {
3867        if (this.status == null)
3868          this.status = new Enumeration<TransportStatus>(new TransportStatusEnumFactory());
3869        this.status.setValue(value);
3870      }
3871      return this;
3872    }
3873
3874    /**
3875     * @return {@link #statusReason} (An explanation as to why this transport is held, failed, was refused, etc.)
3876     */
3877    public CodeableConcept getStatusReason() { 
3878      if (this.statusReason == null)
3879        if (Configuration.errorOnAutoCreate())
3880          throw new Error("Attempt to auto-create Transport.statusReason");
3881        else if (Configuration.doAutoCreate())
3882          this.statusReason = new CodeableConcept(); // cc
3883      return this.statusReason;
3884    }
3885
3886    public boolean hasStatusReason() { 
3887      return this.statusReason != null && !this.statusReason.isEmpty();
3888    }
3889
3890    /**
3891     * @param value {@link #statusReason} (An explanation as to why this transport is held, failed, was refused, etc.)
3892     */
3893    public Transport setStatusReason(CodeableConcept value) { 
3894      this.statusReason = value;
3895      return this;
3896    }
3897
3898    /**
3899     * @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
3900     */
3901    public Enumeration<TransportIntent> getIntentElement() { 
3902      if (this.intent == null)
3903        if (Configuration.errorOnAutoCreate())
3904          throw new Error("Attempt to auto-create Transport.intent");
3905        else if (Configuration.doAutoCreate())
3906          this.intent = new Enumeration<TransportIntent>(new TransportIntentEnumFactory()); // bb
3907      return this.intent;
3908    }
3909
3910    public boolean hasIntentElement() { 
3911      return this.intent != null && !this.intent.isEmpty();
3912    }
3913
3914    public boolean hasIntent() { 
3915      return this.intent != null && !this.intent.isEmpty();
3916    }
3917
3918    /**
3919     * @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
3920     */
3921    public Transport setIntentElement(Enumeration<TransportIntent> value) { 
3922      this.intent = value;
3923      return this;
3924    }
3925
3926    /**
3927     * @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.
3928     */
3929    public TransportIntent getIntent() { 
3930      return this.intent == null ? null : this.intent.getValue();
3931    }
3932
3933    /**
3934     * @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.
3935     */
3936    public Transport setIntent(TransportIntent value) { 
3937        if (this.intent == null)
3938          this.intent = new Enumeration<TransportIntent>(new TransportIntentEnumFactory());
3939        this.intent.setValue(value);
3940      return this;
3941    }
3942
3943    /**
3944     * @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
3945     */
3946    public Enumeration<RequestPriority> getPriorityElement() { 
3947      if (this.priority == null)
3948        if (Configuration.errorOnAutoCreate())
3949          throw new Error("Attempt to auto-create Transport.priority");
3950        else if (Configuration.doAutoCreate())
3951          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory()); // bb
3952      return this.priority;
3953    }
3954
3955    public boolean hasPriorityElement() { 
3956      return this.priority != null && !this.priority.isEmpty();
3957    }
3958
3959    public boolean hasPriority() { 
3960      return this.priority != null && !this.priority.isEmpty();
3961    }
3962
3963    /**
3964     * @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
3965     */
3966    public Transport setPriorityElement(Enumeration<RequestPriority> value) { 
3967      this.priority = value;
3968      return this;
3969    }
3970
3971    /**
3972     * @return Indicates how quickly the Transport should be addressed with respect to other requests.
3973     */
3974    public RequestPriority getPriority() { 
3975      return this.priority == null ? null : this.priority.getValue();
3976    }
3977
3978    /**
3979     * @param value Indicates how quickly the Transport should be addressed with respect to other requests.
3980     */
3981    public Transport setPriority(RequestPriority value) { 
3982      if (value == null)
3983        this.priority = null;
3984      else {
3985        if (this.priority == null)
3986          this.priority = new Enumeration<RequestPriority>(new RequestPriorityEnumFactory());
3987        this.priority.setValue(value);
3988      }
3989      return this;
3990    }
3991
3992    /**
3993     * @return {@link #code} (A name or code (or both) briefly describing what the transport involves.)
3994     */
3995    public CodeableConcept getCode() { 
3996      if (this.code == null)
3997        if (Configuration.errorOnAutoCreate())
3998          throw new Error("Attempt to auto-create Transport.code");
3999        else if (Configuration.doAutoCreate())
4000          this.code = new CodeableConcept(); // cc
4001      return this.code;
4002    }
4003
4004    public boolean hasCode() { 
4005      return this.code != null && !this.code.isEmpty();
4006    }
4007
4008    /**
4009     * @param value {@link #code} (A name or code (or both) briefly describing what the transport involves.)
4010     */
4011    public Transport setCode(CodeableConcept value) { 
4012      this.code = value;
4013      return this;
4014    }
4015
4016    /**
4017     * @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
4018     */
4019    public StringType getDescriptionElement() { 
4020      if (this.description == null)
4021        if (Configuration.errorOnAutoCreate())
4022          throw new Error("Attempt to auto-create Transport.description");
4023        else if (Configuration.doAutoCreate())
4024          this.description = new StringType(); // bb
4025      return this.description;
4026    }
4027
4028    public boolean hasDescriptionElement() { 
4029      return this.description != null && !this.description.isEmpty();
4030    }
4031
4032    public boolean hasDescription() { 
4033      return this.description != null && !this.description.isEmpty();
4034    }
4035
4036    /**
4037     * @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
4038     */
4039    public Transport setDescriptionElement(StringType value) { 
4040      this.description = value;
4041      return this;
4042    }
4043
4044    /**
4045     * @return A free-text description of what is to be performed.
4046     */
4047    public String getDescription() { 
4048      return this.description == null ? null : this.description.getValue();
4049    }
4050
4051    /**
4052     * @param value A free-text description of what is to be performed.
4053     */
4054    public Transport setDescription(String value) { 
4055      if (Utilities.noString(value))
4056        this.description = null;
4057      else {
4058        if (this.description == null)
4059          this.description = new StringType();
4060        this.description.setValue(value);
4061      }
4062      return this;
4063    }
4064
4065    /**
4066     * @return {@link #focus} (The request being actioned or the resource being manipulated by this transport.)
4067     */
4068    public Reference getFocus() { 
4069      if (this.focus == null)
4070        if (Configuration.errorOnAutoCreate())
4071          throw new Error("Attempt to auto-create Transport.focus");
4072        else if (Configuration.doAutoCreate())
4073          this.focus = new Reference(); // cc
4074      return this.focus;
4075    }
4076
4077    public boolean hasFocus() { 
4078      return this.focus != null && !this.focus.isEmpty();
4079    }
4080
4081    /**
4082     * @param value {@link #focus} (The request being actioned or the resource being manipulated by this transport.)
4083     */
4084    public Transport setFocus(Reference value) { 
4085      this.focus = value;
4086      return this;
4087    }
4088
4089    /**
4090     * @return {@link #for_} (The entity who benefits from the performance of the service specified in the transport (e.g., the patient).)
4091     */
4092    public Reference getFor() { 
4093      if (this.for_ == null)
4094        if (Configuration.errorOnAutoCreate())
4095          throw new Error("Attempt to auto-create Transport.for_");
4096        else if (Configuration.doAutoCreate())
4097          this.for_ = new Reference(); // cc
4098      return this.for_;
4099    }
4100
4101    public boolean hasFor() { 
4102      return this.for_ != null && !this.for_.isEmpty();
4103    }
4104
4105    /**
4106     * @param value {@link #for_} (The entity who benefits from the performance of the service specified in the transport (e.g., the patient).)
4107     */
4108    public Transport setFor(Reference value) { 
4109      this.for_ = value;
4110      return this;
4111    }
4112
4113    /**
4114     * @return {@link #encounter} (The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.)
4115     */
4116    public Reference getEncounter() { 
4117      if (this.encounter == null)
4118        if (Configuration.errorOnAutoCreate())
4119          throw new Error("Attempt to auto-create Transport.encounter");
4120        else if (Configuration.doAutoCreate())
4121          this.encounter = new Reference(); // cc
4122      return this.encounter;
4123    }
4124
4125    public boolean hasEncounter() { 
4126      return this.encounter != null && !this.encounter.isEmpty();
4127    }
4128
4129    /**
4130     * @param value {@link #encounter} (The healthcare event  (e.g. a patient and healthcare provider interaction) during which this transport was created.)
4131     */
4132    public Transport setEncounter(Reference value) { 
4133      this.encounter = value;
4134      return this;
4135    }
4136
4137    /**
4138     * @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
4139     */
4140    public DateTimeType getCompletionTimeElement() { 
4141      if (this.completionTime == null)
4142        if (Configuration.errorOnAutoCreate())
4143          throw new Error("Attempt to auto-create Transport.completionTime");
4144        else if (Configuration.doAutoCreate())
4145          this.completionTime = new DateTimeType(); // bb
4146      return this.completionTime;
4147    }
4148
4149    public boolean hasCompletionTimeElement() { 
4150      return this.completionTime != null && !this.completionTime.isEmpty();
4151    }
4152
4153    public boolean hasCompletionTime() { 
4154      return this.completionTime != null && !this.completionTime.isEmpty();
4155    }
4156
4157    /**
4158     * @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
4159     */
4160    public Transport setCompletionTimeElement(DateTimeType value) { 
4161      this.completionTime = value;
4162      return this;
4163    }
4164
4165    /**
4166     * @return Identifies the completion time of the event (the occurrence).
4167     */
4168    public Date getCompletionTime() { 
4169      return this.completionTime == null ? null : this.completionTime.getValue();
4170    }
4171
4172    /**
4173     * @param value Identifies the completion time of the event (the occurrence).
4174     */
4175    public Transport setCompletionTime(Date value) { 
4176      if (value == null)
4177        this.completionTime = null;
4178      else {
4179        if (this.completionTime == null)
4180          this.completionTime = new DateTimeType();
4181        this.completionTime.setValue(value);
4182      }
4183      return this;
4184    }
4185
4186    /**
4187     * @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
4188     */
4189    public DateTimeType getAuthoredOnElement() { 
4190      if (this.authoredOn == null)
4191        if (Configuration.errorOnAutoCreate())
4192          throw new Error("Attempt to auto-create Transport.authoredOn");
4193        else if (Configuration.doAutoCreate())
4194          this.authoredOn = new DateTimeType(); // bb
4195      return this.authoredOn;
4196    }
4197
4198    public boolean hasAuthoredOnElement() { 
4199      return this.authoredOn != null && !this.authoredOn.isEmpty();
4200    }
4201
4202    public boolean hasAuthoredOn() { 
4203      return this.authoredOn != null && !this.authoredOn.isEmpty();
4204    }
4205
4206    /**
4207     * @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
4208     */
4209    public Transport setAuthoredOnElement(DateTimeType value) { 
4210      this.authoredOn = value;
4211      return this;
4212    }
4213
4214    /**
4215     * @return The date and time this transport was created.
4216     */
4217    public Date getAuthoredOn() { 
4218      return this.authoredOn == null ? null : this.authoredOn.getValue();
4219    }
4220
4221    /**
4222     * @param value The date and time this transport was created.
4223     */
4224    public Transport setAuthoredOn(Date value) { 
4225      if (value == null)
4226        this.authoredOn = null;
4227      else {
4228        if (this.authoredOn == null)
4229          this.authoredOn = new DateTimeType();
4230        this.authoredOn.setValue(value);
4231      }
4232      return this;
4233    }
4234
4235    /**
4236     * @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
4237     */
4238    public DateTimeType getLastModifiedElement() { 
4239      if (this.lastModified == null)
4240        if (Configuration.errorOnAutoCreate())
4241          throw new Error("Attempt to auto-create Transport.lastModified");
4242        else if (Configuration.doAutoCreate())
4243          this.lastModified = new DateTimeType(); // bb
4244      return this.lastModified;
4245    }
4246
4247    public boolean hasLastModifiedElement() { 
4248      return this.lastModified != null && !this.lastModified.isEmpty();
4249    }
4250
4251    public boolean hasLastModified() { 
4252      return this.lastModified != null && !this.lastModified.isEmpty();
4253    }
4254
4255    /**
4256     * @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
4257     */
4258    public Transport setLastModifiedElement(DateTimeType value) { 
4259      this.lastModified = value;
4260      return this;
4261    }
4262
4263    /**
4264     * @return The date and time of last modification to this transport.
4265     */
4266    public Date getLastModified() { 
4267      return this.lastModified == null ? null : this.lastModified.getValue();
4268    }
4269
4270    /**
4271     * @param value The date and time of last modification to this transport.
4272     */
4273    public Transport setLastModified(Date value) { 
4274      if (value == null)
4275        this.lastModified = null;
4276      else {
4277        if (this.lastModified == null)
4278          this.lastModified = new DateTimeType();
4279        this.lastModified.setValue(value);
4280      }
4281      return this;
4282    }
4283
4284    /**
4285     * @return {@link #requester} (The creator of the transport.)
4286     */
4287    public Reference getRequester() { 
4288      if (this.requester == null)
4289        if (Configuration.errorOnAutoCreate())
4290          throw new Error("Attempt to auto-create Transport.requester");
4291        else if (Configuration.doAutoCreate())
4292          this.requester = new Reference(); // cc
4293      return this.requester;
4294    }
4295
4296    public boolean hasRequester() { 
4297      return this.requester != null && !this.requester.isEmpty();
4298    }
4299
4300    /**
4301     * @param value {@link #requester} (The creator of the transport.)
4302     */
4303    public Transport setRequester(Reference value) { 
4304      this.requester = value;
4305      return this;
4306    }
4307
4308    /**
4309     * @return {@link #performerType} (The kind of participant that should perform the transport.)
4310     */
4311    public List<CodeableConcept> getPerformerType() { 
4312      if (this.performerType == null)
4313        this.performerType = new ArrayList<CodeableConcept>();
4314      return this.performerType;
4315    }
4316
4317    /**
4318     * @return Returns a reference to <code>this</code> for easy method chaining
4319     */
4320    public Transport setPerformerType(List<CodeableConcept> thePerformerType) { 
4321      this.performerType = thePerformerType;
4322      return this;
4323    }
4324
4325    public boolean hasPerformerType() { 
4326      if (this.performerType == null)
4327        return false;
4328      for (CodeableConcept item : this.performerType)
4329        if (!item.isEmpty())
4330          return true;
4331      return false;
4332    }
4333
4334    public CodeableConcept addPerformerType() { //3
4335      CodeableConcept t = new CodeableConcept();
4336      if (this.performerType == null)
4337        this.performerType = new ArrayList<CodeableConcept>();
4338      this.performerType.add(t);
4339      return t;
4340    }
4341
4342    public Transport addPerformerType(CodeableConcept t) { //3
4343      if (t == null)
4344        return this;
4345      if (this.performerType == null)
4346        this.performerType = new ArrayList<CodeableConcept>();
4347      this.performerType.add(t);
4348      return this;
4349    }
4350
4351    /**
4352     * @return The first repetition of repeating field {@link #performerType}, creating it if it does not already exist {3}
4353     */
4354    public CodeableConcept getPerformerTypeFirstRep() { 
4355      if (getPerformerType().isEmpty()) {
4356        addPerformerType();
4357      }
4358      return getPerformerType().get(0);
4359    }
4360
4361    /**
4362     * @return {@link #owner} (Individual organization or Device currently responsible for transport execution.)
4363     */
4364    public Reference getOwner() { 
4365      if (this.owner == null)
4366        if (Configuration.errorOnAutoCreate())
4367          throw new Error("Attempt to auto-create Transport.owner");
4368        else if (Configuration.doAutoCreate())
4369          this.owner = new Reference(); // cc
4370      return this.owner;
4371    }
4372
4373    public boolean hasOwner() { 
4374      return this.owner != null && !this.owner.isEmpty();
4375    }
4376
4377    /**
4378     * @param value {@link #owner} (Individual organization or Device currently responsible for transport execution.)
4379     */
4380    public Transport setOwner(Reference value) { 
4381      this.owner = value;
4382      return this;
4383    }
4384
4385    /**
4386     * @return {@link #location} (Principal physical location where this transport is performed.)
4387     */
4388    public Reference getLocation() { 
4389      if (this.location == null)
4390        if (Configuration.errorOnAutoCreate())
4391          throw new Error("Attempt to auto-create Transport.location");
4392        else if (Configuration.doAutoCreate())
4393          this.location = new Reference(); // cc
4394      return this.location;
4395    }
4396
4397    public boolean hasLocation() { 
4398      return this.location != null && !this.location.isEmpty();
4399    }
4400
4401    /**
4402     * @param value {@link #location} (Principal physical location where this transport is performed.)
4403     */
4404    public Transport setLocation(Reference value) { 
4405      this.location = value;
4406      return this;
4407    }
4408
4409    /**
4410     * @return {@link #insurance} (Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Transport.)
4411     */
4412    public List<Reference> getInsurance() { 
4413      if (this.insurance == null)
4414        this.insurance = new ArrayList<Reference>();
4415      return this.insurance;
4416    }
4417
4418    /**
4419     * @return Returns a reference to <code>this</code> for easy method chaining
4420     */
4421    public Transport setInsurance(List<Reference> theInsurance) { 
4422      this.insurance = theInsurance;
4423      return this;
4424    }
4425
4426    public boolean hasInsurance() { 
4427      if (this.insurance == null)
4428        return false;
4429      for (Reference item : this.insurance)
4430        if (!item.isEmpty())
4431          return true;
4432      return false;
4433    }
4434
4435    public Reference addInsurance() { //3
4436      Reference t = new Reference();
4437      if (this.insurance == null)
4438        this.insurance = new ArrayList<Reference>();
4439      this.insurance.add(t);
4440      return t;
4441    }
4442
4443    public Transport addInsurance(Reference t) { //3
4444      if (t == null)
4445        return this;
4446      if (this.insurance == null)
4447        this.insurance = new ArrayList<Reference>();
4448      this.insurance.add(t);
4449      return this;
4450    }
4451
4452    /**
4453     * @return The first repetition of repeating field {@link #insurance}, creating it if it does not already exist {3}
4454     */
4455    public Reference getInsuranceFirstRep() { 
4456      if (getInsurance().isEmpty()) {
4457        addInsurance();
4458      }
4459      return getInsurance().get(0);
4460    }
4461
4462    /**
4463     * @return {@link #note} (Free-text information captured about the transport as it progresses.)
4464     */
4465    public List<Annotation> getNote() { 
4466      if (this.note == null)
4467        this.note = new ArrayList<Annotation>();
4468      return this.note;
4469    }
4470
4471    /**
4472     * @return Returns a reference to <code>this</code> for easy method chaining
4473     */
4474    public Transport setNote(List<Annotation> theNote) { 
4475      this.note = theNote;
4476      return this;
4477    }
4478
4479    public boolean hasNote() { 
4480      if (this.note == null)
4481        return false;
4482      for (Annotation item : this.note)
4483        if (!item.isEmpty())
4484          return true;
4485      return false;
4486    }
4487
4488    public Annotation addNote() { //3
4489      Annotation t = new Annotation();
4490      if (this.note == null)
4491        this.note = new ArrayList<Annotation>();
4492      this.note.add(t);
4493      return t;
4494    }
4495
4496    public Transport addNote(Annotation t) { //3
4497      if (t == null)
4498        return this;
4499      if (this.note == null)
4500        this.note = new ArrayList<Annotation>();
4501      this.note.add(t);
4502      return this;
4503    }
4504
4505    /**
4506     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
4507     */
4508    public Annotation getNoteFirstRep() { 
4509      if (getNote().isEmpty()) {
4510        addNote();
4511      }
4512      return getNote().get(0);
4513    }
4514
4515    /**
4516     * @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.)
4517     */
4518    public List<Reference> getRelevantHistory() { 
4519      if (this.relevantHistory == null)
4520        this.relevantHistory = new ArrayList<Reference>();
4521      return this.relevantHistory;
4522    }
4523
4524    /**
4525     * @return Returns a reference to <code>this</code> for easy method chaining
4526     */
4527    public Transport setRelevantHistory(List<Reference> theRelevantHistory) { 
4528      this.relevantHistory = theRelevantHistory;
4529      return this;
4530    }
4531
4532    public boolean hasRelevantHistory() { 
4533      if (this.relevantHistory == null)
4534        return false;
4535      for (Reference item : this.relevantHistory)
4536        if (!item.isEmpty())
4537          return true;
4538      return false;
4539    }
4540
4541    public Reference addRelevantHistory() { //3
4542      Reference t = new Reference();
4543      if (this.relevantHistory == null)
4544        this.relevantHistory = new ArrayList<Reference>();
4545      this.relevantHistory.add(t);
4546      return t;
4547    }
4548
4549    public Transport addRelevantHistory(Reference t) { //3
4550      if (t == null)
4551        return this;
4552      if (this.relevantHistory == null)
4553        this.relevantHistory = new ArrayList<Reference>();
4554      this.relevantHistory.add(t);
4555      return this;
4556    }
4557
4558    /**
4559     * @return The first repetition of repeating field {@link #relevantHistory}, creating it if it does not already exist {3}
4560     */
4561    public Reference getRelevantHistoryFirstRep() { 
4562      if (getRelevantHistory().isEmpty()) {
4563        addRelevantHistory();
4564      }
4565      return getRelevantHistory().get(0);
4566    }
4567
4568    /**
4569     * @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.)
4570     */
4571    public TransportRestrictionComponent getRestriction() { 
4572      if (this.restriction == null)
4573        if (Configuration.errorOnAutoCreate())
4574          throw new Error("Attempt to auto-create Transport.restriction");
4575        else if (Configuration.doAutoCreate())
4576          this.restriction = new TransportRestrictionComponent(); // cc
4577      return this.restriction;
4578    }
4579
4580    public boolean hasRestriction() { 
4581      return this.restriction != null && !this.restriction.isEmpty();
4582    }
4583
4584    /**
4585     * @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.)
4586     */
4587    public Transport setRestriction(TransportRestrictionComponent value) { 
4588      this.restriction = value;
4589      return this;
4590    }
4591
4592    /**
4593     * @return {@link #input} (Additional information that may be needed in the execution of the transport.)
4594     */
4595    public List<ParameterComponent> getInput() { 
4596      if (this.input == null)
4597        this.input = new ArrayList<ParameterComponent>();
4598      return this.input;
4599    }
4600
4601    /**
4602     * @return Returns a reference to <code>this</code> for easy method chaining
4603     */
4604    public Transport setInput(List<ParameterComponent> theInput) { 
4605      this.input = theInput;
4606      return this;
4607    }
4608
4609    public boolean hasInput() { 
4610      if (this.input == null)
4611        return false;
4612      for (ParameterComponent item : this.input)
4613        if (!item.isEmpty())
4614          return true;
4615      return false;
4616    }
4617
4618    public ParameterComponent addInput() { //3
4619      ParameterComponent t = new ParameterComponent();
4620      if (this.input == null)
4621        this.input = new ArrayList<ParameterComponent>();
4622      this.input.add(t);
4623      return t;
4624    }
4625
4626    public Transport addInput(ParameterComponent t) { //3
4627      if (t == null)
4628        return this;
4629      if (this.input == null)
4630        this.input = new ArrayList<ParameterComponent>();
4631      this.input.add(t);
4632      return this;
4633    }
4634
4635    /**
4636     * @return The first repetition of repeating field {@link #input}, creating it if it does not already exist {3}
4637     */
4638    public ParameterComponent getInputFirstRep() { 
4639      if (getInput().isEmpty()) {
4640        addInput();
4641      }
4642      return getInput().get(0);
4643    }
4644
4645    /**
4646     * @return {@link #output} (Outputs produced by the Transport.)
4647     */
4648    public List<TransportOutputComponent> getOutput() { 
4649      if (this.output == null)
4650        this.output = new ArrayList<TransportOutputComponent>();
4651      return this.output;
4652    }
4653
4654    /**
4655     * @return Returns a reference to <code>this</code> for easy method chaining
4656     */
4657    public Transport setOutput(List<TransportOutputComponent> theOutput) { 
4658      this.output = theOutput;
4659      return this;
4660    }
4661
4662    public boolean hasOutput() { 
4663      if (this.output == null)
4664        return false;
4665      for (TransportOutputComponent item : this.output)
4666        if (!item.isEmpty())
4667          return true;
4668      return false;
4669    }
4670
4671    public TransportOutputComponent addOutput() { //3
4672      TransportOutputComponent t = new TransportOutputComponent();
4673      if (this.output == null)
4674        this.output = new ArrayList<TransportOutputComponent>();
4675      this.output.add(t);
4676      return t;
4677    }
4678
4679    public Transport addOutput(TransportOutputComponent t) { //3
4680      if (t == null)
4681        return this;
4682      if (this.output == null)
4683        this.output = new ArrayList<TransportOutputComponent>();
4684      this.output.add(t);
4685      return this;
4686    }
4687
4688    /**
4689     * @return The first repetition of repeating field {@link #output}, creating it if it does not already exist {3}
4690     */
4691    public TransportOutputComponent getOutputFirstRep() { 
4692      if (getOutput().isEmpty()) {
4693        addOutput();
4694      }
4695      return getOutput().get(0);
4696    }
4697
4698    /**
4699     * @return {@link #requestedLocation} (The desired or final location for the transport.)
4700     */
4701    public Reference getRequestedLocation() { 
4702      if (this.requestedLocation == null)
4703        if (Configuration.errorOnAutoCreate())
4704          throw new Error("Attempt to auto-create Transport.requestedLocation");
4705        else if (Configuration.doAutoCreate())
4706          this.requestedLocation = new Reference(); // cc
4707      return this.requestedLocation;
4708    }
4709
4710    public boolean hasRequestedLocation() { 
4711      return this.requestedLocation != null && !this.requestedLocation.isEmpty();
4712    }
4713
4714    /**
4715     * @param value {@link #requestedLocation} (The desired or final location for the transport.)
4716     */
4717    public Transport setRequestedLocation(Reference value) { 
4718      this.requestedLocation = value;
4719      return this;
4720    }
4721
4722    /**
4723     * @return {@link #currentLocation} (The current location for the entity to be transported.)
4724     */
4725    public Reference getCurrentLocation() { 
4726      if (this.currentLocation == null)
4727        if (Configuration.errorOnAutoCreate())
4728          throw new Error("Attempt to auto-create Transport.currentLocation");
4729        else if (Configuration.doAutoCreate())
4730          this.currentLocation = new Reference(); // cc
4731      return this.currentLocation;
4732    }
4733
4734    public boolean hasCurrentLocation() { 
4735      return this.currentLocation != null && !this.currentLocation.isEmpty();
4736    }
4737
4738    /**
4739     * @param value {@link #currentLocation} (The current location for the entity to be transported.)
4740     */
4741    public Transport setCurrentLocation(Reference value) { 
4742      this.currentLocation = value;
4743      return this;
4744    }
4745
4746    /**
4747     * @return {@link #reason} (A resource reference indicating why this transport needs to be performed.)
4748     */
4749    public CodeableReference getReason() { 
4750      if (this.reason == null)
4751        if (Configuration.errorOnAutoCreate())
4752          throw new Error("Attempt to auto-create Transport.reason");
4753        else if (Configuration.doAutoCreate())
4754          this.reason = new CodeableReference(); // cc
4755      return this.reason;
4756    }
4757
4758    public boolean hasReason() { 
4759      return this.reason != null && !this.reason.isEmpty();
4760    }
4761
4762    /**
4763     * @param value {@link #reason} (A resource reference indicating why this transport needs to be performed.)
4764     */
4765    public Transport setReason(CodeableReference value) { 
4766      this.reason = value;
4767      return this;
4768    }
4769
4770    /**
4771     * @return {@link #history} (The transport event prior to this one.)
4772     */
4773    public Reference getHistory() { 
4774      if (this.history == null)
4775        if (Configuration.errorOnAutoCreate())
4776          throw new Error("Attempt to auto-create Transport.history");
4777        else if (Configuration.doAutoCreate())
4778          this.history = new Reference(); // cc
4779      return this.history;
4780    }
4781
4782    public boolean hasHistory() { 
4783      return this.history != null && !this.history.isEmpty();
4784    }
4785
4786    /**
4787     * @param value {@link #history} (The transport event prior to this one.)
4788     */
4789    public Transport setHistory(Reference value) { 
4790      this.history = value;
4791      return this;
4792    }
4793
4794      protected void listChildren(List<Property> children) {
4795        super.listChildren(children);
4796        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));
4797        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));
4798        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));
4799        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));
4800        children.add(new Property("groupIdentifier", "Identifier", "A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.", 0, 1, groupIdentifier));
4801        children.add(new Property("partOf", "Reference(Transport)", "A larger event of which this particular event is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf));
4802        children.add(new Property("status", "code", "A code specifying the state of the transport event.", 0, 1, status));
4803        children.add(new Property("statusReason", "CodeableConcept", "An explanation as to why this transport is held, failed, was refused, etc.", 0, 1, statusReason));
4804        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));
4805        children.add(new Property("priority", "code", "Indicates how quickly the Transport should be addressed with respect to other requests.", 0, 1, priority));
4806        children.add(new Property("code", "CodeableConcept", "A name or code (or both) briefly describing what the transport involves.", 0, 1, code));
4807        children.add(new Property("description", "string", "A free-text description of what is to be performed.", 0, 1, description));
4808        children.add(new Property("focus", "Reference(Any)", "The request being actioned or the resource being manipulated by this transport.", 0, 1, focus));
4809        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_));
4810        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));
4811        children.add(new Property("completionTime", "dateTime", "Identifies the completion time of the event (the occurrence).", 0, 1, completionTime));
4812        children.add(new Property("authoredOn", "dateTime", "The date and time this transport was created.", 0, 1, authoredOn));
4813        children.add(new Property("lastModified", "dateTime", "The date and time of last modification to this transport.", 0, 1, lastModified));
4814        children.add(new Property("requester", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "The creator of the transport.", 0, 1, requester));
4815        children.add(new Property("performerType", "CodeableConcept", "The kind of participant that should perform the transport.", 0, java.lang.Integer.MAX_VALUE, performerType));
4816        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));
4817        children.add(new Property("location", "Reference(Location)", "Principal physical location where this transport is performed.", 0, 1, location));
4818        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));
4819        children.add(new Property("note", "Annotation", "Free-text information captured about the transport as it progresses.", 0, java.lang.Integer.MAX_VALUE, note));
4820        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));
4821        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));
4822        children.add(new Property("input", "", "Additional information that may be needed in the execution of the transport.", 0, java.lang.Integer.MAX_VALUE, input));
4823        children.add(new Property("output", "", "Outputs produced by the Transport.", 0, java.lang.Integer.MAX_VALUE, output));
4824        children.add(new Property("requestedLocation", "Reference(Location)", "The desired or final location for the transport.", 0, 1, requestedLocation));
4825        children.add(new Property("currentLocation", "Reference(Location)", "The current location for the entity to be transported.", 0, 1, currentLocation));
4826        children.add(new Property("reason", "CodeableReference(Any)", "A resource reference indicating why this transport needs to be performed.", 0, 1, reason));
4827        children.add(new Property("history", "Reference(Transport)", "The transport event prior to this one.", 0, 1, history));
4828      }
4829
4830      @Override
4831      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4832        switch (_hash) {
4833        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);
4834        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);
4835        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);
4836        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);
4837        case -445338488: /*groupIdentifier*/  return new Property("groupIdentifier", "Identifier", "A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author.  The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc.  E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.", 0, 1, groupIdentifier);
4838        case -995410646: /*partOf*/  return new Property("partOf", "Reference(Transport)", "A larger event of which this particular event is a component or step.", 0, java.lang.Integer.MAX_VALUE, partOf);
4839        case -892481550: /*status*/  return new Property("status", "code", "A code specifying the state of the transport event.", 0, 1, status);
4840        case 2051346646: /*statusReason*/  return new Property("statusReason", "CodeableConcept", "An explanation as to why this transport is held, failed, was refused, etc.", 0, 1, statusReason);
4841        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);
4842        case -1165461084: /*priority*/  return new Property("priority", "code", "Indicates how quickly the Transport should be addressed with respect to other requests.", 0, 1, priority);
4843        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A name or code (or both) briefly describing what the transport involves.", 0, 1, code);
4844        case -1724546052: /*description*/  return new Property("description", "string", "A free-text description of what is to be performed.", 0, 1, description);
4845        case 97604824: /*focus*/  return new Property("focus", "Reference(Any)", "The request being actioned or the resource being manipulated by this transport.", 0, 1, focus);
4846        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_);
4847        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);
4848        case 1146641609: /*completionTime*/  return new Property("completionTime", "dateTime", "Identifies the completion time of the event (the occurrence).", 0, 1, completionTime);
4849        case -1500852503: /*authoredOn*/  return new Property("authoredOn", "dateTime", "The date and time this transport was created.", 0, 1, authoredOn);
4850        case 1959003007: /*lastModified*/  return new Property("lastModified", "dateTime", "The date and time of last modification to this transport.", 0, 1, lastModified);
4851        case 693933948: /*requester*/  return new Property("requester", "Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson)", "The creator of the transport.", 0, 1, requester);
4852        case -901444568: /*performerType*/  return new Property("performerType", "CodeableConcept", "The kind of participant that should perform the transport.", 0, java.lang.Integer.MAX_VALUE, performerType);
4853        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);
4854        case 1901043637: /*location*/  return new Property("location", "Reference(Location)", "Principal physical location where this transport is performed.", 0, 1, location);
4855        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);
4856        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);
4857        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);
4858        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);
4859        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);
4860        case -1005512447: /*output*/  return new Property("output", "", "Outputs produced by the Transport.", 0, java.lang.Integer.MAX_VALUE, output);
4861        case -1788392125: /*requestedLocation*/  return new Property("requestedLocation", "Reference(Location)", "The desired or final location for the transport.", 0, 1, requestedLocation);
4862        case -140429234: /*currentLocation*/  return new Property("currentLocation", "Reference(Location)", "The current location for the entity to be transported.", 0, 1, currentLocation);
4863        case -934964668: /*reason*/  return new Property("reason", "CodeableReference(Any)", "A resource reference indicating why this transport needs to be performed.", 0, 1, reason);
4864        case 926934164: /*history*/  return new Property("history", "Reference(Transport)", "The transport event prior to this one.", 0, 1, history);
4865        default: return super.getNamedProperty(_hash, _name, _checkValid);
4866        }
4867
4868      }
4869
4870      @Override
4871      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4872        switch (hash) {
4873        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
4874        case 8911915: /*instantiatesCanonical*/ return this.instantiatesCanonical == null ? new Base[0] : new Base[] {this.instantiatesCanonical}; // CanonicalType
4875        case -1926393373: /*instantiatesUri*/ return this.instantiatesUri == null ? new Base[0] : new Base[] {this.instantiatesUri}; // UriType
4876        case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference
4877        case -445338488: /*groupIdentifier*/ return this.groupIdentifier == null ? new Base[0] : new Base[] {this.groupIdentifier}; // Identifier
4878        case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference
4879        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<TransportStatus>
4880        case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : new Base[] {this.statusReason}; // CodeableConcept
4881        case -1183762788: /*intent*/ return this.intent == null ? new Base[0] : new Base[] {this.intent}; // Enumeration<TransportIntent>
4882        case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // Enumeration<RequestPriority>
4883        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
4884        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
4885        case 97604824: /*focus*/ return this.focus == null ? new Base[0] : new Base[] {this.focus}; // Reference
4886        case 101577: /*for*/ return this.for_ == null ? new Base[0] : new Base[] {this.for_}; // Reference
4887        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
4888        case 1146641609: /*completionTime*/ return this.completionTime == null ? new Base[0] : new Base[] {this.completionTime}; // DateTimeType
4889        case -1500852503: /*authoredOn*/ return this.authoredOn == null ? new Base[0] : new Base[] {this.authoredOn}; // DateTimeType
4890        case 1959003007: /*lastModified*/ return this.lastModified == null ? new Base[0] : new Base[] {this.lastModified}; // DateTimeType
4891        case 693933948: /*requester*/ return this.requester == null ? new Base[0] : new Base[] {this.requester}; // Reference
4892        case -901444568: /*performerType*/ return this.performerType == null ? new Base[0] : this.performerType.toArray(new Base[this.performerType.size()]); // CodeableConcept
4893        case 106164915: /*owner*/ return this.owner == null ? new Base[0] : new Base[] {this.owner}; // Reference
4894        case 1901043637: /*location*/ return this.location == null ? new Base[0] : new Base[] {this.location}; // Reference
4895        case 73049818: /*insurance*/ return this.insurance == null ? new Base[0] : this.insurance.toArray(new Base[this.insurance.size()]); // Reference
4896        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
4897        case 1538891575: /*relevantHistory*/ return this.relevantHistory == null ? new Base[0] : this.relevantHistory.toArray(new Base[this.relevantHistory.size()]); // Reference
4898        case -1561062452: /*restriction*/ return this.restriction == null ? new Base[0] : new Base[] {this.restriction}; // TransportRestrictionComponent
4899        case 100358090: /*input*/ return this.input == null ? new Base[0] : this.input.toArray(new Base[this.input.size()]); // ParameterComponent
4900        case -1005512447: /*output*/ return this.output == null ? new Base[0] : this.output.toArray(new Base[this.output.size()]); // TransportOutputComponent
4901        case -1788392125: /*requestedLocation*/ return this.requestedLocation == null ? new Base[0] : new Base[] {this.requestedLocation}; // Reference
4902        case -140429234: /*currentLocation*/ return this.currentLocation == null ? new Base[0] : new Base[] {this.currentLocation}; // Reference
4903        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : new Base[] {this.reason}; // CodeableReference
4904        case 926934164: /*history*/ return this.history == null ? new Base[0] : new Base[] {this.history}; // Reference
4905        default: return super.getProperty(hash, name, checkValid);
4906        }
4907
4908      }
4909
4910      @Override
4911      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4912        switch (hash) {
4913        case -1618432855: // identifier
4914          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
4915          return value;
4916        case 8911915: // instantiatesCanonical
4917          this.instantiatesCanonical = TypeConvertor.castToCanonical(value); // CanonicalType
4918          return value;
4919        case -1926393373: // instantiatesUri
4920          this.instantiatesUri = TypeConvertor.castToUri(value); // UriType
4921          return value;
4922        case -332612366: // basedOn
4923          this.getBasedOn().add(TypeConvertor.castToReference(value)); // Reference
4924          return value;
4925        case -445338488: // groupIdentifier
4926          this.groupIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
4927          return value;
4928        case -995410646: // partOf
4929          this.getPartOf().add(TypeConvertor.castToReference(value)); // Reference
4930          return value;
4931        case -892481550: // status
4932          value = new TransportStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
4933          this.status = (Enumeration) value; // Enumeration<TransportStatus>
4934          return value;
4935        case 2051346646: // statusReason
4936          this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
4937          return value;
4938        case -1183762788: // intent
4939          value = new TransportIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
4940          this.intent = (Enumeration) value; // Enumeration<TransportIntent>
4941          return value;
4942        case -1165461084: // priority
4943          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
4944          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
4945          return value;
4946        case 3059181: // code
4947          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
4948          return value;
4949        case -1724546052: // description
4950          this.description = TypeConvertor.castToString(value); // StringType
4951          return value;
4952        case 97604824: // focus
4953          this.focus = TypeConvertor.castToReference(value); // Reference
4954          return value;
4955        case 101577: // for
4956          this.for_ = TypeConvertor.castToReference(value); // Reference
4957          return value;
4958        case 1524132147: // encounter
4959          this.encounter = TypeConvertor.castToReference(value); // Reference
4960          return value;
4961        case 1146641609: // completionTime
4962          this.completionTime = TypeConvertor.castToDateTime(value); // DateTimeType
4963          return value;
4964        case -1500852503: // authoredOn
4965          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
4966          return value;
4967        case 1959003007: // lastModified
4968          this.lastModified = TypeConvertor.castToDateTime(value); // DateTimeType
4969          return value;
4970        case 693933948: // requester
4971          this.requester = TypeConvertor.castToReference(value); // Reference
4972          return value;
4973        case -901444568: // performerType
4974          this.getPerformerType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
4975          return value;
4976        case 106164915: // owner
4977          this.owner = TypeConvertor.castToReference(value); // Reference
4978          return value;
4979        case 1901043637: // location
4980          this.location = TypeConvertor.castToReference(value); // Reference
4981          return value;
4982        case 73049818: // insurance
4983          this.getInsurance().add(TypeConvertor.castToReference(value)); // Reference
4984          return value;
4985        case 3387378: // note
4986          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
4987          return value;
4988        case 1538891575: // relevantHistory
4989          this.getRelevantHistory().add(TypeConvertor.castToReference(value)); // Reference
4990          return value;
4991        case -1561062452: // restriction
4992          this.restriction = (TransportRestrictionComponent) value; // TransportRestrictionComponent
4993          return value;
4994        case 100358090: // input
4995          this.getInput().add((ParameterComponent) value); // ParameterComponent
4996          return value;
4997        case -1005512447: // output
4998          this.getOutput().add((TransportOutputComponent) value); // TransportOutputComponent
4999          return value;
5000        case -1788392125: // requestedLocation
5001          this.requestedLocation = TypeConvertor.castToReference(value); // Reference
5002          return value;
5003        case -140429234: // currentLocation
5004          this.currentLocation = TypeConvertor.castToReference(value); // Reference
5005          return value;
5006        case -934964668: // reason
5007          this.reason = TypeConvertor.castToCodeableReference(value); // CodeableReference
5008          return value;
5009        case 926934164: // history
5010          this.history = TypeConvertor.castToReference(value); // Reference
5011          return value;
5012        default: return super.setProperty(hash, name, value);
5013        }
5014
5015      }
5016
5017      @Override
5018      public Base setProperty(String name, Base value) throws FHIRException {
5019        if (name.equals("identifier")) {
5020          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
5021        } else if (name.equals("instantiatesCanonical")) {
5022          this.instantiatesCanonical = TypeConvertor.castToCanonical(value); // CanonicalType
5023        } else if (name.equals("instantiatesUri")) {
5024          this.instantiatesUri = TypeConvertor.castToUri(value); // UriType
5025        } else if (name.equals("basedOn")) {
5026          this.getBasedOn().add(TypeConvertor.castToReference(value));
5027        } else if (name.equals("groupIdentifier")) {
5028          this.groupIdentifier = TypeConvertor.castToIdentifier(value); // Identifier
5029        } else if (name.equals("partOf")) {
5030          this.getPartOf().add(TypeConvertor.castToReference(value));
5031        } else if (name.equals("status")) {
5032          value = new TransportStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5033          this.status = (Enumeration) value; // Enumeration<TransportStatus>
5034        } else if (name.equals("statusReason")) {
5035          this.statusReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5036        } else if (name.equals("intent")) {
5037          value = new TransportIntentEnumFactory().fromType(TypeConvertor.castToCode(value));
5038          this.intent = (Enumeration) value; // Enumeration<TransportIntent>
5039        } else if (name.equals("priority")) {
5040          value = new RequestPriorityEnumFactory().fromType(TypeConvertor.castToCode(value));
5041          this.priority = (Enumeration) value; // Enumeration<RequestPriority>
5042        } else if (name.equals("code")) {
5043          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5044        } else if (name.equals("description")) {
5045          this.description = TypeConvertor.castToString(value); // StringType
5046        } else if (name.equals("focus")) {
5047          this.focus = TypeConvertor.castToReference(value); // Reference
5048        } else if (name.equals("for")) {
5049          this.for_ = TypeConvertor.castToReference(value); // Reference
5050        } else if (name.equals("encounter")) {
5051          this.encounter = TypeConvertor.castToReference(value); // Reference
5052        } else if (name.equals("completionTime")) {
5053          this.completionTime = TypeConvertor.castToDateTime(value); // DateTimeType
5054        } else if (name.equals("authoredOn")) {
5055          this.authoredOn = TypeConvertor.castToDateTime(value); // DateTimeType
5056        } else if (name.equals("lastModified")) {
5057          this.lastModified = TypeConvertor.castToDateTime(value); // DateTimeType
5058        } else if (name.equals("requester")) {
5059          this.requester = TypeConvertor.castToReference(value); // Reference
5060        } else if (name.equals("performerType")) {
5061          this.getPerformerType().add(TypeConvertor.castToCodeableConcept(value));
5062        } else if (name.equals("owner")) {
5063          this.owner = TypeConvertor.castToReference(value); // Reference
5064        } else if (name.equals("location")) {
5065          this.location = TypeConvertor.castToReference(value); // Reference
5066        } else if (name.equals("insurance")) {
5067          this.getInsurance().add(TypeConvertor.castToReference(value));
5068        } else if (name.equals("note")) {
5069          this.getNote().add(TypeConvertor.castToAnnotation(value));
5070        } else if (name.equals("relevantHistory")) {
5071          this.getRelevantHistory().add(TypeConvertor.castToReference(value));
5072        } else if (name.equals("restriction")) {
5073          this.restriction = (TransportRestrictionComponent) value; // TransportRestrictionComponent
5074        } else if (name.equals("input")) {
5075          this.getInput().add((ParameterComponent) value);
5076        } else if (name.equals("output")) {
5077          this.getOutput().add((TransportOutputComponent) value);
5078        } else if (name.equals("requestedLocation")) {
5079          this.requestedLocation = TypeConvertor.castToReference(value); // Reference
5080        } else if (name.equals("currentLocation")) {
5081          this.currentLocation = TypeConvertor.castToReference(value); // Reference
5082        } else if (name.equals("reason")) {
5083          this.reason = TypeConvertor.castToCodeableReference(value); // CodeableReference
5084        } else if (name.equals("history")) {
5085          this.history = TypeConvertor.castToReference(value); // Reference
5086        } else
5087          return super.setProperty(name, value);
5088        return value;
5089      }
5090
5091      @Override
5092      public Base makeProperty(int hash, String name) throws FHIRException {
5093        switch (hash) {
5094        case -1618432855:  return addIdentifier(); 
5095        case 8911915:  return getInstantiatesCanonicalElement();
5096        case -1926393373:  return getInstantiatesUriElement();
5097        case -332612366:  return addBasedOn(); 
5098        case -445338488:  return getGroupIdentifier();
5099        case -995410646:  return addPartOf(); 
5100        case -892481550:  return getStatusElement();
5101        case 2051346646:  return getStatusReason();
5102        case -1183762788:  return getIntentElement();
5103        case -1165461084:  return getPriorityElement();
5104        case 3059181:  return getCode();
5105        case -1724546052:  return getDescriptionElement();
5106        case 97604824:  return getFocus();
5107        case 101577:  return getFor();
5108        case 1524132147:  return getEncounter();
5109        case 1146641609:  return getCompletionTimeElement();
5110        case -1500852503:  return getAuthoredOnElement();
5111        case 1959003007:  return getLastModifiedElement();
5112        case 693933948:  return getRequester();
5113        case -901444568:  return addPerformerType(); 
5114        case 106164915:  return getOwner();
5115        case 1901043637:  return getLocation();
5116        case 73049818:  return addInsurance(); 
5117        case 3387378:  return addNote(); 
5118        case 1538891575:  return addRelevantHistory(); 
5119        case -1561062452:  return getRestriction();
5120        case 100358090:  return addInput(); 
5121        case -1005512447:  return addOutput(); 
5122        case -1788392125:  return getRequestedLocation();
5123        case -140429234:  return getCurrentLocation();
5124        case -934964668:  return getReason();
5125        case 926934164:  return getHistory();
5126        default: return super.makeProperty(hash, name);
5127        }
5128
5129      }
5130
5131      @Override
5132      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
5133        switch (hash) {
5134        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
5135        case 8911915: /*instantiatesCanonical*/ return new String[] {"canonical"};
5136        case -1926393373: /*instantiatesUri*/ return new String[] {"uri"};
5137        case -332612366: /*basedOn*/ return new String[] {"Reference"};
5138        case -445338488: /*groupIdentifier*/ return new String[] {"Identifier"};
5139        case -995410646: /*partOf*/ return new String[] {"Reference"};
5140        case -892481550: /*status*/ return new String[] {"code"};
5141        case 2051346646: /*statusReason*/ return new String[] {"CodeableConcept"};
5142        case -1183762788: /*intent*/ return new String[] {"code"};
5143        case -1165461084: /*priority*/ return new String[] {"code"};
5144        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
5145        case -1724546052: /*description*/ return new String[] {"string"};
5146        case 97604824: /*focus*/ return new String[] {"Reference"};
5147        case 101577: /*for*/ return new String[] {"Reference"};
5148        case 1524132147: /*encounter*/ return new String[] {"Reference"};
5149        case 1146641609: /*completionTime*/ return new String[] {"dateTime"};
5150        case -1500852503: /*authoredOn*/ return new String[] {"dateTime"};
5151        case 1959003007: /*lastModified*/ return new String[] {"dateTime"};
5152        case 693933948: /*requester*/ return new String[] {"Reference"};
5153        case -901444568: /*performerType*/ return new String[] {"CodeableConcept"};
5154        case 106164915: /*owner*/ return new String[] {"Reference"};
5155        case 1901043637: /*location*/ return new String[] {"Reference"};
5156        case 73049818: /*insurance*/ return new String[] {"Reference"};
5157        case 3387378: /*note*/ return new String[] {"Annotation"};
5158        case 1538891575: /*relevantHistory*/ return new String[] {"Reference"};
5159        case -1561062452: /*restriction*/ return new String[] {};
5160        case 100358090: /*input*/ return new String[] {};
5161        case -1005512447: /*output*/ return new String[] {};
5162        case -1788392125: /*requestedLocation*/ return new String[] {"Reference"};
5163        case -140429234: /*currentLocation*/ return new String[] {"Reference"};
5164        case -934964668: /*reason*/ return new String[] {"CodeableReference"};
5165        case 926934164: /*history*/ return new String[] {"Reference"};
5166        default: return super.getTypesForProperty(hash, name);
5167        }
5168
5169      }
5170
5171      @Override
5172      public Base addChild(String name) throws FHIRException {
5173        if (name.equals("identifier")) {
5174          return addIdentifier();
5175        }
5176        else if (name.equals("instantiatesCanonical")) {
5177          throw new FHIRException("Cannot call addChild on a singleton property Transport.instantiatesCanonical");
5178        }
5179        else if (name.equals("instantiatesUri")) {
5180          throw new FHIRException("Cannot call addChild on a singleton property Transport.instantiatesUri");
5181        }
5182        else if (name.equals("basedOn")) {
5183          return addBasedOn();
5184        }
5185        else if (name.equals("groupIdentifier")) {
5186          this.groupIdentifier = new Identifier();
5187          return this.groupIdentifier;
5188        }
5189        else if (name.equals("partOf")) {
5190          return addPartOf();
5191        }
5192        else if (name.equals("status")) {
5193          throw new FHIRException("Cannot call addChild on a singleton property Transport.status");
5194        }
5195        else if (name.equals("statusReason")) {
5196          this.statusReason = new CodeableConcept();
5197          return this.statusReason;
5198        }
5199        else if (name.equals("intent")) {
5200          throw new FHIRException("Cannot call addChild on a singleton property Transport.intent");
5201        }
5202        else if (name.equals("priority")) {
5203          throw new FHIRException("Cannot call addChild on a singleton property Transport.priority");
5204        }
5205        else if (name.equals("code")) {
5206          this.code = new CodeableConcept();
5207          return this.code;
5208        }
5209        else if (name.equals("description")) {
5210          throw new FHIRException("Cannot call addChild on a singleton property Transport.description");
5211        }
5212        else if (name.equals("focus")) {
5213          this.focus = new Reference();
5214          return this.focus;
5215        }
5216        else if (name.equals("for")) {
5217          this.for_ = new Reference();
5218          return this.for_;
5219        }
5220        else if (name.equals("encounter")) {
5221          this.encounter = new Reference();
5222          return this.encounter;
5223        }
5224        else if (name.equals("completionTime")) {
5225          throw new FHIRException("Cannot call addChild on a singleton property Transport.completionTime");
5226        }
5227        else if (name.equals("authoredOn")) {
5228          throw new FHIRException("Cannot call addChild on a singleton property Transport.authoredOn");
5229        }
5230        else if (name.equals("lastModified")) {
5231          throw new FHIRException("Cannot call addChild on a singleton property Transport.lastModified");
5232        }
5233        else if (name.equals("requester")) {
5234          this.requester = new Reference();
5235          return this.requester;
5236        }
5237        else if (name.equals("performerType")) {
5238          return addPerformerType();
5239        }
5240        else if (name.equals("owner")) {
5241          this.owner = new Reference();
5242          return this.owner;
5243        }
5244        else if (name.equals("location")) {
5245          this.location = new Reference();
5246          return this.location;
5247        }
5248        else if (name.equals("insurance")) {
5249          return addInsurance();
5250        }
5251        else if (name.equals("note")) {
5252          return addNote();
5253        }
5254        else if (name.equals("relevantHistory")) {
5255          return addRelevantHistory();
5256        }
5257        else if (name.equals("restriction")) {
5258          this.restriction = new TransportRestrictionComponent();
5259          return this.restriction;
5260        }
5261        else if (name.equals("input")) {
5262          return addInput();
5263        }
5264        else if (name.equals("output")) {
5265          return addOutput();
5266        }
5267        else if (name.equals("requestedLocation")) {
5268          this.requestedLocation = new Reference();
5269          return this.requestedLocation;
5270        }
5271        else if (name.equals("currentLocation")) {
5272          this.currentLocation = new Reference();
5273          return this.currentLocation;
5274        }
5275        else if (name.equals("reason")) {
5276          this.reason = new CodeableReference();
5277          return this.reason;
5278        }
5279        else if (name.equals("history")) {
5280          this.history = new Reference();
5281          return this.history;
5282        }
5283        else
5284          return super.addChild(name);
5285      }
5286
5287  public String fhirType() {
5288    return "Transport";
5289
5290  }
5291
5292      public Transport copy() {
5293        Transport dst = new Transport();
5294        copyValues(dst);
5295        return dst;
5296      }
5297
5298      public void copyValues(Transport dst) {
5299        super.copyValues(dst);
5300        if (identifier != null) {
5301          dst.identifier = new ArrayList<Identifier>();
5302          for (Identifier i : identifier)
5303            dst.identifier.add(i.copy());
5304        };
5305        dst.instantiatesCanonical = instantiatesCanonical == null ? null : instantiatesCanonical.copy();
5306        dst.instantiatesUri = instantiatesUri == null ? null : instantiatesUri.copy();
5307        if (basedOn != null) {
5308          dst.basedOn = new ArrayList<Reference>();
5309          for (Reference i : basedOn)
5310            dst.basedOn.add(i.copy());
5311        };
5312        dst.groupIdentifier = groupIdentifier == null ? null : groupIdentifier.copy();
5313        if (partOf != null) {
5314          dst.partOf = new ArrayList<Reference>();
5315          for (Reference i : partOf)
5316            dst.partOf.add(i.copy());
5317        };
5318        dst.status = status == null ? null : status.copy();
5319        dst.statusReason = statusReason == null ? null : statusReason.copy();
5320        dst.intent = intent == null ? null : intent.copy();
5321        dst.priority = priority == null ? null : priority.copy();
5322        dst.code = code == null ? null : code.copy();
5323        dst.description = description == null ? null : description.copy();
5324        dst.focus = focus == null ? null : focus.copy();
5325        dst.for_ = for_ == null ? null : for_.copy();
5326        dst.encounter = encounter == null ? null : encounter.copy();
5327        dst.completionTime = completionTime == null ? null : completionTime.copy();
5328        dst.authoredOn = authoredOn == null ? null : authoredOn.copy();
5329        dst.lastModified = lastModified == null ? null : lastModified.copy();
5330        dst.requester = requester == null ? null : requester.copy();
5331        if (performerType != null) {
5332          dst.performerType = new ArrayList<CodeableConcept>();
5333          for (CodeableConcept i : performerType)
5334            dst.performerType.add(i.copy());
5335        };
5336        dst.owner = owner == null ? null : owner.copy();
5337        dst.location = location == null ? null : location.copy();
5338        if (insurance != null) {
5339          dst.insurance = new ArrayList<Reference>();
5340          for (Reference i : insurance)
5341            dst.insurance.add(i.copy());
5342        };
5343        if (note != null) {
5344          dst.note = new ArrayList<Annotation>();
5345          for (Annotation i : note)
5346            dst.note.add(i.copy());
5347        };
5348        if (relevantHistory != null) {
5349          dst.relevantHistory = new ArrayList<Reference>();
5350          for (Reference i : relevantHistory)
5351            dst.relevantHistory.add(i.copy());
5352        };
5353        dst.restriction = restriction == null ? null : restriction.copy();
5354        if (input != null) {
5355          dst.input = new ArrayList<ParameterComponent>();
5356          for (ParameterComponent i : input)
5357            dst.input.add(i.copy());
5358        };
5359        if (output != null) {
5360          dst.output = new ArrayList<TransportOutputComponent>();
5361          for (TransportOutputComponent i : output)
5362            dst.output.add(i.copy());
5363        };
5364        dst.requestedLocation = requestedLocation == null ? null : requestedLocation.copy();
5365        dst.currentLocation = currentLocation == null ? null : currentLocation.copy();
5366        dst.reason = reason == null ? null : reason.copy();
5367        dst.history = history == null ? null : history.copy();
5368      }
5369
5370      protected Transport typedCopy() {
5371        return copy();
5372      }
5373
5374      @Override
5375      public boolean equalsDeep(Base other_) {
5376        if (!super.equalsDeep(other_))
5377          return false;
5378        if (!(other_ instanceof Transport))
5379          return false;
5380        Transport o = (Transport) other_;
5381        return compareDeep(identifier, o.identifier, true) && compareDeep(instantiatesCanonical, o.instantiatesCanonical, true)
5382           && compareDeep(instantiatesUri, o.instantiatesUri, true) && compareDeep(basedOn, o.basedOn, true)
5383           && compareDeep(groupIdentifier, o.groupIdentifier, true) && compareDeep(partOf, o.partOf, true)
5384           && compareDeep(status, o.status, true) && compareDeep(statusReason, o.statusReason, true) && compareDeep(intent, o.intent, true)
5385           && compareDeep(priority, o.priority, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true)
5386           && compareDeep(focus, o.focus, true) && compareDeep(for_, o.for_, true) && compareDeep(encounter, o.encounter, true)
5387           && compareDeep(completionTime, o.completionTime, true) && compareDeep(authoredOn, o.authoredOn, true)
5388           && compareDeep(lastModified, o.lastModified, true) && compareDeep(requester, o.requester, true)
5389           && compareDeep(performerType, o.performerType, true) && compareDeep(owner, o.owner, true) && compareDeep(location, o.location, true)
5390           && compareDeep(insurance, o.insurance, true) && compareDeep(note, o.note, true) && compareDeep(relevantHistory, o.relevantHistory, true)
5391           && compareDeep(restriction, o.restriction, true) && compareDeep(input, o.input, true) && compareDeep(output, o.output, true)
5392           && compareDeep(requestedLocation, o.requestedLocation, true) && compareDeep(currentLocation, o.currentLocation, true)
5393           && compareDeep(reason, o.reason, true) && compareDeep(history, o.history, true);
5394      }
5395
5396      @Override
5397      public boolean equalsShallow(Base other_) {
5398        if (!super.equalsShallow(other_))
5399          return false;
5400        if (!(other_ instanceof Transport))
5401          return false;
5402        Transport o = (Transport) other_;
5403        return compareValues(instantiatesCanonical, o.instantiatesCanonical, true) && compareValues(instantiatesUri, o.instantiatesUri, true)
5404           && compareValues(status, o.status, true) && compareValues(intent, o.intent, true) && compareValues(priority, o.priority, true)
5405           && compareValues(description, o.description, true) && compareValues(completionTime, o.completionTime, true)
5406           && compareValues(authoredOn, o.authoredOn, true) && compareValues(lastModified, o.lastModified, true)
5407          ;
5408      }
5409
5410      public boolean isEmpty() {
5411        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, instantiatesCanonical
5412          , instantiatesUri, basedOn, groupIdentifier, partOf, status, statusReason, intent
5413          , priority, code, description, focus, for_, encounter, completionTime, authoredOn
5414          , lastModified, requester, performerType, owner, location, insurance, note, relevantHistory
5415          , restriction, input, output, requestedLocation, currentLocation, reason, history
5416          );
5417      }
5418
5419  @Override
5420  public ResourceType getResourceType() {
5421    return ResourceType.Transport;
5422   }
5423
5424 /**
5425   * Search parameter: <b>identifier</b>
5426   * <p>
5427   * Description: <b>External identifier</b><br>
5428   * Type: <b>token</b><br>
5429   * Path: <b>Transport.identifier</b><br>
5430   * </p>
5431   */
5432  @SearchParamDefinition(name="identifier", path="Transport.identifier", description="External identifier", type="token" )
5433  public static final String SP_IDENTIFIER = "identifier";
5434 /**
5435   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
5436   * <p>
5437   * Description: <b>External identifier</b><br>
5438   * Type: <b>token</b><br>
5439   * Path: <b>Transport.identifier</b><br>
5440   * </p>
5441   */
5442  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
5443
5444 /**
5445   * Search parameter: <b>status</b>
5446   * <p>
5447   * Description: <b>in-progress | completed | entered-in-error</b><br>
5448   * Type: <b>token</b><br>
5449   * Path: <b>Transport.status</b><br>
5450   * </p>
5451   */
5452  @SearchParamDefinition(name="status", path="Transport.status", description="in-progress | completed | entered-in-error", type="token" )
5453  public static final String SP_STATUS = "status";
5454 /**
5455   * <b>Fluent Client</b> search parameter constant for <b>status</b>
5456   * <p>
5457   * Description: <b>in-progress | completed | entered-in-error</b><br>
5458   * Type: <b>token</b><br>
5459   * Path: <b>Transport.status</b><br>
5460   * </p>
5461   */
5462  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
5463
5464
5465}
5466