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 * A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
052 */
053@ResourceDef(name="OperationDefinition", profile="http://hl7.org/fhir/StructureDefinition/OperationDefinition")
054public class OperationDefinition extends CanonicalResource {
055
056    public enum OperationKind {
057        /**
058         * This operation is invoked as an operation.
059         */
060        OPERATION, 
061        /**
062         * This operation is a named query, invoked using the search mechanism.
063         */
064        QUERY, 
065        /**
066         * added to help the parsers with the generic types
067         */
068        NULL;
069        public static OperationKind fromCode(String codeString) throws FHIRException {
070            if (codeString == null || "".equals(codeString))
071                return null;
072        if ("operation".equals(codeString))
073          return OPERATION;
074        if ("query".equals(codeString))
075          return QUERY;
076        if (Configuration.isAcceptInvalidEnums())
077          return null;
078        else
079          throw new FHIRException("Unknown OperationKind code '"+codeString+"'");
080        }
081        public String toCode() {
082          switch (this) {
083            case OPERATION: return "operation";
084            case QUERY: return "query";
085            case NULL: return null;
086            default: return "?";
087          }
088        }
089        public String getSystem() {
090          switch (this) {
091            case OPERATION: return "http://hl7.org/fhir/operation-kind";
092            case QUERY: return "http://hl7.org/fhir/operation-kind";
093            case NULL: return null;
094            default: return "?";
095          }
096        }
097        public String getDefinition() {
098          switch (this) {
099            case OPERATION: return "This operation is invoked as an operation.";
100            case QUERY: return "This operation is a named query, invoked using the search mechanism.";
101            case NULL: return null;
102            default: return "?";
103          }
104        }
105        public String getDisplay() {
106          switch (this) {
107            case OPERATION: return "Operation";
108            case QUERY: return "Query";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113    }
114
115  public static class OperationKindEnumFactory implements EnumFactory<OperationKind> {
116    public OperationKind fromCode(String codeString) throws IllegalArgumentException {
117      if (codeString == null || "".equals(codeString))
118            if (codeString == null || "".equals(codeString))
119                return null;
120        if ("operation".equals(codeString))
121          return OperationKind.OPERATION;
122        if ("query".equals(codeString))
123          return OperationKind.QUERY;
124        throw new IllegalArgumentException("Unknown OperationKind code '"+codeString+"'");
125        }
126        public Enumeration<OperationKind> fromType(PrimitiveType<?> code) throws FHIRException {
127          if (code == null)
128            return null;
129          if (code.isEmpty())
130            return new Enumeration<OperationKind>(this, OperationKind.NULL, code);
131          String codeString = ((PrimitiveType) code).asStringValue();
132          if (codeString == null || "".equals(codeString))
133            return new Enumeration<OperationKind>(this, OperationKind.NULL, code);
134        if ("operation".equals(codeString))
135          return new Enumeration<OperationKind>(this, OperationKind.OPERATION, code);
136        if ("query".equals(codeString))
137          return new Enumeration<OperationKind>(this, OperationKind.QUERY, code);
138        throw new FHIRException("Unknown OperationKind code '"+codeString+"'");
139        }
140    public String toCode(OperationKind code) {
141      if (code == OperationKind.OPERATION)
142        return "operation";
143      if (code == OperationKind.QUERY)
144        return "query";
145      return "?";
146      }
147    public String toSystem(OperationKind code) {
148      return code.getSystem();
149      }
150    }
151
152    public enum OperationParameterScope {
153        /**
154         * This is a parameter that can be used at the instance level.
155         */
156        INSTANCE, 
157        /**
158         * This is a parameter that can be used at the type level.
159         */
160        TYPE, 
161        /**
162         * This is a parameter that can be used at the system level.
163         */
164        SYSTEM, 
165        /**
166         * added to help the parsers with the generic types
167         */
168        NULL;
169        public static OperationParameterScope fromCode(String codeString) throws FHIRException {
170            if (codeString == null || "".equals(codeString))
171                return null;
172        if ("instance".equals(codeString))
173          return INSTANCE;
174        if ("type".equals(codeString))
175          return TYPE;
176        if ("system".equals(codeString))
177          return SYSTEM;
178        if (Configuration.isAcceptInvalidEnums())
179          return null;
180        else
181          throw new FHIRException("Unknown OperationParameterScope code '"+codeString+"'");
182        }
183        public String toCode() {
184          switch (this) {
185            case INSTANCE: return "instance";
186            case TYPE: return "type";
187            case SYSTEM: return "system";
188            case NULL: return null;
189            default: return "?";
190          }
191        }
192        public String getSystem() {
193          switch (this) {
194            case INSTANCE: return "http://hl7.org/fhir/operation-parameter-scope";
195            case TYPE: return "http://hl7.org/fhir/operation-parameter-scope";
196            case SYSTEM: return "http://hl7.org/fhir/operation-parameter-scope";
197            case NULL: return null;
198            default: return "?";
199          }
200        }
201        public String getDefinition() {
202          switch (this) {
203            case INSTANCE: return "This is a parameter that can be used at the instance level.";
204            case TYPE: return "This is a parameter that can be used at the type level.";
205            case SYSTEM: return "This is a parameter that can be used at the system level.";
206            case NULL: return null;
207            default: return "?";
208          }
209        }
210        public String getDisplay() {
211          switch (this) {
212            case INSTANCE: return "Instance";
213            case TYPE: return "Type";
214            case SYSTEM: return "System";
215            case NULL: return null;
216            default: return "?";
217          }
218        }
219    }
220
221  public static class OperationParameterScopeEnumFactory implements EnumFactory<OperationParameterScope> {
222    public OperationParameterScope fromCode(String codeString) throws IllegalArgumentException {
223      if (codeString == null || "".equals(codeString))
224            if (codeString == null || "".equals(codeString))
225                return null;
226        if ("instance".equals(codeString))
227          return OperationParameterScope.INSTANCE;
228        if ("type".equals(codeString))
229          return OperationParameterScope.TYPE;
230        if ("system".equals(codeString))
231          return OperationParameterScope.SYSTEM;
232        throw new IllegalArgumentException("Unknown OperationParameterScope code '"+codeString+"'");
233        }
234        public Enumeration<OperationParameterScope> fromType(PrimitiveType<?> code) throws FHIRException {
235          if (code == null)
236            return null;
237          if (code.isEmpty())
238            return new Enumeration<OperationParameterScope>(this, OperationParameterScope.NULL, code);
239          String codeString = ((PrimitiveType) code).asStringValue();
240          if (codeString == null || "".equals(codeString))
241            return new Enumeration<OperationParameterScope>(this, OperationParameterScope.NULL, code);
242        if ("instance".equals(codeString))
243          return new Enumeration<OperationParameterScope>(this, OperationParameterScope.INSTANCE, code);
244        if ("type".equals(codeString))
245          return new Enumeration<OperationParameterScope>(this, OperationParameterScope.TYPE, code);
246        if ("system".equals(codeString))
247          return new Enumeration<OperationParameterScope>(this, OperationParameterScope.SYSTEM, code);
248        throw new FHIRException("Unknown OperationParameterScope code '"+codeString+"'");
249        }
250    public String toCode(OperationParameterScope code) {
251      if (code == OperationParameterScope.INSTANCE)
252        return "instance";
253      if (code == OperationParameterScope.TYPE)
254        return "type";
255      if (code == OperationParameterScope.SYSTEM)
256        return "system";
257      return "?";
258      }
259    public String toSystem(OperationParameterScope code) {
260      return code.getSystem();
261      }
262    }
263
264    @Block()
265    public static class OperationDefinitionParameterComponent extends BackboneElement implements IBaseBackboneElement {
266        /**
267         * The name of used to identify the parameter.
268         */
269        @Child(name = "name", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
270        @Description(shortDefinition="Name in Parameters.parameter.name or in URL", formalDefinition="The name of used to identify the parameter." )
271        protected CodeType name;
272
273        /**
274         * Whether this is an input or an output parameter.
275         */
276        @Child(name = "use", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=false)
277        @Description(shortDefinition="in | out", formalDefinition="Whether this is an input or an output parameter." )
278        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/operation-parameter-use")
279        protected Enumeration<OperationParameterUse> use;
280
281        /**
282         * If present, indicates that the parameter applies when the operation is being invoked at the specified level.
283         */
284        @Child(name = "scope", type = {CodeType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
285        @Description(shortDefinition="instance | type | system", formalDefinition="If present, indicates that the parameter applies when the operation is being invoked at the specified level." )
286        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/operation-parameter-scope")
287        protected List<Enumeration<OperationParameterScope>> scope;
288
289        /**
290         * The minimum number of times this parameter SHALL appear in the request or response.
291         */
292        @Child(name = "min", type = {IntegerType.class}, order=4, min=1, max=1, modifier=false, summary=false)
293        @Description(shortDefinition="Minimum Cardinality", formalDefinition="The minimum number of times this parameter SHALL appear in the request or response." )
294        protected IntegerType min;
295
296        /**
297         * The maximum number of times this element is permitted to appear in the request or response.
298         */
299        @Child(name = "max", type = {StringType.class}, order=5, min=1, max=1, modifier=false, summary=false)
300        @Description(shortDefinition="Maximum Cardinality (a number or *)", formalDefinition="The maximum number of times this element is permitted to appear in the request or response." )
301        protected StringType max;
302
303        /**
304         * Describes the meaning or use of this parameter.
305         */
306        @Child(name = "documentation", type = {MarkdownType.class}, order=6, min=0, max=1, modifier=false, summary=false)
307        @Description(shortDefinition="Description of meaning/use", formalDefinition="Describes the meaning or use of this parameter." )
308        protected MarkdownType documentation;
309
310        /**
311         * The type for this parameter.
312         */
313        @Child(name = "type", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=false)
314        @Description(shortDefinition="What type this parameter has", formalDefinition="The type for this parameter." )
315        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fhir-types")
316        protected Enumeration<FHIRTypes> type;
317
318        /**
319         * Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.
320         */
321        @Child(name = "allowedType", type = {CodeType.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
322        @Description(shortDefinition="Allowed sub-type this parameter can have (if type is abstract)", formalDefinition="Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter." )
323        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fhir-types")
324        protected List<Enumeration<FHIRTypes>> allowedType;
325
326        /**
327         * Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.
328         */
329        @Child(name = "targetProfile", type = {CanonicalType.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
330        @Description(shortDefinition="If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types", formalDefinition="Used when the type is \"Reference\" or \"canonical\", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide." )
331        protected List<CanonicalType> targetProfile;
332
333        /**
334         * How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.
335         */
336        @Child(name = "searchType", type = {CodeType.class}, order=10, min=0, max=1, modifier=false, summary=false)
337        @Description(shortDefinition="number | date | string | token | reference | composite | quantity | uri | special", formalDefinition="How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string." )
338        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-param-type")
339        protected Enumeration<SearchParamType> searchType;
340
341        /**
342         * Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).
343         */
344        @Child(name = "binding", type = {}, order=11, min=0, max=1, modifier=false, summary=false)
345        @Description(shortDefinition="ValueSet details if this is coded", formalDefinition="Binds to a value set if this parameter is coded (code, Coding, CodeableConcept)." )
346        protected OperationDefinitionParameterBindingComponent binding;
347
348        /**
349         * Identifies other resource parameters within the operation invocation that are expected to resolve to this resource.
350         */
351        @Child(name = "referencedFrom", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
352        @Description(shortDefinition="References to this parameter", formalDefinition="Identifies other resource parameters within the operation invocation that are expected to resolve to this resource." )
353        protected List<OperationDefinitionParameterReferencedFromComponent> referencedFrom;
354
355        /**
356         * The parts of a nested Parameter.
357         */
358        @Child(name = "part", type = {OperationDefinitionParameterComponent.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
359        @Description(shortDefinition="Parts of a nested Parameter", formalDefinition="The parts of a nested Parameter." )
360        protected List<OperationDefinitionParameterComponent> part;
361
362        private static final long serialVersionUID = -395202201L;
363
364    /**
365     * Constructor
366     */
367      public OperationDefinitionParameterComponent() {
368        super();
369      }
370
371    /**
372     * Constructor
373     */
374      public OperationDefinitionParameterComponent(String name, OperationParameterUse use, int min, String max) {
375        super();
376        this.setName(name);
377        this.setUse(use);
378        this.setMin(min);
379        this.setMax(max);
380      }
381
382        /**
383         * @return {@link #name} (The name of used to identify the parameter.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
384         */
385        public CodeType getNameElement() { 
386          if (this.name == null)
387            if (Configuration.errorOnAutoCreate())
388              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.name");
389            else if (Configuration.doAutoCreate())
390              this.name = new CodeType(); // bb
391          return this.name;
392        }
393
394        public boolean hasNameElement() { 
395          return this.name != null && !this.name.isEmpty();
396        }
397
398        public boolean hasName() { 
399          return this.name != null && !this.name.isEmpty();
400        }
401
402        /**
403         * @param value {@link #name} (The name of used to identify the parameter.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
404         */
405        public OperationDefinitionParameterComponent setNameElement(CodeType value) { 
406          this.name = value;
407          return this;
408        }
409
410        /**
411         * @return The name of used to identify the parameter.
412         */
413        public String getName() { 
414          return this.name == null ? null : this.name.getValue();
415        }
416
417        /**
418         * @param value The name of used to identify the parameter.
419         */
420        public OperationDefinitionParameterComponent setName(String value) { 
421            if (this.name == null)
422              this.name = new CodeType();
423            this.name.setValue(value);
424          return this;
425        }
426
427        /**
428         * @return {@link #use} (Whether this is an input or an output parameter.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value
429         */
430        public Enumeration<OperationParameterUse> getUseElement() { 
431          if (this.use == null)
432            if (Configuration.errorOnAutoCreate())
433              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.use");
434            else if (Configuration.doAutoCreate())
435              this.use = new Enumeration<OperationParameterUse>(new OperationParameterUseEnumFactory()); // bb
436          return this.use;
437        }
438
439        public boolean hasUseElement() { 
440          return this.use != null && !this.use.isEmpty();
441        }
442
443        public boolean hasUse() { 
444          return this.use != null && !this.use.isEmpty();
445        }
446
447        /**
448         * @param value {@link #use} (Whether this is an input or an output parameter.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value
449         */
450        public OperationDefinitionParameterComponent setUseElement(Enumeration<OperationParameterUse> value) { 
451          this.use = value;
452          return this;
453        }
454
455        /**
456         * @return Whether this is an input or an output parameter.
457         */
458        public OperationParameterUse getUse() { 
459          return this.use == null ? null : this.use.getValue();
460        }
461
462        /**
463         * @param value Whether this is an input or an output parameter.
464         */
465        public OperationDefinitionParameterComponent setUse(OperationParameterUse value) { 
466            if (this.use == null)
467              this.use = new Enumeration<OperationParameterUse>(new OperationParameterUseEnumFactory());
468            this.use.setValue(value);
469          return this;
470        }
471
472        /**
473         * @return {@link #scope} (If present, indicates that the parameter applies when the operation is being invoked at the specified level.)
474         */
475        public List<Enumeration<OperationParameterScope>> getScope() { 
476          if (this.scope == null)
477            this.scope = new ArrayList<Enumeration<OperationParameterScope>>();
478          return this.scope;
479        }
480
481        /**
482         * @return Returns a reference to <code>this</code> for easy method chaining
483         */
484        public OperationDefinitionParameterComponent setScope(List<Enumeration<OperationParameterScope>> theScope) { 
485          this.scope = theScope;
486          return this;
487        }
488
489        public boolean hasScope() { 
490          if (this.scope == null)
491            return false;
492          for (Enumeration<OperationParameterScope> item : this.scope)
493            if (!item.isEmpty())
494              return true;
495          return false;
496        }
497
498        /**
499         * @return {@link #scope} (If present, indicates that the parameter applies when the operation is being invoked at the specified level.)
500         */
501        public Enumeration<OperationParameterScope> addScopeElement() {//2 
502          Enumeration<OperationParameterScope> t = new Enumeration<OperationParameterScope>(new OperationParameterScopeEnumFactory());
503          if (this.scope == null)
504            this.scope = new ArrayList<Enumeration<OperationParameterScope>>();
505          this.scope.add(t);
506          return t;
507        }
508
509        /**
510         * @param value {@link #scope} (If present, indicates that the parameter applies when the operation is being invoked at the specified level.)
511         */
512        public OperationDefinitionParameterComponent addScope(OperationParameterScope value) { //1
513          Enumeration<OperationParameterScope> t = new Enumeration<OperationParameterScope>(new OperationParameterScopeEnumFactory());
514          t.setValue(value);
515          if (this.scope == null)
516            this.scope = new ArrayList<Enumeration<OperationParameterScope>>();
517          this.scope.add(t);
518          return this;
519        }
520
521        /**
522         * @param value {@link #scope} (If present, indicates that the parameter applies when the operation is being invoked at the specified level.)
523         */
524        public boolean hasScope(OperationParameterScope value) { 
525          if (this.scope == null)
526            return false;
527          for (Enumeration<OperationParameterScope> v : this.scope)
528            if (v.getValue().equals(value)) // code
529              return true;
530          return false;
531        }
532
533        /**
534         * @return {@link #min} (The minimum number of times this parameter SHALL appear in the request or response.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value
535         */
536        public IntegerType getMinElement() { 
537          if (this.min == null)
538            if (Configuration.errorOnAutoCreate())
539              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.min");
540            else if (Configuration.doAutoCreate())
541              this.min = new IntegerType(); // bb
542          return this.min;
543        }
544
545        public boolean hasMinElement() { 
546          return this.min != null && !this.min.isEmpty();
547        }
548
549        public boolean hasMin() { 
550          return this.min != null && !this.min.isEmpty();
551        }
552
553        /**
554         * @param value {@link #min} (The minimum number of times this parameter SHALL appear in the request or response.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value
555         */
556        public OperationDefinitionParameterComponent setMinElement(IntegerType value) { 
557          this.min = value;
558          return this;
559        }
560
561        /**
562         * @return The minimum number of times this parameter SHALL appear in the request or response.
563         */
564        public int getMin() { 
565          return this.min == null || this.min.isEmpty() ? 0 : this.min.getValue();
566        }
567
568        /**
569         * @param value The minimum number of times this parameter SHALL appear in the request or response.
570         */
571        public OperationDefinitionParameterComponent setMin(int value) { 
572            if (this.min == null)
573              this.min = new IntegerType();
574            this.min.setValue(value);
575          return this;
576        }
577
578        /**
579         * @return {@link #max} (The maximum number of times this element is permitted to appear in the request or response.). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value
580         */
581        public StringType getMaxElement() { 
582          if (this.max == null)
583            if (Configuration.errorOnAutoCreate())
584              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.max");
585            else if (Configuration.doAutoCreate())
586              this.max = new StringType(); // bb
587          return this.max;
588        }
589
590        public boolean hasMaxElement() { 
591          return this.max != null && !this.max.isEmpty();
592        }
593
594        public boolean hasMax() { 
595          return this.max != null && !this.max.isEmpty();
596        }
597
598        /**
599         * @param value {@link #max} (The maximum number of times this element is permitted to appear in the request or response.). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value
600         */
601        public OperationDefinitionParameterComponent setMaxElement(StringType value) { 
602          this.max = value;
603          return this;
604        }
605
606        /**
607         * @return The maximum number of times this element is permitted to appear in the request or response.
608         */
609        public String getMax() { 
610          return this.max == null ? null : this.max.getValue();
611        }
612
613        /**
614         * @param value The maximum number of times this element is permitted to appear in the request or response.
615         */
616        public OperationDefinitionParameterComponent setMax(String value) { 
617            if (this.max == null)
618              this.max = new StringType();
619            this.max.setValue(value);
620          return this;
621        }
622
623        /**
624         * @return {@link #documentation} (Describes the meaning or use of this parameter.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
625         */
626        public MarkdownType getDocumentationElement() { 
627          if (this.documentation == null)
628            if (Configuration.errorOnAutoCreate())
629              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.documentation");
630            else if (Configuration.doAutoCreate())
631              this.documentation = new MarkdownType(); // bb
632          return this.documentation;
633        }
634
635        public boolean hasDocumentationElement() { 
636          return this.documentation != null && !this.documentation.isEmpty();
637        }
638
639        public boolean hasDocumentation() { 
640          return this.documentation != null && !this.documentation.isEmpty();
641        }
642
643        /**
644         * @param value {@link #documentation} (Describes the meaning or use of this parameter.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
645         */
646        public OperationDefinitionParameterComponent setDocumentationElement(MarkdownType value) { 
647          this.documentation = value;
648          return this;
649        }
650
651        /**
652         * @return Describes the meaning or use of this parameter.
653         */
654        public String getDocumentation() { 
655          return this.documentation == null ? null : this.documentation.getValue();
656        }
657
658        /**
659         * @param value Describes the meaning or use of this parameter.
660         */
661        public OperationDefinitionParameterComponent setDocumentation(String value) { 
662          if (Utilities.noString(value))
663            this.documentation = null;
664          else {
665            if (this.documentation == null)
666              this.documentation = new MarkdownType();
667            this.documentation.setValue(value);
668          }
669          return this;
670        }
671
672        /**
673         * @return {@link #type} (The type for this parameter.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
674         */
675        public Enumeration<FHIRTypes> getTypeElement() { 
676          if (this.type == null)
677            if (Configuration.errorOnAutoCreate())
678              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.type");
679            else if (Configuration.doAutoCreate())
680              this.type = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory()); // bb
681          return this.type;
682        }
683
684        public boolean hasTypeElement() { 
685          return this.type != null && !this.type.isEmpty();
686        }
687
688        public boolean hasType() { 
689          return this.type != null && !this.type.isEmpty();
690        }
691
692        /**
693         * @param value {@link #type} (The type for this parameter.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
694         */
695        public OperationDefinitionParameterComponent setTypeElement(Enumeration<FHIRTypes> value) { 
696          this.type = value;
697          return this;
698        }
699
700        /**
701         * @return The type for this parameter.
702         */
703        public FHIRTypes getType() { 
704          return this.type == null ? null : this.type.getValue();
705        }
706
707        /**
708         * @param value The type for this parameter.
709         */
710        public OperationDefinitionParameterComponent setType(FHIRTypes value) { 
711          if (value == null)
712            this.type = null;
713          else {
714            if (this.type == null)
715              this.type = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory());
716            this.type.setValue(value);
717          }
718          return this;
719        }
720
721        /**
722         * @return {@link #allowedType} (Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.)
723         */
724        public List<Enumeration<FHIRTypes>> getAllowedType() { 
725          if (this.allowedType == null)
726            this.allowedType = new ArrayList<Enumeration<FHIRTypes>>();
727          return this.allowedType;
728        }
729
730        /**
731         * @return Returns a reference to <code>this</code> for easy method chaining
732         */
733        public OperationDefinitionParameterComponent setAllowedType(List<Enumeration<FHIRTypes>> theAllowedType) { 
734          this.allowedType = theAllowedType;
735          return this;
736        }
737
738        public boolean hasAllowedType() { 
739          if (this.allowedType == null)
740            return false;
741          for (Enumeration<FHIRTypes> item : this.allowedType)
742            if (!item.isEmpty())
743              return true;
744          return false;
745        }
746
747        /**
748         * @return {@link #allowedType} (Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.)
749         */
750        public Enumeration<FHIRTypes> addAllowedTypeElement() {//2 
751          Enumeration<FHIRTypes> t = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory());
752          if (this.allowedType == null)
753            this.allowedType = new ArrayList<Enumeration<FHIRTypes>>();
754          this.allowedType.add(t);
755          return t;
756        }
757
758        /**
759         * @param value {@link #allowedType} (Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.)
760         */
761        public OperationDefinitionParameterComponent addAllowedType(FHIRTypes value) { //1
762          Enumeration<FHIRTypes> t = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory());
763          t.setValue(value);
764          if (this.allowedType == null)
765            this.allowedType = new ArrayList<Enumeration<FHIRTypes>>();
766          this.allowedType.add(t);
767          return this;
768        }
769
770        /**
771         * @param value {@link #allowedType} (Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.)
772         */
773        public boolean hasAllowedType(FHIRTypes value) { 
774          if (this.allowedType == null)
775            return false;
776          for (Enumeration<FHIRTypes> v : this.allowedType)
777            if (v.getValue().equals(value)) // code
778              return true;
779          return false;
780        }
781
782        /**
783         * @return {@link #targetProfile} (Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.)
784         */
785        public List<CanonicalType> getTargetProfile() { 
786          if (this.targetProfile == null)
787            this.targetProfile = new ArrayList<CanonicalType>();
788          return this.targetProfile;
789        }
790
791        /**
792         * @return Returns a reference to <code>this</code> for easy method chaining
793         */
794        public OperationDefinitionParameterComponent setTargetProfile(List<CanonicalType> theTargetProfile) { 
795          this.targetProfile = theTargetProfile;
796          return this;
797        }
798
799        public boolean hasTargetProfile() { 
800          if (this.targetProfile == null)
801            return false;
802          for (CanonicalType item : this.targetProfile)
803            if (!item.isEmpty())
804              return true;
805          return false;
806        }
807
808        /**
809         * @return {@link #targetProfile} (Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.)
810         */
811        public CanonicalType addTargetProfileElement() {//2 
812          CanonicalType t = new CanonicalType();
813          if (this.targetProfile == null)
814            this.targetProfile = new ArrayList<CanonicalType>();
815          this.targetProfile.add(t);
816          return t;
817        }
818
819        /**
820         * @param value {@link #targetProfile} (Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.)
821         */
822        public OperationDefinitionParameterComponent addTargetProfile(String value) { //1
823          CanonicalType t = new CanonicalType();
824          t.setValue(value);
825          if (this.targetProfile == null)
826            this.targetProfile = new ArrayList<CanonicalType>();
827          this.targetProfile.add(t);
828          return this;
829        }
830
831        /**
832         * @param value {@link #targetProfile} (Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.)
833         */
834        public boolean hasTargetProfile(String value) { 
835          if (this.targetProfile == null)
836            return false;
837          for (CanonicalType v : this.targetProfile)
838            if (v.getValue().equals(value)) // canonical
839              return true;
840          return false;
841        }
842
843        /**
844         * @return {@link #searchType} (How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.). This is the underlying object with id, value and extensions. The accessor "getSearchType" gives direct access to the value
845         */
846        public Enumeration<SearchParamType> getSearchTypeElement() { 
847          if (this.searchType == null)
848            if (Configuration.errorOnAutoCreate())
849              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.searchType");
850            else if (Configuration.doAutoCreate())
851              this.searchType = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); // bb
852          return this.searchType;
853        }
854
855        public boolean hasSearchTypeElement() { 
856          return this.searchType != null && !this.searchType.isEmpty();
857        }
858
859        public boolean hasSearchType() { 
860          return this.searchType != null && !this.searchType.isEmpty();
861        }
862
863        /**
864         * @param value {@link #searchType} (How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.). This is the underlying object with id, value and extensions. The accessor "getSearchType" gives direct access to the value
865         */
866        public OperationDefinitionParameterComponent setSearchTypeElement(Enumeration<SearchParamType> value) { 
867          this.searchType = value;
868          return this;
869        }
870
871        /**
872         * @return How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.
873         */
874        public SearchParamType getSearchType() { 
875          return this.searchType == null ? null : this.searchType.getValue();
876        }
877
878        /**
879         * @param value How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.
880         */
881        public OperationDefinitionParameterComponent setSearchType(SearchParamType value) { 
882          if (value == null)
883            this.searchType = null;
884          else {
885            if (this.searchType == null)
886              this.searchType = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory());
887            this.searchType.setValue(value);
888          }
889          return this;
890        }
891
892        /**
893         * @return {@link #binding} (Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).)
894         */
895        public OperationDefinitionParameterBindingComponent getBinding() { 
896          if (this.binding == null)
897            if (Configuration.errorOnAutoCreate())
898              throw new Error("Attempt to auto-create OperationDefinitionParameterComponent.binding");
899            else if (Configuration.doAutoCreate())
900              this.binding = new OperationDefinitionParameterBindingComponent(); // cc
901          return this.binding;
902        }
903
904        public boolean hasBinding() { 
905          return this.binding != null && !this.binding.isEmpty();
906        }
907
908        /**
909         * @param value {@link #binding} (Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).)
910         */
911        public OperationDefinitionParameterComponent setBinding(OperationDefinitionParameterBindingComponent value) { 
912          this.binding = value;
913          return this;
914        }
915
916        /**
917         * @return {@link #referencedFrom} (Identifies other resource parameters within the operation invocation that are expected to resolve to this resource.)
918         */
919        public List<OperationDefinitionParameterReferencedFromComponent> getReferencedFrom() { 
920          if (this.referencedFrom == null)
921            this.referencedFrom = new ArrayList<OperationDefinitionParameterReferencedFromComponent>();
922          return this.referencedFrom;
923        }
924
925        /**
926         * @return Returns a reference to <code>this</code> for easy method chaining
927         */
928        public OperationDefinitionParameterComponent setReferencedFrom(List<OperationDefinitionParameterReferencedFromComponent> theReferencedFrom) { 
929          this.referencedFrom = theReferencedFrom;
930          return this;
931        }
932
933        public boolean hasReferencedFrom() { 
934          if (this.referencedFrom == null)
935            return false;
936          for (OperationDefinitionParameterReferencedFromComponent item : this.referencedFrom)
937            if (!item.isEmpty())
938              return true;
939          return false;
940        }
941
942        public OperationDefinitionParameterReferencedFromComponent addReferencedFrom() { //3
943          OperationDefinitionParameterReferencedFromComponent t = new OperationDefinitionParameterReferencedFromComponent();
944          if (this.referencedFrom == null)
945            this.referencedFrom = new ArrayList<OperationDefinitionParameterReferencedFromComponent>();
946          this.referencedFrom.add(t);
947          return t;
948        }
949
950        public OperationDefinitionParameterComponent addReferencedFrom(OperationDefinitionParameterReferencedFromComponent t) { //3
951          if (t == null)
952            return this;
953          if (this.referencedFrom == null)
954            this.referencedFrom = new ArrayList<OperationDefinitionParameterReferencedFromComponent>();
955          this.referencedFrom.add(t);
956          return this;
957        }
958
959        /**
960         * @return The first repetition of repeating field {@link #referencedFrom}, creating it if it does not already exist {3}
961         */
962        public OperationDefinitionParameterReferencedFromComponent getReferencedFromFirstRep() { 
963          if (getReferencedFrom().isEmpty()) {
964            addReferencedFrom();
965          }
966          return getReferencedFrom().get(0);
967        }
968
969        /**
970         * @return {@link #part} (The parts of a nested Parameter.)
971         */
972        public List<OperationDefinitionParameterComponent> getPart() { 
973          if (this.part == null)
974            this.part = new ArrayList<OperationDefinitionParameterComponent>();
975          return this.part;
976        }
977
978        /**
979         * @return Returns a reference to <code>this</code> for easy method chaining
980         */
981        public OperationDefinitionParameterComponent setPart(List<OperationDefinitionParameterComponent> thePart) { 
982          this.part = thePart;
983          return this;
984        }
985
986        public boolean hasPart() { 
987          if (this.part == null)
988            return false;
989          for (OperationDefinitionParameterComponent item : this.part)
990            if (!item.isEmpty())
991              return true;
992          return false;
993        }
994
995        public OperationDefinitionParameterComponent addPart() { //3
996          OperationDefinitionParameterComponent t = new OperationDefinitionParameterComponent();
997          if (this.part == null)
998            this.part = new ArrayList<OperationDefinitionParameterComponent>();
999          this.part.add(t);
1000          return t;
1001        }
1002
1003        public OperationDefinitionParameterComponent addPart(OperationDefinitionParameterComponent t) { //3
1004          if (t == null)
1005            return this;
1006          if (this.part == null)
1007            this.part = new ArrayList<OperationDefinitionParameterComponent>();
1008          this.part.add(t);
1009          return this;
1010        }
1011
1012        /**
1013         * @return The first repetition of repeating field {@link #part}, creating it if it does not already exist {3}
1014         */
1015        public OperationDefinitionParameterComponent getPartFirstRep() { 
1016          if (getPart().isEmpty()) {
1017            addPart();
1018          }
1019          return getPart().get(0);
1020        }
1021
1022        protected void listChildren(List<Property> children) {
1023          super.listChildren(children);
1024          children.add(new Property("name", "code", "The name of used to identify the parameter.", 0, 1, name));
1025          children.add(new Property("use", "code", "Whether this is an input or an output parameter.", 0, 1, use));
1026          children.add(new Property("scope", "code", "If present, indicates that the parameter applies when the operation is being invoked at the specified level.", 0, java.lang.Integer.MAX_VALUE, scope));
1027          children.add(new Property("min", "integer", "The minimum number of times this parameter SHALL appear in the request or response.", 0, 1, min));
1028          children.add(new Property("max", "string", "The maximum number of times this element is permitted to appear in the request or response.", 0, 1, max));
1029          children.add(new Property("documentation", "markdown", "Describes the meaning or use of this parameter.", 0, 1, documentation));
1030          children.add(new Property("type", "code", "The type for this parameter.", 0, 1, type));
1031          children.add(new Property("allowedType", "code", "Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.", 0, java.lang.Integer.MAX_VALUE, allowedType));
1032          children.add(new Property("targetProfile", "canonical(StructureDefinition)", "Used when the type is \"Reference\" or \"canonical\", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.", 0, java.lang.Integer.MAX_VALUE, targetProfile));
1033          children.add(new Property("searchType", "code", "How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.", 0, 1, searchType));
1034          children.add(new Property("binding", "", "Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).", 0, 1, binding));
1035          children.add(new Property("referencedFrom", "", "Identifies other resource parameters within the operation invocation that are expected to resolve to this resource.", 0, java.lang.Integer.MAX_VALUE, referencedFrom));
1036          children.add(new Property("part", "@OperationDefinition.parameter", "The parts of a nested Parameter.", 0, java.lang.Integer.MAX_VALUE, part));
1037        }
1038
1039        @Override
1040        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1041          switch (_hash) {
1042          case 3373707: /*name*/  return new Property("name", "code", "The name of used to identify the parameter.", 0, 1, name);
1043          case 116103: /*use*/  return new Property("use", "code", "Whether this is an input or an output parameter.", 0, 1, use);
1044          case 109264468: /*scope*/  return new Property("scope", "code", "If present, indicates that the parameter applies when the operation is being invoked at the specified level.", 0, java.lang.Integer.MAX_VALUE, scope);
1045          case 108114: /*min*/  return new Property("min", "integer", "The minimum number of times this parameter SHALL appear in the request or response.", 0, 1, min);
1046          case 107876: /*max*/  return new Property("max", "string", "The maximum number of times this element is permitted to appear in the request or response.", 0, 1, max);
1047          case 1587405498: /*documentation*/  return new Property("documentation", "markdown", "Describes the meaning or use of this parameter.", 0, 1, documentation);
1048          case 3575610: /*type*/  return new Property("type", "code", "The type for this parameter.", 0, 1, type);
1049          case 1512894722: /*allowedType*/  return new Property("allowedType", "code", "Support for polymorphic types. If the parameter type is abstract, this element lists allowed sub-types for the parameter.", 0, java.lang.Integer.MAX_VALUE, allowedType);
1050          case 1994521304: /*targetProfile*/  return new Property("targetProfile", "canonical(StructureDefinition)", "Used when the type is \"Reference\" or \"canonical\", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide.", 0, java.lang.Integer.MAX_VALUE, targetProfile);
1051          case -710454014: /*searchType*/  return new Property("searchType", "code", "How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string.", 0, 1, searchType);
1052          case -108220795: /*binding*/  return new Property("binding", "", "Binds to a value set if this parameter is coded (code, Coding, CodeableConcept).", 0, 1, binding);
1053          case -1896721981: /*referencedFrom*/  return new Property("referencedFrom", "", "Identifies other resource parameters within the operation invocation that are expected to resolve to this resource.", 0, java.lang.Integer.MAX_VALUE, referencedFrom);
1054          case 3433459: /*part*/  return new Property("part", "@OperationDefinition.parameter", "The parts of a nested Parameter.", 0, java.lang.Integer.MAX_VALUE, part);
1055          default: return super.getNamedProperty(_hash, _name, _checkValid);
1056          }
1057
1058        }
1059
1060      @Override
1061      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1062        switch (hash) {
1063        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // CodeType
1064        case 116103: /*use*/ return this.use == null ? new Base[0] : new Base[] {this.use}; // Enumeration<OperationParameterUse>
1065        case 109264468: /*scope*/ return this.scope == null ? new Base[0] : this.scope.toArray(new Base[this.scope.size()]); // Enumeration<OperationParameterScope>
1066        case 108114: /*min*/ return this.min == null ? new Base[0] : new Base[] {this.min}; // IntegerType
1067        case 107876: /*max*/ return this.max == null ? new Base[0] : new Base[] {this.max}; // StringType
1068        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // MarkdownType
1069        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<FHIRTypes>
1070        case 1512894722: /*allowedType*/ return this.allowedType == null ? new Base[0] : this.allowedType.toArray(new Base[this.allowedType.size()]); // Enumeration<FHIRTypes>
1071        case 1994521304: /*targetProfile*/ return this.targetProfile == null ? new Base[0] : this.targetProfile.toArray(new Base[this.targetProfile.size()]); // CanonicalType
1072        case -710454014: /*searchType*/ return this.searchType == null ? new Base[0] : new Base[] {this.searchType}; // Enumeration<SearchParamType>
1073        case -108220795: /*binding*/ return this.binding == null ? new Base[0] : new Base[] {this.binding}; // OperationDefinitionParameterBindingComponent
1074        case -1896721981: /*referencedFrom*/ return this.referencedFrom == null ? new Base[0] : this.referencedFrom.toArray(new Base[this.referencedFrom.size()]); // OperationDefinitionParameterReferencedFromComponent
1075        case 3433459: /*part*/ return this.part == null ? new Base[0] : this.part.toArray(new Base[this.part.size()]); // OperationDefinitionParameterComponent
1076        default: return super.getProperty(hash, name, checkValid);
1077        }
1078
1079      }
1080
1081      @Override
1082      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1083        switch (hash) {
1084        case 3373707: // name
1085          this.name = TypeConvertor.castToCode(value); // CodeType
1086          return value;
1087        case 116103: // use
1088          value = new OperationParameterUseEnumFactory().fromType(TypeConvertor.castToCode(value));
1089          this.use = (Enumeration) value; // Enumeration<OperationParameterUse>
1090          return value;
1091        case 109264468: // scope
1092          value = new OperationParameterScopeEnumFactory().fromType(TypeConvertor.castToCode(value));
1093          this.getScope().add((Enumeration) value); // Enumeration<OperationParameterScope>
1094          return value;
1095        case 108114: // min
1096          this.min = TypeConvertor.castToInteger(value); // IntegerType
1097          return value;
1098        case 107876: // max
1099          this.max = TypeConvertor.castToString(value); // StringType
1100          return value;
1101        case 1587405498: // documentation
1102          this.documentation = TypeConvertor.castToMarkdown(value); // MarkdownType
1103          return value;
1104        case 3575610: // type
1105          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1106          this.type = (Enumeration) value; // Enumeration<FHIRTypes>
1107          return value;
1108        case 1512894722: // allowedType
1109          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1110          this.getAllowedType().add((Enumeration) value); // Enumeration<FHIRTypes>
1111          return value;
1112        case 1994521304: // targetProfile
1113          this.getTargetProfile().add(TypeConvertor.castToCanonical(value)); // CanonicalType
1114          return value;
1115        case -710454014: // searchType
1116          value = new SearchParamTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1117          this.searchType = (Enumeration) value; // Enumeration<SearchParamType>
1118          return value;
1119        case -108220795: // binding
1120          this.binding = (OperationDefinitionParameterBindingComponent) value; // OperationDefinitionParameterBindingComponent
1121          return value;
1122        case -1896721981: // referencedFrom
1123          this.getReferencedFrom().add((OperationDefinitionParameterReferencedFromComponent) value); // OperationDefinitionParameterReferencedFromComponent
1124          return value;
1125        case 3433459: // part
1126          this.getPart().add((OperationDefinitionParameterComponent) value); // OperationDefinitionParameterComponent
1127          return value;
1128        default: return super.setProperty(hash, name, value);
1129        }
1130
1131      }
1132
1133      @Override
1134      public Base setProperty(String name, Base value) throws FHIRException {
1135        if (name.equals("name")) {
1136          this.name = TypeConvertor.castToCode(value); // CodeType
1137        } else if (name.equals("use")) {
1138          value = new OperationParameterUseEnumFactory().fromType(TypeConvertor.castToCode(value));
1139          this.use = (Enumeration) value; // Enumeration<OperationParameterUse>
1140        } else if (name.equals("scope")) {
1141          value = new OperationParameterScopeEnumFactory().fromType(TypeConvertor.castToCode(value));
1142          this.getScope().add((Enumeration) value);
1143        } else if (name.equals("min")) {
1144          this.min = TypeConvertor.castToInteger(value); // IntegerType
1145        } else if (name.equals("max")) {
1146          this.max = TypeConvertor.castToString(value); // StringType
1147        } else if (name.equals("documentation")) {
1148          this.documentation = TypeConvertor.castToMarkdown(value); // MarkdownType
1149        } else if (name.equals("type")) {
1150          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1151          this.type = (Enumeration) value; // Enumeration<FHIRTypes>
1152        } else if (name.equals("allowedType")) {
1153          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1154          this.getAllowedType().add((Enumeration) value);
1155        } else if (name.equals("targetProfile")) {
1156          this.getTargetProfile().add(TypeConvertor.castToCanonical(value));
1157        } else if (name.equals("searchType")) {
1158          value = new SearchParamTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1159          this.searchType = (Enumeration) value; // Enumeration<SearchParamType>
1160        } else if (name.equals("binding")) {
1161          this.binding = (OperationDefinitionParameterBindingComponent) value; // OperationDefinitionParameterBindingComponent
1162        } else if (name.equals("referencedFrom")) {
1163          this.getReferencedFrom().add((OperationDefinitionParameterReferencedFromComponent) value);
1164        } else if (name.equals("part")) {
1165          this.getPart().add((OperationDefinitionParameterComponent) value);
1166        } else
1167          return super.setProperty(name, value);
1168        return value;
1169      }
1170
1171      @Override
1172      public Base makeProperty(int hash, String name) throws FHIRException {
1173        switch (hash) {
1174        case 3373707:  return getNameElement();
1175        case 116103:  return getUseElement();
1176        case 109264468:  return addScopeElement();
1177        case 108114:  return getMinElement();
1178        case 107876:  return getMaxElement();
1179        case 1587405498:  return getDocumentationElement();
1180        case 3575610:  return getTypeElement();
1181        case 1512894722:  return addAllowedTypeElement();
1182        case 1994521304:  return addTargetProfileElement();
1183        case -710454014:  return getSearchTypeElement();
1184        case -108220795:  return getBinding();
1185        case -1896721981:  return addReferencedFrom(); 
1186        case 3433459:  return addPart(); 
1187        default: return super.makeProperty(hash, name);
1188        }
1189
1190      }
1191
1192      @Override
1193      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1194        switch (hash) {
1195        case 3373707: /*name*/ return new String[] {"code"};
1196        case 116103: /*use*/ return new String[] {"code"};
1197        case 109264468: /*scope*/ return new String[] {"code"};
1198        case 108114: /*min*/ return new String[] {"integer"};
1199        case 107876: /*max*/ return new String[] {"string"};
1200        case 1587405498: /*documentation*/ return new String[] {"markdown"};
1201        case 3575610: /*type*/ return new String[] {"code"};
1202        case 1512894722: /*allowedType*/ return new String[] {"code"};
1203        case 1994521304: /*targetProfile*/ return new String[] {"canonical"};
1204        case -710454014: /*searchType*/ return new String[] {"code"};
1205        case -108220795: /*binding*/ return new String[] {};
1206        case -1896721981: /*referencedFrom*/ return new String[] {};
1207        case 3433459: /*part*/ return new String[] {"@OperationDefinition.parameter"};
1208        default: return super.getTypesForProperty(hash, name);
1209        }
1210
1211      }
1212
1213      @Override
1214      public Base addChild(String name) throws FHIRException {
1215        if (name.equals("name")) {
1216          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.name");
1217        }
1218        else if (name.equals("use")) {
1219          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.use");
1220        }
1221        else if (name.equals("scope")) {
1222          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.scope");
1223        }
1224        else if (name.equals("min")) {
1225          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.min");
1226        }
1227        else if (name.equals("max")) {
1228          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.max");
1229        }
1230        else if (name.equals("documentation")) {
1231          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.documentation");
1232        }
1233        else if (name.equals("type")) {
1234          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.type");
1235        }
1236        else if (name.equals("allowedType")) {
1237          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.allowedType");
1238        }
1239        else if (name.equals("targetProfile")) {
1240          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.targetProfile");
1241        }
1242        else if (name.equals("searchType")) {
1243          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.searchType");
1244        }
1245        else if (name.equals("binding")) {
1246          this.binding = new OperationDefinitionParameterBindingComponent();
1247          return this.binding;
1248        }
1249        else if (name.equals("referencedFrom")) {
1250          return addReferencedFrom();
1251        }
1252        else if (name.equals("part")) {
1253          return addPart();
1254        }
1255        else
1256          return super.addChild(name);
1257      }
1258
1259      public OperationDefinitionParameterComponent copy() {
1260        OperationDefinitionParameterComponent dst = new OperationDefinitionParameterComponent();
1261        copyValues(dst);
1262        return dst;
1263      }
1264
1265      public void copyValues(OperationDefinitionParameterComponent dst) {
1266        super.copyValues(dst);
1267        dst.name = name == null ? null : name.copy();
1268        dst.use = use == null ? null : use.copy();
1269        if (scope != null) {
1270          dst.scope = new ArrayList<Enumeration<OperationParameterScope>>();
1271          for (Enumeration<OperationParameterScope> i : scope)
1272            dst.scope.add(i.copy());
1273        };
1274        dst.min = min == null ? null : min.copy();
1275        dst.max = max == null ? null : max.copy();
1276        dst.documentation = documentation == null ? null : documentation.copy();
1277        dst.type = type == null ? null : type.copy();
1278        if (allowedType != null) {
1279          dst.allowedType = new ArrayList<Enumeration<FHIRTypes>>();
1280          for (Enumeration<FHIRTypes> i : allowedType)
1281            dst.allowedType.add(i.copy());
1282        };
1283        if (targetProfile != null) {
1284          dst.targetProfile = new ArrayList<CanonicalType>();
1285          for (CanonicalType i : targetProfile)
1286            dst.targetProfile.add(i.copy());
1287        };
1288        dst.searchType = searchType == null ? null : searchType.copy();
1289        dst.binding = binding == null ? null : binding.copy();
1290        if (referencedFrom != null) {
1291          dst.referencedFrom = new ArrayList<OperationDefinitionParameterReferencedFromComponent>();
1292          for (OperationDefinitionParameterReferencedFromComponent i : referencedFrom)
1293            dst.referencedFrom.add(i.copy());
1294        };
1295        if (part != null) {
1296          dst.part = new ArrayList<OperationDefinitionParameterComponent>();
1297          for (OperationDefinitionParameterComponent i : part)
1298            dst.part.add(i.copy());
1299        };
1300      }
1301
1302      @Override
1303      public boolean equalsDeep(Base other_) {
1304        if (!super.equalsDeep(other_))
1305          return false;
1306        if (!(other_ instanceof OperationDefinitionParameterComponent))
1307          return false;
1308        OperationDefinitionParameterComponent o = (OperationDefinitionParameterComponent) other_;
1309        return compareDeep(name, o.name, true) && compareDeep(use, o.use, true) && compareDeep(scope, o.scope, true)
1310           && compareDeep(min, o.min, true) && compareDeep(max, o.max, true) && compareDeep(documentation, o.documentation, true)
1311           && compareDeep(type, o.type, true) && compareDeep(allowedType, o.allowedType, true) && compareDeep(targetProfile, o.targetProfile, true)
1312           && compareDeep(searchType, o.searchType, true) && compareDeep(binding, o.binding, true) && compareDeep(referencedFrom, o.referencedFrom, true)
1313           && compareDeep(part, o.part, true);
1314      }
1315
1316      @Override
1317      public boolean equalsShallow(Base other_) {
1318        if (!super.equalsShallow(other_))
1319          return false;
1320        if (!(other_ instanceof OperationDefinitionParameterComponent))
1321          return false;
1322        OperationDefinitionParameterComponent o = (OperationDefinitionParameterComponent) other_;
1323        return compareValues(name, o.name, true) && compareValues(use, o.use, true) && compareValues(scope, o.scope, true)
1324           && compareValues(min, o.min, true) && compareValues(max, o.max, true) && compareValues(documentation, o.documentation, true)
1325           && compareValues(type, o.type, true) && compareValues(allowedType, o.allowedType, true) && compareValues(targetProfile, o.targetProfile, true)
1326           && compareValues(searchType, o.searchType, true);
1327      }
1328
1329      public boolean isEmpty() {
1330        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, use, scope, min
1331          , max, documentation, type, allowedType, targetProfile, searchType, binding, referencedFrom
1332          , part);
1333      }
1334
1335  public String fhirType() {
1336    return "OperationDefinition.parameter";
1337
1338  }
1339
1340  }
1341
1342    @Block()
1343    public static class OperationDefinitionParameterBindingComponent extends BackboneElement implements IBaseBackboneElement {
1344        /**
1345         * Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.
1346         */
1347        @Child(name = "strength", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
1348        @Description(shortDefinition="required | extensible | preferred | example", formalDefinition="Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances." )
1349        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/binding-strength")
1350        protected Enumeration<BindingStrength> strength;
1351
1352        /**
1353         * Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.
1354         */
1355        @Child(name = "valueSet", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=false)
1356        @Description(shortDefinition="Source of value set", formalDefinition="Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used." )
1357        protected CanonicalType valueSet;
1358
1359        private static final long serialVersionUID = -2048653907L;
1360
1361    /**
1362     * Constructor
1363     */
1364      public OperationDefinitionParameterBindingComponent() {
1365        super();
1366      }
1367
1368    /**
1369     * Constructor
1370     */
1371      public OperationDefinitionParameterBindingComponent(BindingStrength strength, String valueSet) {
1372        super();
1373        this.setStrength(strength);
1374        this.setValueSet(valueSet);
1375      }
1376
1377        /**
1378         * @return {@link #strength} (Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.). This is the underlying object with id, value and extensions. The accessor "getStrength" gives direct access to the value
1379         */
1380        public Enumeration<BindingStrength> getStrengthElement() { 
1381          if (this.strength == null)
1382            if (Configuration.errorOnAutoCreate())
1383              throw new Error("Attempt to auto-create OperationDefinitionParameterBindingComponent.strength");
1384            else if (Configuration.doAutoCreate())
1385              this.strength = new Enumeration<BindingStrength>(new BindingStrengthEnumFactory()); // bb
1386          return this.strength;
1387        }
1388
1389        public boolean hasStrengthElement() { 
1390          return this.strength != null && !this.strength.isEmpty();
1391        }
1392
1393        public boolean hasStrength() { 
1394          return this.strength != null && !this.strength.isEmpty();
1395        }
1396
1397        /**
1398         * @param value {@link #strength} (Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.). This is the underlying object with id, value and extensions. The accessor "getStrength" gives direct access to the value
1399         */
1400        public OperationDefinitionParameterBindingComponent setStrengthElement(Enumeration<BindingStrength> value) { 
1401          this.strength = value;
1402          return this;
1403        }
1404
1405        /**
1406         * @return Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.
1407         */
1408        public BindingStrength getStrength() { 
1409          return this.strength == null ? null : this.strength.getValue();
1410        }
1411
1412        /**
1413         * @param value Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.
1414         */
1415        public OperationDefinitionParameterBindingComponent setStrength(BindingStrength value) { 
1416            if (this.strength == null)
1417              this.strength = new Enumeration<BindingStrength>(new BindingStrengthEnumFactory());
1418            this.strength.setValue(value);
1419          return this;
1420        }
1421
1422        /**
1423         * @return {@link #valueSet} (Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
1424         */
1425        public CanonicalType getValueSetElement() { 
1426          if (this.valueSet == null)
1427            if (Configuration.errorOnAutoCreate())
1428              throw new Error("Attempt to auto-create OperationDefinitionParameterBindingComponent.valueSet");
1429            else if (Configuration.doAutoCreate())
1430              this.valueSet = new CanonicalType(); // bb
1431          return this.valueSet;
1432        }
1433
1434        public boolean hasValueSetElement() { 
1435          return this.valueSet != null && !this.valueSet.isEmpty();
1436        }
1437
1438        public boolean hasValueSet() { 
1439          return this.valueSet != null && !this.valueSet.isEmpty();
1440        }
1441
1442        /**
1443         * @param value {@link #valueSet} (Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.). This is the underlying object with id, value and extensions. The accessor "getValueSet" gives direct access to the value
1444         */
1445        public OperationDefinitionParameterBindingComponent setValueSetElement(CanonicalType value) { 
1446          this.valueSet = value;
1447          return this;
1448        }
1449
1450        /**
1451         * @return Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.
1452         */
1453        public String getValueSet() { 
1454          return this.valueSet == null ? null : this.valueSet.getValue();
1455        }
1456
1457        /**
1458         * @param value Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.
1459         */
1460        public OperationDefinitionParameterBindingComponent setValueSet(String value) { 
1461            if (this.valueSet == null)
1462              this.valueSet = new CanonicalType();
1463            this.valueSet.setValue(value);
1464          return this;
1465        }
1466
1467        protected void listChildren(List<Property> children) {
1468          super.listChildren(children);
1469          children.add(new Property("strength", "code", "Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.", 0, 1, strength));
1470          children.add(new Property("valueSet", "canonical(ValueSet)", "Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.", 0, 1, valueSet));
1471        }
1472
1473        @Override
1474        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1475          switch (_hash) {
1476          case 1791316033: /*strength*/  return new Property("strength", "code", "Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances.", 0, 1, strength);
1477          case -1410174671: /*valueSet*/  return new Property("valueSet", "canonical(ValueSet)", "Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.", 0, 1, valueSet);
1478          default: return super.getNamedProperty(_hash, _name, _checkValid);
1479          }
1480
1481        }
1482
1483      @Override
1484      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1485        switch (hash) {
1486        case 1791316033: /*strength*/ return this.strength == null ? new Base[0] : new Base[] {this.strength}; // Enumeration<BindingStrength>
1487        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
1488        default: return super.getProperty(hash, name, checkValid);
1489        }
1490
1491      }
1492
1493      @Override
1494      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1495        switch (hash) {
1496        case 1791316033: // strength
1497          value = new BindingStrengthEnumFactory().fromType(TypeConvertor.castToCode(value));
1498          this.strength = (Enumeration) value; // Enumeration<BindingStrength>
1499          return value;
1500        case -1410174671: // valueSet
1501          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
1502          return value;
1503        default: return super.setProperty(hash, name, value);
1504        }
1505
1506      }
1507
1508      @Override
1509      public Base setProperty(String name, Base value) throws FHIRException {
1510        if (name.equals("strength")) {
1511          value = new BindingStrengthEnumFactory().fromType(TypeConvertor.castToCode(value));
1512          this.strength = (Enumeration) value; // Enumeration<BindingStrength>
1513        } else if (name.equals("valueSet")) {
1514          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
1515        } else
1516          return super.setProperty(name, value);
1517        return value;
1518      }
1519
1520      @Override
1521      public Base makeProperty(int hash, String name) throws FHIRException {
1522        switch (hash) {
1523        case 1791316033:  return getStrengthElement();
1524        case -1410174671:  return getValueSetElement();
1525        default: return super.makeProperty(hash, name);
1526        }
1527
1528      }
1529
1530      @Override
1531      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1532        switch (hash) {
1533        case 1791316033: /*strength*/ return new String[] {"code"};
1534        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
1535        default: return super.getTypesForProperty(hash, name);
1536        }
1537
1538      }
1539
1540      @Override
1541      public Base addChild(String name) throws FHIRException {
1542        if (name.equals("strength")) {
1543          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.binding.strength");
1544        }
1545        else if (name.equals("valueSet")) {
1546          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.binding.valueSet");
1547        }
1548        else
1549          return super.addChild(name);
1550      }
1551
1552      public OperationDefinitionParameterBindingComponent copy() {
1553        OperationDefinitionParameterBindingComponent dst = new OperationDefinitionParameterBindingComponent();
1554        copyValues(dst);
1555        return dst;
1556      }
1557
1558      public void copyValues(OperationDefinitionParameterBindingComponent dst) {
1559        super.copyValues(dst);
1560        dst.strength = strength == null ? null : strength.copy();
1561        dst.valueSet = valueSet == null ? null : valueSet.copy();
1562      }
1563
1564      @Override
1565      public boolean equalsDeep(Base other_) {
1566        if (!super.equalsDeep(other_))
1567          return false;
1568        if (!(other_ instanceof OperationDefinitionParameterBindingComponent))
1569          return false;
1570        OperationDefinitionParameterBindingComponent o = (OperationDefinitionParameterBindingComponent) other_;
1571        return compareDeep(strength, o.strength, true) && compareDeep(valueSet, o.valueSet, true);
1572      }
1573
1574      @Override
1575      public boolean equalsShallow(Base other_) {
1576        if (!super.equalsShallow(other_))
1577          return false;
1578        if (!(other_ instanceof OperationDefinitionParameterBindingComponent))
1579          return false;
1580        OperationDefinitionParameterBindingComponent o = (OperationDefinitionParameterBindingComponent) other_;
1581        return compareValues(strength, o.strength, true) && compareValues(valueSet, o.valueSet, true);
1582      }
1583
1584      public boolean isEmpty() {
1585        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(strength, valueSet);
1586      }
1587
1588  public String fhirType() {
1589    return "OperationDefinition.parameter.binding";
1590
1591  }
1592
1593  }
1594
1595    @Block()
1596    public static class OperationDefinitionParameterReferencedFromComponent extends BackboneElement implements IBaseBackboneElement {
1597        /**
1598         * The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.
1599         */
1600        @Child(name = "source", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
1601        @Description(shortDefinition="Referencing parameter", formalDefinition="The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource." )
1602        protected StringType source;
1603
1604        /**
1605         * The id of the element in the referencing resource that is expected to resolve to this resource.
1606         */
1607        @Child(name = "sourceId", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1608        @Description(shortDefinition="Element id of reference", formalDefinition="The id of the element in the referencing resource that is expected to resolve to this resource." )
1609        protected StringType sourceId;
1610
1611        private static final long serialVersionUID = -104239783L;
1612
1613    /**
1614     * Constructor
1615     */
1616      public OperationDefinitionParameterReferencedFromComponent() {
1617        super();
1618      }
1619
1620    /**
1621     * Constructor
1622     */
1623      public OperationDefinitionParameterReferencedFromComponent(String source) {
1624        super();
1625        this.setSource(source);
1626      }
1627
1628        /**
1629         * @return {@link #source} (The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
1630         */
1631        public StringType getSourceElement() { 
1632          if (this.source == null)
1633            if (Configuration.errorOnAutoCreate())
1634              throw new Error("Attempt to auto-create OperationDefinitionParameterReferencedFromComponent.source");
1635            else if (Configuration.doAutoCreate())
1636              this.source = new StringType(); // bb
1637          return this.source;
1638        }
1639
1640        public boolean hasSourceElement() { 
1641          return this.source != null && !this.source.isEmpty();
1642        }
1643
1644        public boolean hasSource() { 
1645          return this.source != null && !this.source.isEmpty();
1646        }
1647
1648        /**
1649         * @param value {@link #source} (The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
1650         */
1651        public OperationDefinitionParameterReferencedFromComponent setSourceElement(StringType value) { 
1652          this.source = value;
1653          return this;
1654        }
1655
1656        /**
1657         * @return The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.
1658         */
1659        public String getSource() { 
1660          return this.source == null ? null : this.source.getValue();
1661        }
1662
1663        /**
1664         * @param value The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.
1665         */
1666        public OperationDefinitionParameterReferencedFromComponent setSource(String value) { 
1667            if (this.source == null)
1668              this.source = new StringType();
1669            this.source.setValue(value);
1670          return this;
1671        }
1672
1673        /**
1674         * @return {@link #sourceId} (The id of the element in the referencing resource that is expected to resolve to this resource.). This is the underlying object with id, value and extensions. The accessor "getSourceId" gives direct access to the value
1675         */
1676        public StringType getSourceIdElement() { 
1677          if (this.sourceId == null)
1678            if (Configuration.errorOnAutoCreate())
1679              throw new Error("Attempt to auto-create OperationDefinitionParameterReferencedFromComponent.sourceId");
1680            else if (Configuration.doAutoCreate())
1681              this.sourceId = new StringType(); // bb
1682          return this.sourceId;
1683        }
1684
1685        public boolean hasSourceIdElement() { 
1686          return this.sourceId != null && !this.sourceId.isEmpty();
1687        }
1688
1689        public boolean hasSourceId() { 
1690          return this.sourceId != null && !this.sourceId.isEmpty();
1691        }
1692
1693        /**
1694         * @param value {@link #sourceId} (The id of the element in the referencing resource that is expected to resolve to this resource.). This is the underlying object with id, value and extensions. The accessor "getSourceId" gives direct access to the value
1695         */
1696        public OperationDefinitionParameterReferencedFromComponent setSourceIdElement(StringType value) { 
1697          this.sourceId = value;
1698          return this;
1699        }
1700
1701        /**
1702         * @return The id of the element in the referencing resource that is expected to resolve to this resource.
1703         */
1704        public String getSourceId() { 
1705          return this.sourceId == null ? null : this.sourceId.getValue();
1706        }
1707
1708        /**
1709         * @param value The id of the element in the referencing resource that is expected to resolve to this resource.
1710         */
1711        public OperationDefinitionParameterReferencedFromComponent setSourceId(String value) { 
1712          if (Utilities.noString(value))
1713            this.sourceId = null;
1714          else {
1715            if (this.sourceId == null)
1716              this.sourceId = new StringType();
1717            this.sourceId.setValue(value);
1718          }
1719          return this;
1720        }
1721
1722        protected void listChildren(List<Property> children) {
1723          super.listChildren(children);
1724          children.add(new Property("source", "string", "The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.", 0, 1, source));
1725          children.add(new Property("sourceId", "string", "The id of the element in the referencing resource that is expected to resolve to this resource.", 0, 1, sourceId));
1726        }
1727
1728        @Override
1729        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1730          switch (_hash) {
1731          case -896505829: /*source*/  return new Property("source", "string", "The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource.", 0, 1, source);
1732          case 1746327190: /*sourceId*/  return new Property("sourceId", "string", "The id of the element in the referencing resource that is expected to resolve to this resource.", 0, 1, sourceId);
1733          default: return super.getNamedProperty(_hash, _name, _checkValid);
1734          }
1735
1736        }
1737
1738      @Override
1739      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1740        switch (hash) {
1741        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // StringType
1742        case 1746327190: /*sourceId*/ return this.sourceId == null ? new Base[0] : new Base[] {this.sourceId}; // StringType
1743        default: return super.getProperty(hash, name, checkValid);
1744        }
1745
1746      }
1747
1748      @Override
1749      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1750        switch (hash) {
1751        case -896505829: // source
1752          this.source = TypeConvertor.castToString(value); // StringType
1753          return value;
1754        case 1746327190: // sourceId
1755          this.sourceId = TypeConvertor.castToString(value); // StringType
1756          return value;
1757        default: return super.setProperty(hash, name, value);
1758        }
1759
1760      }
1761
1762      @Override
1763      public Base setProperty(String name, Base value) throws FHIRException {
1764        if (name.equals("source")) {
1765          this.source = TypeConvertor.castToString(value); // StringType
1766        } else if (name.equals("sourceId")) {
1767          this.sourceId = TypeConvertor.castToString(value); // StringType
1768        } else
1769          return super.setProperty(name, value);
1770        return value;
1771      }
1772
1773      @Override
1774      public Base makeProperty(int hash, String name) throws FHIRException {
1775        switch (hash) {
1776        case -896505829:  return getSourceElement();
1777        case 1746327190:  return getSourceIdElement();
1778        default: return super.makeProperty(hash, name);
1779        }
1780
1781      }
1782
1783      @Override
1784      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1785        switch (hash) {
1786        case -896505829: /*source*/ return new String[] {"string"};
1787        case 1746327190: /*sourceId*/ return new String[] {"string"};
1788        default: return super.getTypesForProperty(hash, name);
1789        }
1790
1791      }
1792
1793      @Override
1794      public Base addChild(String name) throws FHIRException {
1795        if (name.equals("source")) {
1796          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.referencedFrom.source");
1797        }
1798        else if (name.equals("sourceId")) {
1799          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.referencedFrom.sourceId");
1800        }
1801        else
1802          return super.addChild(name);
1803      }
1804
1805      public OperationDefinitionParameterReferencedFromComponent copy() {
1806        OperationDefinitionParameterReferencedFromComponent dst = new OperationDefinitionParameterReferencedFromComponent();
1807        copyValues(dst);
1808        return dst;
1809      }
1810
1811      public void copyValues(OperationDefinitionParameterReferencedFromComponent dst) {
1812        super.copyValues(dst);
1813        dst.source = source == null ? null : source.copy();
1814        dst.sourceId = sourceId == null ? null : sourceId.copy();
1815      }
1816
1817      @Override
1818      public boolean equalsDeep(Base other_) {
1819        if (!super.equalsDeep(other_))
1820          return false;
1821        if (!(other_ instanceof OperationDefinitionParameterReferencedFromComponent))
1822          return false;
1823        OperationDefinitionParameterReferencedFromComponent o = (OperationDefinitionParameterReferencedFromComponent) other_;
1824        return compareDeep(source, o.source, true) && compareDeep(sourceId, o.sourceId, true);
1825      }
1826
1827      @Override
1828      public boolean equalsShallow(Base other_) {
1829        if (!super.equalsShallow(other_))
1830          return false;
1831        if (!(other_ instanceof OperationDefinitionParameterReferencedFromComponent))
1832          return false;
1833        OperationDefinitionParameterReferencedFromComponent o = (OperationDefinitionParameterReferencedFromComponent) other_;
1834        return compareValues(source, o.source, true) && compareValues(sourceId, o.sourceId, true);
1835      }
1836
1837      public boolean isEmpty() {
1838        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(source, sourceId);
1839      }
1840
1841  public String fhirType() {
1842    return "OperationDefinition.parameter.referencedFrom";
1843
1844  }
1845
1846  }
1847
1848    @Block()
1849    public static class OperationDefinitionOverloadComponent extends BackboneElement implements IBaseBackboneElement {
1850        /**
1851         * Name of parameter to include in overload.
1852         */
1853        @Child(name = "parameterName", type = {StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1854        @Description(shortDefinition="Name of parameter to include in overload", formalDefinition="Name of parameter to include in overload." )
1855        protected List<StringType> parameterName;
1856
1857        /**
1858         * Comments to go on overload.
1859         */
1860        @Child(name = "comment", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1861        @Description(shortDefinition="Comments to go on overload", formalDefinition="Comments to go on overload." )
1862        protected StringType comment;
1863
1864        private static final long serialVersionUID = -907948545L;
1865
1866    /**
1867     * Constructor
1868     */
1869      public OperationDefinitionOverloadComponent() {
1870        super();
1871      }
1872
1873        /**
1874         * @return {@link #parameterName} (Name of parameter to include in overload.)
1875         */
1876        public List<StringType> getParameterName() { 
1877          if (this.parameterName == null)
1878            this.parameterName = new ArrayList<StringType>();
1879          return this.parameterName;
1880        }
1881
1882        /**
1883         * @return Returns a reference to <code>this</code> for easy method chaining
1884         */
1885        public OperationDefinitionOverloadComponent setParameterName(List<StringType> theParameterName) { 
1886          this.parameterName = theParameterName;
1887          return this;
1888        }
1889
1890        public boolean hasParameterName() { 
1891          if (this.parameterName == null)
1892            return false;
1893          for (StringType item : this.parameterName)
1894            if (!item.isEmpty())
1895              return true;
1896          return false;
1897        }
1898
1899        /**
1900         * @return {@link #parameterName} (Name of parameter to include in overload.)
1901         */
1902        public StringType addParameterNameElement() {//2 
1903          StringType t = new StringType();
1904          if (this.parameterName == null)
1905            this.parameterName = new ArrayList<StringType>();
1906          this.parameterName.add(t);
1907          return t;
1908        }
1909
1910        /**
1911         * @param value {@link #parameterName} (Name of parameter to include in overload.)
1912         */
1913        public OperationDefinitionOverloadComponent addParameterName(String value) { //1
1914          StringType t = new StringType();
1915          t.setValue(value);
1916          if (this.parameterName == null)
1917            this.parameterName = new ArrayList<StringType>();
1918          this.parameterName.add(t);
1919          return this;
1920        }
1921
1922        /**
1923         * @param value {@link #parameterName} (Name of parameter to include in overload.)
1924         */
1925        public boolean hasParameterName(String value) { 
1926          if (this.parameterName == null)
1927            return false;
1928          for (StringType v : this.parameterName)
1929            if (v.getValue().equals(value)) // string
1930              return true;
1931          return false;
1932        }
1933
1934        /**
1935         * @return {@link #comment} (Comments to go on overload.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
1936         */
1937        public StringType getCommentElement() { 
1938          if (this.comment == null)
1939            if (Configuration.errorOnAutoCreate())
1940              throw new Error("Attempt to auto-create OperationDefinitionOverloadComponent.comment");
1941            else if (Configuration.doAutoCreate())
1942              this.comment = new StringType(); // bb
1943          return this.comment;
1944        }
1945
1946        public boolean hasCommentElement() { 
1947          return this.comment != null && !this.comment.isEmpty();
1948        }
1949
1950        public boolean hasComment() { 
1951          return this.comment != null && !this.comment.isEmpty();
1952        }
1953
1954        /**
1955         * @param value {@link #comment} (Comments to go on overload.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
1956         */
1957        public OperationDefinitionOverloadComponent setCommentElement(StringType value) { 
1958          this.comment = value;
1959          return this;
1960        }
1961
1962        /**
1963         * @return Comments to go on overload.
1964         */
1965        public String getComment() { 
1966          return this.comment == null ? null : this.comment.getValue();
1967        }
1968
1969        /**
1970         * @param value Comments to go on overload.
1971         */
1972        public OperationDefinitionOverloadComponent setComment(String value) { 
1973          if (Utilities.noString(value))
1974            this.comment = null;
1975          else {
1976            if (this.comment == null)
1977              this.comment = new StringType();
1978            this.comment.setValue(value);
1979          }
1980          return this;
1981        }
1982
1983        protected void listChildren(List<Property> children) {
1984          super.listChildren(children);
1985          children.add(new Property("parameterName", "string", "Name of parameter to include in overload.", 0, java.lang.Integer.MAX_VALUE, parameterName));
1986          children.add(new Property("comment", "string", "Comments to go on overload.", 0, 1, comment));
1987        }
1988
1989        @Override
1990        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1991          switch (_hash) {
1992          case -379607596: /*parameterName*/  return new Property("parameterName", "string", "Name of parameter to include in overload.", 0, java.lang.Integer.MAX_VALUE, parameterName);
1993          case 950398559: /*comment*/  return new Property("comment", "string", "Comments to go on overload.", 0, 1, comment);
1994          default: return super.getNamedProperty(_hash, _name, _checkValid);
1995          }
1996
1997        }
1998
1999      @Override
2000      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2001        switch (hash) {
2002        case -379607596: /*parameterName*/ return this.parameterName == null ? new Base[0] : this.parameterName.toArray(new Base[this.parameterName.size()]); // StringType
2003        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
2004        default: return super.getProperty(hash, name, checkValid);
2005        }
2006
2007      }
2008
2009      @Override
2010      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2011        switch (hash) {
2012        case -379607596: // parameterName
2013          this.getParameterName().add(TypeConvertor.castToString(value)); // StringType
2014          return value;
2015        case 950398559: // comment
2016          this.comment = TypeConvertor.castToString(value); // StringType
2017          return value;
2018        default: return super.setProperty(hash, name, value);
2019        }
2020
2021      }
2022
2023      @Override
2024      public Base setProperty(String name, Base value) throws FHIRException {
2025        if (name.equals("parameterName")) {
2026          this.getParameterName().add(TypeConvertor.castToString(value));
2027        } else if (name.equals("comment")) {
2028          this.comment = TypeConvertor.castToString(value); // StringType
2029        } else
2030          return super.setProperty(name, value);
2031        return value;
2032      }
2033
2034      @Override
2035      public Base makeProperty(int hash, String name) throws FHIRException {
2036        switch (hash) {
2037        case -379607596:  return addParameterNameElement();
2038        case 950398559:  return getCommentElement();
2039        default: return super.makeProperty(hash, name);
2040        }
2041
2042      }
2043
2044      @Override
2045      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2046        switch (hash) {
2047        case -379607596: /*parameterName*/ return new String[] {"string"};
2048        case 950398559: /*comment*/ return new String[] {"string"};
2049        default: return super.getTypesForProperty(hash, name);
2050        }
2051
2052      }
2053
2054      @Override
2055      public Base addChild(String name) throws FHIRException {
2056        if (name.equals("parameterName")) {
2057          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.overload.parameterName");
2058        }
2059        else if (name.equals("comment")) {
2060          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.overload.comment");
2061        }
2062        else
2063          return super.addChild(name);
2064      }
2065
2066      public OperationDefinitionOverloadComponent copy() {
2067        OperationDefinitionOverloadComponent dst = new OperationDefinitionOverloadComponent();
2068        copyValues(dst);
2069        return dst;
2070      }
2071
2072      public void copyValues(OperationDefinitionOverloadComponent dst) {
2073        super.copyValues(dst);
2074        if (parameterName != null) {
2075          dst.parameterName = new ArrayList<StringType>();
2076          for (StringType i : parameterName)
2077            dst.parameterName.add(i.copy());
2078        };
2079        dst.comment = comment == null ? null : comment.copy();
2080      }
2081
2082      @Override
2083      public boolean equalsDeep(Base other_) {
2084        if (!super.equalsDeep(other_))
2085          return false;
2086        if (!(other_ instanceof OperationDefinitionOverloadComponent))
2087          return false;
2088        OperationDefinitionOverloadComponent o = (OperationDefinitionOverloadComponent) other_;
2089        return compareDeep(parameterName, o.parameterName, true) && compareDeep(comment, o.comment, true)
2090          ;
2091      }
2092
2093      @Override
2094      public boolean equalsShallow(Base other_) {
2095        if (!super.equalsShallow(other_))
2096          return false;
2097        if (!(other_ instanceof OperationDefinitionOverloadComponent))
2098          return false;
2099        OperationDefinitionOverloadComponent o = (OperationDefinitionOverloadComponent) other_;
2100        return compareValues(parameterName, o.parameterName, true) && compareValues(comment, o.comment, true)
2101          ;
2102      }
2103
2104      public boolean isEmpty() {
2105        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(parameterName, comment);
2106      }
2107
2108  public String fhirType() {
2109    return "OperationDefinition.overload";
2110
2111  }
2112
2113  }
2114
2115    /**
2116     * An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.
2117     */
2118    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
2119    @Description(shortDefinition="Canonical identifier for this operation definition, represented as an absolute URI (globally unique)", formalDefinition="An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers." )
2120    protected UriType url;
2121
2122    /**
2123     * A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.
2124     */
2125    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2126    @Description(shortDefinition="Additional identifier for the implementation guide (business identifier)", formalDefinition="A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance." )
2127    protected List<Identifier> identifier;
2128
2129    /**
2130     * The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
2131     */
2132    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
2133    @Description(shortDefinition="Business version of the operation definition", formalDefinition="The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence." )
2134    protected StringType version;
2135
2136    /**
2137     * Indicates the mechanism used to compare versions to determine which is more current.
2138     */
2139    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
2140    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
2141    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
2142    protected DataType versionAlgorithm;
2143
2144    /**
2145     * A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
2146     */
2147    @Child(name = "name", type = {StringType.class}, order=4, min=1, max=1, modifier=false, summary=true)
2148    @Description(shortDefinition="Name for this operation definition (computer friendly)", formalDefinition="A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
2149    protected StringType name;
2150
2151    /**
2152     * A short, descriptive, user-friendly title for the operation definition.
2153     */
2154    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
2155    @Description(shortDefinition="Name for this operation definition (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the operation definition." )
2156    protected StringType title;
2157
2158    /**
2159     * The current state of this operation definition.
2160     */
2161    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
2162    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The current state of this operation definition." )
2163    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
2164    protected Enumeration<PublicationStatus> status;
2165
2166    /**
2167     * Whether this is an operation or a named query.
2168     */
2169    @Child(name = "kind", type = {CodeType.class}, order=7, min=1, max=1, modifier=false, summary=true)
2170    @Description(shortDefinition="operation | query", formalDefinition="Whether this is an operation or a named query." )
2171    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/operation-kind")
2172    protected Enumeration<OperationKind> kind;
2173
2174    /**
2175     * A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
2176     */
2177    @Child(name = "experimental", type = {BooleanType.class}, order=8, min=0, max=1, modifier=false, summary=true)
2178    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage." )
2179    protected BooleanType experimental;
2180
2181    /**
2182     * The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.
2183     */
2184    @Child(name = "date", type = {DateTimeType.class}, order=9, min=0, max=1, modifier=false, summary=true)
2185    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes." )
2186    protected DateTimeType date;
2187
2188    /**
2189     * The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.
2190     */
2191    @Child(name = "publisher", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true)
2192    @Description(shortDefinition="Name of the publisher/steward (organization or individual)", formalDefinition="The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition." )
2193    protected StringType publisher;
2194
2195    /**
2196     * Contact details to assist a user in finding and communicating with the publisher.
2197     */
2198    @Child(name = "contact", type = {ContactDetail.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2199    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
2200    protected List<ContactDetail> contact;
2201
2202    /**
2203     * A free text natural language description of the operation definition from a consumer's perspective.
2204     */
2205    @Child(name = "description", type = {MarkdownType.class}, order=12, min=0, max=1, modifier=false, summary=false)
2206    @Description(shortDefinition="Natural language description of the operation definition", formalDefinition="A free text natural language description of the operation definition from a consumer's perspective." )
2207    protected MarkdownType description;
2208
2209    /**
2210     * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition.
2211     */
2212    @Child(name = "useContext", type = {UsageContext.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2213    @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition." )
2214    protected List<UsageContext> useContext;
2215
2216    /**
2217     * A legal or geographic region in which the operation definition is intended to be used.
2218     */
2219    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2220    @Description(shortDefinition="Intended jurisdiction for operation definition (if applicable)", formalDefinition="A legal or geographic region in which the operation definition is intended to be used." )
2221    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
2222    protected List<CodeableConcept> jurisdiction;
2223
2224    /**
2225     * Explanation of why this operation definition is needed and why it has been designed as it has.
2226     */
2227    @Child(name = "purpose", type = {MarkdownType.class}, order=15, min=0, max=1, modifier=false, summary=false)
2228    @Description(shortDefinition="Why this operation definition is defined", formalDefinition="Explanation of why this operation definition is needed and why it has been designed as it has." )
2229    protected MarkdownType purpose;
2230
2231    /**
2232     * A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.
2233     */
2234    @Child(name = "copyright", type = {MarkdownType.class}, order=16, min=0, max=1, modifier=false, summary=false)
2235    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition." )
2236    protected MarkdownType copyright;
2237
2238    /**
2239     * A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
2240     */
2241    @Child(name = "copyrightLabel", type = {StringType.class}, order=17, min=0, max=1, modifier=false, summary=false)
2242    @Description(shortDefinition="Copyright holder and year(s)", formalDefinition="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')." )
2243    protected StringType copyrightLabel;
2244
2245    /**
2246     * Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.
2247     */
2248    @Child(name = "affectsState", type = {BooleanType.class}, order=18, min=0, max=1, modifier=false, summary=true)
2249    @Description(shortDefinition="Whether content is changed by the operation", formalDefinition="Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'." )
2250    protected BooleanType affectsState;
2251
2252    /**
2253     * The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.
2254     */
2255    @Child(name = "code", type = {CodeType.class}, order=19, min=1, max=1, modifier=false, summary=true)
2256    @Description(shortDefinition="Recommended name for operation in search url", formalDefinition="The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code." )
2257    protected CodeType code;
2258
2259    /**
2260     * Additional information about how to use this operation or named query.
2261     */
2262    @Child(name = "comment", type = {MarkdownType.class}, order=20, min=0, max=1, modifier=false, summary=false)
2263    @Description(shortDefinition="Additional information about use", formalDefinition="Additional information about how to use this operation or named query." )
2264    protected MarkdownType comment;
2265
2266    /**
2267     * Indicates that this operation definition is a constraining profile on the base.
2268     */
2269    @Child(name = "base", type = {CanonicalType.class}, order=21, min=0, max=1, modifier=false, summary=true)
2270    @Description(shortDefinition="Marks this as a profile of the base", formalDefinition="Indicates that this operation definition is a constraining profile on the base." )
2271    protected CanonicalType base;
2272
2273    /**
2274     * The types on which this operation can be executed.
2275     */
2276    @Child(name = "resource", type = {CodeType.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2277    @Description(shortDefinition="Types this operation applies to", formalDefinition="The types on which this operation can be executed." )
2278    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-independent-all-resource-types")
2279    protected List<Enumeration<VersionIndependentResourceTypesAll>> resource;
2280
2281    /**
2282     * Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).
2283     */
2284    @Child(name = "system", type = {BooleanType.class}, order=23, min=1, max=1, modifier=false, summary=true)
2285    @Description(shortDefinition="Invoke at the system level?", formalDefinition="Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context)." )
2286    protected BooleanType system;
2287
2288    /**
2289     * Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).
2290     */
2291    @Child(name = "type", type = {BooleanType.class}, order=24, min=1, max=1, modifier=false, summary=true)
2292    @Description(shortDefinition="Invoke at the type level?", formalDefinition="Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context)." )
2293    protected BooleanType type;
2294
2295    /**
2296     * Indicates whether this operation can be invoked on a particular instance of one of the given types.
2297     */
2298    @Child(name = "instance", type = {BooleanType.class}, order=25, min=1, max=1, modifier=false, summary=true)
2299    @Description(shortDefinition="Invoke on an instance?", formalDefinition="Indicates whether this operation can be invoked on a particular instance of one of the given types." )
2300    protected BooleanType instance;
2301
2302    /**
2303     * Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.
2304     */
2305    @Child(name = "inputProfile", type = {CanonicalType.class}, order=26, min=0, max=1, modifier=false, summary=false)
2306    @Description(shortDefinition="Validation information for in parameters", formalDefinition="Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole." )
2307    protected CanonicalType inputProfile;
2308
2309    /**
2310     * Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.
2311     */
2312    @Child(name = "outputProfile", type = {CanonicalType.class}, order=27, min=0, max=1, modifier=false, summary=false)
2313    @Description(shortDefinition="Validation information for out parameters", formalDefinition="Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource." )
2314    protected CanonicalType outputProfile;
2315
2316    /**
2317     * The parameters for the operation/query.
2318     */
2319    @Child(name = "parameter", type = {}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2320    @Description(shortDefinition="Parameters for the operation/query", formalDefinition="The parameters for the operation/query." )
2321    protected List<OperationDefinitionParameterComponent> parameter;
2322
2323    /**
2324     * Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.
2325     */
2326    @Child(name = "overload", type = {}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2327    @Description(shortDefinition="Define overloaded variants for when  generating code", formalDefinition="Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation." )
2328    protected List<OperationDefinitionOverloadComponent> overload;
2329
2330    private static final long serialVersionUID = -1811668120L;
2331
2332  /**
2333   * Constructor
2334   */
2335    public OperationDefinition() {
2336      super();
2337    }
2338
2339  /**
2340   * Constructor
2341   */
2342    public OperationDefinition(String name, PublicationStatus status, OperationKind kind, String code, boolean system, boolean type, boolean instance) {
2343      super();
2344      this.setName(name);
2345      this.setStatus(status);
2346      this.setKind(kind);
2347      this.setCode(code);
2348      this.setSystem(system);
2349      this.setType(type);
2350      this.setInstance(instance);
2351    }
2352
2353    /**
2354     * @return {@link #url} (An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
2355     */
2356    public UriType getUrlElement() { 
2357      if (this.url == null)
2358        if (Configuration.errorOnAutoCreate())
2359          throw new Error("Attempt to auto-create OperationDefinition.url");
2360        else if (Configuration.doAutoCreate())
2361          this.url = new UriType(); // bb
2362      return this.url;
2363    }
2364
2365    public boolean hasUrlElement() { 
2366      return this.url != null && !this.url.isEmpty();
2367    }
2368
2369    public boolean hasUrl() { 
2370      return this.url != null && !this.url.isEmpty();
2371    }
2372
2373    /**
2374     * @param value {@link #url} (An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
2375     */
2376    public OperationDefinition setUrlElement(UriType value) { 
2377      this.url = value;
2378      return this;
2379    }
2380
2381    /**
2382     * @return An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.
2383     */
2384    public String getUrl() { 
2385      return this.url == null ? null : this.url.getValue();
2386    }
2387
2388    /**
2389     * @param value An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.
2390     */
2391    public OperationDefinition setUrl(String value) { 
2392      if (Utilities.noString(value))
2393        this.url = null;
2394      else {
2395        if (this.url == null)
2396          this.url = new UriType();
2397        this.url.setValue(value);
2398      }
2399      return this;
2400    }
2401
2402    /**
2403     * @return {@link #identifier} (A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.)
2404     */
2405    public List<Identifier> getIdentifier() { 
2406      if (this.identifier == null)
2407        this.identifier = new ArrayList<Identifier>();
2408      return this.identifier;
2409    }
2410
2411    /**
2412     * @return Returns a reference to <code>this</code> for easy method chaining
2413     */
2414    public OperationDefinition setIdentifier(List<Identifier> theIdentifier) { 
2415      this.identifier = theIdentifier;
2416      return this;
2417    }
2418
2419    public boolean hasIdentifier() { 
2420      if (this.identifier == null)
2421        return false;
2422      for (Identifier item : this.identifier)
2423        if (!item.isEmpty())
2424          return true;
2425      return false;
2426    }
2427
2428    public Identifier addIdentifier() { //3
2429      Identifier t = new Identifier();
2430      if (this.identifier == null)
2431        this.identifier = new ArrayList<Identifier>();
2432      this.identifier.add(t);
2433      return t;
2434    }
2435
2436    public OperationDefinition addIdentifier(Identifier t) { //3
2437      if (t == null)
2438        return this;
2439      if (this.identifier == null)
2440        this.identifier = new ArrayList<Identifier>();
2441      this.identifier.add(t);
2442      return this;
2443    }
2444
2445    /**
2446     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
2447     */
2448    public Identifier getIdentifierFirstRep() { 
2449      if (getIdentifier().isEmpty()) {
2450        addIdentifier();
2451      }
2452      return getIdentifier().get(0);
2453    }
2454
2455    /**
2456     * @return {@link #version} (The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
2457     */
2458    public StringType getVersionElement() { 
2459      if (this.version == null)
2460        if (Configuration.errorOnAutoCreate())
2461          throw new Error("Attempt to auto-create OperationDefinition.version");
2462        else if (Configuration.doAutoCreate())
2463          this.version = new StringType(); // bb
2464      return this.version;
2465    }
2466
2467    public boolean hasVersionElement() { 
2468      return this.version != null && !this.version.isEmpty();
2469    }
2470
2471    public boolean hasVersion() { 
2472      return this.version != null && !this.version.isEmpty();
2473    }
2474
2475    /**
2476     * @param value {@link #version} (The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
2477     */
2478    public OperationDefinition setVersionElement(StringType value) { 
2479      this.version = value;
2480      return this;
2481    }
2482
2483    /**
2484     * @return The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
2485     */
2486    public String getVersion() { 
2487      return this.version == null ? null : this.version.getValue();
2488    }
2489
2490    /**
2491     * @param value The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
2492     */
2493    public OperationDefinition setVersion(String value) { 
2494      if (Utilities.noString(value))
2495        this.version = null;
2496      else {
2497        if (this.version == null)
2498          this.version = new StringType();
2499        this.version.setValue(value);
2500      }
2501      return this;
2502    }
2503
2504    /**
2505     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2506     */
2507    public DataType getVersionAlgorithm() { 
2508      return this.versionAlgorithm;
2509    }
2510
2511    /**
2512     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2513     */
2514    public StringType getVersionAlgorithmStringType() throws FHIRException { 
2515      if (this.versionAlgorithm == null)
2516        this.versionAlgorithm = new StringType();
2517      if (!(this.versionAlgorithm instanceof StringType))
2518        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
2519      return (StringType) this.versionAlgorithm;
2520    }
2521
2522    public boolean hasVersionAlgorithmStringType() { 
2523      return this != null && this.versionAlgorithm instanceof StringType;
2524    }
2525
2526    /**
2527     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2528     */
2529    public Coding getVersionAlgorithmCoding() throws FHIRException { 
2530      if (this.versionAlgorithm == null)
2531        this.versionAlgorithm = new Coding();
2532      if (!(this.versionAlgorithm instanceof Coding))
2533        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
2534      return (Coding) this.versionAlgorithm;
2535    }
2536
2537    public boolean hasVersionAlgorithmCoding() { 
2538      return this != null && this.versionAlgorithm instanceof Coding;
2539    }
2540
2541    public boolean hasVersionAlgorithm() { 
2542      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
2543    }
2544
2545    /**
2546     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2547     */
2548    public OperationDefinition setVersionAlgorithm(DataType value) { 
2549      if (value != null && !(value instanceof StringType || value instanceof Coding))
2550        throw new FHIRException("Not the right type for OperationDefinition.versionAlgorithm[x]: "+value.fhirType());
2551      this.versionAlgorithm = value;
2552      return this;
2553    }
2554
2555    /**
2556     * @return {@link #name} (A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
2557     */
2558    public StringType getNameElement() { 
2559      if (this.name == null)
2560        if (Configuration.errorOnAutoCreate())
2561          throw new Error("Attempt to auto-create OperationDefinition.name");
2562        else if (Configuration.doAutoCreate())
2563          this.name = new StringType(); // bb
2564      return this.name;
2565    }
2566
2567    public boolean hasNameElement() { 
2568      return this.name != null && !this.name.isEmpty();
2569    }
2570
2571    public boolean hasName() { 
2572      return this.name != null && !this.name.isEmpty();
2573    }
2574
2575    /**
2576     * @param value {@link #name} (A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
2577     */
2578    public OperationDefinition setNameElement(StringType value) { 
2579      this.name = value;
2580      return this;
2581    }
2582
2583    /**
2584     * @return A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
2585     */
2586    public String getName() { 
2587      return this.name == null ? null : this.name.getValue();
2588    }
2589
2590    /**
2591     * @param value A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
2592     */
2593    public OperationDefinition setName(String value) { 
2594        if (this.name == null)
2595          this.name = new StringType();
2596        this.name.setValue(value);
2597      return this;
2598    }
2599
2600    /**
2601     * @return {@link #title} (A short, descriptive, user-friendly title for the operation definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
2602     */
2603    public StringType getTitleElement() { 
2604      if (this.title == null)
2605        if (Configuration.errorOnAutoCreate())
2606          throw new Error("Attempt to auto-create OperationDefinition.title");
2607        else if (Configuration.doAutoCreate())
2608          this.title = new StringType(); // bb
2609      return this.title;
2610    }
2611
2612    public boolean hasTitleElement() { 
2613      return this.title != null && !this.title.isEmpty();
2614    }
2615
2616    public boolean hasTitle() { 
2617      return this.title != null && !this.title.isEmpty();
2618    }
2619
2620    /**
2621     * @param value {@link #title} (A short, descriptive, user-friendly title for the operation definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
2622     */
2623    public OperationDefinition setTitleElement(StringType value) { 
2624      this.title = value;
2625      return this;
2626    }
2627
2628    /**
2629     * @return A short, descriptive, user-friendly title for the operation definition.
2630     */
2631    public String getTitle() { 
2632      return this.title == null ? null : this.title.getValue();
2633    }
2634
2635    /**
2636     * @param value A short, descriptive, user-friendly title for the operation definition.
2637     */
2638    public OperationDefinition setTitle(String value) { 
2639      if (Utilities.noString(value))
2640        this.title = null;
2641      else {
2642        if (this.title == null)
2643          this.title = new StringType();
2644        this.title.setValue(value);
2645      }
2646      return this;
2647    }
2648
2649    /**
2650     * @return {@link #status} (The current state of this operation definition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
2651     */
2652    public Enumeration<PublicationStatus> getStatusElement() { 
2653      if (this.status == null)
2654        if (Configuration.errorOnAutoCreate())
2655          throw new Error("Attempt to auto-create OperationDefinition.status");
2656        else if (Configuration.doAutoCreate())
2657          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
2658      return this.status;
2659    }
2660
2661    public boolean hasStatusElement() { 
2662      return this.status != null && !this.status.isEmpty();
2663    }
2664
2665    public boolean hasStatus() { 
2666      return this.status != null && !this.status.isEmpty();
2667    }
2668
2669    /**
2670     * @param value {@link #status} (The current state of this operation definition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
2671     */
2672    public OperationDefinition setStatusElement(Enumeration<PublicationStatus> value) { 
2673      this.status = value;
2674      return this;
2675    }
2676
2677    /**
2678     * @return The current state of this operation definition.
2679     */
2680    public PublicationStatus getStatus() { 
2681      return this.status == null ? null : this.status.getValue();
2682    }
2683
2684    /**
2685     * @param value The current state of this operation definition.
2686     */
2687    public OperationDefinition setStatus(PublicationStatus value) { 
2688        if (this.status == null)
2689          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
2690        this.status.setValue(value);
2691      return this;
2692    }
2693
2694    /**
2695     * @return {@link #kind} (Whether this is an operation or a named query.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value
2696     */
2697    public Enumeration<OperationKind> getKindElement() { 
2698      if (this.kind == null)
2699        if (Configuration.errorOnAutoCreate())
2700          throw new Error("Attempt to auto-create OperationDefinition.kind");
2701        else if (Configuration.doAutoCreate())
2702          this.kind = new Enumeration<OperationKind>(new OperationKindEnumFactory()); // bb
2703      return this.kind;
2704    }
2705
2706    public boolean hasKindElement() { 
2707      return this.kind != null && !this.kind.isEmpty();
2708    }
2709
2710    public boolean hasKind() { 
2711      return this.kind != null && !this.kind.isEmpty();
2712    }
2713
2714    /**
2715     * @param value {@link #kind} (Whether this is an operation or a named query.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value
2716     */
2717    public OperationDefinition setKindElement(Enumeration<OperationKind> value) { 
2718      this.kind = value;
2719      return this;
2720    }
2721
2722    /**
2723     * @return Whether this is an operation or a named query.
2724     */
2725    public OperationKind getKind() { 
2726      return this.kind == null ? null : this.kind.getValue();
2727    }
2728
2729    /**
2730     * @param value Whether this is an operation or a named query.
2731     */
2732    public OperationDefinition setKind(OperationKind value) { 
2733        if (this.kind == null)
2734          this.kind = new Enumeration<OperationKind>(new OperationKindEnumFactory());
2735        this.kind.setValue(value);
2736      return this;
2737    }
2738
2739    /**
2740     * @return {@link #experimental} (A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
2741     */
2742    public BooleanType getExperimentalElement() { 
2743      if (this.experimental == null)
2744        if (Configuration.errorOnAutoCreate())
2745          throw new Error("Attempt to auto-create OperationDefinition.experimental");
2746        else if (Configuration.doAutoCreate())
2747          this.experimental = new BooleanType(); // bb
2748      return this.experimental;
2749    }
2750
2751    public boolean hasExperimentalElement() { 
2752      return this.experimental != null && !this.experimental.isEmpty();
2753    }
2754
2755    public boolean hasExperimental() { 
2756      return this.experimental != null && !this.experimental.isEmpty();
2757    }
2758
2759    /**
2760     * @param value {@link #experimental} (A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
2761     */
2762    public OperationDefinition setExperimentalElement(BooleanType value) { 
2763      this.experimental = value;
2764      return this;
2765    }
2766
2767    /**
2768     * @return A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
2769     */
2770    public boolean getExperimental() { 
2771      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
2772    }
2773
2774    /**
2775     * @param value A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.
2776     */
2777    public OperationDefinition setExperimental(boolean value) { 
2778        if (this.experimental == null)
2779          this.experimental = new BooleanType();
2780        this.experimental.setValue(value);
2781      return this;
2782    }
2783
2784    /**
2785     * @return {@link #date} (The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
2786     */
2787    public DateTimeType getDateElement() { 
2788      if (this.date == null)
2789        if (Configuration.errorOnAutoCreate())
2790          throw new Error("Attempt to auto-create OperationDefinition.date");
2791        else if (Configuration.doAutoCreate())
2792          this.date = new DateTimeType(); // bb
2793      return this.date;
2794    }
2795
2796    public boolean hasDateElement() { 
2797      return this.date != null && !this.date.isEmpty();
2798    }
2799
2800    public boolean hasDate() { 
2801      return this.date != null && !this.date.isEmpty();
2802    }
2803
2804    /**
2805     * @param value {@link #date} (The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
2806     */
2807    public OperationDefinition setDateElement(DateTimeType value) { 
2808      this.date = value;
2809      return this;
2810    }
2811
2812    /**
2813     * @return The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.
2814     */
2815    public Date getDate() { 
2816      return this.date == null ? null : this.date.getValue();
2817    }
2818
2819    /**
2820     * @param value The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.
2821     */
2822    public OperationDefinition setDate(Date value) { 
2823      if (value == null)
2824        this.date = null;
2825      else {
2826        if (this.date == null)
2827          this.date = new DateTimeType();
2828        this.date.setValue(value);
2829      }
2830      return this;
2831    }
2832
2833    /**
2834     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
2835     */
2836    public StringType getPublisherElement() { 
2837      if (this.publisher == null)
2838        if (Configuration.errorOnAutoCreate())
2839          throw new Error("Attempt to auto-create OperationDefinition.publisher");
2840        else if (Configuration.doAutoCreate())
2841          this.publisher = new StringType(); // bb
2842      return this.publisher;
2843    }
2844
2845    public boolean hasPublisherElement() { 
2846      return this.publisher != null && !this.publisher.isEmpty();
2847    }
2848
2849    public boolean hasPublisher() { 
2850      return this.publisher != null && !this.publisher.isEmpty();
2851    }
2852
2853    /**
2854     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
2855     */
2856    public OperationDefinition setPublisherElement(StringType value) { 
2857      this.publisher = value;
2858      return this;
2859    }
2860
2861    /**
2862     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.
2863     */
2864    public String getPublisher() { 
2865      return this.publisher == null ? null : this.publisher.getValue();
2866    }
2867
2868    /**
2869     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.
2870     */
2871    public OperationDefinition setPublisher(String value) { 
2872      if (Utilities.noString(value))
2873        this.publisher = null;
2874      else {
2875        if (this.publisher == null)
2876          this.publisher = new StringType();
2877        this.publisher.setValue(value);
2878      }
2879      return this;
2880    }
2881
2882    /**
2883     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
2884     */
2885    public List<ContactDetail> getContact() { 
2886      if (this.contact == null)
2887        this.contact = new ArrayList<ContactDetail>();
2888      return this.contact;
2889    }
2890
2891    /**
2892     * @return Returns a reference to <code>this</code> for easy method chaining
2893     */
2894    public OperationDefinition setContact(List<ContactDetail> theContact) { 
2895      this.contact = theContact;
2896      return this;
2897    }
2898
2899    public boolean hasContact() { 
2900      if (this.contact == null)
2901        return false;
2902      for (ContactDetail item : this.contact)
2903        if (!item.isEmpty())
2904          return true;
2905      return false;
2906    }
2907
2908    public ContactDetail addContact() { //3
2909      ContactDetail t = new ContactDetail();
2910      if (this.contact == null)
2911        this.contact = new ArrayList<ContactDetail>();
2912      this.contact.add(t);
2913      return t;
2914    }
2915
2916    public OperationDefinition addContact(ContactDetail t) { //3
2917      if (t == null)
2918        return this;
2919      if (this.contact == null)
2920        this.contact = new ArrayList<ContactDetail>();
2921      this.contact.add(t);
2922      return this;
2923    }
2924
2925    /**
2926     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
2927     */
2928    public ContactDetail getContactFirstRep() { 
2929      if (getContact().isEmpty()) {
2930        addContact();
2931      }
2932      return getContact().get(0);
2933    }
2934
2935    /**
2936     * @return {@link #description} (A free text natural language description of the operation definition from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2937     */
2938    public MarkdownType getDescriptionElement() { 
2939      if (this.description == null)
2940        if (Configuration.errorOnAutoCreate())
2941          throw new Error("Attempt to auto-create OperationDefinition.description");
2942        else if (Configuration.doAutoCreate())
2943          this.description = new MarkdownType(); // bb
2944      return this.description;
2945    }
2946
2947    public boolean hasDescriptionElement() { 
2948      return this.description != null && !this.description.isEmpty();
2949    }
2950
2951    public boolean hasDescription() { 
2952      return this.description != null && !this.description.isEmpty();
2953    }
2954
2955    /**
2956     * @param value {@link #description} (A free text natural language description of the operation definition from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2957     */
2958    public OperationDefinition setDescriptionElement(MarkdownType value) { 
2959      this.description = value;
2960      return this;
2961    }
2962
2963    /**
2964     * @return A free text natural language description of the operation definition from a consumer's perspective.
2965     */
2966    public String getDescription() { 
2967      return this.description == null ? null : this.description.getValue();
2968    }
2969
2970    /**
2971     * @param value A free text natural language description of the operation definition from a consumer's perspective.
2972     */
2973    public OperationDefinition setDescription(String value) { 
2974      if (Utilities.noString(value))
2975        this.description = null;
2976      else {
2977        if (this.description == null)
2978          this.description = new MarkdownType();
2979        this.description.setValue(value);
2980      }
2981      return this;
2982    }
2983
2984    /**
2985     * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition.)
2986     */
2987    public List<UsageContext> getUseContext() { 
2988      if (this.useContext == null)
2989        this.useContext = new ArrayList<UsageContext>();
2990      return this.useContext;
2991    }
2992
2993    /**
2994     * @return Returns a reference to <code>this</code> for easy method chaining
2995     */
2996    public OperationDefinition setUseContext(List<UsageContext> theUseContext) { 
2997      this.useContext = theUseContext;
2998      return this;
2999    }
3000
3001    public boolean hasUseContext() { 
3002      if (this.useContext == null)
3003        return false;
3004      for (UsageContext item : this.useContext)
3005        if (!item.isEmpty())
3006          return true;
3007      return false;
3008    }
3009
3010    public UsageContext addUseContext() { //3
3011      UsageContext t = new UsageContext();
3012      if (this.useContext == null)
3013        this.useContext = new ArrayList<UsageContext>();
3014      this.useContext.add(t);
3015      return t;
3016    }
3017
3018    public OperationDefinition addUseContext(UsageContext t) { //3
3019      if (t == null)
3020        return this;
3021      if (this.useContext == null)
3022        this.useContext = new ArrayList<UsageContext>();
3023      this.useContext.add(t);
3024      return this;
3025    }
3026
3027    /**
3028     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
3029     */
3030    public UsageContext getUseContextFirstRep() { 
3031      if (getUseContext().isEmpty()) {
3032        addUseContext();
3033      }
3034      return getUseContext().get(0);
3035    }
3036
3037    /**
3038     * @return {@link #jurisdiction} (A legal or geographic region in which the operation definition is intended to be used.)
3039     */
3040    public List<CodeableConcept> getJurisdiction() { 
3041      if (this.jurisdiction == null)
3042        this.jurisdiction = new ArrayList<CodeableConcept>();
3043      return this.jurisdiction;
3044    }
3045
3046    /**
3047     * @return Returns a reference to <code>this</code> for easy method chaining
3048     */
3049    public OperationDefinition setJurisdiction(List<CodeableConcept> theJurisdiction) { 
3050      this.jurisdiction = theJurisdiction;
3051      return this;
3052    }
3053
3054    public boolean hasJurisdiction() { 
3055      if (this.jurisdiction == null)
3056        return false;
3057      for (CodeableConcept item : this.jurisdiction)
3058        if (!item.isEmpty())
3059          return true;
3060      return false;
3061    }
3062
3063    public CodeableConcept addJurisdiction() { //3
3064      CodeableConcept t = new CodeableConcept();
3065      if (this.jurisdiction == null)
3066        this.jurisdiction = new ArrayList<CodeableConcept>();
3067      this.jurisdiction.add(t);
3068      return t;
3069    }
3070
3071    public OperationDefinition addJurisdiction(CodeableConcept t) { //3
3072      if (t == null)
3073        return this;
3074      if (this.jurisdiction == null)
3075        this.jurisdiction = new ArrayList<CodeableConcept>();
3076      this.jurisdiction.add(t);
3077      return this;
3078    }
3079
3080    /**
3081     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
3082     */
3083    public CodeableConcept getJurisdictionFirstRep() { 
3084      if (getJurisdiction().isEmpty()) {
3085        addJurisdiction();
3086      }
3087      return getJurisdiction().get(0);
3088    }
3089
3090    /**
3091     * @return {@link #purpose} (Explanation of why this operation definition is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
3092     */
3093    public MarkdownType getPurposeElement() { 
3094      if (this.purpose == null)
3095        if (Configuration.errorOnAutoCreate())
3096          throw new Error("Attempt to auto-create OperationDefinition.purpose");
3097        else if (Configuration.doAutoCreate())
3098          this.purpose = new MarkdownType(); // bb
3099      return this.purpose;
3100    }
3101
3102    public boolean hasPurposeElement() { 
3103      return this.purpose != null && !this.purpose.isEmpty();
3104    }
3105
3106    public boolean hasPurpose() { 
3107      return this.purpose != null && !this.purpose.isEmpty();
3108    }
3109
3110    /**
3111     * @param value {@link #purpose} (Explanation of why this operation definition is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
3112     */
3113    public OperationDefinition setPurposeElement(MarkdownType value) { 
3114      this.purpose = value;
3115      return this;
3116    }
3117
3118    /**
3119     * @return Explanation of why this operation definition is needed and why it has been designed as it has.
3120     */
3121    public String getPurpose() { 
3122      return this.purpose == null ? null : this.purpose.getValue();
3123    }
3124
3125    /**
3126     * @param value Explanation of why this operation definition is needed and why it has been designed as it has.
3127     */
3128    public OperationDefinition setPurpose(String value) { 
3129      if (Utilities.noString(value))
3130        this.purpose = null;
3131      else {
3132        if (this.purpose == null)
3133          this.purpose = new MarkdownType();
3134        this.purpose.setValue(value);
3135      }
3136      return this;
3137    }
3138
3139    /**
3140     * @return {@link #copyright} (A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
3141     */
3142    public MarkdownType getCopyrightElement() { 
3143      if (this.copyright == null)
3144        if (Configuration.errorOnAutoCreate())
3145          throw new Error("Attempt to auto-create OperationDefinition.copyright");
3146        else if (Configuration.doAutoCreate())
3147          this.copyright = new MarkdownType(); // bb
3148      return this.copyright;
3149    }
3150
3151    public boolean hasCopyrightElement() { 
3152      return this.copyright != null && !this.copyright.isEmpty();
3153    }
3154
3155    public boolean hasCopyright() { 
3156      return this.copyright != null && !this.copyright.isEmpty();
3157    }
3158
3159    /**
3160     * @param value {@link #copyright} (A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
3161     */
3162    public OperationDefinition setCopyrightElement(MarkdownType value) { 
3163      this.copyright = value;
3164      return this;
3165    }
3166
3167    /**
3168     * @return A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.
3169     */
3170    public String getCopyright() { 
3171      return this.copyright == null ? null : this.copyright.getValue();
3172    }
3173
3174    /**
3175     * @param value A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.
3176     */
3177    public OperationDefinition setCopyright(String value) { 
3178      if (Utilities.noString(value))
3179        this.copyright = null;
3180      else {
3181        if (this.copyright == null)
3182          this.copyright = new MarkdownType();
3183        this.copyright.setValue(value);
3184      }
3185      return this;
3186    }
3187
3188    /**
3189     * @return {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
3190     */
3191    public StringType getCopyrightLabelElement() { 
3192      if (this.copyrightLabel == null)
3193        if (Configuration.errorOnAutoCreate())
3194          throw new Error("Attempt to auto-create OperationDefinition.copyrightLabel");
3195        else if (Configuration.doAutoCreate())
3196          this.copyrightLabel = new StringType(); // bb
3197      return this.copyrightLabel;
3198    }
3199
3200    public boolean hasCopyrightLabelElement() { 
3201      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
3202    }
3203
3204    public boolean hasCopyrightLabel() { 
3205      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
3206    }
3207
3208    /**
3209     * @param value {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
3210     */
3211    public OperationDefinition setCopyrightLabelElement(StringType value) { 
3212      this.copyrightLabel = value;
3213      return this;
3214    }
3215
3216    /**
3217     * @return A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
3218     */
3219    public String getCopyrightLabel() { 
3220      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
3221    }
3222
3223    /**
3224     * @param value A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
3225     */
3226    public OperationDefinition setCopyrightLabel(String value) { 
3227      if (Utilities.noString(value))
3228        this.copyrightLabel = null;
3229      else {
3230        if (this.copyrightLabel == null)
3231          this.copyrightLabel = new StringType();
3232        this.copyrightLabel.setValue(value);
3233      }
3234      return this;
3235    }
3236
3237    /**
3238     * @return {@link #affectsState} (Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.). This is the underlying object with id, value and extensions. The accessor "getAffectsState" gives direct access to the value
3239     */
3240    public BooleanType getAffectsStateElement() { 
3241      if (this.affectsState == null)
3242        if (Configuration.errorOnAutoCreate())
3243          throw new Error("Attempt to auto-create OperationDefinition.affectsState");
3244        else if (Configuration.doAutoCreate())
3245          this.affectsState = new BooleanType(); // bb
3246      return this.affectsState;
3247    }
3248
3249    public boolean hasAffectsStateElement() { 
3250      return this.affectsState != null && !this.affectsState.isEmpty();
3251    }
3252
3253    public boolean hasAffectsState() { 
3254      return this.affectsState != null && !this.affectsState.isEmpty();
3255    }
3256
3257    /**
3258     * @param value {@link #affectsState} (Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.). This is the underlying object with id, value and extensions. The accessor "getAffectsState" gives direct access to the value
3259     */
3260    public OperationDefinition setAffectsStateElement(BooleanType value) { 
3261      this.affectsState = value;
3262      return this;
3263    }
3264
3265    /**
3266     * @return Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.
3267     */
3268    public boolean getAffectsState() { 
3269      return this.affectsState == null || this.affectsState.isEmpty() ? false : this.affectsState.getValue();
3270    }
3271
3272    /**
3273     * @param value Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.
3274     */
3275    public OperationDefinition setAffectsState(boolean value) { 
3276        if (this.affectsState == null)
3277          this.affectsState = new BooleanType();
3278        this.affectsState.setValue(value);
3279      return this;
3280    }
3281
3282    /**
3283     * @return {@link #code} (The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
3284     */
3285    public CodeType getCodeElement() { 
3286      if (this.code == null)
3287        if (Configuration.errorOnAutoCreate())
3288          throw new Error("Attempt to auto-create OperationDefinition.code");
3289        else if (Configuration.doAutoCreate())
3290          this.code = new CodeType(); // bb
3291      return this.code;
3292    }
3293
3294    public boolean hasCodeElement() { 
3295      return this.code != null && !this.code.isEmpty();
3296    }
3297
3298    public boolean hasCode() { 
3299      return this.code != null && !this.code.isEmpty();
3300    }
3301
3302    /**
3303     * @param value {@link #code} (The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
3304     */
3305    public OperationDefinition setCodeElement(CodeType value) { 
3306      this.code = value;
3307      return this;
3308    }
3309
3310    /**
3311     * @return The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.
3312     */
3313    public String getCode() { 
3314      return this.code == null ? null : this.code.getValue();
3315    }
3316
3317    /**
3318     * @param value The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.
3319     */
3320    public OperationDefinition setCode(String value) { 
3321        if (this.code == null)
3322          this.code = new CodeType();
3323        this.code.setValue(value);
3324      return this;
3325    }
3326
3327    /**
3328     * @return {@link #comment} (Additional information about how to use this operation or named query.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
3329     */
3330    public MarkdownType getCommentElement() { 
3331      if (this.comment == null)
3332        if (Configuration.errorOnAutoCreate())
3333          throw new Error("Attempt to auto-create OperationDefinition.comment");
3334        else if (Configuration.doAutoCreate())
3335          this.comment = new MarkdownType(); // bb
3336      return this.comment;
3337    }
3338
3339    public boolean hasCommentElement() { 
3340      return this.comment != null && !this.comment.isEmpty();
3341    }
3342
3343    public boolean hasComment() { 
3344      return this.comment != null && !this.comment.isEmpty();
3345    }
3346
3347    /**
3348     * @param value {@link #comment} (Additional information about how to use this operation or named query.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value
3349     */
3350    public OperationDefinition setCommentElement(MarkdownType value) { 
3351      this.comment = value;
3352      return this;
3353    }
3354
3355    /**
3356     * @return Additional information about how to use this operation or named query.
3357     */
3358    public String getComment() { 
3359      return this.comment == null ? null : this.comment.getValue();
3360    }
3361
3362    /**
3363     * @param value Additional information about how to use this operation or named query.
3364     */
3365    public OperationDefinition setComment(String value) { 
3366      if (Utilities.noString(value))
3367        this.comment = null;
3368      else {
3369        if (this.comment == null)
3370          this.comment = new MarkdownType();
3371        this.comment.setValue(value);
3372      }
3373      return this;
3374    }
3375
3376    /**
3377     * @return {@link #base} (Indicates that this operation definition is a constraining profile on the base.). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value
3378     */
3379    public CanonicalType getBaseElement() { 
3380      if (this.base == null)
3381        if (Configuration.errorOnAutoCreate())
3382          throw new Error("Attempt to auto-create OperationDefinition.base");
3383        else if (Configuration.doAutoCreate())
3384          this.base = new CanonicalType(); // bb
3385      return this.base;
3386    }
3387
3388    public boolean hasBaseElement() { 
3389      return this.base != null && !this.base.isEmpty();
3390    }
3391
3392    public boolean hasBase() { 
3393      return this.base != null && !this.base.isEmpty();
3394    }
3395
3396    /**
3397     * @param value {@link #base} (Indicates that this operation definition is a constraining profile on the base.). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value
3398     */
3399    public OperationDefinition setBaseElement(CanonicalType value) { 
3400      this.base = value;
3401      return this;
3402    }
3403
3404    /**
3405     * @return Indicates that this operation definition is a constraining profile on the base.
3406     */
3407    public String getBase() { 
3408      return this.base == null ? null : this.base.getValue();
3409    }
3410
3411    /**
3412     * @param value Indicates that this operation definition is a constraining profile on the base.
3413     */
3414    public OperationDefinition setBase(String value) { 
3415      if (Utilities.noString(value))
3416        this.base = null;
3417      else {
3418        if (this.base == null)
3419          this.base = new CanonicalType();
3420        this.base.setValue(value);
3421      }
3422      return this;
3423    }
3424
3425    /**
3426     * @return {@link #resource} (The types on which this operation can be executed.)
3427     */
3428    public List<Enumeration<VersionIndependentResourceTypesAll>> getResource() { 
3429      if (this.resource == null)
3430        this.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
3431      return this.resource;
3432    }
3433
3434    /**
3435     * @return Returns a reference to <code>this</code> for easy method chaining
3436     */
3437    public OperationDefinition setResource(List<Enumeration<VersionIndependentResourceTypesAll>> theResource) { 
3438      this.resource = theResource;
3439      return this;
3440    }
3441
3442    public boolean hasResource() { 
3443      if (this.resource == null)
3444        return false;
3445      for (Enumeration<VersionIndependentResourceTypesAll> item : this.resource)
3446        if (!item.isEmpty())
3447          return true;
3448      return false;
3449    }
3450
3451    /**
3452     * @return {@link #resource} (The types on which this operation can be executed.)
3453     */
3454    public Enumeration<VersionIndependentResourceTypesAll> addResourceElement() {//2 
3455      Enumeration<VersionIndependentResourceTypesAll> t = new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory());
3456      if (this.resource == null)
3457        this.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
3458      this.resource.add(t);
3459      return t;
3460    }
3461
3462    /**
3463     * @param value {@link #resource} (The types on which this operation can be executed.)
3464     */
3465    public OperationDefinition addResource(VersionIndependentResourceTypesAll value) { //1
3466      Enumeration<VersionIndependentResourceTypesAll> t = new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory());
3467      t.setValue(value);
3468      if (this.resource == null)
3469        this.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
3470      this.resource.add(t);
3471      return this;
3472    }
3473
3474    /**
3475     * @param value {@link #resource} (The types on which this operation can be executed.)
3476     */
3477    public boolean hasResource(VersionIndependentResourceTypesAll value) { 
3478      if (this.resource == null)
3479        return false;
3480      for (Enumeration<VersionIndependentResourceTypesAll> v : this.resource)
3481        if (v.getValue().equals(value)) // code
3482          return true;
3483      return false;
3484    }
3485
3486    /**
3487     * @return {@link #system} (Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value
3488     */
3489    public BooleanType getSystemElement() { 
3490      if (this.system == null)
3491        if (Configuration.errorOnAutoCreate())
3492          throw new Error("Attempt to auto-create OperationDefinition.system");
3493        else if (Configuration.doAutoCreate())
3494          this.system = new BooleanType(); // bb
3495      return this.system;
3496    }
3497
3498    public boolean hasSystemElement() { 
3499      return this.system != null && !this.system.isEmpty();
3500    }
3501
3502    public boolean hasSystem() { 
3503      return this.system != null && !this.system.isEmpty();
3504    }
3505
3506    /**
3507     * @param value {@link #system} (Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value
3508     */
3509    public OperationDefinition setSystemElement(BooleanType value) { 
3510      this.system = value;
3511      return this;
3512    }
3513
3514    /**
3515     * @return Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).
3516     */
3517    public boolean getSystem() { 
3518      return this.system == null || this.system.isEmpty() ? false : this.system.getValue();
3519    }
3520
3521    /**
3522     * @param value Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).
3523     */
3524    public OperationDefinition setSystem(boolean value) { 
3525        if (this.system == null)
3526          this.system = new BooleanType();
3527        this.system.setValue(value);
3528      return this;
3529    }
3530
3531    /**
3532     * @return {@link #type} (Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
3533     */
3534    public BooleanType getTypeElement() { 
3535      if (this.type == null)
3536        if (Configuration.errorOnAutoCreate())
3537          throw new Error("Attempt to auto-create OperationDefinition.type");
3538        else if (Configuration.doAutoCreate())
3539          this.type = new BooleanType(); // bb
3540      return this.type;
3541    }
3542
3543    public boolean hasTypeElement() { 
3544      return this.type != null && !this.type.isEmpty();
3545    }
3546
3547    public boolean hasType() { 
3548      return this.type != null && !this.type.isEmpty();
3549    }
3550
3551    /**
3552     * @param value {@link #type} (Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
3553     */
3554    public OperationDefinition setTypeElement(BooleanType value) { 
3555      this.type = value;
3556      return this;
3557    }
3558
3559    /**
3560     * @return Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).
3561     */
3562    public boolean getType() { 
3563      return this.type == null || this.type.isEmpty() ? false : this.type.getValue();
3564    }
3565
3566    /**
3567     * @param value Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).
3568     */
3569    public OperationDefinition setType(boolean value) { 
3570        if (this.type == null)
3571          this.type = new BooleanType();
3572        this.type.setValue(value);
3573      return this;
3574    }
3575
3576    /**
3577     * @return {@link #instance} (Indicates whether this operation can be invoked on a particular instance of one of the given types.). This is the underlying object with id, value and extensions. The accessor "getInstance" gives direct access to the value
3578     */
3579    public BooleanType getInstanceElement() { 
3580      if (this.instance == null)
3581        if (Configuration.errorOnAutoCreate())
3582          throw new Error("Attempt to auto-create OperationDefinition.instance");
3583        else if (Configuration.doAutoCreate())
3584          this.instance = new BooleanType(); // bb
3585      return this.instance;
3586    }
3587
3588    public boolean hasInstanceElement() { 
3589      return this.instance != null && !this.instance.isEmpty();
3590    }
3591
3592    public boolean hasInstance() { 
3593      return this.instance != null && !this.instance.isEmpty();
3594    }
3595
3596    /**
3597     * @param value {@link #instance} (Indicates whether this operation can be invoked on a particular instance of one of the given types.). This is the underlying object with id, value and extensions. The accessor "getInstance" gives direct access to the value
3598     */
3599    public OperationDefinition setInstanceElement(BooleanType value) { 
3600      this.instance = value;
3601      return this;
3602    }
3603
3604    /**
3605     * @return Indicates whether this operation can be invoked on a particular instance of one of the given types.
3606     */
3607    public boolean getInstance() { 
3608      return this.instance == null || this.instance.isEmpty() ? false : this.instance.getValue();
3609    }
3610
3611    /**
3612     * @param value Indicates whether this operation can be invoked on a particular instance of one of the given types.
3613     */
3614    public OperationDefinition setInstance(boolean value) { 
3615        if (this.instance == null)
3616          this.instance = new BooleanType();
3617        this.instance.setValue(value);
3618      return this;
3619    }
3620
3621    /**
3622     * @return {@link #inputProfile} (Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.). This is the underlying object with id, value and extensions. The accessor "getInputProfile" gives direct access to the value
3623     */
3624    public CanonicalType getInputProfileElement() { 
3625      if (this.inputProfile == null)
3626        if (Configuration.errorOnAutoCreate())
3627          throw new Error("Attempt to auto-create OperationDefinition.inputProfile");
3628        else if (Configuration.doAutoCreate())
3629          this.inputProfile = new CanonicalType(); // bb
3630      return this.inputProfile;
3631    }
3632
3633    public boolean hasInputProfileElement() { 
3634      return this.inputProfile != null && !this.inputProfile.isEmpty();
3635    }
3636
3637    public boolean hasInputProfile() { 
3638      return this.inputProfile != null && !this.inputProfile.isEmpty();
3639    }
3640
3641    /**
3642     * @param value {@link #inputProfile} (Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.). This is the underlying object with id, value and extensions. The accessor "getInputProfile" gives direct access to the value
3643     */
3644    public OperationDefinition setInputProfileElement(CanonicalType value) { 
3645      this.inputProfile = value;
3646      return this;
3647    }
3648
3649    /**
3650     * @return Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.
3651     */
3652    public String getInputProfile() { 
3653      return this.inputProfile == null ? null : this.inputProfile.getValue();
3654    }
3655
3656    /**
3657     * @param value Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.
3658     */
3659    public OperationDefinition setInputProfile(String value) { 
3660      if (Utilities.noString(value))
3661        this.inputProfile = null;
3662      else {
3663        if (this.inputProfile == null)
3664          this.inputProfile = new CanonicalType();
3665        this.inputProfile.setValue(value);
3666      }
3667      return this;
3668    }
3669
3670    /**
3671     * @return {@link #outputProfile} (Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.). This is the underlying object with id, value and extensions. The accessor "getOutputProfile" gives direct access to the value
3672     */
3673    public CanonicalType getOutputProfileElement() { 
3674      if (this.outputProfile == null)
3675        if (Configuration.errorOnAutoCreate())
3676          throw new Error("Attempt to auto-create OperationDefinition.outputProfile");
3677        else if (Configuration.doAutoCreate())
3678          this.outputProfile = new CanonicalType(); // bb
3679      return this.outputProfile;
3680    }
3681
3682    public boolean hasOutputProfileElement() { 
3683      return this.outputProfile != null && !this.outputProfile.isEmpty();
3684    }
3685
3686    public boolean hasOutputProfile() { 
3687      return this.outputProfile != null && !this.outputProfile.isEmpty();
3688    }
3689
3690    /**
3691     * @param value {@link #outputProfile} (Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.). This is the underlying object with id, value and extensions. The accessor "getOutputProfile" gives direct access to the value
3692     */
3693    public OperationDefinition setOutputProfileElement(CanonicalType value) { 
3694      this.outputProfile = value;
3695      return this;
3696    }
3697
3698    /**
3699     * @return Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.
3700     */
3701    public String getOutputProfile() { 
3702      return this.outputProfile == null ? null : this.outputProfile.getValue();
3703    }
3704
3705    /**
3706     * @param value Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.
3707     */
3708    public OperationDefinition setOutputProfile(String value) { 
3709      if (Utilities.noString(value))
3710        this.outputProfile = null;
3711      else {
3712        if (this.outputProfile == null)
3713          this.outputProfile = new CanonicalType();
3714        this.outputProfile.setValue(value);
3715      }
3716      return this;
3717    }
3718
3719    /**
3720     * @return {@link #parameter} (The parameters for the operation/query.)
3721     */
3722    public List<OperationDefinitionParameterComponent> getParameter() { 
3723      if (this.parameter == null)
3724        this.parameter = new ArrayList<OperationDefinitionParameterComponent>();
3725      return this.parameter;
3726    }
3727
3728    /**
3729     * @return Returns a reference to <code>this</code> for easy method chaining
3730     */
3731    public OperationDefinition setParameter(List<OperationDefinitionParameterComponent> theParameter) { 
3732      this.parameter = theParameter;
3733      return this;
3734    }
3735
3736    public boolean hasParameter() { 
3737      if (this.parameter == null)
3738        return false;
3739      for (OperationDefinitionParameterComponent item : this.parameter)
3740        if (!item.isEmpty())
3741          return true;
3742      return false;
3743    }
3744
3745    public OperationDefinitionParameterComponent addParameter() { //3
3746      OperationDefinitionParameterComponent t = new OperationDefinitionParameterComponent();
3747      if (this.parameter == null)
3748        this.parameter = new ArrayList<OperationDefinitionParameterComponent>();
3749      this.parameter.add(t);
3750      return t;
3751    }
3752
3753    public OperationDefinition addParameter(OperationDefinitionParameterComponent t) { //3
3754      if (t == null)
3755        return this;
3756      if (this.parameter == null)
3757        this.parameter = new ArrayList<OperationDefinitionParameterComponent>();
3758      this.parameter.add(t);
3759      return this;
3760    }
3761
3762    /**
3763     * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
3764     */
3765    public OperationDefinitionParameterComponent getParameterFirstRep() { 
3766      if (getParameter().isEmpty()) {
3767        addParameter();
3768      }
3769      return getParameter().get(0);
3770    }
3771
3772    /**
3773     * @return {@link #overload} (Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.)
3774     */
3775    public List<OperationDefinitionOverloadComponent> getOverload() { 
3776      if (this.overload == null)
3777        this.overload = new ArrayList<OperationDefinitionOverloadComponent>();
3778      return this.overload;
3779    }
3780
3781    /**
3782     * @return Returns a reference to <code>this</code> for easy method chaining
3783     */
3784    public OperationDefinition setOverload(List<OperationDefinitionOverloadComponent> theOverload) { 
3785      this.overload = theOverload;
3786      return this;
3787    }
3788
3789    public boolean hasOverload() { 
3790      if (this.overload == null)
3791        return false;
3792      for (OperationDefinitionOverloadComponent item : this.overload)
3793        if (!item.isEmpty())
3794          return true;
3795      return false;
3796    }
3797
3798    public OperationDefinitionOverloadComponent addOverload() { //3
3799      OperationDefinitionOverloadComponent t = new OperationDefinitionOverloadComponent();
3800      if (this.overload == null)
3801        this.overload = new ArrayList<OperationDefinitionOverloadComponent>();
3802      this.overload.add(t);
3803      return t;
3804    }
3805
3806    public OperationDefinition addOverload(OperationDefinitionOverloadComponent t) { //3
3807      if (t == null)
3808        return this;
3809      if (this.overload == null)
3810        this.overload = new ArrayList<OperationDefinitionOverloadComponent>();
3811      this.overload.add(t);
3812      return this;
3813    }
3814
3815    /**
3816     * @return The first repetition of repeating field {@link #overload}, creating it if it does not already exist {3}
3817     */
3818    public OperationDefinitionOverloadComponent getOverloadFirstRep() { 
3819      if (getOverload().isEmpty()) {
3820        addOverload();
3821      }
3822      return getOverload().get(0);
3823    }
3824
3825      protected void listChildren(List<Property> children) {
3826        super.listChildren(children);
3827        children.add(new Property("url", "uri", "An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.", 0, 1, url));
3828        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
3829        children.add(new Property("version", "string", "The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
3830        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
3831        children.add(new Property("name", "string", "A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
3832        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the operation definition.", 0, 1, title));
3833        children.add(new Property("status", "code", "The current state of this operation definition.", 0, 1, status));
3834        children.add(new Property("kind", "code", "Whether this is an operation or a named query.", 0, 1, kind));
3835        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.", 0, 1, experimental));
3836        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.", 0, 1, date));
3837        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.", 0, 1, publisher));
3838        children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact));
3839        children.add(new Property("description", "markdown", "A free text natural language description of the operation definition from a consumer's perspective.", 0, 1, description));
3840        children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition.", 0, java.lang.Integer.MAX_VALUE, useContext));
3841        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the operation definition is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
3842        children.add(new Property("purpose", "markdown", "Explanation of why this operation definition is needed and why it has been designed as it has.", 0, 1, purpose));
3843        children.add(new Property("copyright", "markdown", "A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.", 0, 1, copyright));
3844        children.add(new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel));
3845        children.add(new Property("affectsState", "boolean", "Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.", 0, 1, affectsState));
3846        children.add(new Property("code", "code", "The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.", 0, 1, code));
3847        children.add(new Property("comment", "markdown", "Additional information about how to use this operation or named query.", 0, 1, comment));
3848        children.add(new Property("base", "canonical(OperationDefinition)", "Indicates that this operation definition is a constraining profile on the base.", 0, 1, base));
3849        children.add(new Property("resource", "code", "The types on which this operation can be executed.", 0, java.lang.Integer.MAX_VALUE, resource));
3850        children.add(new Property("system", "boolean", "Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).", 0, 1, system));
3851        children.add(new Property("type", "boolean", "Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).", 0, 1, type));
3852        children.add(new Property("instance", "boolean", "Indicates whether this operation can be invoked on a particular instance of one of the given types.", 0, 1, instance));
3853        children.add(new Property("inputProfile", "canonical(StructureDefinition)", "Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.", 0, 1, inputProfile));
3854        children.add(new Property("outputProfile", "canonical(StructureDefinition)", "Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.", 0, 1, outputProfile));
3855        children.add(new Property("parameter", "", "The parameters for the operation/query.", 0, java.lang.Integer.MAX_VALUE, parameter));
3856        children.add(new Property("overload", "", "Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.", 0, java.lang.Integer.MAX_VALUE, overload));
3857      }
3858
3859      @Override
3860      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3861        switch (_hash) {
3862        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers.", 0, 1, url);
3863        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
3864        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
3865        case -115699031: /*versionAlgorithm[x]*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
3866        case 1508158071: /*versionAlgorithm*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
3867        case 1836908904: /*versionAlgorithmString*/  return new Property("versionAlgorithm[x]", "string", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
3868        case 1373807809: /*versionAlgorithmCoding*/  return new Property("versionAlgorithm[x]", "Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
3869        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
3870        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the operation definition.", 0, 1, title);
3871        case -892481550: /*status*/  return new Property("status", "code", "The current state of this operation definition.", 0, 1, status);
3872        case 3292052: /*kind*/  return new Property("kind", "code", "Whether this is an operation or a named query.", 0, 1, kind);
3873        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended for genuine usage.", 0, 1, experimental);
3874        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the operation definition was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes.", 0, 1, date);
3875        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.", 0, 1, publisher);
3876        case 951526432: /*contact*/  return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact);
3877        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the operation definition from a consumer's perspective.", 0, 1, description);
3878        case -669707736: /*useContext*/  return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition.", 0, java.lang.Integer.MAX_VALUE, useContext);
3879        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the operation definition is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
3880        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this operation definition is needed and why it has been designed as it has.", 0, 1, purpose);
3881        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the operation definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the operation definition.", 0, 1, copyright);
3882        case 765157229: /*copyrightLabel*/  return new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel);
3883        case -14805197: /*affectsState*/  return new Property("affectsState", "boolean", "Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.", 0, 1, affectsState);
3884        case 3059181: /*code*/  return new Property("code", "code", "The label that is recommended to be used in the URL for this operation. In some cases, servers may need to use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the same code.", 0, 1, code);
3885        case 950398559: /*comment*/  return new Property("comment", "markdown", "Additional information about how to use this operation or named query.", 0, 1, comment);
3886        case 3016401: /*base*/  return new Property("base", "canonical(OperationDefinition)", "Indicates that this operation definition is a constraining profile on the base.", 0, 1, base);
3887        case -341064690: /*resource*/  return new Property("resource", "code", "The types on which this operation can be executed.", 0, java.lang.Integer.MAX_VALUE, resource);
3888        case -887328209: /*system*/  return new Property("system", "boolean", "Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context).", 0, 1, system);
3889        case 3575610: /*type*/  return new Property("type", "boolean", "Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context).", 0, 1, type);
3890        case 555127957: /*instance*/  return new Property("instance", "boolean", "Indicates whether this operation can be invoked on a particular instance of one of the given types.", 0, 1, instance);
3891        case 676942463: /*inputProfile*/  return new Property("inputProfile", "canonical(StructureDefinition)", "Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole.", 0, 1, inputProfile);
3892        case 1826166120: /*outputProfile*/  return new Property("outputProfile", "canonical(StructureDefinition)", "Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.", 0, 1, outputProfile);
3893        case 1954460585: /*parameter*/  return new Property("parameter", "", "The parameters for the operation/query.", 0, java.lang.Integer.MAX_VALUE, parameter);
3894        case 529823674: /*overload*/  return new Property("overload", "", "Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.", 0, java.lang.Integer.MAX_VALUE, overload);
3895        default: return super.getNamedProperty(_hash, _name, _checkValid);
3896        }
3897
3898      }
3899
3900      @Override
3901      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3902        switch (hash) {
3903        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
3904        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
3905        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
3906        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
3907        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
3908        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
3909        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
3910        case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // Enumeration<OperationKind>
3911        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
3912        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
3913        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
3914        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
3915        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
3916        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
3917        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
3918        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
3919        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
3920        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
3921        case -14805197: /*affectsState*/ return this.affectsState == null ? new Base[0] : new Base[] {this.affectsState}; // BooleanType
3922        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
3923        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // MarkdownType
3924        case 3016401: /*base*/ return this.base == null ? new Base[0] : new Base[] {this.base}; // CanonicalType
3925        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // Enumeration<VersionIndependentResourceTypesAll>
3926        case -887328209: /*system*/ return this.system == null ? new Base[0] : new Base[] {this.system}; // BooleanType
3927        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // BooleanType
3928        case 555127957: /*instance*/ return this.instance == null ? new Base[0] : new Base[] {this.instance}; // BooleanType
3929        case 676942463: /*inputProfile*/ return this.inputProfile == null ? new Base[0] : new Base[] {this.inputProfile}; // CanonicalType
3930        case 1826166120: /*outputProfile*/ return this.outputProfile == null ? new Base[0] : new Base[] {this.outputProfile}; // CanonicalType
3931        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // OperationDefinitionParameterComponent
3932        case 529823674: /*overload*/ return this.overload == null ? new Base[0] : this.overload.toArray(new Base[this.overload.size()]); // OperationDefinitionOverloadComponent
3933        default: return super.getProperty(hash, name, checkValid);
3934        }
3935
3936      }
3937
3938      @Override
3939      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3940        switch (hash) {
3941        case 116079: // url
3942          this.url = TypeConvertor.castToUri(value); // UriType
3943          return value;
3944        case -1618432855: // identifier
3945          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
3946          return value;
3947        case 351608024: // version
3948          this.version = TypeConvertor.castToString(value); // StringType
3949          return value;
3950        case 1508158071: // versionAlgorithm
3951          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
3952          return value;
3953        case 3373707: // name
3954          this.name = TypeConvertor.castToString(value); // StringType
3955          return value;
3956        case 110371416: // title
3957          this.title = TypeConvertor.castToString(value); // StringType
3958          return value;
3959        case -892481550: // status
3960          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
3961          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
3962          return value;
3963        case 3292052: // kind
3964          value = new OperationKindEnumFactory().fromType(TypeConvertor.castToCode(value));
3965          this.kind = (Enumeration) value; // Enumeration<OperationKind>
3966          return value;
3967        case -404562712: // experimental
3968          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
3969          return value;
3970        case 3076014: // date
3971          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
3972          return value;
3973        case 1447404028: // publisher
3974          this.publisher = TypeConvertor.castToString(value); // StringType
3975          return value;
3976        case 951526432: // contact
3977          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
3978          return value;
3979        case -1724546052: // description
3980          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
3981          return value;
3982        case -669707736: // useContext
3983          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
3984          return value;
3985        case -507075711: // jurisdiction
3986          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
3987          return value;
3988        case -220463842: // purpose
3989          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
3990          return value;
3991        case 1522889671: // copyright
3992          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
3993          return value;
3994        case 765157229: // copyrightLabel
3995          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
3996          return value;
3997        case -14805197: // affectsState
3998          this.affectsState = TypeConvertor.castToBoolean(value); // BooleanType
3999          return value;
4000        case 3059181: // code
4001          this.code = TypeConvertor.castToCode(value); // CodeType
4002          return value;
4003        case 950398559: // comment
4004          this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType
4005          return value;
4006        case 3016401: // base
4007          this.base = TypeConvertor.castToCanonical(value); // CanonicalType
4008          return value;
4009        case -341064690: // resource
4010          value = new VersionIndependentResourceTypesAllEnumFactory().fromType(TypeConvertor.castToCode(value));
4011          this.getResource().add((Enumeration) value); // Enumeration<VersionIndependentResourceTypesAll>
4012          return value;
4013        case -887328209: // system
4014          this.system = TypeConvertor.castToBoolean(value); // BooleanType
4015          return value;
4016        case 3575610: // type
4017          this.type = TypeConvertor.castToBoolean(value); // BooleanType
4018          return value;
4019        case 555127957: // instance
4020          this.instance = TypeConvertor.castToBoolean(value); // BooleanType
4021          return value;
4022        case 676942463: // inputProfile
4023          this.inputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4024          return value;
4025        case 1826166120: // outputProfile
4026          this.outputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4027          return value;
4028        case 1954460585: // parameter
4029          this.getParameter().add((OperationDefinitionParameterComponent) value); // OperationDefinitionParameterComponent
4030          return value;
4031        case 529823674: // overload
4032          this.getOverload().add((OperationDefinitionOverloadComponent) value); // OperationDefinitionOverloadComponent
4033          return value;
4034        default: return super.setProperty(hash, name, value);
4035        }
4036
4037      }
4038
4039      @Override
4040      public Base setProperty(String name, Base value) throws FHIRException {
4041        if (name.equals("url")) {
4042          this.url = TypeConvertor.castToUri(value); // UriType
4043        } else if (name.equals("identifier")) {
4044          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
4045        } else if (name.equals("version")) {
4046          this.version = TypeConvertor.castToString(value); // StringType
4047        } else if (name.equals("versionAlgorithm[x]")) {
4048          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
4049        } else if (name.equals("name")) {
4050          this.name = TypeConvertor.castToString(value); // StringType
4051        } else if (name.equals("title")) {
4052          this.title = TypeConvertor.castToString(value); // StringType
4053        } else if (name.equals("status")) {
4054          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
4055          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
4056        } else if (name.equals("kind")) {
4057          value = new OperationKindEnumFactory().fromType(TypeConvertor.castToCode(value));
4058          this.kind = (Enumeration) value; // Enumeration<OperationKind>
4059        } else if (name.equals("experimental")) {
4060          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
4061        } else if (name.equals("date")) {
4062          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
4063        } else if (name.equals("publisher")) {
4064          this.publisher = TypeConvertor.castToString(value); // StringType
4065        } else if (name.equals("contact")) {
4066          this.getContact().add(TypeConvertor.castToContactDetail(value));
4067        } else if (name.equals("description")) {
4068          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
4069        } else if (name.equals("useContext")) {
4070          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
4071        } else if (name.equals("jurisdiction")) {
4072          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
4073        } else if (name.equals("purpose")) {
4074          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
4075        } else if (name.equals("copyright")) {
4076          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
4077        } else if (name.equals("copyrightLabel")) {
4078          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
4079        } else if (name.equals("affectsState")) {
4080          this.affectsState = TypeConvertor.castToBoolean(value); // BooleanType
4081        } else if (name.equals("code")) {
4082          this.code = TypeConvertor.castToCode(value); // CodeType
4083        } else if (name.equals("comment")) {
4084          this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType
4085        } else if (name.equals("base")) {
4086          this.base = TypeConvertor.castToCanonical(value); // CanonicalType
4087        } else if (name.equals("resource")) {
4088          value = new VersionIndependentResourceTypesAllEnumFactory().fromType(TypeConvertor.castToCode(value));
4089          this.getResource().add((Enumeration) value);
4090        } else if (name.equals("system")) {
4091          this.system = TypeConvertor.castToBoolean(value); // BooleanType
4092        } else if (name.equals("type")) {
4093          this.type = TypeConvertor.castToBoolean(value); // BooleanType
4094        } else if (name.equals("instance")) {
4095          this.instance = TypeConvertor.castToBoolean(value); // BooleanType
4096        } else if (name.equals("inputProfile")) {
4097          this.inputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4098        } else if (name.equals("outputProfile")) {
4099          this.outputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4100        } else if (name.equals("parameter")) {
4101          this.getParameter().add((OperationDefinitionParameterComponent) value);
4102        } else if (name.equals("overload")) {
4103          this.getOverload().add((OperationDefinitionOverloadComponent) value);
4104        } else
4105          return super.setProperty(name, value);
4106        return value;
4107      }
4108
4109      @Override
4110      public Base makeProperty(int hash, String name) throws FHIRException {
4111        switch (hash) {
4112        case 116079:  return getUrlElement();
4113        case -1618432855:  return addIdentifier(); 
4114        case 351608024:  return getVersionElement();
4115        case -115699031:  return getVersionAlgorithm();
4116        case 1508158071:  return getVersionAlgorithm();
4117        case 3373707:  return getNameElement();
4118        case 110371416:  return getTitleElement();
4119        case -892481550:  return getStatusElement();
4120        case 3292052:  return getKindElement();
4121        case -404562712:  return getExperimentalElement();
4122        case 3076014:  return getDateElement();
4123        case 1447404028:  return getPublisherElement();
4124        case 951526432:  return addContact(); 
4125        case -1724546052:  return getDescriptionElement();
4126        case -669707736:  return addUseContext(); 
4127        case -507075711:  return addJurisdiction(); 
4128        case -220463842:  return getPurposeElement();
4129        case 1522889671:  return getCopyrightElement();
4130        case 765157229:  return getCopyrightLabelElement();
4131        case -14805197:  return getAffectsStateElement();
4132        case 3059181:  return getCodeElement();
4133        case 950398559:  return getCommentElement();
4134        case 3016401:  return getBaseElement();
4135        case -341064690:  return addResourceElement();
4136        case -887328209:  return getSystemElement();
4137        case 3575610:  return getTypeElement();
4138        case 555127957:  return getInstanceElement();
4139        case 676942463:  return getInputProfileElement();
4140        case 1826166120:  return getOutputProfileElement();
4141        case 1954460585:  return addParameter(); 
4142        case 529823674:  return addOverload(); 
4143        default: return super.makeProperty(hash, name);
4144        }
4145
4146      }
4147
4148      @Override
4149      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
4150        switch (hash) {
4151        case 116079: /*url*/ return new String[] {"uri"};
4152        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
4153        case 351608024: /*version*/ return new String[] {"string"};
4154        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
4155        case 3373707: /*name*/ return new String[] {"string"};
4156        case 110371416: /*title*/ return new String[] {"string"};
4157        case -892481550: /*status*/ return new String[] {"code"};
4158        case 3292052: /*kind*/ return new String[] {"code"};
4159        case -404562712: /*experimental*/ return new String[] {"boolean"};
4160        case 3076014: /*date*/ return new String[] {"dateTime"};
4161        case 1447404028: /*publisher*/ return new String[] {"string"};
4162        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
4163        case -1724546052: /*description*/ return new String[] {"markdown"};
4164        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
4165        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
4166        case -220463842: /*purpose*/ return new String[] {"markdown"};
4167        case 1522889671: /*copyright*/ return new String[] {"markdown"};
4168        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
4169        case -14805197: /*affectsState*/ return new String[] {"boolean"};
4170        case 3059181: /*code*/ return new String[] {"code"};
4171        case 950398559: /*comment*/ return new String[] {"markdown"};
4172        case 3016401: /*base*/ return new String[] {"canonical"};
4173        case -341064690: /*resource*/ return new String[] {"code"};
4174        case -887328209: /*system*/ return new String[] {"boolean"};
4175        case 3575610: /*type*/ return new String[] {"boolean"};
4176        case 555127957: /*instance*/ return new String[] {"boolean"};
4177        case 676942463: /*inputProfile*/ return new String[] {"canonical"};
4178        case 1826166120: /*outputProfile*/ return new String[] {"canonical"};
4179        case 1954460585: /*parameter*/ return new String[] {};
4180        case 529823674: /*overload*/ return new String[] {};
4181        default: return super.getTypesForProperty(hash, name);
4182        }
4183
4184      }
4185
4186      @Override
4187      public Base addChild(String name) throws FHIRException {
4188        if (name.equals("url")) {
4189          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.url");
4190        }
4191        else if (name.equals("identifier")) {
4192          return addIdentifier();
4193        }
4194        else if (name.equals("version")) {
4195          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.version");
4196        }
4197        else if (name.equals("versionAlgorithmString")) {
4198          this.versionAlgorithm = new StringType();
4199          return this.versionAlgorithm;
4200        }
4201        else if (name.equals("versionAlgorithmCoding")) {
4202          this.versionAlgorithm = new Coding();
4203          return this.versionAlgorithm;
4204        }
4205        else if (name.equals("name")) {
4206          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.name");
4207        }
4208        else if (name.equals("title")) {
4209          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.title");
4210        }
4211        else if (name.equals("status")) {
4212          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.status");
4213        }
4214        else if (name.equals("kind")) {
4215          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.kind");
4216        }
4217        else if (name.equals("experimental")) {
4218          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.experimental");
4219        }
4220        else if (name.equals("date")) {
4221          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.date");
4222        }
4223        else if (name.equals("publisher")) {
4224          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.publisher");
4225        }
4226        else if (name.equals("contact")) {
4227          return addContact();
4228        }
4229        else if (name.equals("description")) {
4230          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.description");
4231        }
4232        else if (name.equals("useContext")) {
4233          return addUseContext();
4234        }
4235        else if (name.equals("jurisdiction")) {
4236          return addJurisdiction();
4237        }
4238        else if (name.equals("purpose")) {
4239          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.purpose");
4240        }
4241        else if (name.equals("copyright")) {
4242          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.copyright");
4243        }
4244        else if (name.equals("copyrightLabel")) {
4245          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.copyrightLabel");
4246        }
4247        else if (name.equals("affectsState")) {
4248          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.affectsState");
4249        }
4250        else if (name.equals("code")) {
4251          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.code");
4252        }
4253        else if (name.equals("comment")) {
4254          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.comment");
4255        }
4256        else if (name.equals("base")) {
4257          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.base");
4258        }
4259        else if (name.equals("resource")) {
4260          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.resource");
4261        }
4262        else if (name.equals("system")) {
4263          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.system");
4264        }
4265        else if (name.equals("type")) {
4266          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.type");
4267        }
4268        else if (name.equals("instance")) {
4269          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.instance");
4270        }
4271        else if (name.equals("inputProfile")) {
4272          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.inputProfile");
4273        }
4274        else if (name.equals("outputProfile")) {
4275          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.outputProfile");
4276        }
4277        else if (name.equals("parameter")) {
4278          return addParameter();
4279        }
4280        else if (name.equals("overload")) {
4281          return addOverload();
4282        }
4283        else
4284          return super.addChild(name);
4285      }
4286
4287  public String fhirType() {
4288    return "OperationDefinition";
4289
4290  }
4291
4292      public OperationDefinition copy() {
4293        OperationDefinition dst = new OperationDefinition();
4294        copyValues(dst);
4295        return dst;
4296      }
4297
4298      public void copyValues(OperationDefinition dst) {
4299        super.copyValues(dst);
4300        dst.url = url == null ? null : url.copy();
4301        if (identifier != null) {
4302          dst.identifier = new ArrayList<Identifier>();
4303          for (Identifier i : identifier)
4304            dst.identifier.add(i.copy());
4305        };
4306        dst.version = version == null ? null : version.copy();
4307        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
4308        dst.name = name == null ? null : name.copy();
4309        dst.title = title == null ? null : title.copy();
4310        dst.status = status == null ? null : status.copy();
4311        dst.kind = kind == null ? null : kind.copy();
4312        dst.experimental = experimental == null ? null : experimental.copy();
4313        dst.date = date == null ? null : date.copy();
4314        dst.publisher = publisher == null ? null : publisher.copy();
4315        if (contact != null) {
4316          dst.contact = new ArrayList<ContactDetail>();
4317          for (ContactDetail i : contact)
4318            dst.contact.add(i.copy());
4319        };
4320        dst.description = description == null ? null : description.copy();
4321        if (useContext != null) {
4322          dst.useContext = new ArrayList<UsageContext>();
4323          for (UsageContext i : useContext)
4324            dst.useContext.add(i.copy());
4325        };
4326        if (jurisdiction != null) {
4327          dst.jurisdiction = new ArrayList<CodeableConcept>();
4328          for (CodeableConcept i : jurisdiction)
4329            dst.jurisdiction.add(i.copy());
4330        };
4331        dst.purpose = purpose == null ? null : purpose.copy();
4332        dst.copyright = copyright == null ? null : copyright.copy();
4333        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
4334        dst.affectsState = affectsState == null ? null : affectsState.copy();
4335        dst.code = code == null ? null : code.copy();
4336        dst.comment = comment == null ? null : comment.copy();
4337        dst.base = base == null ? null : base.copy();
4338        if (resource != null) {
4339          dst.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
4340          for (Enumeration<VersionIndependentResourceTypesAll> i : resource)
4341            dst.resource.add(i.copy());
4342        };
4343        dst.system = system == null ? null : system.copy();
4344        dst.type = type == null ? null : type.copy();
4345        dst.instance = instance == null ? null : instance.copy();
4346        dst.inputProfile = inputProfile == null ? null : inputProfile.copy();
4347        dst.outputProfile = outputProfile == null ? null : outputProfile.copy();
4348        if (parameter != null) {
4349          dst.parameter = new ArrayList<OperationDefinitionParameterComponent>();
4350          for (OperationDefinitionParameterComponent i : parameter)
4351            dst.parameter.add(i.copy());
4352        };
4353        if (overload != null) {
4354          dst.overload = new ArrayList<OperationDefinitionOverloadComponent>();
4355          for (OperationDefinitionOverloadComponent i : overload)
4356            dst.overload.add(i.copy());
4357        };
4358      }
4359
4360      protected OperationDefinition typedCopy() {
4361        return copy();
4362      }
4363
4364      @Override
4365      public boolean equalsDeep(Base other_) {
4366        if (!super.equalsDeep(other_))
4367          return false;
4368        if (!(other_ instanceof OperationDefinition))
4369          return false;
4370        OperationDefinition o = (OperationDefinition) other_;
4371        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
4372           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
4373           && compareDeep(status, o.status, true) && compareDeep(kind, o.kind, true) && compareDeep(experimental, o.experimental, true)
4374           && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true)
4375           && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true)
4376           && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true)
4377           && compareDeep(copyrightLabel, o.copyrightLabel, true) && compareDeep(affectsState, o.affectsState, true)
4378           && compareDeep(code, o.code, true) && compareDeep(comment, o.comment, true) && compareDeep(base, o.base, true)
4379           && compareDeep(resource, o.resource, true) && compareDeep(system, o.system, true) && compareDeep(type, o.type, true)
4380           && compareDeep(instance, o.instance, true) && compareDeep(inputProfile, o.inputProfile, true) && compareDeep(outputProfile, o.outputProfile, true)
4381           && compareDeep(parameter, o.parameter, true) && compareDeep(overload, o.overload, true);
4382      }
4383
4384      @Override
4385      public boolean equalsShallow(Base other_) {
4386        if (!super.equalsShallow(other_))
4387          return false;
4388        if (!(other_ instanceof OperationDefinition))
4389          return false;
4390        OperationDefinition o = (OperationDefinition) other_;
4391        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
4392           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(kind, o.kind, true)
4393           && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true)
4394           && compareValues(description, o.description, true) && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true)
4395           && compareValues(copyrightLabel, o.copyrightLabel, true) && compareValues(affectsState, o.affectsState, true)
4396           && compareValues(code, o.code, true) && compareValues(comment, o.comment, true) && compareValues(base, o.base, true)
4397           && compareValues(resource, o.resource, true) && compareValues(system, o.system, true) && compareValues(type, o.type, true)
4398           && compareValues(instance, o.instance, true) && compareValues(inputProfile, o.inputProfile, true) && compareValues(outputProfile, o.outputProfile, true)
4399          ;
4400      }
4401
4402      public boolean isEmpty() {
4403        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
4404          , versionAlgorithm, name, title, status, kind, experimental, date, publisher
4405          , contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
4406          , affectsState, code, comment, base, resource, system, type, instance, inputProfile
4407          , outputProfile, parameter, overload);
4408      }
4409
4410  @Override
4411  public ResourceType getResourceType() {
4412    return ResourceType.OperationDefinition;
4413   }
4414
4415 /**
4416   * Search parameter: <b>context-quantity</b>
4417   * <p>
4418   * Description: <b>Multiple Resources: 
4419
4420* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
4421* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
4422* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
4423* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
4424* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
4425* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
4426* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
4427* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
4428* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
4429* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
4430* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
4431* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
4432* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
4433* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
4434* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
4435* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
4436* [Library](library.html): A quantity- or range-valued use context assigned to the library
4437* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
4438* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
4439* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
4440* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
4441* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
4442* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
4443* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
4444* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
4445* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
4446* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
4447* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
4448* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
4449* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
4450</b><br>
4451   * Type: <b>quantity</b><br>
4452   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
4453   * </p>
4454   */
4455  @SearchParamDefinition(name="context-quantity", path="(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition\r\n* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition\r\n* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide\r\n* [Library](library.html): A quantity- or range-valued use context assigned to the library\r\n* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script\r\n* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
4456  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
4457 /**
4458   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
4459   * <p>
4460   * Description: <b>Multiple Resources: 
4461
4462* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
4463* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
4464* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
4465* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
4466* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
4467* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
4468* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
4469* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
4470* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
4471* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
4472* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
4473* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
4474* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
4475* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
4476* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
4477* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
4478* [Library](library.html): A quantity- or range-valued use context assigned to the library
4479* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
4480* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
4481* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
4482* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
4483* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
4484* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
4485* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
4486* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
4487* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
4488* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
4489* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
4490* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
4491* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
4492</b><br>
4493   * Type: <b>quantity</b><br>
4494   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
4495   * </p>
4496   */
4497  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
4498
4499 /**
4500   * Search parameter: <b>context-type-quantity</b>
4501   * <p>
4502   * Description: <b>Multiple Resources: 
4503
4504* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
4505* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
4506* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
4507* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
4508* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
4509* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
4510* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
4511* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
4512* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
4513* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
4514* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
4515* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
4516* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
4517* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
4518* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
4519* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
4520* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
4521* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
4522* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
4523* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
4524* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
4525* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
4526* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
4527* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
4528* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
4529* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
4530* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
4531* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
4532* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
4533* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
4534</b><br>
4535   * Type: <b>composite</b><br>
4536   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
4537   * </p>
4538   */
4539  @SearchParamDefinition(name="context-type-quantity", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide\r\n* [Library](library.html): A use context type and quantity- or range-based value assigned to the library\r\n* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context-quantity"} )
4540  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
4541 /**
4542   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
4543   * <p>
4544   * Description: <b>Multiple Resources: 
4545
4546* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
4547* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
4548* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
4549* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
4550* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
4551* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
4552* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
4553* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
4554* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
4555* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
4556* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
4557* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
4558* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
4559* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
4560* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
4561* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
4562* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
4563* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
4564* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
4565* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
4566* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
4567* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
4568* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
4569* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
4570* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
4571* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
4572* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
4573* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
4574* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
4575* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
4576</b><br>
4577   * Type: <b>composite</b><br>
4578   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
4579   * </p>
4580   */
4581  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY);
4582
4583 /**
4584   * Search parameter: <b>context-type-value</b>
4585   * <p>
4586   * Description: <b>Multiple Resources: 
4587
4588* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
4589* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
4590* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
4591* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
4592* [Citation](citation.html): A use context type and value assigned to the citation
4593* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
4594* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
4595* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
4596* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
4597* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
4598* [Evidence](evidence.html): A use context type and value assigned to the evidence
4599* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
4600* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
4601* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
4602* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
4603* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
4604* [Library](library.html): A use context type and value assigned to the library
4605* [Measure](measure.html): A use context type and value assigned to the measure
4606* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
4607* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
4608* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
4609* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
4610* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
4611* [Requirements](requirements.html): A use context type and value assigned to the requirements
4612* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
4613* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
4614* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
4615* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
4616* [TestScript](testscript.html): A use context type and value assigned to the test script
4617* [ValueSet](valueset.html): A use context type and value assigned to the value set
4618</b><br>
4619   * Type: <b>composite</b><br>
4620   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
4621   * </p>
4622   */
4623  @SearchParamDefinition(name="context-type-value", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide\r\n* [Library](library.html): A use context type and value assigned to the library\r\n* [Measure](measure.html): A use context type and value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
4624  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
4625 /**
4626   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
4627   * <p>
4628   * Description: <b>Multiple Resources: 
4629
4630* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
4631* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
4632* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
4633* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
4634* [Citation](citation.html): A use context type and value assigned to the citation
4635* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
4636* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
4637* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
4638* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
4639* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
4640* [Evidence](evidence.html): A use context type and value assigned to the evidence
4641* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
4642* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
4643* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
4644* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
4645* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
4646* [Library](library.html): A use context type and value assigned to the library
4647* [Measure](measure.html): A use context type and value assigned to the measure
4648* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
4649* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
4650* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
4651* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
4652* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
4653* [Requirements](requirements.html): A use context type and value assigned to the requirements
4654* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
4655* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
4656* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
4657* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
4658* [TestScript](testscript.html): A use context type and value assigned to the test script
4659* [ValueSet](valueset.html): A use context type and value assigned to the value set
4660</b><br>
4661   * Type: <b>composite</b><br>
4662   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
4663   * </p>
4664   */
4665  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE);
4666
4667 /**
4668   * Search parameter: <b>context-type</b>
4669   * <p>
4670   * Description: <b>Multiple Resources: 
4671
4672* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
4673* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
4674* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
4675* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
4676* [Citation](citation.html): A type of use context assigned to the citation
4677* [CodeSystem](codesystem.html): A type of use context assigned to the code system
4678* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
4679* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
4680* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
4681* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
4682* [Evidence](evidence.html): A type of use context assigned to the evidence
4683* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
4684* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
4685* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
4686* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
4687* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
4688* [Library](library.html): A type of use context assigned to the library
4689* [Measure](measure.html): A type of use context assigned to the measure
4690* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
4691* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
4692* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
4693* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
4694* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
4695* [Requirements](requirements.html): A type of use context assigned to the requirements
4696* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
4697* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
4698* [StructureMap](structuremap.html): A type of use context assigned to the structure map
4699* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
4700* [TestScript](testscript.html): A type of use context assigned to the test script
4701* [ValueSet](valueset.html): A type of use context assigned to the value set
4702</b><br>
4703   * Type: <b>token</b><br>
4704   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
4705   * </p>
4706   */
4707  @SearchParamDefinition(name="context-type", path="ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition\r\n* [Citation](citation.html): A type of use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A type of use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition\r\n* [Evidence](evidence.html): A type of use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide\r\n* [Library](library.html): A type of use context assigned to the library\r\n* [Measure](measure.html): A type of use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A type of use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A type of use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A type of use context assigned to the test script\r\n* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
4708  public static final String SP_CONTEXT_TYPE = "context-type";
4709 /**
4710   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
4711   * <p>
4712   * Description: <b>Multiple Resources: 
4713
4714* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
4715* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
4716* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
4717* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
4718* [Citation](citation.html): A type of use context assigned to the citation
4719* [CodeSystem](codesystem.html): A type of use context assigned to the code system
4720* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
4721* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
4722* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
4723* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
4724* [Evidence](evidence.html): A type of use context assigned to the evidence
4725* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
4726* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
4727* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
4728* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
4729* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
4730* [Library](library.html): A type of use context assigned to the library
4731* [Measure](measure.html): A type of use context assigned to the measure
4732* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
4733* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
4734* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
4735* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
4736* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
4737* [Requirements](requirements.html): A type of use context assigned to the requirements
4738* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
4739* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
4740* [StructureMap](structuremap.html): A type of use context assigned to the structure map
4741* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
4742* [TestScript](testscript.html): A type of use context assigned to the test script
4743* [ValueSet](valueset.html): A type of use context assigned to the value set
4744</b><br>
4745   * Type: <b>token</b><br>
4746   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
4747   * </p>
4748   */
4749  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
4750
4751 /**
4752   * Search parameter: <b>context</b>
4753   * <p>
4754   * Description: <b>Multiple Resources: 
4755
4756* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
4757* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
4758* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
4759* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
4760* [Citation](citation.html): A use context assigned to the citation
4761* [CodeSystem](codesystem.html): A use context assigned to the code system
4762* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
4763* [ConceptMap](conceptmap.html): A use context assigned to the concept map
4764* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
4765* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
4766* [Evidence](evidence.html): A use context assigned to the evidence
4767* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
4768* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
4769* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
4770* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
4771* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
4772* [Library](library.html): A use context assigned to the library
4773* [Measure](measure.html): A use context assigned to the measure
4774* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
4775* [NamingSystem](namingsystem.html): A use context assigned to the naming system
4776* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
4777* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
4778* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
4779* [Requirements](requirements.html): A use context assigned to the requirements
4780* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
4781* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
4782* [StructureMap](structuremap.html): A use context assigned to the structure map
4783* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
4784* [TestScript](testscript.html): A use context assigned to the test script
4785* [ValueSet](valueset.html): A use context assigned to the value set
4786</b><br>
4787   * Type: <b>token</b><br>
4788   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
4789   * </p>
4790   */
4791  @SearchParamDefinition(name="context", path="(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition\r\n* [Citation](citation.html): A use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context assigned to the event definition\r\n* [Evidence](evidence.html): A use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide\r\n* [Library](library.html): A use context assigned to the library\r\n* [Measure](measure.html): A use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context assigned to the test script\r\n* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
4792  public static final String SP_CONTEXT = "context";
4793 /**
4794   * <b>Fluent Client</b> search parameter constant for <b>context</b>
4795   * <p>
4796   * Description: <b>Multiple Resources: 
4797
4798* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
4799* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
4800* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
4801* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
4802* [Citation](citation.html): A use context assigned to the citation
4803* [CodeSystem](codesystem.html): A use context assigned to the code system
4804* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
4805* [ConceptMap](conceptmap.html): A use context assigned to the concept map
4806* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
4807* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
4808* [Evidence](evidence.html): A use context assigned to the evidence
4809* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
4810* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
4811* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
4812* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
4813* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
4814* [Library](library.html): A use context assigned to the library
4815* [Measure](measure.html): A use context assigned to the measure
4816* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
4817* [NamingSystem](namingsystem.html): A use context assigned to the naming system
4818* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
4819* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
4820* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
4821* [Requirements](requirements.html): A use context assigned to the requirements
4822* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
4823* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
4824* [StructureMap](structuremap.html): A use context assigned to the structure map
4825* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
4826* [TestScript](testscript.html): A use context assigned to the test script
4827* [ValueSet](valueset.html): A use context assigned to the value set
4828</b><br>
4829   * Type: <b>token</b><br>
4830   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
4831   * </p>
4832   */
4833  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
4834
4835 /**
4836   * Search parameter: <b>date</b>
4837   * <p>
4838   * Description: <b>Multiple Resources: 
4839
4840* [ActivityDefinition](activitydefinition.html): The activity definition publication date
4841* [ActorDefinition](actordefinition.html): The Actor Definition publication date
4842* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
4843* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
4844* [Citation](citation.html): The citation publication date
4845* [CodeSystem](codesystem.html): The code system publication date
4846* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
4847* [ConceptMap](conceptmap.html): The concept map publication date
4848* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
4849* [EventDefinition](eventdefinition.html): The event definition publication date
4850* [Evidence](evidence.html): The evidence publication date
4851* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
4852* [ExampleScenario](examplescenario.html): The example scenario publication date
4853* [GraphDefinition](graphdefinition.html): The graph definition publication date
4854* [ImplementationGuide](implementationguide.html): The implementation guide publication date
4855* [Library](library.html): The library publication date
4856* [Measure](measure.html): The measure publication date
4857* [MessageDefinition](messagedefinition.html): The message definition publication date
4858* [NamingSystem](namingsystem.html): The naming system publication date
4859* [OperationDefinition](operationdefinition.html): The operation definition publication date
4860* [PlanDefinition](plandefinition.html): The plan definition publication date
4861* [Questionnaire](questionnaire.html): The questionnaire publication date
4862* [Requirements](requirements.html): The requirements publication date
4863* [SearchParameter](searchparameter.html): The search parameter publication date
4864* [StructureDefinition](structuredefinition.html): The structure definition publication date
4865* [StructureMap](structuremap.html): The structure map publication date
4866* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
4867* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
4868* [TestScript](testscript.html): The test script publication date
4869* [ValueSet](valueset.html): The value set publication date
4870</b><br>
4871   * Type: <b>date</b><br>
4872   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
4873   * </p>
4874   */
4875  @SearchParamDefinition(name="date", path="ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The activity definition publication date\r\n* [ActorDefinition](actordefinition.html): The Actor Definition publication date\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement publication date\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date\r\n* [Citation](citation.html): The citation publication date\r\n* [CodeSystem](codesystem.html): The code system publication date\r\n* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date\r\n* [ConceptMap](conceptmap.html): The concept map publication date\r\n* [ConditionDefinition](conditiondefinition.html): The condition definition publication date\r\n* [EventDefinition](eventdefinition.html): The event definition publication date\r\n* [Evidence](evidence.html): The evidence publication date\r\n* [EvidenceVariable](evidencevariable.html): The evidence variable publication date\r\n* [ExampleScenario](examplescenario.html): The example scenario publication date\r\n* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide publication date\r\n* [Library](library.html): The library publication date\r\n* [Measure](measure.html): The measure publication date\r\n* [MessageDefinition](messagedefinition.html): The message definition publication date\r\n* [NamingSystem](namingsystem.html): The naming system publication date\r\n* [OperationDefinition](operationdefinition.html): The operation definition publication date\r\n* [PlanDefinition](plandefinition.html): The plan definition publication date\r\n* [Questionnaire](questionnaire.html): The questionnaire publication date\r\n* [Requirements](requirements.html): The requirements publication date\r\n* [SearchParameter](searchparameter.html): The search parameter publication date\r\n* [StructureDefinition](structuredefinition.html): The structure definition publication date\r\n* [StructureMap](structuremap.html): The structure map publication date\r\n* [SubscriptionTopic](subscriptiontopic.html): Date status first applied\r\n* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [TestScript](testscript.html): The test script publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
4876  public static final String SP_DATE = "date";
4877 /**
4878   * <b>Fluent Client</b> search parameter constant for <b>date</b>
4879   * <p>
4880   * Description: <b>Multiple Resources: 
4881
4882* [ActivityDefinition](activitydefinition.html): The activity definition publication date
4883* [ActorDefinition](actordefinition.html): The Actor Definition publication date
4884* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
4885* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
4886* [Citation](citation.html): The citation publication date
4887* [CodeSystem](codesystem.html): The code system publication date
4888* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
4889* [ConceptMap](conceptmap.html): The concept map publication date
4890* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
4891* [EventDefinition](eventdefinition.html): The event definition publication date
4892* [Evidence](evidence.html): The evidence publication date
4893* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
4894* [ExampleScenario](examplescenario.html): The example scenario publication date
4895* [GraphDefinition](graphdefinition.html): The graph definition publication date
4896* [ImplementationGuide](implementationguide.html): The implementation guide publication date
4897* [Library](library.html): The library publication date
4898* [Measure](measure.html): The measure publication date
4899* [MessageDefinition](messagedefinition.html): The message definition publication date
4900* [NamingSystem](namingsystem.html): The naming system publication date
4901* [OperationDefinition](operationdefinition.html): The operation definition publication date
4902* [PlanDefinition](plandefinition.html): The plan definition publication date
4903* [Questionnaire](questionnaire.html): The questionnaire publication date
4904* [Requirements](requirements.html): The requirements publication date
4905* [SearchParameter](searchparameter.html): The search parameter publication date
4906* [StructureDefinition](structuredefinition.html): The structure definition publication date
4907* [StructureMap](structuremap.html): The structure map publication date
4908* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
4909* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
4910* [TestScript](testscript.html): The test script publication date
4911* [ValueSet](valueset.html): The value set publication date
4912</b><br>
4913   * Type: <b>date</b><br>
4914   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
4915   * </p>
4916   */
4917  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
4918
4919 /**
4920   * Search parameter: <b>description</b>
4921   * <p>
4922   * Description: <b>Multiple Resources: 
4923
4924* [ActivityDefinition](activitydefinition.html): The description of the activity definition
4925* [ActorDefinition](actordefinition.html): The description of the Actor Definition
4926* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
4927* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
4928* [Citation](citation.html): The description of the citation
4929* [CodeSystem](codesystem.html): The description of the code system
4930* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
4931* [ConceptMap](conceptmap.html): The description of the concept map
4932* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
4933* [EventDefinition](eventdefinition.html): The description of the event definition
4934* [Evidence](evidence.html): The description of the evidence
4935* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
4936* [GraphDefinition](graphdefinition.html): The description of the graph definition
4937* [ImplementationGuide](implementationguide.html): The description of the implementation guide
4938* [Library](library.html): The description of the library
4939* [Measure](measure.html): The description of the measure
4940* [MessageDefinition](messagedefinition.html): The description of the message definition
4941* [NamingSystem](namingsystem.html): The description of the naming system
4942* [OperationDefinition](operationdefinition.html): The description of the operation definition
4943* [PlanDefinition](plandefinition.html): The description of the plan definition
4944* [Questionnaire](questionnaire.html): The description of the questionnaire
4945* [Requirements](requirements.html): The description of the requirements
4946* [SearchParameter](searchparameter.html): The description of the search parameter
4947* [StructureDefinition](structuredefinition.html): The description of the structure definition
4948* [StructureMap](structuremap.html): The description of the structure map
4949* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
4950* [TestScript](testscript.html): The description of the test script
4951* [ValueSet](valueset.html): The description of the value set
4952</b><br>
4953   * Type: <b>string</b><br>
4954   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
4955   * </p>
4956   */
4957  @SearchParamDefinition(name="description", path="ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The description of the activity definition\r\n* [ActorDefinition](actordefinition.html): The description of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition\r\n* [Citation](citation.html): The description of the citation\r\n* [CodeSystem](codesystem.html): The description of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition\r\n* [ConceptMap](conceptmap.html): The description of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The description of the condition definition\r\n* [EventDefinition](eventdefinition.html): The description of the event definition\r\n* [Evidence](evidence.html): The description of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The description of the evidence variable\r\n* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\r\n* [Library](library.html): The description of the library\r\n* [Measure](measure.html): The description of the measure\r\n* [MessageDefinition](messagedefinition.html): The description of the message definition\r\n* [NamingSystem](namingsystem.html): The description of the naming system\r\n* [OperationDefinition](operationdefinition.html): The description of the operation definition\r\n* [PlanDefinition](plandefinition.html): The description of the plan definition\r\n* [Questionnaire](questionnaire.html): The description of the questionnaire\r\n* [Requirements](requirements.html): The description of the requirements\r\n* [SearchParameter](searchparameter.html): The description of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The description of the structure definition\r\n* [StructureMap](structuremap.html): The description of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities\r\n* [TestScript](testscript.html): The description of the test script\r\n* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
4958  public static final String SP_DESCRIPTION = "description";
4959 /**
4960   * <b>Fluent Client</b> search parameter constant for <b>description</b>
4961   * <p>
4962   * Description: <b>Multiple Resources: 
4963
4964* [ActivityDefinition](activitydefinition.html): The description of the activity definition
4965* [ActorDefinition](actordefinition.html): The description of the Actor Definition
4966* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
4967* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
4968* [Citation](citation.html): The description of the citation
4969* [CodeSystem](codesystem.html): The description of the code system
4970* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
4971* [ConceptMap](conceptmap.html): The description of the concept map
4972* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
4973* [EventDefinition](eventdefinition.html): The description of the event definition
4974* [Evidence](evidence.html): The description of the evidence
4975* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
4976* [GraphDefinition](graphdefinition.html): The description of the graph definition
4977* [ImplementationGuide](implementationguide.html): The description of the implementation guide
4978* [Library](library.html): The description of the library
4979* [Measure](measure.html): The description of the measure
4980* [MessageDefinition](messagedefinition.html): The description of the message definition
4981* [NamingSystem](namingsystem.html): The description of the naming system
4982* [OperationDefinition](operationdefinition.html): The description of the operation definition
4983* [PlanDefinition](plandefinition.html): The description of the plan definition
4984* [Questionnaire](questionnaire.html): The description of the questionnaire
4985* [Requirements](requirements.html): The description of the requirements
4986* [SearchParameter](searchparameter.html): The description of the search parameter
4987* [StructureDefinition](structuredefinition.html): The description of the structure definition
4988* [StructureMap](structuremap.html): The description of the structure map
4989* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
4990* [TestScript](testscript.html): The description of the test script
4991* [ValueSet](valueset.html): The description of the value set
4992</b><br>
4993   * Type: <b>string</b><br>
4994   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
4995   * </p>
4996   */
4997  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
4998
4999 /**
5000   * Search parameter: <b>identifier</b>
5001   * <p>
5002   * Description: <b>Multiple Resources: 
5003
5004* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
5005* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
5006* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
5007* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
5008* [Citation](citation.html): External identifier for the citation
5009* [CodeSystem](codesystem.html): External identifier for the code system
5010* [ConceptMap](conceptmap.html): External identifier for the concept map
5011* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
5012* [EventDefinition](eventdefinition.html): External identifier for the event definition
5013* [Evidence](evidence.html): External identifier for the evidence
5014* [EvidenceReport](evidencereport.html): External identifier for the evidence report
5015* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
5016* [ExampleScenario](examplescenario.html): External identifier for the example scenario
5017* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
5018* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
5019* [Library](library.html): External identifier for the library
5020* [Measure](measure.html): External identifier for the measure
5021* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
5022* [MessageDefinition](messagedefinition.html): External identifier for the message definition
5023* [NamingSystem](namingsystem.html): External identifier for the naming system
5024* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
5025* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
5026* [PlanDefinition](plandefinition.html): External identifier for the plan definition
5027* [Questionnaire](questionnaire.html): External identifier for the questionnaire
5028* [Requirements](requirements.html): External identifier for the requirements
5029* [SearchParameter](searchparameter.html): External identifier for the search parameter
5030* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
5031* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
5032* [StructureMap](structuremap.html): External identifier for the structure map
5033* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
5034* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
5035* [TestPlan](testplan.html): An identifier for the test plan
5036* [TestScript](testscript.html): External identifier for the test script
5037* [ValueSet](valueset.html): External identifier for the value set
5038</b><br>
5039   * Type: <b>token</b><br>
5040   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
5041   * </p>
5042   */
5043  @SearchParamDefinition(name="identifier", path="ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition\r\n* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition\r\n* [Citation](citation.html): External identifier for the citation\r\n* [CodeSystem](codesystem.html): External identifier for the code system\r\n* [ConceptMap](conceptmap.html): External identifier for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition\r\n* [EventDefinition](eventdefinition.html): External identifier for the event definition\r\n* [Evidence](evidence.html): External identifier for the evidence\r\n* [EvidenceReport](evidencereport.html): External identifier for the evidence report\r\n* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable\r\n* [ExampleScenario](examplescenario.html): External identifier for the example scenario\r\n* [GraphDefinition](graphdefinition.html): External identifier for the graph definition\r\n* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide\r\n* [Library](library.html): External identifier for the library\r\n* [Measure](measure.html): External identifier for the measure\r\n* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication\r\n* [MessageDefinition](messagedefinition.html): External identifier for the message definition\r\n* [NamingSystem](namingsystem.html): External identifier for the naming system\r\n* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition\r\n* [OperationDefinition](operationdefinition.html): External identifier for the search parameter\r\n* [PlanDefinition](plandefinition.html): External identifier for the plan definition\r\n* [Questionnaire](questionnaire.html): External identifier for the questionnaire\r\n* [Requirements](requirements.html): External identifier for the requirements\r\n* [SearchParameter](searchparameter.html): External identifier for the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): External identifier for the structure definition\r\n* [StructureMap](structuremap.html): External identifier for the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities\r\n* [TestPlan](testplan.html): An identifier for the test plan\r\n* [TestScript](testscript.html): External identifier for the test script\r\n* [ValueSet](valueset.html): External identifier for the value set\r\n", type="token" )
5044  public static final String SP_IDENTIFIER = "identifier";
5045 /**
5046   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
5047   * <p>
5048   * Description: <b>Multiple Resources: 
5049
5050* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
5051* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
5052* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
5053* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
5054* [Citation](citation.html): External identifier for the citation
5055* [CodeSystem](codesystem.html): External identifier for the code system
5056* [ConceptMap](conceptmap.html): External identifier for the concept map
5057* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
5058* [EventDefinition](eventdefinition.html): External identifier for the event definition
5059* [Evidence](evidence.html): External identifier for the evidence
5060* [EvidenceReport](evidencereport.html): External identifier for the evidence report
5061* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
5062* [ExampleScenario](examplescenario.html): External identifier for the example scenario
5063* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
5064* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
5065* [Library](library.html): External identifier for the library
5066* [Measure](measure.html): External identifier for the measure
5067* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
5068* [MessageDefinition](messagedefinition.html): External identifier for the message definition
5069* [NamingSystem](namingsystem.html): External identifier for the naming system
5070* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
5071* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
5072* [PlanDefinition](plandefinition.html): External identifier for the plan definition
5073* [Questionnaire](questionnaire.html): External identifier for the questionnaire
5074* [Requirements](requirements.html): External identifier for the requirements
5075* [SearchParameter](searchparameter.html): External identifier for the search parameter
5076* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
5077* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
5078* [StructureMap](structuremap.html): External identifier for the structure map
5079* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
5080* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
5081* [TestPlan](testplan.html): An identifier for the test plan
5082* [TestScript](testscript.html): External identifier for the test script
5083* [ValueSet](valueset.html): External identifier for the value set
5084</b><br>
5085   * Type: <b>token</b><br>
5086   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
5087   * </p>
5088   */
5089  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
5090
5091 /**
5092   * Search parameter: <b>jurisdiction</b>
5093   * <p>
5094   * Description: <b>Multiple Resources: 
5095
5096* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
5097* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
5098* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
5099* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
5100* [Citation](citation.html): Intended jurisdiction for the citation
5101* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
5102* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
5103* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
5104* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
5105* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
5106* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
5107* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
5108* [Library](library.html): Intended jurisdiction for the library
5109* [Measure](measure.html): Intended jurisdiction for the measure
5110* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
5111* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
5112* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
5113* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
5114* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
5115* [Requirements](requirements.html): Intended jurisdiction for the requirements
5116* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
5117* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
5118* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
5119* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
5120* [TestScript](testscript.html): Intended jurisdiction for the test script
5121* [ValueSet](valueset.html): Intended jurisdiction for the value set
5122</b><br>
5123   * Type: <b>token</b><br>
5124   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
5125   * </p>
5126   */
5127  @SearchParamDefinition(name="jurisdiction", path="ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition\r\n* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition\r\n* [Citation](citation.html): Intended jurisdiction for the citation\r\n* [CodeSystem](codesystem.html): Intended jurisdiction for the code system\r\n* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition\r\n* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition\r\n* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario\r\n* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition\r\n* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide\r\n* [Library](library.html): Intended jurisdiction for the library\r\n* [Measure](measure.html): Intended jurisdiction for the measure\r\n* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition\r\n* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system\r\n* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition\r\n* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition\r\n* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire\r\n* [Requirements](requirements.html): Intended jurisdiction for the requirements\r\n* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter\r\n* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition\r\n* [StructureMap](structuremap.html): Intended jurisdiction for the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities\r\n* [TestScript](testscript.html): Intended jurisdiction for the test script\r\n* [ValueSet](valueset.html): Intended jurisdiction for the value set\r\n", type="token" )
5128  public static final String SP_JURISDICTION = "jurisdiction";
5129 /**
5130   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
5131   * <p>
5132   * Description: <b>Multiple Resources: 
5133
5134* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
5135* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
5136* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
5137* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
5138* [Citation](citation.html): Intended jurisdiction for the citation
5139* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
5140* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
5141* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
5142* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
5143* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
5144* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
5145* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
5146* [Library](library.html): Intended jurisdiction for the library
5147* [Measure](measure.html): Intended jurisdiction for the measure
5148* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
5149* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
5150* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
5151* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
5152* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
5153* [Requirements](requirements.html): Intended jurisdiction for the requirements
5154* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
5155* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
5156* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
5157* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
5158* [TestScript](testscript.html): Intended jurisdiction for the test script
5159* [ValueSet](valueset.html): Intended jurisdiction for the value set
5160</b><br>
5161   * Type: <b>token</b><br>
5162   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
5163   * </p>
5164   */
5165  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
5166
5167 /**
5168   * Search parameter: <b>name</b>
5169   * <p>
5170   * Description: <b>Multiple Resources: 
5171
5172* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
5173* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
5174* [Citation](citation.html): Computationally friendly name of the citation
5175* [CodeSystem](codesystem.html): Computationally friendly name of the code system
5176* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
5177* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
5178* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
5179* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
5180* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
5181* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
5182* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
5183* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
5184* [Library](library.html): Computationally friendly name of the library
5185* [Measure](measure.html): Computationally friendly name of the measure
5186* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
5187* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
5188* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
5189* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
5190* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
5191* [Requirements](requirements.html): Computationally friendly name of the requirements
5192* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
5193* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
5194* [StructureMap](structuremap.html): Computationally friendly name of the structure map
5195* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
5196* [TestScript](testscript.html): Computationally friendly name of the test script
5197* [ValueSet](valueset.html): Computationally friendly name of the value set
5198</b><br>
5199   * Type: <b>string</b><br>
5200   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
5201   * </p>
5202   */
5203  @SearchParamDefinition(name="name", path="ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\r\n* [Citation](citation.html): Computationally friendly name of the citation\r\n* [CodeSystem](codesystem.html): Computationally friendly name of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition\r\n* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition\r\n* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\r\n* [Library](library.html): Computationally friendly name of the library\r\n* [Measure](measure.html): Computationally friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition\r\n* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system\r\n* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire\r\n* [Requirements](requirements.html): Computationally friendly name of the requirements\r\n* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition\r\n* [StructureMap](structuremap.html): Computationally friendly name of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): Computationally friendly name of the test script\r\n* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
5204  public static final String SP_NAME = "name";
5205 /**
5206   * <b>Fluent Client</b> search parameter constant for <b>name</b>
5207   * <p>
5208   * Description: <b>Multiple Resources: 
5209
5210* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
5211* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
5212* [Citation](citation.html): Computationally friendly name of the citation
5213* [CodeSystem](codesystem.html): Computationally friendly name of the code system
5214* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
5215* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
5216* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
5217* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
5218* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
5219* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
5220* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
5221* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
5222* [Library](library.html): Computationally friendly name of the library
5223* [Measure](measure.html): Computationally friendly name of the measure
5224* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
5225* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
5226* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
5227* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
5228* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
5229* [Requirements](requirements.html): Computationally friendly name of the requirements
5230* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
5231* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
5232* [StructureMap](structuremap.html): Computationally friendly name of the structure map
5233* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
5234* [TestScript](testscript.html): Computationally friendly name of the test script
5235* [ValueSet](valueset.html): Computationally friendly name of the value set
5236</b><br>
5237   * Type: <b>string</b><br>
5238   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
5239   * </p>
5240   */
5241  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
5242
5243 /**
5244   * Search parameter: <b>publisher</b>
5245   * <p>
5246   * Description: <b>Multiple Resources: 
5247
5248* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
5249* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
5250* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
5251* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
5252* [Citation](citation.html): Name of the publisher of the citation
5253* [CodeSystem](codesystem.html): Name of the publisher of the code system
5254* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
5255* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
5256* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
5257* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
5258* [Evidence](evidence.html): Name of the publisher of the evidence
5259* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
5260* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
5261* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
5262* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
5263* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
5264* [Library](library.html): Name of the publisher of the library
5265* [Measure](measure.html): Name of the publisher of the measure
5266* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
5267* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
5268* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
5269* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
5270* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
5271* [Requirements](requirements.html): Name of the publisher of the requirements
5272* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
5273* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
5274* [StructureMap](structuremap.html): Name of the publisher of the structure map
5275* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
5276* [TestScript](testscript.html): Name of the publisher of the test script
5277* [ValueSet](valueset.html): Name of the publisher of the value set
5278</b><br>
5279   * Type: <b>string</b><br>
5280   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
5281   * </p>
5282   */
5283  @SearchParamDefinition(name="publisher", path="ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition\r\n* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition\r\n* [Citation](citation.html): Name of the publisher of the citation\r\n* [CodeSystem](codesystem.html): Name of the publisher of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition\r\n* [ConceptMap](conceptmap.html): Name of the publisher of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition\r\n* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition\r\n* [Evidence](evidence.html): Name of the publisher of the evidence\r\n* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide\r\n* [Library](library.html): Name of the publisher of the library\r\n* [Measure](measure.html): Name of the publisher of the measure\r\n* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition\r\n* [NamingSystem](namingsystem.html): Name of the publisher of the naming system\r\n* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition\r\n* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition\r\n* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire\r\n* [Requirements](requirements.html): Name of the publisher of the requirements\r\n* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition\r\n* [StructureMap](structuremap.html): Name of the publisher of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities\r\n* [TestScript](testscript.html): Name of the publisher of the test script\r\n* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
5284  public static final String SP_PUBLISHER = "publisher";
5285 /**
5286   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
5287   * <p>
5288   * Description: <b>Multiple Resources: 
5289
5290* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
5291* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
5292* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
5293* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
5294* [Citation](citation.html): Name of the publisher of the citation
5295* [CodeSystem](codesystem.html): Name of the publisher of the code system
5296* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
5297* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
5298* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
5299* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
5300* [Evidence](evidence.html): Name of the publisher of the evidence
5301* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
5302* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
5303* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
5304* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
5305* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
5306* [Library](library.html): Name of the publisher of the library
5307* [Measure](measure.html): Name of the publisher of the measure
5308* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
5309* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
5310* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
5311* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
5312* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
5313* [Requirements](requirements.html): Name of the publisher of the requirements
5314* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
5315* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
5316* [StructureMap](structuremap.html): Name of the publisher of the structure map
5317* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
5318* [TestScript](testscript.html): Name of the publisher of the test script
5319* [ValueSet](valueset.html): Name of the publisher of the value set
5320</b><br>
5321   * Type: <b>string</b><br>
5322   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
5323   * </p>
5324   */
5325  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
5326
5327 /**
5328   * Search parameter: <b>status</b>
5329   * <p>
5330   * Description: <b>Multiple Resources: 
5331
5332* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
5333* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
5334* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
5335* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
5336* [Citation](citation.html): The current status of the citation
5337* [CodeSystem](codesystem.html): The current status of the code system
5338* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
5339* [ConceptMap](conceptmap.html): The current status of the concept map
5340* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
5341* [EventDefinition](eventdefinition.html): The current status of the event definition
5342* [Evidence](evidence.html): The current status of the evidence
5343* [EvidenceReport](evidencereport.html): The current status of the evidence report
5344* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
5345* [ExampleScenario](examplescenario.html): The current status of the example scenario
5346* [GraphDefinition](graphdefinition.html): The current status of the graph definition
5347* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
5348* [Library](library.html): The current status of the library
5349* [Measure](measure.html): The current status of the measure
5350* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
5351* [MessageDefinition](messagedefinition.html): The current status of the message definition
5352* [NamingSystem](namingsystem.html): The current status of the naming system
5353* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
5354* [OperationDefinition](operationdefinition.html): The current status of the operation definition
5355* [PlanDefinition](plandefinition.html): The current status of the plan definition
5356* [Questionnaire](questionnaire.html): The current status of the questionnaire
5357* [Requirements](requirements.html): The current status of the requirements
5358* [SearchParameter](searchparameter.html): The current status of the search parameter
5359* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
5360* [StructureDefinition](structuredefinition.html): The current status of the structure definition
5361* [StructureMap](structuremap.html): The current status of the structure map
5362* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
5363* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
5364* [TestPlan](testplan.html): The current status of the test plan
5365* [TestScript](testscript.html): The current status of the test script
5366* [ValueSet](valueset.html): The current status of the value set
5367</b><br>
5368   * Type: <b>token</b><br>
5369   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
5370   * </p>
5371   */
5372  @SearchParamDefinition(name="status", path="ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The current status of the activity definition\r\n* [ActorDefinition](actordefinition.html): The current status of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition\r\n* [Citation](citation.html): The current status of the citation\r\n* [CodeSystem](codesystem.html): The current status of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition\r\n* [ConceptMap](conceptmap.html): The current status of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition\r\n* [EventDefinition](eventdefinition.html): The current status of the event definition\r\n* [Evidence](evidence.html): The current status of the evidence\r\n* [EvidenceReport](evidencereport.html): The current status of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The current status of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\r\n* [Library](library.html): The current status of the library\r\n* [Measure](measure.html): The current status of the measure\r\n* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error\r\n* [MessageDefinition](messagedefinition.html): The current status of the message definition\r\n* [NamingSystem](namingsystem.html): The current status of the naming system\r\n* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown\r\n* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [PlanDefinition](plandefinition.html): The current status of the plan definition\r\n* [Questionnaire](questionnaire.html): The current status of the questionnaire\r\n* [Requirements](requirements.html): The current status of the requirements\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown\r\n* [StructureDefinition](structuredefinition.html): The current status of the structure definition\r\n* [StructureMap](structuremap.html): The current status of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown\r\n* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [TestPlan](testplan.html): The current status of the test plan\r\n* [TestScript](testscript.html): The current status of the test script\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
5373  public static final String SP_STATUS = "status";
5374 /**
5375   * <b>Fluent Client</b> search parameter constant for <b>status</b>
5376   * <p>
5377   * Description: <b>Multiple Resources: 
5378
5379* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
5380* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
5381* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
5382* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
5383* [Citation](citation.html): The current status of the citation
5384* [CodeSystem](codesystem.html): The current status of the code system
5385* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
5386* [ConceptMap](conceptmap.html): The current status of the concept map
5387* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
5388* [EventDefinition](eventdefinition.html): The current status of the event definition
5389* [Evidence](evidence.html): The current status of the evidence
5390* [EvidenceReport](evidencereport.html): The current status of the evidence report
5391* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
5392* [ExampleScenario](examplescenario.html): The current status of the example scenario
5393* [GraphDefinition](graphdefinition.html): The current status of the graph definition
5394* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
5395* [Library](library.html): The current status of the library
5396* [Measure](measure.html): The current status of the measure
5397* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
5398* [MessageDefinition](messagedefinition.html): The current status of the message definition
5399* [NamingSystem](namingsystem.html): The current status of the naming system
5400* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
5401* [OperationDefinition](operationdefinition.html): The current status of the operation definition
5402* [PlanDefinition](plandefinition.html): The current status of the plan definition
5403* [Questionnaire](questionnaire.html): The current status of the questionnaire
5404* [Requirements](requirements.html): The current status of the requirements
5405* [SearchParameter](searchparameter.html): The current status of the search parameter
5406* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
5407* [StructureDefinition](structuredefinition.html): The current status of the structure definition
5408* [StructureMap](structuremap.html): The current status of the structure map
5409* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
5410* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
5411* [TestPlan](testplan.html): The current status of the test plan
5412* [TestScript](testscript.html): The current status of the test script
5413* [ValueSet](valueset.html): The current status of the value set
5414</b><br>
5415   * Type: <b>token</b><br>
5416   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
5417   * </p>
5418   */
5419  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
5420
5421 /**
5422   * Search parameter: <b>title</b>
5423   * <p>
5424   * Description: <b>Multiple Resources: 
5425
5426* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
5427* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
5428* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
5429* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
5430* [Citation](citation.html): The human-friendly name of the citation
5431* [CodeSystem](codesystem.html): The human-friendly name of the code system
5432* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
5433* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
5434* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
5435* [Evidence](evidence.html): The human-friendly name of the evidence
5436* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
5437* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
5438* [Library](library.html): The human-friendly name of the library
5439* [Measure](measure.html): The human-friendly name of the measure
5440* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
5441* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
5442* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
5443* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
5444* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
5445* [Requirements](requirements.html): The human-friendly name of the requirements
5446* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
5447* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
5448* [StructureMap](structuremap.html): The human-friendly name of the structure map
5449* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
5450* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
5451* [TestScript](testscript.html): The human-friendly name of the test script
5452* [ValueSet](valueset.html): The human-friendly name of the value set
5453</b><br>
5454   * Type: <b>string</b><br>
5455   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
5456   * </p>
5457   */
5458  @SearchParamDefinition(name="title", path="ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition\r\n* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition\r\n* [Citation](citation.html): The human-friendly name of the citation\r\n* [CodeSystem](codesystem.html): The human-friendly name of the code system\r\n* [ConceptMap](conceptmap.html): The human-friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition\r\n* [Evidence](evidence.html): The human-friendly name of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable\r\n* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide\r\n* [Library](library.html): The human-friendly name of the library\r\n* [Measure](measure.html): The human-friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition\r\n* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition\r\n* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire\r\n* [Requirements](requirements.html): The human-friendly name of the requirements\r\n* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition\r\n* [StructureMap](structuremap.html): The human-friendly name of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): The human-friendly name of the test script\r\n* [ValueSet](valueset.html): The human-friendly name of the value set\r\n", type="string" )
5459  public static final String SP_TITLE = "title";
5460 /**
5461   * <b>Fluent Client</b> search parameter constant for <b>title</b>
5462   * <p>
5463   * Description: <b>Multiple Resources: 
5464
5465* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
5466* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
5467* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
5468* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
5469* [Citation](citation.html): The human-friendly name of the citation
5470* [CodeSystem](codesystem.html): The human-friendly name of the code system
5471* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
5472* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
5473* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
5474* [Evidence](evidence.html): The human-friendly name of the evidence
5475* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
5476* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
5477* [Library](library.html): The human-friendly name of the library
5478* [Measure](measure.html): The human-friendly name of the measure
5479* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
5480* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
5481* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
5482* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
5483* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
5484* [Requirements](requirements.html): The human-friendly name of the requirements
5485* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
5486* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
5487* [StructureMap](structuremap.html): The human-friendly name of the structure map
5488* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
5489* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
5490* [TestScript](testscript.html): The human-friendly name of the test script
5491* [ValueSet](valueset.html): The human-friendly name of the value set
5492</b><br>
5493   * Type: <b>string</b><br>
5494   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
5495   * </p>
5496   */
5497  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
5498
5499 /**
5500   * Search parameter: <b>url</b>
5501   * <p>
5502   * Description: <b>Multiple Resources: 
5503
5504* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
5505* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
5506* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
5507* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
5508* [Citation](citation.html): The uri that identifies the citation
5509* [CodeSystem](codesystem.html): The uri that identifies the code system
5510* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
5511* [ConceptMap](conceptmap.html): The URI that identifies the concept map
5512* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
5513* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
5514* [Evidence](evidence.html): The uri that identifies the evidence
5515* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
5516* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
5517* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
5518* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
5519* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
5520* [Library](library.html): The uri that identifies the library
5521* [Measure](measure.html): The uri that identifies the measure
5522* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
5523* [NamingSystem](namingsystem.html): The uri that identifies the naming system
5524* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
5525* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
5526* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
5527* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
5528* [Requirements](requirements.html): The uri that identifies the requirements
5529* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
5530* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
5531* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
5532* [StructureMap](structuremap.html): The uri that identifies the structure map
5533* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
5534* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
5535* [TestPlan](testplan.html): The uri that identifies the test plan
5536* [TestScript](testscript.html): The uri that identifies the test script
5537* [ValueSet](valueset.html): The uri that identifies the value set
5538</b><br>
5539   * Type: <b>uri</b><br>
5540   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
5541   * </p>
5542   */
5543  @SearchParamDefinition(name="url", path="ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition\r\n* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition\r\n* [Citation](citation.html): The uri that identifies the citation\r\n* [CodeSystem](codesystem.html): The uri that identifies the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition\r\n* [ConceptMap](conceptmap.html): The URI that identifies the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition\r\n* [EventDefinition](eventdefinition.html): The uri that identifies the event definition\r\n* [Evidence](evidence.html): The uri that identifies the evidence\r\n* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable\r\n* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario\r\n* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\r\n* [Library](library.html): The uri that identifies the library\r\n* [Measure](measure.html): The uri that identifies the measure\r\n* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition\r\n* [NamingSystem](namingsystem.html): The uri that identifies the naming system\r\n* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition\r\n* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition\r\n* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire\r\n* [Requirements](requirements.html): The uri that identifies the requirements\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition\r\n* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition\r\n* [StructureMap](structuremap.html): The uri that identifies the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [TestPlan](testplan.html): The uri that identifies the test plan\r\n* [TestScript](testscript.html): The uri that identifies the test script\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
5544  public static final String SP_URL = "url";
5545 /**
5546   * <b>Fluent Client</b> search parameter constant for <b>url</b>
5547   * <p>
5548   * Description: <b>Multiple Resources: 
5549
5550* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
5551* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
5552* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
5553* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
5554* [Citation](citation.html): The uri that identifies the citation
5555* [CodeSystem](codesystem.html): The uri that identifies the code system
5556* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
5557* [ConceptMap](conceptmap.html): The URI that identifies the concept map
5558* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
5559* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
5560* [Evidence](evidence.html): The uri that identifies the evidence
5561* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
5562* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
5563* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
5564* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
5565* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
5566* [Library](library.html): The uri that identifies the library
5567* [Measure](measure.html): The uri that identifies the measure
5568* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
5569* [NamingSystem](namingsystem.html): The uri that identifies the naming system
5570* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
5571* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
5572* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
5573* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
5574* [Requirements](requirements.html): The uri that identifies the requirements
5575* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
5576* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
5577* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
5578* [StructureMap](structuremap.html): The uri that identifies the structure map
5579* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
5580* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
5581* [TestPlan](testplan.html): The uri that identifies the test plan
5582* [TestScript](testscript.html): The uri that identifies the test script
5583* [ValueSet](valueset.html): The uri that identifies the value set
5584</b><br>
5585   * Type: <b>uri</b><br>
5586   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
5587   * </p>
5588   */
5589  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
5590
5591 /**
5592   * Search parameter: <b>version</b>
5593   * <p>
5594   * Description: <b>Multiple Resources: 
5595
5596* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
5597* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
5598* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
5599* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
5600* [Citation](citation.html): The business version of the citation
5601* [CodeSystem](codesystem.html): The business version of the code system
5602* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
5603* [ConceptMap](conceptmap.html): The business version of the concept map
5604* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
5605* [EventDefinition](eventdefinition.html): The business version of the event definition
5606* [Evidence](evidence.html): The business version of the evidence
5607* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
5608* [ExampleScenario](examplescenario.html): The business version of the example scenario
5609* [GraphDefinition](graphdefinition.html): The business version of the graph definition
5610* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
5611* [Library](library.html): The business version of the library
5612* [Measure](measure.html): The business version of the measure
5613* [MessageDefinition](messagedefinition.html): The business version of the message definition
5614* [NamingSystem](namingsystem.html): The business version of the naming system
5615* [OperationDefinition](operationdefinition.html): The business version of the operation definition
5616* [PlanDefinition](plandefinition.html): The business version of the plan definition
5617* [Questionnaire](questionnaire.html): The business version of the questionnaire
5618* [Requirements](requirements.html): The business version of the requirements
5619* [SearchParameter](searchparameter.html): The business version of the search parameter
5620* [StructureDefinition](structuredefinition.html): The business version of the structure definition
5621* [StructureMap](structuremap.html): The business version of the structure map
5622* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
5623* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
5624* [TestScript](testscript.html): The business version of the test script
5625* [ValueSet](valueset.html): The business version of the value set
5626</b><br>
5627   * Type: <b>token</b><br>
5628   * Path: <b>ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version</b><br>
5629   * </p>
5630   */
5631  @SearchParamDefinition(name="version", path="ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The business version of the activity definition\r\n* [ActorDefinition](actordefinition.html): The business version of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition\r\n* [Citation](citation.html): The business version of the citation\r\n* [CodeSystem](codesystem.html): The business version of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition\r\n* [ConceptMap](conceptmap.html): The business version of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition\r\n* [EventDefinition](eventdefinition.html): The business version of the event definition\r\n* [Evidence](evidence.html): The business version of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The business version of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The business version of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The business version of the implementation guide\r\n* [Library](library.html): The business version of the library\r\n* [Measure](measure.html): The business version of the measure\r\n* [MessageDefinition](messagedefinition.html): The business version of the message definition\r\n* [NamingSystem](namingsystem.html): The business version of the naming system\r\n* [OperationDefinition](operationdefinition.html): The business version of the operation definition\r\n* [PlanDefinition](plandefinition.html): The business version of the plan definition\r\n* [Questionnaire](questionnaire.html): The business version of the questionnaire\r\n* [Requirements](requirements.html): The business version of the requirements\r\n* [SearchParameter](searchparameter.html): The business version of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The business version of the structure definition\r\n* [StructureMap](structuremap.html): The business version of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities\r\n* [TestScript](testscript.html): The business version of the test script\r\n* [ValueSet](valueset.html): The business version of the value set\r\n", type="token" )
5632  public static final String SP_VERSION = "version";
5633 /**
5634   * <b>Fluent Client</b> search parameter constant for <b>version</b>
5635   * <p>
5636   * Description: <b>Multiple Resources: 
5637
5638* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
5639* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
5640* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
5641* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
5642* [Citation](citation.html): The business version of the citation
5643* [CodeSystem](codesystem.html): The business version of the code system
5644* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
5645* [ConceptMap](conceptmap.html): The business version of the concept map
5646* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
5647* [EventDefinition](eventdefinition.html): The business version of the event definition
5648* [Evidence](evidence.html): The business version of the evidence
5649* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
5650* [ExampleScenario](examplescenario.html): The business version of the example scenario
5651* [GraphDefinition](graphdefinition.html): The business version of the graph definition
5652* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
5653* [Library](library.html): The business version of the library
5654* [Measure](measure.html): The business version of the measure
5655* [MessageDefinition](messagedefinition.html): The business version of the message definition
5656* [NamingSystem](namingsystem.html): The business version of the naming system
5657* [OperationDefinition](operationdefinition.html): The business version of the operation definition
5658* [PlanDefinition](plandefinition.html): The business version of the plan definition
5659* [Questionnaire](questionnaire.html): The business version of the questionnaire
5660* [Requirements](requirements.html): The business version of the requirements
5661* [SearchParameter](searchparameter.html): The business version of the search parameter
5662* [StructureDefinition](structuredefinition.html): The business version of the structure definition
5663* [StructureMap](structuremap.html): The business version of the structure map
5664* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
5665* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
5666* [TestScript](testscript.html): The business version of the test script
5667* [ValueSet](valueset.html): The business version of the value set
5668</b><br>
5669   * Type: <b>token</b><br>
5670   * Path: <b>ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citation.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | ConditionDefinition.version | EventDefinition.version | Evidence.version | EvidenceVariable.version | ExampleScenario.version | GraphDefinition.version | ImplementationGuide.version | Library.version | Measure.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | PlanDefinition.version | Questionnaire.version | Requirements.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | SubscriptionTopic.version | TerminologyCapabilities.version | TestScript.version | ValueSet.version</b><br>
5671   * </p>
5672   */
5673  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
5674
5675 /**
5676   * Search parameter: <b>base</b>
5677   * <p>
5678   * Description: <b>Marks this as a profile of the base</b><br>
5679   * Type: <b>reference</b><br>
5680   * Path: <b>OperationDefinition.base</b><br>
5681   * </p>
5682   */
5683  @SearchParamDefinition(name="base", path="OperationDefinition.base", description="Marks this as a profile of the base", type="reference", target={OperationDefinition.class } )
5684  public static final String SP_BASE = "base";
5685 /**
5686   * <b>Fluent Client</b> search parameter constant for <b>base</b>
5687   * <p>
5688   * Description: <b>Marks this as a profile of the base</b><br>
5689   * Type: <b>reference</b><br>
5690   * Path: <b>OperationDefinition.base</b><br>
5691   * </p>
5692   */
5693  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASE);
5694
5695/**
5696   * Constant for fluent queries to be used to add include statements. Specifies
5697   * the path value of "<b>OperationDefinition:base</b>".
5698   */
5699  public static final ca.uhn.fhir.model.api.Include INCLUDE_BASE = new ca.uhn.fhir.model.api.Include("OperationDefinition:base").toLocked();
5700
5701 /**
5702   * Search parameter: <b>code</b>
5703   * <p>
5704   * Description: <b>Name used to invoke the operation</b><br>
5705   * Type: <b>token</b><br>
5706   * Path: <b>OperationDefinition.code</b><br>
5707   * </p>
5708   */
5709  @SearchParamDefinition(name="code", path="OperationDefinition.code", description="Name used to invoke the operation", type="token" )
5710  public static final String SP_CODE = "code";
5711 /**
5712   * <b>Fluent Client</b> search parameter constant for <b>code</b>
5713   * <p>
5714   * Description: <b>Name used to invoke the operation</b><br>
5715   * Type: <b>token</b><br>
5716   * Path: <b>OperationDefinition.code</b><br>
5717   * </p>
5718   */
5719  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
5720
5721 /**
5722   * Search parameter: <b>input-profile</b>
5723   * <p>
5724   * Description: <b>Validation information for in parameters</b><br>
5725   * Type: <b>reference</b><br>
5726   * Path: <b>OperationDefinition.inputProfile</b><br>
5727   * </p>
5728   */
5729  @SearchParamDefinition(name="input-profile", path="OperationDefinition.inputProfile", description="Validation information for in parameters", type="reference", target={StructureDefinition.class } )
5730  public static final String SP_INPUT_PROFILE = "input-profile";
5731 /**
5732   * <b>Fluent Client</b> search parameter constant for <b>input-profile</b>
5733   * <p>
5734   * Description: <b>Validation information for in parameters</b><br>
5735   * Type: <b>reference</b><br>
5736   * Path: <b>OperationDefinition.inputProfile</b><br>
5737   * </p>
5738   */
5739  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INPUT_PROFILE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INPUT_PROFILE);
5740
5741/**
5742   * Constant for fluent queries to be used to add include statements. Specifies
5743   * the path value of "<b>OperationDefinition:input-profile</b>".
5744   */
5745  public static final ca.uhn.fhir.model.api.Include INCLUDE_INPUT_PROFILE = new ca.uhn.fhir.model.api.Include("OperationDefinition:input-profile").toLocked();
5746
5747 /**
5748   * Search parameter: <b>instance</b>
5749   * <p>
5750   * Description: <b>Invoke on an instance?</b><br>
5751   * Type: <b>token</b><br>
5752   * Path: <b>OperationDefinition.instance</b><br>
5753   * </p>
5754   */
5755  @SearchParamDefinition(name="instance", path="OperationDefinition.instance", description="Invoke on an instance?", type="token" )
5756  public static final String SP_INSTANCE = "instance";
5757 /**
5758   * <b>Fluent Client</b> search parameter constant for <b>instance</b>
5759   * <p>
5760   * Description: <b>Invoke on an instance?</b><br>
5761   * Type: <b>token</b><br>
5762   * Path: <b>OperationDefinition.instance</b><br>
5763   * </p>
5764   */
5765  public static final ca.uhn.fhir.rest.gclient.TokenClientParam INSTANCE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_INSTANCE);
5766
5767 /**
5768   * Search parameter: <b>kind</b>
5769   * <p>
5770   * Description: <b>operation | query</b><br>
5771   * Type: <b>token</b><br>
5772   * Path: <b>OperationDefinition.kind</b><br>
5773   * </p>
5774   */
5775  @SearchParamDefinition(name="kind", path="OperationDefinition.kind", description="operation | query", type="token" )
5776  public static final String SP_KIND = "kind";
5777 /**
5778   * <b>Fluent Client</b> search parameter constant for <b>kind</b>
5779   * <p>
5780   * Description: <b>operation | query</b><br>
5781   * Type: <b>token</b><br>
5782   * Path: <b>OperationDefinition.kind</b><br>
5783   * </p>
5784   */
5785  public static final ca.uhn.fhir.rest.gclient.TokenClientParam KIND = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KIND);
5786
5787 /**
5788   * Search parameter: <b>output-profile</b>
5789   * <p>
5790   * Description: <b>Validation information for out parameters</b><br>
5791   * Type: <b>reference</b><br>
5792   * Path: <b>OperationDefinition.outputProfile</b><br>
5793   * </p>
5794   */
5795  @SearchParamDefinition(name="output-profile", path="OperationDefinition.outputProfile", description="Validation information for out parameters", type="reference", target={StructureDefinition.class } )
5796  public static final String SP_OUTPUT_PROFILE = "output-profile";
5797 /**
5798   * <b>Fluent Client</b> search parameter constant for <b>output-profile</b>
5799   * <p>
5800   * Description: <b>Validation information for out parameters</b><br>
5801   * Type: <b>reference</b><br>
5802   * Path: <b>OperationDefinition.outputProfile</b><br>
5803   * </p>
5804   */
5805  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam OUTPUT_PROFILE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_OUTPUT_PROFILE);
5806
5807/**
5808   * Constant for fluent queries to be used to add include statements. Specifies
5809   * the path value of "<b>OperationDefinition:output-profile</b>".
5810   */
5811  public static final ca.uhn.fhir.model.api.Include INCLUDE_OUTPUT_PROFILE = new ca.uhn.fhir.model.api.Include("OperationDefinition:output-profile").toLocked();
5812
5813 /**
5814   * Search parameter: <b>system</b>
5815   * <p>
5816   * Description: <b>Invoke at the system level?</b><br>
5817   * Type: <b>token</b><br>
5818   * Path: <b>OperationDefinition.system</b><br>
5819   * </p>
5820   */
5821  @SearchParamDefinition(name="system", path="OperationDefinition.system", description="Invoke at the system level?", type="token" )
5822  public static final String SP_SYSTEM = "system";
5823 /**
5824   * <b>Fluent Client</b> search parameter constant for <b>system</b>
5825   * <p>
5826   * Description: <b>Invoke at the system level?</b><br>
5827   * Type: <b>token</b><br>
5828   * Path: <b>OperationDefinition.system</b><br>
5829   * </p>
5830   */
5831  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SYSTEM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SYSTEM);
5832
5833 /**
5834   * Search parameter: <b>type</b>
5835   * <p>
5836   * Description: <b>Invoke at the type level?</b><br>
5837   * Type: <b>token</b><br>
5838   * Path: <b>OperationDefinition.type</b><br>
5839   * </p>
5840   */
5841  @SearchParamDefinition(name="type", path="OperationDefinition.type", description="Invoke at the type level?", type="token" )
5842  public static final String SP_TYPE = "type";
5843 /**
5844   * <b>Fluent Client</b> search parameter constant for <b>type</b>
5845   * <p>
5846   * Description: <b>Invoke at the type level?</b><br>
5847   * Type: <b>token</b><br>
5848   * Path: <b>OperationDefinition.type</b><br>
5849   * </p>
5850   */
5851  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
5852
5853// Manual code (from Configuration.txt):
5854  public boolean supportsCopyright() {
5855    return true;
5856  }
5857
5858// end addition
5859
5860}
5861