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 void removeChild(String name, Base value) throws FHIRException {
1173        if (name.equals("name")) {
1174          this.name = null;
1175        } else if (name.equals("use")) {
1176          value = new OperationParameterUseEnumFactory().fromType(TypeConvertor.castToCode(value));
1177          this.use = (Enumeration) value; // Enumeration<OperationParameterUse>
1178        } else if (name.equals("scope")) {
1179          value = new OperationParameterScopeEnumFactory().fromType(TypeConvertor.castToCode(value));
1180          this.getScope().remove((Enumeration) value);
1181        } else if (name.equals("min")) {
1182          this.min = null;
1183        } else if (name.equals("max")) {
1184          this.max = null;
1185        } else if (name.equals("documentation")) {
1186          this.documentation = null;
1187        } else if (name.equals("type")) {
1188          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1189          this.type = (Enumeration) value; // Enumeration<FHIRTypes>
1190        } else if (name.equals("allowedType")) {
1191          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1192          this.getAllowedType().remove((Enumeration) value);
1193        } else if (name.equals("targetProfile")) {
1194          this.getTargetProfile().remove(value);
1195        } else if (name.equals("searchType")) {
1196          value = new SearchParamTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1197          this.searchType = (Enumeration) value; // Enumeration<SearchParamType>
1198        } else if (name.equals("binding")) {
1199          this.binding = (OperationDefinitionParameterBindingComponent) value; // OperationDefinitionParameterBindingComponent
1200        } else if (name.equals("referencedFrom")) {
1201          this.getReferencedFrom().remove((OperationDefinitionParameterReferencedFromComponent) value);
1202        } else if (name.equals("part")) {
1203          this.getPart().remove((OperationDefinitionParameterComponent) value);
1204        } else
1205          super.removeChild(name, value);
1206        
1207      }
1208
1209      @Override
1210      public Base makeProperty(int hash, String name) throws FHIRException {
1211        switch (hash) {
1212        case 3373707:  return getNameElement();
1213        case 116103:  return getUseElement();
1214        case 109264468:  return addScopeElement();
1215        case 108114:  return getMinElement();
1216        case 107876:  return getMaxElement();
1217        case 1587405498:  return getDocumentationElement();
1218        case 3575610:  return getTypeElement();
1219        case 1512894722:  return addAllowedTypeElement();
1220        case 1994521304:  return addTargetProfileElement();
1221        case -710454014:  return getSearchTypeElement();
1222        case -108220795:  return getBinding();
1223        case -1896721981:  return addReferencedFrom(); 
1224        case 3433459:  return addPart(); 
1225        default: return super.makeProperty(hash, name);
1226        }
1227
1228      }
1229
1230      @Override
1231      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1232        switch (hash) {
1233        case 3373707: /*name*/ return new String[] {"code"};
1234        case 116103: /*use*/ return new String[] {"code"};
1235        case 109264468: /*scope*/ return new String[] {"code"};
1236        case 108114: /*min*/ return new String[] {"integer"};
1237        case 107876: /*max*/ return new String[] {"string"};
1238        case 1587405498: /*documentation*/ return new String[] {"markdown"};
1239        case 3575610: /*type*/ return new String[] {"code"};
1240        case 1512894722: /*allowedType*/ return new String[] {"code"};
1241        case 1994521304: /*targetProfile*/ return new String[] {"canonical"};
1242        case -710454014: /*searchType*/ return new String[] {"code"};
1243        case -108220795: /*binding*/ return new String[] {};
1244        case -1896721981: /*referencedFrom*/ return new String[] {};
1245        case 3433459: /*part*/ return new String[] {"@OperationDefinition.parameter"};
1246        default: return super.getTypesForProperty(hash, name);
1247        }
1248
1249      }
1250
1251      @Override
1252      public Base addChild(String name) throws FHIRException {
1253        if (name.equals("name")) {
1254          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.name");
1255        }
1256        else if (name.equals("use")) {
1257          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.use");
1258        }
1259        else if (name.equals("scope")) {
1260          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.scope");
1261        }
1262        else if (name.equals("min")) {
1263          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.min");
1264        }
1265        else if (name.equals("max")) {
1266          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.max");
1267        }
1268        else if (name.equals("documentation")) {
1269          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.documentation");
1270        }
1271        else if (name.equals("type")) {
1272          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.type");
1273        }
1274        else if (name.equals("allowedType")) {
1275          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.allowedType");
1276        }
1277        else if (name.equals("targetProfile")) {
1278          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.targetProfile");
1279        }
1280        else if (name.equals("searchType")) {
1281          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.searchType");
1282        }
1283        else if (name.equals("binding")) {
1284          this.binding = new OperationDefinitionParameterBindingComponent();
1285          return this.binding;
1286        }
1287        else if (name.equals("referencedFrom")) {
1288          return addReferencedFrom();
1289        }
1290        else if (name.equals("part")) {
1291          return addPart();
1292        }
1293        else
1294          return super.addChild(name);
1295      }
1296
1297      public OperationDefinitionParameterComponent copy() {
1298        OperationDefinitionParameterComponent dst = new OperationDefinitionParameterComponent();
1299        copyValues(dst);
1300        return dst;
1301      }
1302
1303      public void copyValues(OperationDefinitionParameterComponent dst) {
1304        super.copyValues(dst);
1305        dst.name = name == null ? null : name.copy();
1306        dst.use = use == null ? null : use.copy();
1307        if (scope != null) {
1308          dst.scope = new ArrayList<Enumeration<OperationParameterScope>>();
1309          for (Enumeration<OperationParameterScope> i : scope)
1310            dst.scope.add(i.copy());
1311        };
1312        dst.min = min == null ? null : min.copy();
1313        dst.max = max == null ? null : max.copy();
1314        dst.documentation = documentation == null ? null : documentation.copy();
1315        dst.type = type == null ? null : type.copy();
1316        if (allowedType != null) {
1317          dst.allowedType = new ArrayList<Enumeration<FHIRTypes>>();
1318          for (Enumeration<FHIRTypes> i : allowedType)
1319            dst.allowedType.add(i.copy());
1320        };
1321        if (targetProfile != null) {
1322          dst.targetProfile = new ArrayList<CanonicalType>();
1323          for (CanonicalType i : targetProfile)
1324            dst.targetProfile.add(i.copy());
1325        };
1326        dst.searchType = searchType == null ? null : searchType.copy();
1327        dst.binding = binding == null ? null : binding.copy();
1328        if (referencedFrom != null) {
1329          dst.referencedFrom = new ArrayList<OperationDefinitionParameterReferencedFromComponent>();
1330          for (OperationDefinitionParameterReferencedFromComponent i : referencedFrom)
1331            dst.referencedFrom.add(i.copy());
1332        };
1333        if (part != null) {
1334          dst.part = new ArrayList<OperationDefinitionParameterComponent>();
1335          for (OperationDefinitionParameterComponent i : part)
1336            dst.part.add(i.copy());
1337        };
1338      }
1339
1340      @Override
1341      public boolean equalsDeep(Base other_) {
1342        if (!super.equalsDeep(other_))
1343          return false;
1344        if (!(other_ instanceof OperationDefinitionParameterComponent))
1345          return false;
1346        OperationDefinitionParameterComponent o = (OperationDefinitionParameterComponent) other_;
1347        return compareDeep(name, o.name, true) && compareDeep(use, o.use, true) && compareDeep(scope, o.scope, true)
1348           && compareDeep(min, o.min, true) && compareDeep(max, o.max, true) && compareDeep(documentation, o.documentation, true)
1349           && compareDeep(type, o.type, true) && compareDeep(allowedType, o.allowedType, true) && compareDeep(targetProfile, o.targetProfile, true)
1350           && compareDeep(searchType, o.searchType, true) && compareDeep(binding, o.binding, true) && compareDeep(referencedFrom, o.referencedFrom, true)
1351           && compareDeep(part, o.part, true);
1352      }
1353
1354      @Override
1355      public boolean equalsShallow(Base other_) {
1356        if (!super.equalsShallow(other_))
1357          return false;
1358        if (!(other_ instanceof OperationDefinitionParameterComponent))
1359          return false;
1360        OperationDefinitionParameterComponent o = (OperationDefinitionParameterComponent) other_;
1361        return compareValues(name, o.name, true) && compareValues(use, o.use, true) && compareValues(scope, o.scope, true)
1362           && compareValues(min, o.min, true) && compareValues(max, o.max, true) && compareValues(documentation, o.documentation, true)
1363           && compareValues(type, o.type, true) && compareValues(allowedType, o.allowedType, true) && compareValues(targetProfile, o.targetProfile, true)
1364           && compareValues(searchType, o.searchType, true);
1365      }
1366
1367      public boolean isEmpty() {
1368        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, use, scope, min
1369          , max, documentation, type, allowedType, targetProfile, searchType, binding, referencedFrom
1370          , part);
1371      }
1372
1373  public String fhirType() {
1374    return "OperationDefinition.parameter";
1375
1376  }
1377
1378  }
1379
1380    @Block()
1381    public static class OperationDefinitionParameterBindingComponent extends BackboneElement implements IBaseBackboneElement {
1382        /**
1383         * 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.
1384         */
1385        @Child(name = "strength", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
1386        @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." )
1387        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/binding-strength")
1388        protected Enumeration<BindingStrength> strength;
1389
1390        /**
1391         * Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.
1392         */
1393        @Child(name = "valueSet", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=false)
1394        @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." )
1395        protected CanonicalType valueSet;
1396
1397        private static final long serialVersionUID = -2048653907L;
1398
1399    /**
1400     * Constructor
1401     */
1402      public OperationDefinitionParameterBindingComponent() {
1403        super();
1404      }
1405
1406    /**
1407     * Constructor
1408     */
1409      public OperationDefinitionParameterBindingComponent(BindingStrength strength, String valueSet) {
1410        super();
1411        this.setStrength(strength);
1412        this.setValueSet(valueSet);
1413      }
1414
1415        /**
1416         * @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
1417         */
1418        public Enumeration<BindingStrength> getStrengthElement() { 
1419          if (this.strength == null)
1420            if (Configuration.errorOnAutoCreate())
1421              throw new Error("Attempt to auto-create OperationDefinitionParameterBindingComponent.strength");
1422            else if (Configuration.doAutoCreate())
1423              this.strength = new Enumeration<BindingStrength>(new BindingStrengthEnumFactory()); // bb
1424          return this.strength;
1425        }
1426
1427        public boolean hasStrengthElement() { 
1428          return this.strength != null && !this.strength.isEmpty();
1429        }
1430
1431        public boolean hasStrength() { 
1432          return this.strength != null && !this.strength.isEmpty();
1433        }
1434
1435        /**
1436         * @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
1437         */
1438        public OperationDefinitionParameterBindingComponent setStrengthElement(Enumeration<BindingStrength> value) { 
1439          this.strength = value;
1440          return this;
1441        }
1442
1443        /**
1444         * @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.
1445         */
1446        public BindingStrength getStrength() { 
1447          return this.strength == null ? null : this.strength.getValue();
1448        }
1449
1450        /**
1451         * @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.
1452         */
1453        public OperationDefinitionParameterBindingComponent setStrength(BindingStrength value) { 
1454            if (this.strength == null)
1455              this.strength = new Enumeration<BindingStrength>(new BindingStrengthEnumFactory());
1456            this.strength.setValue(value);
1457          return this;
1458        }
1459
1460        /**
1461         * @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
1462         */
1463        public CanonicalType getValueSetElement() { 
1464          if (this.valueSet == null)
1465            if (Configuration.errorOnAutoCreate())
1466              throw new Error("Attempt to auto-create OperationDefinitionParameterBindingComponent.valueSet");
1467            else if (Configuration.doAutoCreate())
1468              this.valueSet = new CanonicalType(); // bb
1469          return this.valueSet;
1470        }
1471
1472        public boolean hasValueSetElement() { 
1473          return this.valueSet != null && !this.valueSet.isEmpty();
1474        }
1475
1476        public boolean hasValueSet() { 
1477          return this.valueSet != null && !this.valueSet.isEmpty();
1478        }
1479
1480        /**
1481         * @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
1482         */
1483        public OperationDefinitionParameterBindingComponent setValueSetElement(CanonicalType value) { 
1484          this.valueSet = value;
1485          return this;
1486        }
1487
1488        /**
1489         * @return Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.
1490         */
1491        public String getValueSet() { 
1492          return this.valueSet == null ? null : this.valueSet.getValue();
1493        }
1494
1495        /**
1496         * @param value Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used.
1497         */
1498        public OperationDefinitionParameterBindingComponent setValueSet(String value) { 
1499            if (this.valueSet == null)
1500              this.valueSet = new CanonicalType();
1501            this.valueSet.setValue(value);
1502          return this;
1503        }
1504
1505        protected void listChildren(List<Property> children) {
1506          super.listChildren(children);
1507          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));
1508          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));
1509        }
1510
1511        @Override
1512        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1513          switch (_hash) {
1514          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);
1515          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);
1516          default: return super.getNamedProperty(_hash, _name, _checkValid);
1517          }
1518
1519        }
1520
1521      @Override
1522      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1523        switch (hash) {
1524        case 1791316033: /*strength*/ return this.strength == null ? new Base[0] : new Base[] {this.strength}; // Enumeration<BindingStrength>
1525        case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : new Base[] {this.valueSet}; // CanonicalType
1526        default: return super.getProperty(hash, name, checkValid);
1527        }
1528
1529      }
1530
1531      @Override
1532      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1533        switch (hash) {
1534        case 1791316033: // strength
1535          value = new BindingStrengthEnumFactory().fromType(TypeConvertor.castToCode(value));
1536          this.strength = (Enumeration) value; // Enumeration<BindingStrength>
1537          return value;
1538        case -1410174671: // valueSet
1539          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
1540          return value;
1541        default: return super.setProperty(hash, name, value);
1542        }
1543
1544      }
1545
1546      @Override
1547      public Base setProperty(String name, Base value) throws FHIRException {
1548        if (name.equals("strength")) {
1549          value = new BindingStrengthEnumFactory().fromType(TypeConvertor.castToCode(value));
1550          this.strength = (Enumeration) value; // Enumeration<BindingStrength>
1551        } else if (name.equals("valueSet")) {
1552          this.valueSet = TypeConvertor.castToCanonical(value); // CanonicalType
1553        } else
1554          return super.setProperty(name, value);
1555        return value;
1556      }
1557
1558  @Override
1559  public void removeChild(String name, Base value) throws FHIRException {
1560        if (name.equals("strength")) {
1561          value = new BindingStrengthEnumFactory().fromType(TypeConvertor.castToCode(value));
1562          this.strength = (Enumeration) value; // Enumeration<BindingStrength>
1563        } else if (name.equals("valueSet")) {
1564          this.valueSet = null;
1565        } else
1566          super.removeChild(name, value);
1567        
1568      }
1569
1570      @Override
1571      public Base makeProperty(int hash, String name) throws FHIRException {
1572        switch (hash) {
1573        case 1791316033:  return getStrengthElement();
1574        case -1410174671:  return getValueSetElement();
1575        default: return super.makeProperty(hash, name);
1576        }
1577
1578      }
1579
1580      @Override
1581      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1582        switch (hash) {
1583        case 1791316033: /*strength*/ return new String[] {"code"};
1584        case -1410174671: /*valueSet*/ return new String[] {"canonical"};
1585        default: return super.getTypesForProperty(hash, name);
1586        }
1587
1588      }
1589
1590      @Override
1591      public Base addChild(String name) throws FHIRException {
1592        if (name.equals("strength")) {
1593          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.binding.strength");
1594        }
1595        else if (name.equals("valueSet")) {
1596          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.binding.valueSet");
1597        }
1598        else
1599          return super.addChild(name);
1600      }
1601
1602      public OperationDefinitionParameterBindingComponent copy() {
1603        OperationDefinitionParameterBindingComponent dst = new OperationDefinitionParameterBindingComponent();
1604        copyValues(dst);
1605        return dst;
1606      }
1607
1608      public void copyValues(OperationDefinitionParameterBindingComponent dst) {
1609        super.copyValues(dst);
1610        dst.strength = strength == null ? null : strength.copy();
1611        dst.valueSet = valueSet == null ? null : valueSet.copy();
1612      }
1613
1614      @Override
1615      public boolean equalsDeep(Base other_) {
1616        if (!super.equalsDeep(other_))
1617          return false;
1618        if (!(other_ instanceof OperationDefinitionParameterBindingComponent))
1619          return false;
1620        OperationDefinitionParameterBindingComponent o = (OperationDefinitionParameterBindingComponent) other_;
1621        return compareDeep(strength, o.strength, true) && compareDeep(valueSet, o.valueSet, true);
1622      }
1623
1624      @Override
1625      public boolean equalsShallow(Base other_) {
1626        if (!super.equalsShallow(other_))
1627          return false;
1628        if (!(other_ instanceof OperationDefinitionParameterBindingComponent))
1629          return false;
1630        OperationDefinitionParameterBindingComponent o = (OperationDefinitionParameterBindingComponent) other_;
1631        return compareValues(strength, o.strength, true) && compareValues(valueSet, o.valueSet, true);
1632      }
1633
1634      public boolean isEmpty() {
1635        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(strength, valueSet);
1636      }
1637
1638  public String fhirType() {
1639    return "OperationDefinition.parameter.binding";
1640
1641  }
1642
1643  }
1644
1645    @Block()
1646    public static class OperationDefinitionParameterReferencedFromComponent extends BackboneElement implements IBaseBackboneElement {
1647        /**
1648         * 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.
1649         */
1650        @Child(name = "source", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
1651        @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." )
1652        protected StringType source;
1653
1654        /**
1655         * The id of the element in the referencing resource that is expected to resolve to this resource.
1656         */
1657        @Child(name = "sourceId", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1658        @Description(shortDefinition="Element id of reference", formalDefinition="The id of the element in the referencing resource that is expected to resolve to this resource." )
1659        protected StringType sourceId;
1660
1661        private static final long serialVersionUID = -104239783L;
1662
1663    /**
1664     * Constructor
1665     */
1666      public OperationDefinitionParameterReferencedFromComponent() {
1667        super();
1668      }
1669
1670    /**
1671     * Constructor
1672     */
1673      public OperationDefinitionParameterReferencedFromComponent(String source) {
1674        super();
1675        this.setSource(source);
1676      }
1677
1678        /**
1679         * @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
1680         */
1681        public StringType getSourceElement() { 
1682          if (this.source == null)
1683            if (Configuration.errorOnAutoCreate())
1684              throw new Error("Attempt to auto-create OperationDefinitionParameterReferencedFromComponent.source");
1685            else if (Configuration.doAutoCreate())
1686              this.source = new StringType(); // bb
1687          return this.source;
1688        }
1689
1690        public boolean hasSourceElement() { 
1691          return this.source != null && !this.source.isEmpty();
1692        }
1693
1694        public boolean hasSource() { 
1695          return this.source != null && !this.source.isEmpty();
1696        }
1697
1698        /**
1699         * @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
1700         */
1701        public OperationDefinitionParameterReferencedFromComponent setSourceElement(StringType value) { 
1702          this.source = value;
1703          return this;
1704        }
1705
1706        /**
1707         * @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.
1708         */
1709        public String getSource() { 
1710          return this.source == null ? null : this.source.getValue();
1711        }
1712
1713        /**
1714         * @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.
1715         */
1716        public OperationDefinitionParameterReferencedFromComponent setSource(String value) { 
1717            if (this.source == null)
1718              this.source = new StringType();
1719            this.source.setValue(value);
1720          return this;
1721        }
1722
1723        /**
1724         * @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
1725         */
1726        public StringType getSourceIdElement() { 
1727          if (this.sourceId == null)
1728            if (Configuration.errorOnAutoCreate())
1729              throw new Error("Attempt to auto-create OperationDefinitionParameterReferencedFromComponent.sourceId");
1730            else if (Configuration.doAutoCreate())
1731              this.sourceId = new StringType(); // bb
1732          return this.sourceId;
1733        }
1734
1735        public boolean hasSourceIdElement() { 
1736          return this.sourceId != null && !this.sourceId.isEmpty();
1737        }
1738
1739        public boolean hasSourceId() { 
1740          return this.sourceId != null && !this.sourceId.isEmpty();
1741        }
1742
1743        /**
1744         * @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
1745         */
1746        public OperationDefinitionParameterReferencedFromComponent setSourceIdElement(StringType value) { 
1747          this.sourceId = value;
1748          return this;
1749        }
1750
1751        /**
1752         * @return The id of the element in the referencing resource that is expected to resolve to this resource.
1753         */
1754        public String getSourceId() { 
1755          return this.sourceId == null ? null : this.sourceId.getValue();
1756        }
1757
1758        /**
1759         * @param value The id of the element in the referencing resource that is expected to resolve to this resource.
1760         */
1761        public OperationDefinitionParameterReferencedFromComponent setSourceId(String value) { 
1762          if (Utilities.noString(value))
1763            this.sourceId = null;
1764          else {
1765            if (this.sourceId == null)
1766              this.sourceId = new StringType();
1767            this.sourceId.setValue(value);
1768          }
1769          return this;
1770        }
1771
1772        protected void listChildren(List<Property> children) {
1773          super.listChildren(children);
1774          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));
1775          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));
1776        }
1777
1778        @Override
1779        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1780          switch (_hash) {
1781          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);
1782          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);
1783          default: return super.getNamedProperty(_hash, _name, _checkValid);
1784          }
1785
1786        }
1787
1788      @Override
1789      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1790        switch (hash) {
1791        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // StringType
1792        case 1746327190: /*sourceId*/ return this.sourceId == null ? new Base[0] : new Base[] {this.sourceId}; // StringType
1793        default: return super.getProperty(hash, name, checkValid);
1794        }
1795
1796      }
1797
1798      @Override
1799      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1800        switch (hash) {
1801        case -896505829: // source
1802          this.source = TypeConvertor.castToString(value); // StringType
1803          return value;
1804        case 1746327190: // sourceId
1805          this.sourceId = TypeConvertor.castToString(value); // StringType
1806          return value;
1807        default: return super.setProperty(hash, name, value);
1808        }
1809
1810      }
1811
1812      @Override
1813      public Base setProperty(String name, Base value) throws FHIRException {
1814        if (name.equals("source")) {
1815          this.source = TypeConvertor.castToString(value); // StringType
1816        } else if (name.equals("sourceId")) {
1817          this.sourceId = TypeConvertor.castToString(value); // StringType
1818        } else
1819          return super.setProperty(name, value);
1820        return value;
1821      }
1822
1823  @Override
1824  public void removeChild(String name, Base value) throws FHIRException {
1825        if (name.equals("source")) {
1826          this.source = null;
1827        } else if (name.equals("sourceId")) {
1828          this.sourceId = null;
1829        } else
1830          super.removeChild(name, value);
1831        
1832      }
1833
1834      @Override
1835      public Base makeProperty(int hash, String name) throws FHIRException {
1836        switch (hash) {
1837        case -896505829:  return getSourceElement();
1838        case 1746327190:  return getSourceIdElement();
1839        default: return super.makeProperty(hash, name);
1840        }
1841
1842      }
1843
1844      @Override
1845      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1846        switch (hash) {
1847        case -896505829: /*source*/ return new String[] {"string"};
1848        case 1746327190: /*sourceId*/ return new String[] {"string"};
1849        default: return super.getTypesForProperty(hash, name);
1850        }
1851
1852      }
1853
1854      @Override
1855      public Base addChild(String name) throws FHIRException {
1856        if (name.equals("source")) {
1857          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.referencedFrom.source");
1858        }
1859        else if (name.equals("sourceId")) {
1860          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.parameter.referencedFrom.sourceId");
1861        }
1862        else
1863          return super.addChild(name);
1864      }
1865
1866      public OperationDefinitionParameterReferencedFromComponent copy() {
1867        OperationDefinitionParameterReferencedFromComponent dst = new OperationDefinitionParameterReferencedFromComponent();
1868        copyValues(dst);
1869        return dst;
1870      }
1871
1872      public void copyValues(OperationDefinitionParameterReferencedFromComponent dst) {
1873        super.copyValues(dst);
1874        dst.source = source == null ? null : source.copy();
1875        dst.sourceId = sourceId == null ? null : sourceId.copy();
1876      }
1877
1878      @Override
1879      public boolean equalsDeep(Base other_) {
1880        if (!super.equalsDeep(other_))
1881          return false;
1882        if (!(other_ instanceof OperationDefinitionParameterReferencedFromComponent))
1883          return false;
1884        OperationDefinitionParameterReferencedFromComponent o = (OperationDefinitionParameterReferencedFromComponent) other_;
1885        return compareDeep(source, o.source, true) && compareDeep(sourceId, o.sourceId, true);
1886      }
1887
1888      @Override
1889      public boolean equalsShallow(Base other_) {
1890        if (!super.equalsShallow(other_))
1891          return false;
1892        if (!(other_ instanceof OperationDefinitionParameterReferencedFromComponent))
1893          return false;
1894        OperationDefinitionParameterReferencedFromComponent o = (OperationDefinitionParameterReferencedFromComponent) other_;
1895        return compareValues(source, o.source, true) && compareValues(sourceId, o.sourceId, true);
1896      }
1897
1898      public boolean isEmpty() {
1899        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(source, sourceId);
1900      }
1901
1902  public String fhirType() {
1903    return "OperationDefinition.parameter.referencedFrom";
1904
1905  }
1906
1907  }
1908
1909    @Block()
1910    public static class OperationDefinitionOverloadComponent extends BackboneElement implements IBaseBackboneElement {
1911        /**
1912         * Name of parameter to include in overload.
1913         */
1914        @Child(name = "parameterName", type = {StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1915        @Description(shortDefinition="Name of parameter to include in overload", formalDefinition="Name of parameter to include in overload." )
1916        protected List<StringType> parameterName;
1917
1918        /**
1919         * Comments to go on overload.
1920         */
1921        @Child(name = "comment", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
1922        @Description(shortDefinition="Comments to go on overload", formalDefinition="Comments to go on overload." )
1923        protected StringType comment;
1924
1925        private static final long serialVersionUID = -907948545L;
1926
1927    /**
1928     * Constructor
1929     */
1930      public OperationDefinitionOverloadComponent() {
1931        super();
1932      }
1933
1934        /**
1935         * @return {@link #parameterName} (Name of parameter to include in overload.)
1936         */
1937        public List<StringType> getParameterName() { 
1938          if (this.parameterName == null)
1939            this.parameterName = new ArrayList<StringType>();
1940          return this.parameterName;
1941        }
1942
1943        /**
1944         * @return Returns a reference to <code>this</code> for easy method chaining
1945         */
1946        public OperationDefinitionOverloadComponent setParameterName(List<StringType> theParameterName) { 
1947          this.parameterName = theParameterName;
1948          return this;
1949        }
1950
1951        public boolean hasParameterName() { 
1952          if (this.parameterName == null)
1953            return false;
1954          for (StringType item : this.parameterName)
1955            if (!item.isEmpty())
1956              return true;
1957          return false;
1958        }
1959
1960        /**
1961         * @return {@link #parameterName} (Name of parameter to include in overload.)
1962         */
1963        public StringType addParameterNameElement() {//2 
1964          StringType t = new StringType();
1965          if (this.parameterName == null)
1966            this.parameterName = new ArrayList<StringType>();
1967          this.parameterName.add(t);
1968          return t;
1969        }
1970
1971        /**
1972         * @param value {@link #parameterName} (Name of parameter to include in overload.)
1973         */
1974        public OperationDefinitionOverloadComponent addParameterName(String value) { //1
1975          StringType t = new StringType();
1976          t.setValue(value);
1977          if (this.parameterName == null)
1978            this.parameterName = new ArrayList<StringType>();
1979          this.parameterName.add(t);
1980          return this;
1981        }
1982
1983        /**
1984         * @param value {@link #parameterName} (Name of parameter to include in overload.)
1985         */
1986        public boolean hasParameterName(String value) { 
1987          if (this.parameterName == null)
1988            return false;
1989          for (StringType v : this.parameterName)
1990            if (v.getValue().equals(value)) // string
1991              return true;
1992          return false;
1993        }
1994
1995        /**
1996         * @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
1997         */
1998        public StringType getCommentElement() { 
1999          if (this.comment == null)
2000            if (Configuration.errorOnAutoCreate())
2001              throw new Error("Attempt to auto-create OperationDefinitionOverloadComponent.comment");
2002            else if (Configuration.doAutoCreate())
2003              this.comment = new StringType(); // bb
2004          return this.comment;
2005        }
2006
2007        public boolean hasCommentElement() { 
2008          return this.comment != null && !this.comment.isEmpty();
2009        }
2010
2011        public boolean hasComment() { 
2012          return this.comment != null && !this.comment.isEmpty();
2013        }
2014
2015        /**
2016         * @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
2017         */
2018        public OperationDefinitionOverloadComponent setCommentElement(StringType value) { 
2019          this.comment = value;
2020          return this;
2021        }
2022
2023        /**
2024         * @return Comments to go on overload.
2025         */
2026        public String getComment() { 
2027          return this.comment == null ? null : this.comment.getValue();
2028        }
2029
2030        /**
2031         * @param value Comments to go on overload.
2032         */
2033        public OperationDefinitionOverloadComponent setComment(String value) { 
2034          if (Utilities.noString(value))
2035            this.comment = null;
2036          else {
2037            if (this.comment == null)
2038              this.comment = new StringType();
2039            this.comment.setValue(value);
2040          }
2041          return this;
2042        }
2043
2044        protected void listChildren(List<Property> children) {
2045          super.listChildren(children);
2046          children.add(new Property("parameterName", "string", "Name of parameter to include in overload.", 0, java.lang.Integer.MAX_VALUE, parameterName));
2047          children.add(new Property("comment", "string", "Comments to go on overload.", 0, 1, comment));
2048        }
2049
2050        @Override
2051        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2052          switch (_hash) {
2053          case -379607596: /*parameterName*/  return new Property("parameterName", "string", "Name of parameter to include in overload.", 0, java.lang.Integer.MAX_VALUE, parameterName);
2054          case 950398559: /*comment*/  return new Property("comment", "string", "Comments to go on overload.", 0, 1, comment);
2055          default: return super.getNamedProperty(_hash, _name, _checkValid);
2056          }
2057
2058        }
2059
2060      @Override
2061      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2062        switch (hash) {
2063        case -379607596: /*parameterName*/ return this.parameterName == null ? new Base[0] : this.parameterName.toArray(new Base[this.parameterName.size()]); // StringType
2064        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // StringType
2065        default: return super.getProperty(hash, name, checkValid);
2066        }
2067
2068      }
2069
2070      @Override
2071      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2072        switch (hash) {
2073        case -379607596: // parameterName
2074          this.getParameterName().add(TypeConvertor.castToString(value)); // StringType
2075          return value;
2076        case 950398559: // comment
2077          this.comment = TypeConvertor.castToString(value); // StringType
2078          return value;
2079        default: return super.setProperty(hash, name, value);
2080        }
2081
2082      }
2083
2084      @Override
2085      public Base setProperty(String name, Base value) throws FHIRException {
2086        if (name.equals("parameterName")) {
2087          this.getParameterName().add(TypeConvertor.castToString(value));
2088        } else if (name.equals("comment")) {
2089          this.comment = TypeConvertor.castToString(value); // StringType
2090        } else
2091          return super.setProperty(name, value);
2092        return value;
2093      }
2094
2095  @Override
2096  public void removeChild(String name, Base value) throws FHIRException {
2097        if (name.equals("parameterName")) {
2098          this.getParameterName().remove(value);
2099        } else if (name.equals("comment")) {
2100          this.comment = null;
2101        } else
2102          super.removeChild(name, value);
2103        
2104      }
2105
2106      @Override
2107      public Base makeProperty(int hash, String name) throws FHIRException {
2108        switch (hash) {
2109        case -379607596:  return addParameterNameElement();
2110        case 950398559:  return getCommentElement();
2111        default: return super.makeProperty(hash, name);
2112        }
2113
2114      }
2115
2116      @Override
2117      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2118        switch (hash) {
2119        case -379607596: /*parameterName*/ return new String[] {"string"};
2120        case 950398559: /*comment*/ return new String[] {"string"};
2121        default: return super.getTypesForProperty(hash, name);
2122        }
2123
2124      }
2125
2126      @Override
2127      public Base addChild(String name) throws FHIRException {
2128        if (name.equals("parameterName")) {
2129          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.overload.parameterName");
2130        }
2131        else if (name.equals("comment")) {
2132          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.overload.comment");
2133        }
2134        else
2135          return super.addChild(name);
2136      }
2137
2138      public OperationDefinitionOverloadComponent copy() {
2139        OperationDefinitionOverloadComponent dst = new OperationDefinitionOverloadComponent();
2140        copyValues(dst);
2141        return dst;
2142      }
2143
2144      public void copyValues(OperationDefinitionOverloadComponent dst) {
2145        super.copyValues(dst);
2146        if (parameterName != null) {
2147          dst.parameterName = new ArrayList<StringType>();
2148          for (StringType i : parameterName)
2149            dst.parameterName.add(i.copy());
2150        };
2151        dst.comment = comment == null ? null : comment.copy();
2152      }
2153
2154      @Override
2155      public boolean equalsDeep(Base other_) {
2156        if (!super.equalsDeep(other_))
2157          return false;
2158        if (!(other_ instanceof OperationDefinitionOverloadComponent))
2159          return false;
2160        OperationDefinitionOverloadComponent o = (OperationDefinitionOverloadComponent) other_;
2161        return compareDeep(parameterName, o.parameterName, true) && compareDeep(comment, o.comment, true)
2162          ;
2163      }
2164
2165      @Override
2166      public boolean equalsShallow(Base other_) {
2167        if (!super.equalsShallow(other_))
2168          return false;
2169        if (!(other_ instanceof OperationDefinitionOverloadComponent))
2170          return false;
2171        OperationDefinitionOverloadComponent o = (OperationDefinitionOverloadComponent) other_;
2172        return compareValues(parameterName, o.parameterName, true) && compareValues(comment, o.comment, true)
2173          ;
2174      }
2175
2176      public boolean isEmpty() {
2177        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(parameterName, comment);
2178      }
2179
2180  public String fhirType() {
2181    return "OperationDefinition.overload";
2182
2183  }
2184
2185  }
2186
2187    /**
2188     * 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.
2189     */
2190    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
2191    @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." )
2192    protected UriType url;
2193
2194    /**
2195     * 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.
2196     */
2197    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2198    @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." )
2199    protected List<Identifier> identifier;
2200
2201    /**
2202     * 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.
2203     */
2204    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
2205    @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." )
2206    protected StringType version;
2207
2208    /**
2209     * Indicates the mechanism used to compare versions to determine which is more current.
2210     */
2211    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
2212    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
2213    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
2214    protected DataType versionAlgorithm;
2215
2216    /**
2217     * 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.
2218     */
2219    @Child(name = "name", type = {StringType.class}, order=4, min=1, max=1, modifier=false, summary=true)
2220    @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." )
2221    protected StringType name;
2222
2223    /**
2224     * A short, descriptive, user-friendly title for the operation definition.
2225     */
2226    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
2227    @Description(shortDefinition="Name for this operation definition (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the operation definition." )
2228    protected StringType title;
2229
2230    /**
2231     * The current state of this operation definition.
2232     */
2233    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
2234    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The current state of this operation definition." )
2235    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
2236    protected Enumeration<PublicationStatus> status;
2237
2238    /**
2239     * Whether this is an operation or a named query.
2240     */
2241    @Child(name = "kind", type = {CodeType.class}, order=7, min=1, max=1, modifier=false, summary=true)
2242    @Description(shortDefinition="operation | query", formalDefinition="Whether this is an operation or a named query." )
2243    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/operation-kind")
2244    protected Enumeration<OperationKind> kind;
2245
2246    /**
2247     * 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.
2248     */
2249    @Child(name = "experimental", type = {BooleanType.class}, order=8, min=0, max=1, modifier=false, summary=true)
2250    @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." )
2251    protected BooleanType experimental;
2252
2253    /**
2254     * 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.
2255     */
2256    @Child(name = "date", type = {DateTimeType.class}, order=9, min=0, max=1, modifier=false, summary=true)
2257    @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." )
2258    protected DateTimeType date;
2259
2260    /**
2261     * The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.
2262     */
2263    @Child(name = "publisher", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true)
2264    @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." )
2265    protected StringType publisher;
2266
2267    /**
2268     * Contact details to assist a user in finding and communicating with the publisher.
2269     */
2270    @Child(name = "contact", type = {ContactDetail.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2271    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
2272    protected List<ContactDetail> contact;
2273
2274    /**
2275     * A free text natural language description of the operation definition from a consumer's perspective.
2276     */
2277    @Child(name = "description", type = {MarkdownType.class}, order=12, min=0, max=1, modifier=false, summary=false)
2278    @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." )
2279    protected MarkdownType description;
2280
2281    /**
2282     * 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.
2283     */
2284    @Child(name = "useContext", type = {UsageContext.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2285    @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." )
2286    protected List<UsageContext> useContext;
2287
2288    /**
2289     * A legal or geographic region in which the operation definition is intended to be used.
2290     */
2291    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2292    @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." )
2293    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
2294    protected List<CodeableConcept> jurisdiction;
2295
2296    /**
2297     * Explanation of why this operation definition is needed and why it has been designed as it has.
2298     */
2299    @Child(name = "purpose", type = {MarkdownType.class}, order=15, min=0, max=1, modifier=false, summary=false)
2300    @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." )
2301    protected MarkdownType purpose;
2302
2303    /**
2304     * 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.
2305     */
2306    @Child(name = "copyright", type = {MarkdownType.class}, order=16, min=0, max=1, modifier=false, summary=false)
2307    @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." )
2308    protected MarkdownType copyright;
2309
2310    /**
2311     * 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').
2312     */
2313    @Child(name = "copyrightLabel", type = {StringType.class}, order=17, min=0, max=1, modifier=false, summary=false)
2314    @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')." )
2315    protected StringType copyrightLabel;
2316
2317    /**
2318     * Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.
2319     */
2320    @Child(name = "affectsState", type = {BooleanType.class}, order=18, min=0, max=1, modifier=false, summary=true)
2321    @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'." )
2322    protected BooleanType affectsState;
2323
2324    /**
2325     * 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.
2326     */
2327    @Child(name = "code", type = {CodeType.class}, order=19, min=1, max=1, modifier=false, summary=true)
2328    @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." )
2329    protected CodeType code;
2330
2331    /**
2332     * Additional information about how to use this operation or named query.
2333     */
2334    @Child(name = "comment", type = {MarkdownType.class}, order=20, min=0, max=1, modifier=false, summary=false)
2335    @Description(shortDefinition="Additional information about use", formalDefinition="Additional information about how to use this operation or named query." )
2336    protected MarkdownType comment;
2337
2338    /**
2339     * Indicates that this operation definition is a constraining profile on the base.
2340     */
2341    @Child(name = "base", type = {CanonicalType.class}, order=21, min=0, max=1, modifier=false, summary=true)
2342    @Description(shortDefinition="Marks this as a profile of the base", formalDefinition="Indicates that this operation definition is a constraining profile on the base." )
2343    protected CanonicalType base;
2344
2345    /**
2346     * The types on which this operation can be executed.
2347     */
2348    @Child(name = "resource", type = {CodeType.class}, order=22, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2349    @Description(shortDefinition="Types this operation applies to", formalDefinition="The types on which this operation can be executed." )
2350    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-independent-all-resource-types")
2351    protected List<Enumeration<VersionIndependentResourceTypesAll>> resource;
2352
2353    /**
2354     * 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).
2355     */
2356    @Child(name = "system", type = {BooleanType.class}, order=23, min=1, max=1, modifier=false, summary=true)
2357    @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)." )
2358    protected BooleanType system;
2359
2360    /**
2361     * 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).
2362     */
2363    @Child(name = "type", type = {BooleanType.class}, order=24, min=1, max=1, modifier=false, summary=true)
2364    @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)." )
2365    protected BooleanType type;
2366
2367    /**
2368     * Indicates whether this operation can be invoked on a particular instance of one of the given types.
2369     */
2370    @Child(name = "instance", type = {BooleanType.class}, order=25, min=1, max=1, modifier=false, summary=true)
2371    @Description(shortDefinition="Invoke on an instance?", formalDefinition="Indicates whether this operation can be invoked on a particular instance of one of the given types." )
2372    protected BooleanType instance;
2373
2374    /**
2375     * 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.
2376     */
2377    @Child(name = "inputProfile", type = {CanonicalType.class}, order=26, min=0, max=1, modifier=false, summary=false)
2378    @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." )
2379    protected CanonicalType inputProfile;
2380
2381    /**
2382     * Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource.
2383     */
2384    @Child(name = "outputProfile", type = {CanonicalType.class}, order=27, min=0, max=1, modifier=false, summary=false)
2385    @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." )
2386    protected CanonicalType outputProfile;
2387
2388    /**
2389     * The parameters for the operation/query.
2390     */
2391    @Child(name = "parameter", type = {}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2392    @Description(shortDefinition="Parameters for the operation/query", formalDefinition="The parameters for the operation/query." )
2393    protected List<OperationDefinitionParameterComponent> parameter;
2394
2395    /**
2396     * Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation.
2397     */
2398    @Child(name = "overload", type = {}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2399    @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." )
2400    protected List<OperationDefinitionOverloadComponent> overload;
2401
2402    private static final long serialVersionUID = -1811668120L;
2403
2404  /**
2405   * Constructor
2406   */
2407    public OperationDefinition() {
2408      super();
2409    }
2410
2411  /**
2412   * Constructor
2413   */
2414    public OperationDefinition(String name, PublicationStatus status, OperationKind kind, String code, boolean system, boolean type, boolean instance) {
2415      super();
2416      this.setName(name);
2417      this.setStatus(status);
2418      this.setKind(kind);
2419      this.setCode(code);
2420      this.setSystem(system);
2421      this.setType(type);
2422      this.setInstance(instance);
2423    }
2424
2425    /**
2426     * @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
2427     */
2428    public UriType getUrlElement() { 
2429      if (this.url == null)
2430        if (Configuration.errorOnAutoCreate())
2431          throw new Error("Attempt to auto-create OperationDefinition.url");
2432        else if (Configuration.doAutoCreate())
2433          this.url = new UriType(); // bb
2434      return this.url;
2435    }
2436
2437    public boolean hasUrlElement() { 
2438      return this.url != null && !this.url.isEmpty();
2439    }
2440
2441    public boolean hasUrl() { 
2442      return this.url != null && !this.url.isEmpty();
2443    }
2444
2445    /**
2446     * @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
2447     */
2448    public OperationDefinition setUrlElement(UriType value) { 
2449      this.url = value;
2450      return this;
2451    }
2452
2453    /**
2454     * @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.
2455     */
2456    public String getUrl() { 
2457      return this.url == null ? null : this.url.getValue();
2458    }
2459
2460    /**
2461     * @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.
2462     */
2463    public OperationDefinition setUrl(String value) { 
2464      if (Utilities.noString(value))
2465        this.url = null;
2466      else {
2467        if (this.url == null)
2468          this.url = new UriType();
2469        this.url.setValue(value);
2470      }
2471      return this;
2472    }
2473
2474    /**
2475     * @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.)
2476     */
2477    public List<Identifier> getIdentifier() { 
2478      if (this.identifier == null)
2479        this.identifier = new ArrayList<Identifier>();
2480      return this.identifier;
2481    }
2482
2483    /**
2484     * @return Returns a reference to <code>this</code> for easy method chaining
2485     */
2486    public OperationDefinition setIdentifier(List<Identifier> theIdentifier) { 
2487      this.identifier = theIdentifier;
2488      return this;
2489    }
2490
2491    public boolean hasIdentifier() { 
2492      if (this.identifier == null)
2493        return false;
2494      for (Identifier item : this.identifier)
2495        if (!item.isEmpty())
2496          return true;
2497      return false;
2498    }
2499
2500    public Identifier addIdentifier() { //3
2501      Identifier t = new Identifier();
2502      if (this.identifier == null)
2503        this.identifier = new ArrayList<Identifier>();
2504      this.identifier.add(t);
2505      return t;
2506    }
2507
2508    public OperationDefinition addIdentifier(Identifier t) { //3
2509      if (t == null)
2510        return this;
2511      if (this.identifier == null)
2512        this.identifier = new ArrayList<Identifier>();
2513      this.identifier.add(t);
2514      return this;
2515    }
2516
2517    /**
2518     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
2519     */
2520    public Identifier getIdentifierFirstRep() { 
2521      if (getIdentifier().isEmpty()) {
2522        addIdentifier();
2523      }
2524      return getIdentifier().get(0);
2525    }
2526
2527    /**
2528     * @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
2529     */
2530    public StringType getVersionElement() { 
2531      if (this.version == null)
2532        if (Configuration.errorOnAutoCreate())
2533          throw new Error("Attempt to auto-create OperationDefinition.version");
2534        else if (Configuration.doAutoCreate())
2535          this.version = new StringType(); // bb
2536      return this.version;
2537    }
2538
2539    public boolean hasVersionElement() { 
2540      return this.version != null && !this.version.isEmpty();
2541    }
2542
2543    public boolean hasVersion() { 
2544      return this.version != null && !this.version.isEmpty();
2545    }
2546
2547    /**
2548     * @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
2549     */
2550    public OperationDefinition setVersionElement(StringType value) { 
2551      this.version = value;
2552      return this;
2553    }
2554
2555    /**
2556     * @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.
2557     */
2558    public String getVersion() { 
2559      return this.version == null ? null : this.version.getValue();
2560    }
2561
2562    /**
2563     * @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.
2564     */
2565    public OperationDefinition setVersion(String value) { 
2566      if (Utilities.noString(value))
2567        this.version = null;
2568      else {
2569        if (this.version == null)
2570          this.version = new StringType();
2571        this.version.setValue(value);
2572      }
2573      return this;
2574    }
2575
2576    /**
2577     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2578     */
2579    public DataType getVersionAlgorithm() { 
2580      return this.versionAlgorithm;
2581    }
2582
2583    /**
2584     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2585     */
2586    public StringType getVersionAlgorithmStringType() throws FHIRException { 
2587      if (this.versionAlgorithm == null)
2588        this.versionAlgorithm = new StringType();
2589      if (!(this.versionAlgorithm instanceof StringType))
2590        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
2591      return (StringType) this.versionAlgorithm;
2592    }
2593
2594    public boolean hasVersionAlgorithmStringType() { 
2595      return this != null && this.versionAlgorithm instanceof StringType;
2596    }
2597
2598    /**
2599     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2600     */
2601    public Coding getVersionAlgorithmCoding() throws FHIRException { 
2602      if (this.versionAlgorithm == null)
2603        this.versionAlgorithm = new Coding();
2604      if (!(this.versionAlgorithm instanceof Coding))
2605        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
2606      return (Coding) this.versionAlgorithm;
2607    }
2608
2609    public boolean hasVersionAlgorithmCoding() { 
2610      return this != null && this.versionAlgorithm instanceof Coding;
2611    }
2612
2613    public boolean hasVersionAlgorithm() { 
2614      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
2615    }
2616
2617    /**
2618     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
2619     */
2620    public OperationDefinition setVersionAlgorithm(DataType value) { 
2621      if (value != null && !(value instanceof StringType || value instanceof Coding))
2622        throw new FHIRException("Not the right type for OperationDefinition.versionAlgorithm[x]: "+value.fhirType());
2623      this.versionAlgorithm = value;
2624      return this;
2625    }
2626
2627    /**
2628     * @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
2629     */
2630    public StringType getNameElement() { 
2631      if (this.name == null)
2632        if (Configuration.errorOnAutoCreate())
2633          throw new Error("Attempt to auto-create OperationDefinition.name");
2634        else if (Configuration.doAutoCreate())
2635          this.name = new StringType(); // bb
2636      return this.name;
2637    }
2638
2639    public boolean hasNameElement() { 
2640      return this.name != null && !this.name.isEmpty();
2641    }
2642
2643    public boolean hasName() { 
2644      return this.name != null && !this.name.isEmpty();
2645    }
2646
2647    /**
2648     * @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
2649     */
2650    public OperationDefinition setNameElement(StringType value) { 
2651      this.name = value;
2652      return this;
2653    }
2654
2655    /**
2656     * @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.
2657     */
2658    public String getName() { 
2659      return this.name == null ? null : this.name.getValue();
2660    }
2661
2662    /**
2663     * @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.
2664     */
2665    public OperationDefinition setName(String value) { 
2666        if (this.name == null)
2667          this.name = new StringType();
2668        this.name.setValue(value);
2669      return this;
2670    }
2671
2672    /**
2673     * @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
2674     */
2675    public StringType getTitleElement() { 
2676      if (this.title == null)
2677        if (Configuration.errorOnAutoCreate())
2678          throw new Error("Attempt to auto-create OperationDefinition.title");
2679        else if (Configuration.doAutoCreate())
2680          this.title = new StringType(); // bb
2681      return this.title;
2682    }
2683
2684    public boolean hasTitleElement() { 
2685      return this.title != null && !this.title.isEmpty();
2686    }
2687
2688    public boolean hasTitle() { 
2689      return this.title != null && !this.title.isEmpty();
2690    }
2691
2692    /**
2693     * @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
2694     */
2695    public OperationDefinition setTitleElement(StringType value) { 
2696      this.title = value;
2697      return this;
2698    }
2699
2700    /**
2701     * @return A short, descriptive, user-friendly title for the operation definition.
2702     */
2703    public String getTitle() { 
2704      return this.title == null ? null : this.title.getValue();
2705    }
2706
2707    /**
2708     * @param value A short, descriptive, user-friendly title for the operation definition.
2709     */
2710    public OperationDefinition setTitle(String value) { 
2711      if (Utilities.noString(value))
2712        this.title = null;
2713      else {
2714        if (this.title == null)
2715          this.title = new StringType();
2716        this.title.setValue(value);
2717      }
2718      return this;
2719    }
2720
2721    /**
2722     * @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
2723     */
2724    public Enumeration<PublicationStatus> getStatusElement() { 
2725      if (this.status == null)
2726        if (Configuration.errorOnAutoCreate())
2727          throw new Error("Attempt to auto-create OperationDefinition.status");
2728        else if (Configuration.doAutoCreate())
2729          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
2730      return this.status;
2731    }
2732
2733    public boolean hasStatusElement() { 
2734      return this.status != null && !this.status.isEmpty();
2735    }
2736
2737    public boolean hasStatus() { 
2738      return this.status != null && !this.status.isEmpty();
2739    }
2740
2741    /**
2742     * @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
2743     */
2744    public OperationDefinition setStatusElement(Enumeration<PublicationStatus> value) { 
2745      this.status = value;
2746      return this;
2747    }
2748
2749    /**
2750     * @return The current state of this operation definition.
2751     */
2752    public PublicationStatus getStatus() { 
2753      return this.status == null ? null : this.status.getValue();
2754    }
2755
2756    /**
2757     * @param value The current state of this operation definition.
2758     */
2759    public OperationDefinition setStatus(PublicationStatus value) { 
2760        if (this.status == null)
2761          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
2762        this.status.setValue(value);
2763      return this;
2764    }
2765
2766    /**
2767     * @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
2768     */
2769    public Enumeration<OperationKind> getKindElement() { 
2770      if (this.kind == null)
2771        if (Configuration.errorOnAutoCreate())
2772          throw new Error("Attempt to auto-create OperationDefinition.kind");
2773        else if (Configuration.doAutoCreate())
2774          this.kind = new Enumeration<OperationKind>(new OperationKindEnumFactory()); // bb
2775      return this.kind;
2776    }
2777
2778    public boolean hasKindElement() { 
2779      return this.kind != null && !this.kind.isEmpty();
2780    }
2781
2782    public boolean hasKind() { 
2783      return this.kind != null && !this.kind.isEmpty();
2784    }
2785
2786    /**
2787     * @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
2788     */
2789    public OperationDefinition setKindElement(Enumeration<OperationKind> value) { 
2790      this.kind = value;
2791      return this;
2792    }
2793
2794    /**
2795     * @return Whether this is an operation or a named query.
2796     */
2797    public OperationKind getKind() { 
2798      return this.kind == null ? null : this.kind.getValue();
2799    }
2800
2801    /**
2802     * @param value Whether this is an operation or a named query.
2803     */
2804    public OperationDefinition setKind(OperationKind value) { 
2805        if (this.kind == null)
2806          this.kind = new Enumeration<OperationKind>(new OperationKindEnumFactory());
2807        this.kind.setValue(value);
2808      return this;
2809    }
2810
2811    /**
2812     * @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
2813     */
2814    public BooleanType getExperimentalElement() { 
2815      if (this.experimental == null)
2816        if (Configuration.errorOnAutoCreate())
2817          throw new Error("Attempt to auto-create OperationDefinition.experimental");
2818        else if (Configuration.doAutoCreate())
2819          this.experimental = new BooleanType(); // bb
2820      return this.experimental;
2821    }
2822
2823    public boolean hasExperimentalElement() { 
2824      return this.experimental != null && !this.experimental.isEmpty();
2825    }
2826
2827    public boolean hasExperimental() { 
2828      return this.experimental != null && !this.experimental.isEmpty();
2829    }
2830
2831    /**
2832     * @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
2833     */
2834    public OperationDefinition setExperimentalElement(BooleanType value) { 
2835      this.experimental = value;
2836      return this;
2837    }
2838
2839    /**
2840     * @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.
2841     */
2842    public boolean getExperimental() { 
2843      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
2844    }
2845
2846    /**
2847     * @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.
2848     */
2849    public OperationDefinition setExperimental(boolean value) { 
2850        if (this.experimental == null)
2851          this.experimental = new BooleanType();
2852        this.experimental.setValue(value);
2853      return this;
2854    }
2855
2856    /**
2857     * @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
2858     */
2859    public DateTimeType getDateElement() { 
2860      if (this.date == null)
2861        if (Configuration.errorOnAutoCreate())
2862          throw new Error("Attempt to auto-create OperationDefinition.date");
2863        else if (Configuration.doAutoCreate())
2864          this.date = new DateTimeType(); // bb
2865      return this.date;
2866    }
2867
2868    public boolean hasDateElement() { 
2869      return this.date != null && !this.date.isEmpty();
2870    }
2871
2872    public boolean hasDate() { 
2873      return this.date != null && !this.date.isEmpty();
2874    }
2875
2876    /**
2877     * @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
2878     */
2879    public OperationDefinition setDateElement(DateTimeType value) { 
2880      this.date = value;
2881      return this;
2882    }
2883
2884    /**
2885     * @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.
2886     */
2887    public Date getDate() { 
2888      return this.date == null ? null : this.date.getValue();
2889    }
2890
2891    /**
2892     * @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.
2893     */
2894    public OperationDefinition setDate(Date value) { 
2895      if (value == null)
2896        this.date = null;
2897      else {
2898        if (this.date == null)
2899          this.date = new DateTimeType();
2900        this.date.setValue(value);
2901      }
2902      return this;
2903    }
2904
2905    /**
2906     * @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
2907     */
2908    public StringType getPublisherElement() { 
2909      if (this.publisher == null)
2910        if (Configuration.errorOnAutoCreate())
2911          throw new Error("Attempt to auto-create OperationDefinition.publisher");
2912        else if (Configuration.doAutoCreate())
2913          this.publisher = new StringType(); // bb
2914      return this.publisher;
2915    }
2916
2917    public boolean hasPublisherElement() { 
2918      return this.publisher != null && !this.publisher.isEmpty();
2919    }
2920
2921    public boolean hasPublisher() { 
2922      return this.publisher != null && !this.publisher.isEmpty();
2923    }
2924
2925    /**
2926     * @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
2927     */
2928    public OperationDefinition setPublisherElement(StringType value) { 
2929      this.publisher = value;
2930      return this;
2931    }
2932
2933    /**
2934     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.
2935     */
2936    public String getPublisher() { 
2937      return this.publisher == null ? null : this.publisher.getValue();
2938    }
2939
2940    /**
2941     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the operation definition.
2942     */
2943    public OperationDefinition setPublisher(String value) { 
2944      if (Utilities.noString(value))
2945        this.publisher = null;
2946      else {
2947        if (this.publisher == null)
2948          this.publisher = new StringType();
2949        this.publisher.setValue(value);
2950      }
2951      return this;
2952    }
2953
2954    /**
2955     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
2956     */
2957    public List<ContactDetail> getContact() { 
2958      if (this.contact == null)
2959        this.contact = new ArrayList<ContactDetail>();
2960      return this.contact;
2961    }
2962
2963    /**
2964     * @return Returns a reference to <code>this</code> for easy method chaining
2965     */
2966    public OperationDefinition setContact(List<ContactDetail> theContact) { 
2967      this.contact = theContact;
2968      return this;
2969    }
2970
2971    public boolean hasContact() { 
2972      if (this.contact == null)
2973        return false;
2974      for (ContactDetail item : this.contact)
2975        if (!item.isEmpty())
2976          return true;
2977      return false;
2978    }
2979
2980    public ContactDetail addContact() { //3
2981      ContactDetail t = new ContactDetail();
2982      if (this.contact == null)
2983        this.contact = new ArrayList<ContactDetail>();
2984      this.contact.add(t);
2985      return t;
2986    }
2987
2988    public OperationDefinition addContact(ContactDetail t) { //3
2989      if (t == null)
2990        return this;
2991      if (this.contact == null)
2992        this.contact = new ArrayList<ContactDetail>();
2993      this.contact.add(t);
2994      return this;
2995    }
2996
2997    /**
2998     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
2999     */
3000    public ContactDetail getContactFirstRep() { 
3001      if (getContact().isEmpty()) {
3002        addContact();
3003      }
3004      return getContact().get(0);
3005    }
3006
3007    /**
3008     * @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
3009     */
3010    public MarkdownType getDescriptionElement() { 
3011      if (this.description == null)
3012        if (Configuration.errorOnAutoCreate())
3013          throw new Error("Attempt to auto-create OperationDefinition.description");
3014        else if (Configuration.doAutoCreate())
3015          this.description = new MarkdownType(); // bb
3016      return this.description;
3017    }
3018
3019    public boolean hasDescriptionElement() { 
3020      return this.description != null && !this.description.isEmpty();
3021    }
3022
3023    public boolean hasDescription() { 
3024      return this.description != null && !this.description.isEmpty();
3025    }
3026
3027    /**
3028     * @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
3029     */
3030    public OperationDefinition setDescriptionElement(MarkdownType value) { 
3031      this.description = value;
3032      return this;
3033    }
3034
3035    /**
3036     * @return A free text natural language description of the operation definition from a consumer's perspective.
3037     */
3038    public String getDescription() { 
3039      return this.description == null ? null : this.description.getValue();
3040    }
3041
3042    /**
3043     * @param value A free text natural language description of the operation definition from a consumer's perspective.
3044     */
3045    public OperationDefinition setDescription(String value) { 
3046      if (Utilities.noString(value))
3047        this.description = null;
3048      else {
3049        if (this.description == null)
3050          this.description = new MarkdownType();
3051        this.description.setValue(value);
3052      }
3053      return this;
3054    }
3055
3056    /**
3057     * @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.)
3058     */
3059    public List<UsageContext> getUseContext() { 
3060      if (this.useContext == null)
3061        this.useContext = new ArrayList<UsageContext>();
3062      return this.useContext;
3063    }
3064
3065    /**
3066     * @return Returns a reference to <code>this</code> for easy method chaining
3067     */
3068    public OperationDefinition setUseContext(List<UsageContext> theUseContext) { 
3069      this.useContext = theUseContext;
3070      return this;
3071    }
3072
3073    public boolean hasUseContext() { 
3074      if (this.useContext == null)
3075        return false;
3076      for (UsageContext item : this.useContext)
3077        if (!item.isEmpty())
3078          return true;
3079      return false;
3080    }
3081
3082    public UsageContext addUseContext() { //3
3083      UsageContext t = new UsageContext();
3084      if (this.useContext == null)
3085        this.useContext = new ArrayList<UsageContext>();
3086      this.useContext.add(t);
3087      return t;
3088    }
3089
3090    public OperationDefinition addUseContext(UsageContext t) { //3
3091      if (t == null)
3092        return this;
3093      if (this.useContext == null)
3094        this.useContext = new ArrayList<UsageContext>();
3095      this.useContext.add(t);
3096      return this;
3097    }
3098
3099    /**
3100     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
3101     */
3102    public UsageContext getUseContextFirstRep() { 
3103      if (getUseContext().isEmpty()) {
3104        addUseContext();
3105      }
3106      return getUseContext().get(0);
3107    }
3108
3109    /**
3110     * @return {@link #jurisdiction} (A legal or geographic region in which the operation definition is intended to be used.)
3111     */
3112    public List<CodeableConcept> getJurisdiction() { 
3113      if (this.jurisdiction == null)
3114        this.jurisdiction = new ArrayList<CodeableConcept>();
3115      return this.jurisdiction;
3116    }
3117
3118    /**
3119     * @return Returns a reference to <code>this</code> for easy method chaining
3120     */
3121    public OperationDefinition setJurisdiction(List<CodeableConcept> theJurisdiction) { 
3122      this.jurisdiction = theJurisdiction;
3123      return this;
3124    }
3125
3126    public boolean hasJurisdiction() { 
3127      if (this.jurisdiction == null)
3128        return false;
3129      for (CodeableConcept item : this.jurisdiction)
3130        if (!item.isEmpty())
3131          return true;
3132      return false;
3133    }
3134
3135    public CodeableConcept addJurisdiction() { //3
3136      CodeableConcept t = new CodeableConcept();
3137      if (this.jurisdiction == null)
3138        this.jurisdiction = new ArrayList<CodeableConcept>();
3139      this.jurisdiction.add(t);
3140      return t;
3141    }
3142
3143    public OperationDefinition addJurisdiction(CodeableConcept t) { //3
3144      if (t == null)
3145        return this;
3146      if (this.jurisdiction == null)
3147        this.jurisdiction = new ArrayList<CodeableConcept>();
3148      this.jurisdiction.add(t);
3149      return this;
3150    }
3151
3152    /**
3153     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
3154     */
3155    public CodeableConcept getJurisdictionFirstRep() { 
3156      if (getJurisdiction().isEmpty()) {
3157        addJurisdiction();
3158      }
3159      return getJurisdiction().get(0);
3160    }
3161
3162    /**
3163     * @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
3164     */
3165    public MarkdownType getPurposeElement() { 
3166      if (this.purpose == null)
3167        if (Configuration.errorOnAutoCreate())
3168          throw new Error("Attempt to auto-create OperationDefinition.purpose");
3169        else if (Configuration.doAutoCreate())
3170          this.purpose = new MarkdownType(); // bb
3171      return this.purpose;
3172    }
3173
3174    public boolean hasPurposeElement() { 
3175      return this.purpose != null && !this.purpose.isEmpty();
3176    }
3177
3178    public boolean hasPurpose() { 
3179      return this.purpose != null && !this.purpose.isEmpty();
3180    }
3181
3182    /**
3183     * @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
3184     */
3185    public OperationDefinition setPurposeElement(MarkdownType value) { 
3186      this.purpose = value;
3187      return this;
3188    }
3189
3190    /**
3191     * @return Explanation of why this operation definition is needed and why it has been designed as it has.
3192     */
3193    public String getPurpose() { 
3194      return this.purpose == null ? null : this.purpose.getValue();
3195    }
3196
3197    /**
3198     * @param value Explanation of why this operation definition is needed and why it has been designed as it has.
3199     */
3200    public OperationDefinition setPurpose(String value) { 
3201      if (Utilities.noString(value))
3202        this.purpose = null;
3203      else {
3204        if (this.purpose == null)
3205          this.purpose = new MarkdownType();
3206        this.purpose.setValue(value);
3207      }
3208      return this;
3209    }
3210
3211    /**
3212     * @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
3213     */
3214    public MarkdownType getCopyrightElement() { 
3215      if (this.copyright == null)
3216        if (Configuration.errorOnAutoCreate())
3217          throw new Error("Attempt to auto-create OperationDefinition.copyright");
3218        else if (Configuration.doAutoCreate())
3219          this.copyright = new MarkdownType(); // bb
3220      return this.copyright;
3221    }
3222
3223    public boolean hasCopyrightElement() { 
3224      return this.copyright != null && !this.copyright.isEmpty();
3225    }
3226
3227    public boolean hasCopyright() { 
3228      return this.copyright != null && !this.copyright.isEmpty();
3229    }
3230
3231    /**
3232     * @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
3233     */
3234    public OperationDefinition setCopyrightElement(MarkdownType value) { 
3235      this.copyright = value;
3236      return this;
3237    }
3238
3239    /**
3240     * @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.
3241     */
3242    public String getCopyright() { 
3243      return this.copyright == null ? null : this.copyright.getValue();
3244    }
3245
3246    /**
3247     * @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.
3248     */
3249    public OperationDefinition setCopyright(String value) { 
3250      if (Utilities.noString(value))
3251        this.copyright = null;
3252      else {
3253        if (this.copyright == null)
3254          this.copyright = new MarkdownType();
3255        this.copyright.setValue(value);
3256      }
3257      return this;
3258    }
3259
3260    /**
3261     * @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
3262     */
3263    public StringType getCopyrightLabelElement() { 
3264      if (this.copyrightLabel == null)
3265        if (Configuration.errorOnAutoCreate())
3266          throw new Error("Attempt to auto-create OperationDefinition.copyrightLabel");
3267        else if (Configuration.doAutoCreate())
3268          this.copyrightLabel = new StringType(); // bb
3269      return this.copyrightLabel;
3270    }
3271
3272    public boolean hasCopyrightLabelElement() { 
3273      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
3274    }
3275
3276    public boolean hasCopyrightLabel() { 
3277      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
3278    }
3279
3280    /**
3281     * @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
3282     */
3283    public OperationDefinition setCopyrightLabelElement(StringType value) { 
3284      this.copyrightLabel = value;
3285      return this;
3286    }
3287
3288    /**
3289     * @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').
3290     */
3291    public String getCopyrightLabel() { 
3292      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
3293    }
3294
3295    /**
3296     * @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').
3297     */
3298    public OperationDefinition setCopyrightLabel(String value) { 
3299      if (Utilities.noString(value))
3300        this.copyrightLabel = null;
3301      else {
3302        if (this.copyrightLabel == null)
3303          this.copyrightLabel = new StringType();
3304        this.copyrightLabel.setValue(value);
3305      }
3306      return this;
3307    }
3308
3309    /**
3310     * @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
3311     */
3312    public BooleanType getAffectsStateElement() { 
3313      if (this.affectsState == null)
3314        if (Configuration.errorOnAutoCreate())
3315          throw new Error("Attempt to auto-create OperationDefinition.affectsState");
3316        else if (Configuration.doAutoCreate())
3317          this.affectsState = new BooleanType(); // bb
3318      return this.affectsState;
3319    }
3320
3321    public boolean hasAffectsStateElement() { 
3322      return this.affectsState != null && !this.affectsState.isEmpty();
3323    }
3324
3325    public boolean hasAffectsState() { 
3326      return this.affectsState != null && !this.affectsState.isEmpty();
3327    }
3328
3329    /**
3330     * @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
3331     */
3332    public OperationDefinition setAffectsStateElement(BooleanType value) { 
3333      this.affectsState = value;
3334      return this;
3335    }
3336
3337    /**
3338     * @return Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.
3339     */
3340    public boolean getAffectsState() { 
3341      return this.affectsState == null || this.affectsState.isEmpty() ? false : this.affectsState.getValue();
3342    }
3343
3344    /**
3345     * @param value Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting  state'.
3346     */
3347    public OperationDefinition setAffectsState(boolean value) { 
3348        if (this.affectsState == null)
3349          this.affectsState = new BooleanType();
3350        this.affectsState.setValue(value);
3351      return this;
3352    }
3353
3354    /**
3355     * @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
3356     */
3357    public CodeType getCodeElement() { 
3358      if (this.code == null)
3359        if (Configuration.errorOnAutoCreate())
3360          throw new Error("Attempt to auto-create OperationDefinition.code");
3361        else if (Configuration.doAutoCreate())
3362          this.code = new CodeType(); // bb
3363      return this.code;
3364    }
3365
3366    public boolean hasCodeElement() { 
3367      return this.code != null && !this.code.isEmpty();
3368    }
3369
3370    public boolean hasCode() { 
3371      return this.code != null && !this.code.isEmpty();
3372    }
3373
3374    /**
3375     * @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
3376     */
3377    public OperationDefinition setCodeElement(CodeType value) { 
3378      this.code = value;
3379      return this;
3380    }
3381
3382    /**
3383     * @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.
3384     */
3385    public String getCode() { 
3386      return this.code == null ? null : this.code.getValue();
3387    }
3388
3389    /**
3390     * @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.
3391     */
3392    public OperationDefinition setCode(String value) { 
3393        if (this.code == null)
3394          this.code = new CodeType();
3395        this.code.setValue(value);
3396      return this;
3397    }
3398
3399    /**
3400     * @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
3401     */
3402    public MarkdownType getCommentElement() { 
3403      if (this.comment == null)
3404        if (Configuration.errorOnAutoCreate())
3405          throw new Error("Attempt to auto-create OperationDefinition.comment");
3406        else if (Configuration.doAutoCreate())
3407          this.comment = new MarkdownType(); // bb
3408      return this.comment;
3409    }
3410
3411    public boolean hasCommentElement() { 
3412      return this.comment != null && !this.comment.isEmpty();
3413    }
3414
3415    public boolean hasComment() { 
3416      return this.comment != null && !this.comment.isEmpty();
3417    }
3418
3419    /**
3420     * @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
3421     */
3422    public OperationDefinition setCommentElement(MarkdownType value) { 
3423      this.comment = value;
3424      return this;
3425    }
3426
3427    /**
3428     * @return Additional information about how to use this operation or named query.
3429     */
3430    public String getComment() { 
3431      return this.comment == null ? null : this.comment.getValue();
3432    }
3433
3434    /**
3435     * @param value Additional information about how to use this operation or named query.
3436     */
3437    public OperationDefinition setComment(String value) { 
3438      if (Utilities.noString(value))
3439        this.comment = null;
3440      else {
3441        if (this.comment == null)
3442          this.comment = new MarkdownType();
3443        this.comment.setValue(value);
3444      }
3445      return this;
3446    }
3447
3448    /**
3449     * @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
3450     */
3451    public CanonicalType getBaseElement() { 
3452      if (this.base == null)
3453        if (Configuration.errorOnAutoCreate())
3454          throw new Error("Attempt to auto-create OperationDefinition.base");
3455        else if (Configuration.doAutoCreate())
3456          this.base = new CanonicalType(); // bb
3457      return this.base;
3458    }
3459
3460    public boolean hasBaseElement() { 
3461      return this.base != null && !this.base.isEmpty();
3462    }
3463
3464    public boolean hasBase() { 
3465      return this.base != null && !this.base.isEmpty();
3466    }
3467
3468    /**
3469     * @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
3470     */
3471    public OperationDefinition setBaseElement(CanonicalType value) { 
3472      this.base = value;
3473      return this;
3474    }
3475
3476    /**
3477     * @return Indicates that this operation definition is a constraining profile on the base.
3478     */
3479    public String getBase() { 
3480      return this.base == null ? null : this.base.getValue();
3481    }
3482
3483    /**
3484     * @param value Indicates that this operation definition is a constraining profile on the base.
3485     */
3486    public OperationDefinition setBase(String value) { 
3487      if (Utilities.noString(value))
3488        this.base = null;
3489      else {
3490        if (this.base == null)
3491          this.base = new CanonicalType();
3492        this.base.setValue(value);
3493      }
3494      return this;
3495    }
3496
3497    /**
3498     * @return {@link #resource} (The types on which this operation can be executed.)
3499     */
3500    public List<Enumeration<VersionIndependentResourceTypesAll>> getResource() { 
3501      if (this.resource == null)
3502        this.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
3503      return this.resource;
3504    }
3505
3506    /**
3507     * @return Returns a reference to <code>this</code> for easy method chaining
3508     */
3509    public OperationDefinition setResource(List<Enumeration<VersionIndependentResourceTypesAll>> theResource) { 
3510      this.resource = theResource;
3511      return this;
3512    }
3513
3514    public boolean hasResource() { 
3515      if (this.resource == null)
3516        return false;
3517      for (Enumeration<VersionIndependentResourceTypesAll> item : this.resource)
3518        if (!item.isEmpty())
3519          return true;
3520      return false;
3521    }
3522
3523    /**
3524     * @return {@link #resource} (The types on which this operation can be executed.)
3525     */
3526    public Enumeration<VersionIndependentResourceTypesAll> addResourceElement() {//2 
3527      Enumeration<VersionIndependentResourceTypesAll> t = new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory());
3528      if (this.resource == null)
3529        this.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
3530      this.resource.add(t);
3531      return t;
3532    }
3533
3534    /**
3535     * @param value {@link #resource} (The types on which this operation can be executed.)
3536     */
3537    public OperationDefinition addResource(VersionIndependentResourceTypesAll value) { //1
3538      Enumeration<VersionIndependentResourceTypesAll> t = new Enumeration<VersionIndependentResourceTypesAll>(new VersionIndependentResourceTypesAllEnumFactory());
3539      t.setValue(value);
3540      if (this.resource == null)
3541        this.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
3542      this.resource.add(t);
3543      return this;
3544    }
3545
3546    /**
3547     * @param value {@link #resource} (The types on which this operation can be executed.)
3548     */
3549    public boolean hasResource(VersionIndependentResourceTypesAll value) { 
3550      if (this.resource == null)
3551        return false;
3552      for (Enumeration<VersionIndependentResourceTypesAll> v : this.resource)
3553        if (v.getValue().equals(value)) // code
3554          return true;
3555      return false;
3556    }
3557
3558    /**
3559     * @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
3560     */
3561    public BooleanType getSystemElement() { 
3562      if (this.system == null)
3563        if (Configuration.errorOnAutoCreate())
3564          throw new Error("Attempt to auto-create OperationDefinition.system");
3565        else if (Configuration.doAutoCreate())
3566          this.system = new BooleanType(); // bb
3567      return this.system;
3568    }
3569
3570    public boolean hasSystemElement() { 
3571      return this.system != null && !this.system.isEmpty();
3572    }
3573
3574    public boolean hasSystem() { 
3575      return this.system != null && !this.system.isEmpty();
3576    }
3577
3578    /**
3579     * @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
3580     */
3581    public OperationDefinition setSystemElement(BooleanType value) { 
3582      this.system = value;
3583      return this;
3584    }
3585
3586    /**
3587     * @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).
3588     */
3589    public boolean getSystem() { 
3590      return this.system == null || this.system.isEmpty() ? false : this.system.getValue();
3591    }
3592
3593    /**
3594     * @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).
3595     */
3596    public OperationDefinition setSystem(boolean value) { 
3597        if (this.system == null)
3598          this.system = new BooleanType();
3599        this.system.setValue(value);
3600      return this;
3601    }
3602
3603    /**
3604     * @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
3605     */
3606    public BooleanType getTypeElement() { 
3607      if (this.type == null)
3608        if (Configuration.errorOnAutoCreate())
3609          throw new Error("Attempt to auto-create OperationDefinition.type");
3610        else if (Configuration.doAutoCreate())
3611          this.type = new BooleanType(); // bb
3612      return this.type;
3613    }
3614
3615    public boolean hasTypeElement() { 
3616      return this.type != null && !this.type.isEmpty();
3617    }
3618
3619    public boolean hasType() { 
3620      return this.type != null && !this.type.isEmpty();
3621    }
3622
3623    /**
3624     * @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
3625     */
3626    public OperationDefinition setTypeElement(BooleanType value) { 
3627      this.type = value;
3628      return this;
3629    }
3630
3631    /**
3632     * @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).
3633     */
3634    public boolean getType() { 
3635      return this.type == null || this.type.isEmpty() ? false : this.type.getValue();
3636    }
3637
3638    /**
3639     * @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).
3640     */
3641    public OperationDefinition setType(boolean value) { 
3642        if (this.type == null)
3643          this.type = new BooleanType();
3644        this.type.setValue(value);
3645      return this;
3646    }
3647
3648    /**
3649     * @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
3650     */
3651    public BooleanType getInstanceElement() { 
3652      if (this.instance == null)
3653        if (Configuration.errorOnAutoCreate())
3654          throw new Error("Attempt to auto-create OperationDefinition.instance");
3655        else if (Configuration.doAutoCreate())
3656          this.instance = new BooleanType(); // bb
3657      return this.instance;
3658    }
3659
3660    public boolean hasInstanceElement() { 
3661      return this.instance != null && !this.instance.isEmpty();
3662    }
3663
3664    public boolean hasInstance() { 
3665      return this.instance != null && !this.instance.isEmpty();
3666    }
3667
3668    /**
3669     * @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
3670     */
3671    public OperationDefinition setInstanceElement(BooleanType value) { 
3672      this.instance = value;
3673      return this;
3674    }
3675
3676    /**
3677     * @return Indicates whether this operation can be invoked on a particular instance of one of the given types.
3678     */
3679    public boolean getInstance() { 
3680      return this.instance == null || this.instance.isEmpty() ? false : this.instance.getValue();
3681    }
3682
3683    /**
3684     * @param value Indicates whether this operation can be invoked on a particular instance of one of the given types.
3685     */
3686    public OperationDefinition setInstance(boolean value) { 
3687        if (this.instance == null)
3688          this.instance = new BooleanType();
3689        this.instance.setValue(value);
3690      return this;
3691    }
3692
3693    /**
3694     * @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
3695     */
3696    public CanonicalType getInputProfileElement() { 
3697      if (this.inputProfile == null)
3698        if (Configuration.errorOnAutoCreate())
3699          throw new Error("Attempt to auto-create OperationDefinition.inputProfile");
3700        else if (Configuration.doAutoCreate())
3701          this.inputProfile = new CanonicalType(); // bb
3702      return this.inputProfile;
3703    }
3704
3705    public boolean hasInputProfileElement() { 
3706      return this.inputProfile != null && !this.inputProfile.isEmpty();
3707    }
3708
3709    public boolean hasInputProfile() { 
3710      return this.inputProfile != null && !this.inputProfile.isEmpty();
3711    }
3712
3713    /**
3714     * @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
3715     */
3716    public OperationDefinition setInputProfileElement(CanonicalType value) { 
3717      this.inputProfile = value;
3718      return this;
3719    }
3720
3721    /**
3722     * @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.
3723     */
3724    public String getInputProfile() { 
3725      return this.inputProfile == null ? null : this.inputProfile.getValue();
3726    }
3727
3728    /**
3729     * @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.
3730     */
3731    public OperationDefinition setInputProfile(String value) { 
3732      if (Utilities.noString(value))
3733        this.inputProfile = null;
3734      else {
3735        if (this.inputProfile == null)
3736          this.inputProfile = new CanonicalType();
3737        this.inputProfile.setValue(value);
3738      }
3739      return this;
3740    }
3741
3742    /**
3743     * @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
3744     */
3745    public CanonicalType getOutputProfileElement() { 
3746      if (this.outputProfile == null)
3747        if (Configuration.errorOnAutoCreate())
3748          throw new Error("Attempt to auto-create OperationDefinition.outputProfile");
3749        else if (Configuration.doAutoCreate())
3750          this.outputProfile = new CanonicalType(); // bb
3751      return this.outputProfile;
3752    }
3753
3754    public boolean hasOutputProfileElement() { 
3755      return this.outputProfile != null && !this.outputProfile.isEmpty();
3756    }
3757
3758    public boolean hasOutputProfile() { 
3759      return this.outputProfile != null && !this.outputProfile.isEmpty();
3760    }
3761
3762    /**
3763     * @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
3764     */
3765    public OperationDefinition setOutputProfileElement(CanonicalType value) { 
3766      this.outputProfile = value;
3767      return this;
3768    }
3769
3770    /**
3771     * @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.
3772     */
3773    public String getOutputProfile() { 
3774      return this.outputProfile == null ? null : this.outputProfile.getValue();
3775    }
3776
3777    /**
3778     * @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.
3779     */
3780    public OperationDefinition setOutputProfile(String value) { 
3781      if (Utilities.noString(value))
3782        this.outputProfile = null;
3783      else {
3784        if (this.outputProfile == null)
3785          this.outputProfile = new CanonicalType();
3786        this.outputProfile.setValue(value);
3787      }
3788      return this;
3789    }
3790
3791    /**
3792     * @return {@link #parameter} (The parameters for the operation/query.)
3793     */
3794    public List<OperationDefinitionParameterComponent> getParameter() { 
3795      if (this.parameter == null)
3796        this.parameter = new ArrayList<OperationDefinitionParameterComponent>();
3797      return this.parameter;
3798    }
3799
3800    /**
3801     * @return Returns a reference to <code>this</code> for easy method chaining
3802     */
3803    public OperationDefinition setParameter(List<OperationDefinitionParameterComponent> theParameter) { 
3804      this.parameter = theParameter;
3805      return this;
3806    }
3807
3808    public boolean hasParameter() { 
3809      if (this.parameter == null)
3810        return false;
3811      for (OperationDefinitionParameterComponent item : this.parameter)
3812        if (!item.isEmpty())
3813          return true;
3814      return false;
3815    }
3816
3817    public OperationDefinitionParameterComponent addParameter() { //3
3818      OperationDefinitionParameterComponent t = new OperationDefinitionParameterComponent();
3819      if (this.parameter == null)
3820        this.parameter = new ArrayList<OperationDefinitionParameterComponent>();
3821      this.parameter.add(t);
3822      return t;
3823    }
3824
3825    public OperationDefinition addParameter(OperationDefinitionParameterComponent t) { //3
3826      if (t == null)
3827        return this;
3828      if (this.parameter == null)
3829        this.parameter = new ArrayList<OperationDefinitionParameterComponent>();
3830      this.parameter.add(t);
3831      return this;
3832    }
3833
3834    /**
3835     * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
3836     */
3837    public OperationDefinitionParameterComponent getParameterFirstRep() { 
3838      if (getParameter().isEmpty()) {
3839        addParameter();
3840      }
3841      return getParameter().get(0);
3842    }
3843
3844    /**
3845     * @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.)
3846     */
3847    public List<OperationDefinitionOverloadComponent> getOverload() { 
3848      if (this.overload == null)
3849        this.overload = new ArrayList<OperationDefinitionOverloadComponent>();
3850      return this.overload;
3851    }
3852
3853    /**
3854     * @return Returns a reference to <code>this</code> for easy method chaining
3855     */
3856    public OperationDefinition setOverload(List<OperationDefinitionOverloadComponent> theOverload) { 
3857      this.overload = theOverload;
3858      return this;
3859    }
3860
3861    public boolean hasOverload() { 
3862      if (this.overload == null)
3863        return false;
3864      for (OperationDefinitionOverloadComponent item : this.overload)
3865        if (!item.isEmpty())
3866          return true;
3867      return false;
3868    }
3869
3870    public OperationDefinitionOverloadComponent addOverload() { //3
3871      OperationDefinitionOverloadComponent t = new OperationDefinitionOverloadComponent();
3872      if (this.overload == null)
3873        this.overload = new ArrayList<OperationDefinitionOverloadComponent>();
3874      this.overload.add(t);
3875      return t;
3876    }
3877
3878    public OperationDefinition addOverload(OperationDefinitionOverloadComponent t) { //3
3879      if (t == null)
3880        return this;
3881      if (this.overload == null)
3882        this.overload = new ArrayList<OperationDefinitionOverloadComponent>();
3883      this.overload.add(t);
3884      return this;
3885    }
3886
3887    /**
3888     * @return The first repetition of repeating field {@link #overload}, creating it if it does not already exist {3}
3889     */
3890    public OperationDefinitionOverloadComponent getOverloadFirstRep() { 
3891      if (getOverload().isEmpty()) {
3892        addOverload();
3893      }
3894      return getOverload().get(0);
3895    }
3896
3897      protected void listChildren(List<Property> children) {
3898        super.listChildren(children);
3899        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));
3900        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));
3901        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));
3902        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
3903        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));
3904        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the operation definition.", 0, 1, title));
3905        children.add(new Property("status", "code", "The current state of this operation definition.", 0, 1, status));
3906        children.add(new Property("kind", "code", "Whether this is an operation or a named query.", 0, 1, kind));
3907        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));
3908        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));
3909        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));
3910        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));
3911        children.add(new Property("description", "markdown", "A free text natural language description of the operation definition from a consumer's perspective.", 0, 1, description));
3912        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));
3913        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));
3914        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));
3915        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));
3916        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));
3917        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));
3918        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));
3919        children.add(new Property("comment", "markdown", "Additional information about how to use this operation or named query.", 0, 1, comment));
3920        children.add(new Property("base", "canonical(OperationDefinition)", "Indicates that this operation definition is a constraining profile on the base.", 0, 1, base));
3921        children.add(new Property("resource", "code", "The types on which this operation can be executed.", 0, java.lang.Integer.MAX_VALUE, resource));
3922        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));
3923        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));
3924        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));
3925        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));
3926        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));
3927        children.add(new Property("parameter", "", "The parameters for the operation/query.", 0, java.lang.Integer.MAX_VALUE, parameter));
3928        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));
3929      }
3930
3931      @Override
3932      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3933        switch (_hash) {
3934        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);
3935        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);
3936        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);
3937        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);
3938        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);
3939        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);
3940        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);
3941        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);
3942        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the operation definition.", 0, 1, title);
3943        case -892481550: /*status*/  return new Property("status", "code", "The current state of this operation definition.", 0, 1, status);
3944        case 3292052: /*kind*/  return new Property("kind", "code", "Whether this is an operation or a named query.", 0, 1, kind);
3945        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);
3946        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);
3947        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);
3948        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);
3949        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);
3950        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);
3951        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);
3952        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);
3953        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);
3954        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);
3955        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);
3956        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);
3957        case 950398559: /*comment*/  return new Property("comment", "markdown", "Additional information about how to use this operation or named query.", 0, 1, comment);
3958        case 3016401: /*base*/  return new Property("base", "canonical(OperationDefinition)", "Indicates that this operation definition is a constraining profile on the base.", 0, 1, base);
3959        case -341064690: /*resource*/  return new Property("resource", "code", "The types on which this operation can be executed.", 0, java.lang.Integer.MAX_VALUE, resource);
3960        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);
3961        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);
3962        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);
3963        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);
3964        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);
3965        case 1954460585: /*parameter*/  return new Property("parameter", "", "The parameters for the operation/query.", 0, java.lang.Integer.MAX_VALUE, parameter);
3966        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);
3967        default: return super.getNamedProperty(_hash, _name, _checkValid);
3968        }
3969
3970      }
3971
3972      @Override
3973      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3974        switch (hash) {
3975        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
3976        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
3977        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
3978        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
3979        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
3980        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
3981        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
3982        case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // Enumeration<OperationKind>
3983        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
3984        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
3985        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
3986        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
3987        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
3988        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
3989        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
3990        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
3991        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
3992        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
3993        case -14805197: /*affectsState*/ return this.affectsState == null ? new Base[0] : new Base[] {this.affectsState}; // BooleanType
3994        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
3995        case 950398559: /*comment*/ return this.comment == null ? new Base[0] : new Base[] {this.comment}; // MarkdownType
3996        case 3016401: /*base*/ return this.base == null ? new Base[0] : new Base[] {this.base}; // CanonicalType
3997        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // Enumeration<VersionIndependentResourceTypesAll>
3998        case -887328209: /*system*/ return this.system == null ? new Base[0] : new Base[] {this.system}; // BooleanType
3999        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // BooleanType
4000        case 555127957: /*instance*/ return this.instance == null ? new Base[0] : new Base[] {this.instance}; // BooleanType
4001        case 676942463: /*inputProfile*/ return this.inputProfile == null ? new Base[0] : new Base[] {this.inputProfile}; // CanonicalType
4002        case 1826166120: /*outputProfile*/ return this.outputProfile == null ? new Base[0] : new Base[] {this.outputProfile}; // CanonicalType
4003        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // OperationDefinitionParameterComponent
4004        case 529823674: /*overload*/ return this.overload == null ? new Base[0] : this.overload.toArray(new Base[this.overload.size()]); // OperationDefinitionOverloadComponent
4005        default: return super.getProperty(hash, name, checkValid);
4006        }
4007
4008      }
4009
4010      @Override
4011      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4012        switch (hash) {
4013        case 116079: // url
4014          this.url = TypeConvertor.castToUri(value); // UriType
4015          return value;
4016        case -1618432855: // identifier
4017          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
4018          return value;
4019        case 351608024: // version
4020          this.version = TypeConvertor.castToString(value); // StringType
4021          return value;
4022        case 1508158071: // versionAlgorithm
4023          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
4024          return value;
4025        case 3373707: // name
4026          this.name = TypeConvertor.castToString(value); // StringType
4027          return value;
4028        case 110371416: // title
4029          this.title = TypeConvertor.castToString(value); // StringType
4030          return value;
4031        case -892481550: // status
4032          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
4033          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
4034          return value;
4035        case 3292052: // kind
4036          value = new OperationKindEnumFactory().fromType(TypeConvertor.castToCode(value));
4037          this.kind = (Enumeration) value; // Enumeration<OperationKind>
4038          return value;
4039        case -404562712: // experimental
4040          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
4041          return value;
4042        case 3076014: // date
4043          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
4044          return value;
4045        case 1447404028: // publisher
4046          this.publisher = TypeConvertor.castToString(value); // StringType
4047          return value;
4048        case 951526432: // contact
4049          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
4050          return value;
4051        case -1724546052: // description
4052          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
4053          return value;
4054        case -669707736: // useContext
4055          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
4056          return value;
4057        case -507075711: // jurisdiction
4058          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
4059          return value;
4060        case -220463842: // purpose
4061          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
4062          return value;
4063        case 1522889671: // copyright
4064          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
4065          return value;
4066        case 765157229: // copyrightLabel
4067          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
4068          return value;
4069        case -14805197: // affectsState
4070          this.affectsState = TypeConvertor.castToBoolean(value); // BooleanType
4071          return value;
4072        case 3059181: // code
4073          this.code = TypeConvertor.castToCode(value); // CodeType
4074          return value;
4075        case 950398559: // comment
4076          this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType
4077          return value;
4078        case 3016401: // base
4079          this.base = TypeConvertor.castToCanonical(value); // CanonicalType
4080          return value;
4081        case -341064690: // resource
4082          value = new VersionIndependentResourceTypesAllEnumFactory().fromType(TypeConvertor.castToCode(value));
4083          this.getResource().add((Enumeration) value); // Enumeration<VersionIndependentResourceTypesAll>
4084          return value;
4085        case -887328209: // system
4086          this.system = TypeConvertor.castToBoolean(value); // BooleanType
4087          return value;
4088        case 3575610: // type
4089          this.type = TypeConvertor.castToBoolean(value); // BooleanType
4090          return value;
4091        case 555127957: // instance
4092          this.instance = TypeConvertor.castToBoolean(value); // BooleanType
4093          return value;
4094        case 676942463: // inputProfile
4095          this.inputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4096          return value;
4097        case 1826166120: // outputProfile
4098          this.outputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4099          return value;
4100        case 1954460585: // parameter
4101          this.getParameter().add((OperationDefinitionParameterComponent) value); // OperationDefinitionParameterComponent
4102          return value;
4103        case 529823674: // overload
4104          this.getOverload().add((OperationDefinitionOverloadComponent) value); // OperationDefinitionOverloadComponent
4105          return value;
4106        default: return super.setProperty(hash, name, value);
4107        }
4108
4109      }
4110
4111      @Override
4112      public Base setProperty(String name, Base value) throws FHIRException {
4113        if (name.equals("url")) {
4114          this.url = TypeConvertor.castToUri(value); // UriType
4115        } else if (name.equals("identifier")) {
4116          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
4117        } else if (name.equals("version")) {
4118          this.version = TypeConvertor.castToString(value); // StringType
4119        } else if (name.equals("versionAlgorithm[x]")) {
4120          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
4121        } else if (name.equals("name")) {
4122          this.name = TypeConvertor.castToString(value); // StringType
4123        } else if (name.equals("title")) {
4124          this.title = TypeConvertor.castToString(value); // StringType
4125        } else if (name.equals("status")) {
4126          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
4127          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
4128        } else if (name.equals("kind")) {
4129          value = new OperationKindEnumFactory().fromType(TypeConvertor.castToCode(value));
4130          this.kind = (Enumeration) value; // Enumeration<OperationKind>
4131        } else if (name.equals("experimental")) {
4132          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
4133        } else if (name.equals("date")) {
4134          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
4135        } else if (name.equals("publisher")) {
4136          this.publisher = TypeConvertor.castToString(value); // StringType
4137        } else if (name.equals("contact")) {
4138          this.getContact().add(TypeConvertor.castToContactDetail(value));
4139        } else if (name.equals("description")) {
4140          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
4141        } else if (name.equals("useContext")) {
4142          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
4143        } else if (name.equals("jurisdiction")) {
4144          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
4145        } else if (name.equals("purpose")) {
4146          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
4147        } else if (name.equals("copyright")) {
4148          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
4149        } else if (name.equals("copyrightLabel")) {
4150          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
4151        } else if (name.equals("affectsState")) {
4152          this.affectsState = TypeConvertor.castToBoolean(value); // BooleanType
4153        } else if (name.equals("code")) {
4154          this.code = TypeConvertor.castToCode(value); // CodeType
4155        } else if (name.equals("comment")) {
4156          this.comment = TypeConvertor.castToMarkdown(value); // MarkdownType
4157        } else if (name.equals("base")) {
4158          this.base = TypeConvertor.castToCanonical(value); // CanonicalType
4159        } else if (name.equals("resource")) {
4160          value = new VersionIndependentResourceTypesAllEnumFactory().fromType(TypeConvertor.castToCode(value));
4161          this.getResource().add((Enumeration) value);
4162        } else if (name.equals("system")) {
4163          this.system = TypeConvertor.castToBoolean(value); // BooleanType
4164        } else if (name.equals("type")) {
4165          this.type = TypeConvertor.castToBoolean(value); // BooleanType
4166        } else if (name.equals("instance")) {
4167          this.instance = TypeConvertor.castToBoolean(value); // BooleanType
4168        } else if (name.equals("inputProfile")) {
4169          this.inputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4170        } else if (name.equals("outputProfile")) {
4171          this.outputProfile = TypeConvertor.castToCanonical(value); // CanonicalType
4172        } else if (name.equals("parameter")) {
4173          this.getParameter().add((OperationDefinitionParameterComponent) value);
4174        } else if (name.equals("overload")) {
4175          this.getOverload().add((OperationDefinitionOverloadComponent) value);
4176        } else
4177          return super.setProperty(name, value);
4178        return value;
4179      }
4180
4181  @Override
4182  public void removeChild(String name, Base value) throws FHIRException {
4183        if (name.equals("url")) {
4184          this.url = null;
4185        } else if (name.equals("identifier")) {
4186          this.getIdentifier().remove(value);
4187        } else if (name.equals("version")) {
4188          this.version = null;
4189        } else if (name.equals("versionAlgorithm[x]")) {
4190          this.versionAlgorithm = null;
4191        } else if (name.equals("name")) {
4192          this.name = null;
4193        } else if (name.equals("title")) {
4194          this.title = null;
4195        } else if (name.equals("status")) {
4196          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
4197          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
4198        } else if (name.equals("kind")) {
4199          value = new OperationKindEnumFactory().fromType(TypeConvertor.castToCode(value));
4200          this.kind = (Enumeration) value; // Enumeration<OperationKind>
4201        } else if (name.equals("experimental")) {
4202          this.experimental = null;
4203        } else if (name.equals("date")) {
4204          this.date = null;
4205        } else if (name.equals("publisher")) {
4206          this.publisher = null;
4207        } else if (name.equals("contact")) {
4208          this.getContact().remove(value);
4209        } else if (name.equals("description")) {
4210          this.description = null;
4211        } else if (name.equals("useContext")) {
4212          this.getUseContext().remove(value);
4213        } else if (name.equals("jurisdiction")) {
4214          this.getJurisdiction().remove(value);
4215        } else if (name.equals("purpose")) {
4216          this.purpose = null;
4217        } else if (name.equals("copyright")) {
4218          this.copyright = null;
4219        } else if (name.equals("copyrightLabel")) {
4220          this.copyrightLabel = null;
4221        } else if (name.equals("affectsState")) {
4222          this.affectsState = null;
4223        } else if (name.equals("code")) {
4224          this.code = null;
4225        } else if (name.equals("comment")) {
4226          this.comment = null;
4227        } else if (name.equals("base")) {
4228          this.base = null;
4229        } else if (name.equals("resource")) {
4230          value = new VersionIndependentResourceTypesAllEnumFactory().fromType(TypeConvertor.castToCode(value));
4231          this.getResource().remove((Enumeration) value);
4232        } else if (name.equals("system")) {
4233          this.system = null;
4234        } else if (name.equals("type")) {
4235          this.type = null;
4236        } else if (name.equals("instance")) {
4237          this.instance = null;
4238        } else if (name.equals("inputProfile")) {
4239          this.inputProfile = null;
4240        } else if (name.equals("outputProfile")) {
4241          this.outputProfile = null;
4242        } else if (name.equals("parameter")) {
4243          this.getParameter().remove((OperationDefinitionParameterComponent) value);
4244        } else if (name.equals("overload")) {
4245          this.getOverload().remove((OperationDefinitionOverloadComponent) value);
4246        } else
4247          super.removeChild(name, value);
4248        
4249      }
4250
4251      @Override
4252      public Base makeProperty(int hash, String name) throws FHIRException {
4253        switch (hash) {
4254        case 116079:  return getUrlElement();
4255        case -1618432855:  return addIdentifier(); 
4256        case 351608024:  return getVersionElement();
4257        case -115699031:  return getVersionAlgorithm();
4258        case 1508158071:  return getVersionAlgorithm();
4259        case 3373707:  return getNameElement();
4260        case 110371416:  return getTitleElement();
4261        case -892481550:  return getStatusElement();
4262        case 3292052:  return getKindElement();
4263        case -404562712:  return getExperimentalElement();
4264        case 3076014:  return getDateElement();
4265        case 1447404028:  return getPublisherElement();
4266        case 951526432:  return addContact(); 
4267        case -1724546052:  return getDescriptionElement();
4268        case -669707736:  return addUseContext(); 
4269        case -507075711:  return addJurisdiction(); 
4270        case -220463842:  return getPurposeElement();
4271        case 1522889671:  return getCopyrightElement();
4272        case 765157229:  return getCopyrightLabelElement();
4273        case -14805197:  return getAffectsStateElement();
4274        case 3059181:  return getCodeElement();
4275        case 950398559:  return getCommentElement();
4276        case 3016401:  return getBaseElement();
4277        case -341064690:  return addResourceElement();
4278        case -887328209:  return getSystemElement();
4279        case 3575610:  return getTypeElement();
4280        case 555127957:  return getInstanceElement();
4281        case 676942463:  return getInputProfileElement();
4282        case 1826166120:  return getOutputProfileElement();
4283        case 1954460585:  return addParameter(); 
4284        case 529823674:  return addOverload(); 
4285        default: return super.makeProperty(hash, name);
4286        }
4287
4288      }
4289
4290      @Override
4291      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
4292        switch (hash) {
4293        case 116079: /*url*/ return new String[] {"uri"};
4294        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
4295        case 351608024: /*version*/ return new String[] {"string"};
4296        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
4297        case 3373707: /*name*/ return new String[] {"string"};
4298        case 110371416: /*title*/ return new String[] {"string"};
4299        case -892481550: /*status*/ return new String[] {"code"};
4300        case 3292052: /*kind*/ return new String[] {"code"};
4301        case -404562712: /*experimental*/ return new String[] {"boolean"};
4302        case 3076014: /*date*/ return new String[] {"dateTime"};
4303        case 1447404028: /*publisher*/ return new String[] {"string"};
4304        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
4305        case -1724546052: /*description*/ return new String[] {"markdown"};
4306        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
4307        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
4308        case -220463842: /*purpose*/ return new String[] {"markdown"};
4309        case 1522889671: /*copyright*/ return new String[] {"markdown"};
4310        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
4311        case -14805197: /*affectsState*/ return new String[] {"boolean"};
4312        case 3059181: /*code*/ return new String[] {"code"};
4313        case 950398559: /*comment*/ return new String[] {"markdown"};
4314        case 3016401: /*base*/ return new String[] {"canonical"};
4315        case -341064690: /*resource*/ return new String[] {"code"};
4316        case -887328209: /*system*/ return new String[] {"boolean"};
4317        case 3575610: /*type*/ return new String[] {"boolean"};
4318        case 555127957: /*instance*/ return new String[] {"boolean"};
4319        case 676942463: /*inputProfile*/ return new String[] {"canonical"};
4320        case 1826166120: /*outputProfile*/ return new String[] {"canonical"};
4321        case 1954460585: /*parameter*/ return new String[] {};
4322        case 529823674: /*overload*/ return new String[] {};
4323        default: return super.getTypesForProperty(hash, name);
4324        }
4325
4326      }
4327
4328      @Override
4329      public Base addChild(String name) throws FHIRException {
4330        if (name.equals("url")) {
4331          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.url");
4332        }
4333        else if (name.equals("identifier")) {
4334          return addIdentifier();
4335        }
4336        else if (name.equals("version")) {
4337          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.version");
4338        }
4339        else if (name.equals("versionAlgorithmString")) {
4340          this.versionAlgorithm = new StringType();
4341          return this.versionAlgorithm;
4342        }
4343        else if (name.equals("versionAlgorithmCoding")) {
4344          this.versionAlgorithm = new Coding();
4345          return this.versionAlgorithm;
4346        }
4347        else if (name.equals("name")) {
4348          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.name");
4349        }
4350        else if (name.equals("title")) {
4351          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.title");
4352        }
4353        else if (name.equals("status")) {
4354          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.status");
4355        }
4356        else if (name.equals("kind")) {
4357          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.kind");
4358        }
4359        else if (name.equals("experimental")) {
4360          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.experimental");
4361        }
4362        else if (name.equals("date")) {
4363          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.date");
4364        }
4365        else if (name.equals("publisher")) {
4366          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.publisher");
4367        }
4368        else if (name.equals("contact")) {
4369          return addContact();
4370        }
4371        else if (name.equals("description")) {
4372          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.description");
4373        }
4374        else if (name.equals("useContext")) {
4375          return addUseContext();
4376        }
4377        else if (name.equals("jurisdiction")) {
4378          return addJurisdiction();
4379        }
4380        else if (name.equals("purpose")) {
4381          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.purpose");
4382        }
4383        else if (name.equals("copyright")) {
4384          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.copyright");
4385        }
4386        else if (name.equals("copyrightLabel")) {
4387          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.copyrightLabel");
4388        }
4389        else if (name.equals("affectsState")) {
4390          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.affectsState");
4391        }
4392        else if (name.equals("code")) {
4393          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.code");
4394        }
4395        else if (name.equals("comment")) {
4396          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.comment");
4397        }
4398        else if (name.equals("base")) {
4399          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.base");
4400        }
4401        else if (name.equals("resource")) {
4402          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.resource");
4403        }
4404        else if (name.equals("system")) {
4405          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.system");
4406        }
4407        else if (name.equals("type")) {
4408          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.type");
4409        }
4410        else if (name.equals("instance")) {
4411          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.instance");
4412        }
4413        else if (name.equals("inputProfile")) {
4414          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.inputProfile");
4415        }
4416        else if (name.equals("outputProfile")) {
4417          throw new FHIRException("Cannot call addChild on a singleton property OperationDefinition.outputProfile");
4418        }
4419        else if (name.equals("parameter")) {
4420          return addParameter();
4421        }
4422        else if (name.equals("overload")) {
4423          return addOverload();
4424        }
4425        else
4426          return super.addChild(name);
4427      }
4428
4429  public String fhirType() {
4430    return "OperationDefinition";
4431
4432  }
4433
4434      public OperationDefinition copy() {
4435        OperationDefinition dst = new OperationDefinition();
4436        copyValues(dst);
4437        return dst;
4438      }
4439
4440      public void copyValues(OperationDefinition dst) {
4441        super.copyValues(dst);
4442        dst.url = url == null ? null : url.copy();
4443        if (identifier != null) {
4444          dst.identifier = new ArrayList<Identifier>();
4445          for (Identifier i : identifier)
4446            dst.identifier.add(i.copy());
4447        };
4448        dst.version = version == null ? null : version.copy();
4449        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
4450        dst.name = name == null ? null : name.copy();
4451        dst.title = title == null ? null : title.copy();
4452        dst.status = status == null ? null : status.copy();
4453        dst.kind = kind == null ? null : kind.copy();
4454        dst.experimental = experimental == null ? null : experimental.copy();
4455        dst.date = date == null ? null : date.copy();
4456        dst.publisher = publisher == null ? null : publisher.copy();
4457        if (contact != null) {
4458          dst.contact = new ArrayList<ContactDetail>();
4459          for (ContactDetail i : contact)
4460            dst.contact.add(i.copy());
4461        };
4462        dst.description = description == null ? null : description.copy();
4463        if (useContext != null) {
4464          dst.useContext = new ArrayList<UsageContext>();
4465          for (UsageContext i : useContext)
4466            dst.useContext.add(i.copy());
4467        };
4468        if (jurisdiction != null) {
4469          dst.jurisdiction = new ArrayList<CodeableConcept>();
4470          for (CodeableConcept i : jurisdiction)
4471            dst.jurisdiction.add(i.copy());
4472        };
4473        dst.purpose = purpose == null ? null : purpose.copy();
4474        dst.copyright = copyright == null ? null : copyright.copy();
4475        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
4476        dst.affectsState = affectsState == null ? null : affectsState.copy();
4477        dst.code = code == null ? null : code.copy();
4478        dst.comment = comment == null ? null : comment.copy();
4479        dst.base = base == null ? null : base.copy();
4480        if (resource != null) {
4481          dst.resource = new ArrayList<Enumeration<VersionIndependentResourceTypesAll>>();
4482          for (Enumeration<VersionIndependentResourceTypesAll> i : resource)
4483            dst.resource.add(i.copy());
4484        };
4485        dst.system = system == null ? null : system.copy();
4486        dst.type = type == null ? null : type.copy();
4487        dst.instance = instance == null ? null : instance.copy();
4488        dst.inputProfile = inputProfile == null ? null : inputProfile.copy();
4489        dst.outputProfile = outputProfile == null ? null : outputProfile.copy();
4490        if (parameter != null) {
4491          dst.parameter = new ArrayList<OperationDefinitionParameterComponent>();
4492          for (OperationDefinitionParameterComponent i : parameter)
4493            dst.parameter.add(i.copy());
4494        };
4495        if (overload != null) {
4496          dst.overload = new ArrayList<OperationDefinitionOverloadComponent>();
4497          for (OperationDefinitionOverloadComponent i : overload)
4498            dst.overload.add(i.copy());
4499        };
4500      }
4501
4502      protected OperationDefinition typedCopy() {
4503        return copy();
4504      }
4505
4506      @Override
4507      public boolean equalsDeep(Base other_) {
4508        if (!super.equalsDeep(other_))
4509          return false;
4510        if (!(other_ instanceof OperationDefinition))
4511          return false;
4512        OperationDefinition o = (OperationDefinition) other_;
4513        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
4514           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
4515           && compareDeep(status, o.status, true) && compareDeep(kind, o.kind, true) && compareDeep(experimental, o.experimental, true)
4516           && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true)
4517           && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true)
4518           && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true)
4519           && compareDeep(copyrightLabel, o.copyrightLabel, true) && compareDeep(affectsState, o.affectsState, true)
4520           && compareDeep(code, o.code, true) && compareDeep(comment, o.comment, true) && compareDeep(base, o.base, true)
4521           && compareDeep(resource, o.resource, true) && compareDeep(system, o.system, true) && compareDeep(type, o.type, true)
4522           && compareDeep(instance, o.instance, true) && compareDeep(inputProfile, o.inputProfile, true) && compareDeep(outputProfile, o.outputProfile, true)
4523           && compareDeep(parameter, o.parameter, true) && compareDeep(overload, o.overload, true);
4524      }
4525
4526      @Override
4527      public boolean equalsShallow(Base other_) {
4528        if (!super.equalsShallow(other_))
4529          return false;
4530        if (!(other_ instanceof OperationDefinition))
4531          return false;
4532        OperationDefinition o = (OperationDefinition) other_;
4533        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
4534           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(kind, o.kind, true)
4535           && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true)
4536           && compareValues(description, o.description, true) && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true)
4537           && compareValues(copyrightLabel, o.copyrightLabel, true) && compareValues(affectsState, o.affectsState, true)
4538           && compareValues(code, o.code, true) && compareValues(comment, o.comment, true) && compareValues(base, o.base, true)
4539           && compareValues(resource, o.resource, true) && compareValues(system, o.system, true) && compareValues(type, o.type, true)
4540           && compareValues(instance, o.instance, true) && compareValues(inputProfile, o.inputProfile, true) && compareValues(outputProfile, o.outputProfile, true)
4541          ;
4542      }
4543
4544      public boolean isEmpty() {
4545        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
4546          , versionAlgorithm, name, title, status, kind, experimental, date, publisher
4547          , contact, description, useContext, jurisdiction, purpose, copyright, copyrightLabel
4548          , affectsState, code, comment, base, resource, system, type, instance, inputProfile
4549          , outputProfile, parameter, overload);
4550      }
4551
4552  @Override
4553  public ResourceType getResourceType() {
4554    return ResourceType.OperationDefinition;
4555   }
4556
4557 /**
4558   * Search parameter: <b>context-quantity</b>
4559   * <p>
4560   * Description: <b>Multiple Resources: 
4561
4562* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
4563* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
4564* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
4565* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
4566* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
4567* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
4568* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
4569* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
4570* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
4571* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
4572* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
4573* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
4574* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
4575* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
4576* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
4577* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
4578* [Library](library.html): A quantity- or range-valued use context assigned to the library
4579* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
4580* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
4581* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
4582* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
4583* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
4584* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
4585* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
4586* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
4587* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
4588* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
4589* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
4590* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
4591* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
4592</b><br>
4593   * Type: <b>quantity</b><br>
4594   * 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>
4595   * </p>
4596   */
4597  @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" )
4598  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
4599 /**
4600   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
4601   * <p>
4602   * Description: <b>Multiple Resources: 
4603
4604* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
4605* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
4606* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
4607* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
4608* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
4609* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
4610* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
4611* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
4612* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
4613* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
4614* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
4615* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
4616* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
4617* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
4618* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
4619* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
4620* [Library](library.html): A quantity- or range-valued use context assigned to the library
4621* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
4622* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
4623* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
4624* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
4625* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
4626* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
4627* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
4628* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
4629* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
4630* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
4631* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
4632* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
4633* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
4634</b><br>
4635   * Type: <b>quantity</b><br>
4636   * 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>
4637   * </p>
4638   */
4639  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
4640
4641 /**
4642   * Search parameter: <b>context-type-quantity</b>
4643   * <p>
4644   * Description: <b>Multiple Resources: 
4645
4646* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
4647* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
4648* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
4649* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
4650* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
4651* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
4652* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
4653* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
4654* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
4655* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
4656* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
4657* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
4658* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
4659* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
4660* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
4661* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
4662* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
4663* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
4664* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
4665* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
4666* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
4667* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
4668* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
4669* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
4670* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
4671* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
4672* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
4673* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
4674* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
4675* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
4676</b><br>
4677   * Type: <b>composite</b><br>
4678   * 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>
4679   * </p>
4680   */
4681  @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"} )
4682  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
4683 /**
4684   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
4685   * <p>
4686   * Description: <b>Multiple Resources: 
4687
4688* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
4689* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
4690* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
4691* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
4692* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
4693* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
4694* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
4695* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
4696* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
4697* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
4698* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
4699* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
4700* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
4701* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
4702* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
4703* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
4704* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
4705* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
4706* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
4707* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
4708* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
4709* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
4710* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
4711* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
4712* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
4713* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
4714* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
4715* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
4716* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
4717* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
4718</b><br>
4719   * Type: <b>composite</b><br>
4720   * 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>
4721   * </p>
4722   */
4723  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);
4724
4725 /**
4726   * Search parameter: <b>context-type-value</b>
4727   * <p>
4728   * Description: <b>Multiple Resources: 
4729
4730* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
4731* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
4732* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
4733* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
4734* [Citation](citation.html): A use context type and value assigned to the citation
4735* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
4736* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
4737* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
4738* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
4739* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
4740* [Evidence](evidence.html): A use context type and value assigned to the evidence
4741* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
4742* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
4743* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
4744* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
4745* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
4746* [Library](library.html): A use context type and value assigned to the library
4747* [Measure](measure.html): A use context type and value assigned to the measure
4748* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
4749* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
4750* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
4751* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
4752* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
4753* [Requirements](requirements.html): A use context type and value assigned to the requirements
4754* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
4755* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
4756* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
4757* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
4758* [TestScript](testscript.html): A use context type and value assigned to the test script
4759* [ValueSet](valueset.html): A use context type and value assigned to the value set
4760</b><br>
4761   * Type: <b>composite</b><br>
4762   * 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>
4763   * </p>
4764   */
4765  @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"} )
4766  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
4767 /**
4768   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
4769   * <p>
4770   * Description: <b>Multiple Resources: 
4771
4772* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
4773* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
4774* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
4775* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
4776* [Citation](citation.html): A use context type and value assigned to the citation
4777* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
4778* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
4779* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
4780* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
4781* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
4782* [Evidence](evidence.html): A use context type and value assigned to the evidence
4783* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
4784* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
4785* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
4786* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
4787* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
4788* [Library](library.html): A use context type and value assigned to the library
4789* [Measure](measure.html): A use context type and value assigned to the measure
4790* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
4791* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
4792* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
4793* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
4794* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
4795* [Requirements](requirements.html): A use context type and value assigned to the requirements
4796* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
4797* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
4798* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
4799* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
4800* [TestScript](testscript.html): A use context type and value assigned to the test script
4801* [ValueSet](valueset.html): A use context type and value assigned to the value set
4802</b><br>
4803   * Type: <b>composite</b><br>
4804   * 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>
4805   * </p>
4806   */
4807  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);
4808
4809 /**
4810   * Search parameter: <b>context-type</b>
4811   * <p>
4812   * Description: <b>Multiple Resources: 
4813
4814* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
4815* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
4816* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
4817* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
4818* [Citation](citation.html): A type of use context assigned to the citation
4819* [CodeSystem](codesystem.html): A type of use context assigned to the code system
4820* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
4821* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
4822* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
4823* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
4824* [Evidence](evidence.html): A type of use context assigned to the evidence
4825* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
4826* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
4827* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
4828* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
4829* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
4830* [Library](library.html): A type of use context assigned to the library
4831* [Measure](measure.html): A type of use context assigned to the measure
4832* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
4833* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
4834* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
4835* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
4836* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
4837* [Requirements](requirements.html): A type of use context assigned to the requirements
4838* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
4839* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
4840* [StructureMap](structuremap.html): A type of use context assigned to the structure map
4841* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
4842* [TestScript](testscript.html): A type of use context assigned to the test script
4843* [ValueSet](valueset.html): A type of use context assigned to the value set
4844</b><br>
4845   * Type: <b>token</b><br>
4846   * 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>
4847   * </p>
4848   */
4849  @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" )
4850  public static final String SP_CONTEXT_TYPE = "context-type";
4851 /**
4852   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
4853   * <p>
4854   * Description: <b>Multiple Resources: 
4855
4856* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
4857* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
4858* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
4859* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
4860* [Citation](citation.html): A type of use context assigned to the citation
4861* [CodeSystem](codesystem.html): A type of use context assigned to the code system
4862* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
4863* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
4864* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
4865* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
4866* [Evidence](evidence.html): A type of use context assigned to the evidence
4867* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
4868* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
4869* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
4870* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
4871* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
4872* [Library](library.html): A type of use context assigned to the library
4873* [Measure](measure.html): A type of use context assigned to the measure
4874* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
4875* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
4876* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
4877* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
4878* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
4879* [Requirements](requirements.html): A type of use context assigned to the requirements
4880* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
4881* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
4882* [StructureMap](structuremap.html): A type of use context assigned to the structure map
4883* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
4884* [TestScript](testscript.html): A type of use context assigned to the test script
4885* [ValueSet](valueset.html): A type of use context assigned to the value set
4886</b><br>
4887   * Type: <b>token</b><br>
4888   * 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>
4889   * </p>
4890   */
4891  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
4892
4893 /**
4894   * Search parameter: <b>context</b>
4895   * <p>
4896   * Description: <b>Multiple Resources: 
4897
4898* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
4899* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
4900* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
4901* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
4902* [Citation](citation.html): A use context assigned to the citation
4903* [CodeSystem](codesystem.html): A use context assigned to the code system
4904* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
4905* [ConceptMap](conceptmap.html): A use context assigned to the concept map
4906* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
4907* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
4908* [Evidence](evidence.html): A use context assigned to the evidence
4909* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
4910* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
4911* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
4912* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
4913* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
4914* [Library](library.html): A use context assigned to the library
4915* [Measure](measure.html): A use context assigned to the measure
4916* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
4917* [NamingSystem](namingsystem.html): A use context assigned to the naming system
4918* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
4919* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
4920* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
4921* [Requirements](requirements.html): A use context assigned to the requirements
4922* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
4923* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
4924* [StructureMap](structuremap.html): A use context assigned to the structure map
4925* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
4926* [TestScript](testscript.html): A use context assigned to the test script
4927* [ValueSet](valueset.html): A use context assigned to the value set
4928</b><br>
4929   * Type: <b>token</b><br>
4930   * 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>
4931   * </p>
4932   */
4933  @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" )
4934  public static final String SP_CONTEXT = "context";
4935 /**
4936   * <b>Fluent Client</b> search parameter constant for <b>context</b>
4937   * <p>
4938   * Description: <b>Multiple Resources: 
4939
4940* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
4941* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
4942* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
4943* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
4944* [Citation](citation.html): A use context assigned to the citation
4945* [CodeSystem](codesystem.html): A use context assigned to the code system
4946* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
4947* [ConceptMap](conceptmap.html): A use context assigned to the concept map
4948* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
4949* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
4950* [Evidence](evidence.html): A use context assigned to the evidence
4951* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
4952* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
4953* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
4954* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
4955* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
4956* [Library](library.html): A use context assigned to the library
4957* [Measure](measure.html): A use context assigned to the measure
4958* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
4959* [NamingSystem](namingsystem.html): A use context assigned to the naming system
4960* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
4961* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
4962* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
4963* [Requirements](requirements.html): A use context assigned to the requirements
4964* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
4965* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
4966* [StructureMap](structuremap.html): A use context assigned to the structure map
4967* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
4968* [TestScript](testscript.html): A use context assigned to the test script
4969* [ValueSet](valueset.html): A use context assigned to the value set
4970</b><br>
4971   * Type: <b>token</b><br>
4972   * 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>
4973   * </p>
4974   */
4975  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
4976
4977 /**
4978   * Search parameter: <b>date</b>
4979   * <p>
4980   * Description: <b>Multiple Resources: 
4981
4982* [ActivityDefinition](activitydefinition.html): The activity definition publication date
4983* [ActorDefinition](actordefinition.html): The Actor Definition publication date
4984* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
4985* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
4986* [Citation](citation.html): The citation publication date
4987* [CodeSystem](codesystem.html): The code system publication date
4988* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
4989* [ConceptMap](conceptmap.html): The concept map publication date
4990* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
4991* [EventDefinition](eventdefinition.html): The event definition publication date
4992* [Evidence](evidence.html): The evidence publication date
4993* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
4994* [ExampleScenario](examplescenario.html): The example scenario publication date
4995* [GraphDefinition](graphdefinition.html): The graph definition publication date
4996* [ImplementationGuide](implementationguide.html): The implementation guide publication date
4997* [Library](library.html): The library publication date
4998* [Measure](measure.html): The measure publication date
4999* [MessageDefinition](messagedefinition.html): The message definition publication date
5000* [NamingSystem](namingsystem.html): The naming system publication date
5001* [OperationDefinition](operationdefinition.html): The operation definition publication date
5002* [PlanDefinition](plandefinition.html): The plan definition publication date
5003* [Questionnaire](questionnaire.html): The questionnaire publication date
5004* [Requirements](requirements.html): The requirements publication date
5005* [SearchParameter](searchparameter.html): The search parameter publication date
5006* [StructureDefinition](structuredefinition.html): The structure definition publication date
5007* [StructureMap](structuremap.html): The structure map publication date
5008* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
5009* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
5010* [TestScript](testscript.html): The test script publication date
5011* [ValueSet](valueset.html): The value set publication date
5012</b><br>
5013   * Type: <b>date</b><br>
5014   * 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>
5015   * </p>
5016   */
5017  @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" )
5018  public static final String SP_DATE = "date";
5019 /**
5020   * <b>Fluent Client</b> search parameter constant for <b>date</b>
5021   * <p>
5022   * Description: <b>Multiple Resources: 
5023
5024* [ActivityDefinition](activitydefinition.html): The activity definition publication date
5025* [ActorDefinition](actordefinition.html): The Actor Definition publication date
5026* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
5027* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
5028* [Citation](citation.html): The citation publication date
5029* [CodeSystem](codesystem.html): The code system publication date
5030* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
5031* [ConceptMap](conceptmap.html): The concept map publication date
5032* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
5033* [EventDefinition](eventdefinition.html): The event definition publication date
5034* [Evidence](evidence.html): The evidence publication date
5035* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
5036* [ExampleScenario](examplescenario.html): The example scenario publication date
5037* [GraphDefinition](graphdefinition.html): The graph definition publication date
5038* [ImplementationGuide](implementationguide.html): The implementation guide publication date
5039* [Library](library.html): The library publication date
5040* [Measure](measure.html): The measure publication date
5041* [MessageDefinition](messagedefinition.html): The message definition publication date
5042* [NamingSystem](namingsystem.html): The naming system publication date
5043* [OperationDefinition](operationdefinition.html): The operation definition publication date
5044* [PlanDefinition](plandefinition.html): The plan definition publication date
5045* [Questionnaire](questionnaire.html): The questionnaire publication date
5046* [Requirements](requirements.html): The requirements publication date
5047* [SearchParameter](searchparameter.html): The search parameter publication date
5048* [StructureDefinition](structuredefinition.html): The structure definition publication date
5049* [StructureMap](structuremap.html): The structure map publication date
5050* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
5051* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
5052* [TestScript](testscript.html): The test script publication date
5053* [ValueSet](valueset.html): The value set publication date
5054</b><br>
5055   * Type: <b>date</b><br>
5056   * 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>
5057   * </p>
5058   */
5059  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
5060
5061 /**
5062   * Search parameter: <b>description</b>
5063   * <p>
5064   * Description: <b>Multiple Resources: 
5065
5066* [ActivityDefinition](activitydefinition.html): The description of the activity definition
5067* [ActorDefinition](actordefinition.html): The description of the Actor Definition
5068* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
5069* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
5070* [Citation](citation.html): The description of the citation
5071* [CodeSystem](codesystem.html): The description of the code system
5072* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
5073* [ConceptMap](conceptmap.html): The description of the concept map
5074* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
5075* [EventDefinition](eventdefinition.html): The description of the event definition
5076* [Evidence](evidence.html): The description of the evidence
5077* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
5078* [GraphDefinition](graphdefinition.html): The description of the graph definition
5079* [ImplementationGuide](implementationguide.html): The description of the implementation guide
5080* [Library](library.html): The description of the library
5081* [Measure](measure.html): The description of the measure
5082* [MessageDefinition](messagedefinition.html): The description of the message definition
5083* [NamingSystem](namingsystem.html): The description of the naming system
5084* [OperationDefinition](operationdefinition.html): The description of the operation definition
5085* [PlanDefinition](plandefinition.html): The description of the plan definition
5086* [Questionnaire](questionnaire.html): The description of the questionnaire
5087* [Requirements](requirements.html): The description of the requirements
5088* [SearchParameter](searchparameter.html): The description of the search parameter
5089* [StructureDefinition](structuredefinition.html): The description of the structure definition
5090* [StructureMap](structuremap.html): The description of the structure map
5091* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
5092* [TestScript](testscript.html): The description of the test script
5093* [ValueSet](valueset.html): The description of the value set
5094</b><br>
5095   * Type: <b>string</b><br>
5096   * 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>
5097   * </p>
5098   */
5099  @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" )
5100  public static final String SP_DESCRIPTION = "description";
5101 /**
5102   * <b>Fluent Client</b> search parameter constant for <b>description</b>
5103   * <p>
5104   * Description: <b>Multiple Resources: 
5105
5106* [ActivityDefinition](activitydefinition.html): The description of the activity definition
5107* [ActorDefinition](actordefinition.html): The description of the Actor Definition
5108* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
5109* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
5110* [Citation](citation.html): The description of the citation
5111* [CodeSystem](codesystem.html): The description of the code system
5112* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
5113* [ConceptMap](conceptmap.html): The description of the concept map
5114* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
5115* [EventDefinition](eventdefinition.html): The description of the event definition
5116* [Evidence](evidence.html): The description of the evidence
5117* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
5118* [GraphDefinition](graphdefinition.html): The description of the graph definition
5119* [ImplementationGuide](implementationguide.html): The description of the implementation guide
5120* [Library](library.html): The description of the library
5121* [Measure](measure.html): The description of the measure
5122* [MessageDefinition](messagedefinition.html): The description of the message definition
5123* [NamingSystem](namingsystem.html): The description of the naming system
5124* [OperationDefinition](operationdefinition.html): The description of the operation definition
5125* [PlanDefinition](plandefinition.html): The description of the plan definition
5126* [Questionnaire](questionnaire.html): The description of the questionnaire
5127* [Requirements](requirements.html): The description of the requirements
5128* [SearchParameter](searchparameter.html): The description of the search parameter
5129* [StructureDefinition](structuredefinition.html): The description of the structure definition
5130* [StructureMap](structuremap.html): The description of the structure map
5131* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
5132* [TestScript](testscript.html): The description of the test script
5133* [ValueSet](valueset.html): The description of the value set
5134</b><br>
5135   * Type: <b>string</b><br>
5136   * 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>
5137   * </p>
5138   */
5139  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
5140
5141 /**
5142   * Search parameter: <b>identifier</b>
5143   * <p>
5144   * Description: <b>Multiple Resources: 
5145
5146* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
5147* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
5148* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
5149* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
5150* [Citation](citation.html): External identifier for the citation
5151* [CodeSystem](codesystem.html): External identifier for the code system
5152* [ConceptMap](conceptmap.html): External identifier for the concept map
5153* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
5154* [EventDefinition](eventdefinition.html): External identifier for the event definition
5155* [Evidence](evidence.html): External identifier for the evidence
5156* [EvidenceReport](evidencereport.html): External identifier for the evidence report
5157* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
5158* [ExampleScenario](examplescenario.html): External identifier for the example scenario
5159* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
5160* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
5161* [Library](library.html): External identifier for the library
5162* [Measure](measure.html): External identifier for the measure
5163* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
5164* [MessageDefinition](messagedefinition.html): External identifier for the message definition
5165* [NamingSystem](namingsystem.html): External identifier for the naming system
5166* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
5167* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
5168* [PlanDefinition](plandefinition.html): External identifier for the plan definition
5169* [Questionnaire](questionnaire.html): External identifier for the questionnaire
5170* [Requirements](requirements.html): External identifier for the requirements
5171* [SearchParameter](searchparameter.html): External identifier for the search parameter
5172* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
5173* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
5174* [StructureMap](structuremap.html): External identifier for the structure map
5175* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
5176* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
5177* [TestPlan](testplan.html): An identifier for the test plan
5178* [TestScript](testscript.html): External identifier for the test script
5179* [ValueSet](valueset.html): External identifier for the value set
5180</b><br>
5181   * Type: <b>token</b><br>
5182   * 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>
5183   * </p>
5184   */
5185  @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" )
5186  public static final String SP_IDENTIFIER = "identifier";
5187 /**
5188   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
5189   * <p>
5190   * Description: <b>Multiple Resources: 
5191
5192* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
5193* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
5194* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
5195* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
5196* [Citation](citation.html): External identifier for the citation
5197* [CodeSystem](codesystem.html): External identifier for the code system
5198* [ConceptMap](conceptmap.html): External identifier for the concept map
5199* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
5200* [EventDefinition](eventdefinition.html): External identifier for the event definition
5201* [Evidence](evidence.html): External identifier for the evidence
5202* [EvidenceReport](evidencereport.html): External identifier for the evidence report
5203* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
5204* [ExampleScenario](examplescenario.html): External identifier for the example scenario
5205* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
5206* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
5207* [Library](library.html): External identifier for the library
5208* [Measure](measure.html): External identifier for the measure
5209* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
5210* [MessageDefinition](messagedefinition.html): External identifier for the message definition
5211* [NamingSystem](namingsystem.html): External identifier for the naming system
5212* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
5213* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
5214* [PlanDefinition](plandefinition.html): External identifier for the plan definition
5215* [Questionnaire](questionnaire.html): External identifier for the questionnaire
5216* [Requirements](requirements.html): External identifier for the requirements
5217* [SearchParameter](searchparameter.html): External identifier for the search parameter
5218* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
5219* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
5220* [StructureMap](structuremap.html): External identifier for the structure map
5221* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
5222* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
5223* [TestPlan](testplan.html): An identifier for the test plan
5224* [TestScript](testscript.html): External identifier for the test script
5225* [ValueSet](valueset.html): External identifier for the value set
5226</b><br>
5227   * Type: <b>token</b><br>
5228   * 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>
5229   * </p>
5230   */
5231  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
5232
5233 /**
5234   * Search parameter: <b>jurisdiction</b>
5235   * <p>
5236   * Description: <b>Multiple Resources: 
5237
5238* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
5239* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
5240* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
5241* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
5242* [Citation](citation.html): Intended jurisdiction for the citation
5243* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
5244* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
5245* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
5246* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
5247* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
5248* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
5249* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
5250* [Library](library.html): Intended jurisdiction for the library
5251* [Measure](measure.html): Intended jurisdiction for the measure
5252* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
5253* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
5254* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
5255* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
5256* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
5257* [Requirements](requirements.html): Intended jurisdiction for the requirements
5258* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
5259* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
5260* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
5261* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
5262* [TestScript](testscript.html): Intended jurisdiction for the test script
5263* [ValueSet](valueset.html): Intended jurisdiction for the value set
5264</b><br>
5265   * Type: <b>token</b><br>
5266   * 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>
5267   * </p>
5268   */
5269  @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" )
5270  public static final String SP_JURISDICTION = "jurisdiction";
5271 /**
5272   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
5273   * <p>
5274   * Description: <b>Multiple Resources: 
5275
5276* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
5277* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
5278* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
5279* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
5280* [Citation](citation.html): Intended jurisdiction for the citation
5281* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
5282* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
5283* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
5284* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
5285* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
5286* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
5287* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
5288* [Library](library.html): Intended jurisdiction for the library
5289* [Measure](measure.html): Intended jurisdiction for the measure
5290* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
5291* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
5292* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
5293* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
5294* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
5295* [Requirements](requirements.html): Intended jurisdiction for the requirements
5296* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
5297* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
5298* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
5299* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
5300* [TestScript](testscript.html): Intended jurisdiction for the test script
5301* [ValueSet](valueset.html): Intended jurisdiction for the value set
5302</b><br>
5303   * Type: <b>token</b><br>
5304   * 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>
5305   * </p>
5306   */
5307  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
5308
5309 /**
5310   * Search parameter: <b>name</b>
5311   * <p>
5312   * Description: <b>Multiple Resources: 
5313
5314* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
5315* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
5316* [Citation](citation.html): Computationally friendly name of the citation
5317* [CodeSystem](codesystem.html): Computationally friendly name of the code system
5318* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
5319* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
5320* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
5321* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
5322* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
5323* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
5324* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
5325* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
5326* [Library](library.html): Computationally friendly name of the library
5327* [Measure](measure.html): Computationally friendly name of the measure
5328* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
5329* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
5330* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
5331* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
5332* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
5333* [Requirements](requirements.html): Computationally friendly name of the requirements
5334* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
5335* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
5336* [StructureMap](structuremap.html): Computationally friendly name of the structure map
5337* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
5338* [TestScript](testscript.html): Computationally friendly name of the test script
5339* [ValueSet](valueset.html): Computationally friendly name of the value set
5340</b><br>
5341   * Type: <b>string</b><br>
5342   * 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>
5343   * </p>
5344   */
5345  @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" )
5346  public static final String SP_NAME = "name";
5347 /**
5348   * <b>Fluent Client</b> search parameter constant for <b>name</b>
5349   * <p>
5350   * Description: <b>Multiple Resources: 
5351
5352* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
5353* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
5354* [Citation](citation.html): Computationally friendly name of the citation
5355* [CodeSystem](codesystem.html): Computationally friendly name of the code system
5356* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
5357* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
5358* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
5359* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
5360* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
5361* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
5362* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
5363* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
5364* [Library](library.html): Computationally friendly name of the library
5365* [Measure](measure.html): Computationally friendly name of the measure
5366* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
5367* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
5368* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
5369* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
5370* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
5371* [Requirements](requirements.html): Computationally friendly name of the requirements
5372* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
5373* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
5374* [StructureMap](structuremap.html): Computationally friendly name of the structure map
5375* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
5376* [TestScript](testscript.html): Computationally friendly name of the test script
5377* [ValueSet](valueset.html): Computationally friendly name of the value set
5378</b><br>
5379   * Type: <b>string</b><br>
5380   * 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>
5381   * </p>
5382   */
5383  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
5384
5385 /**
5386   * Search parameter: <b>publisher</b>
5387   * <p>
5388   * Description: <b>Multiple Resources: 
5389
5390* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
5391* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
5392* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
5393* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
5394* [Citation](citation.html): Name of the publisher of the citation
5395* [CodeSystem](codesystem.html): Name of the publisher of the code system
5396* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
5397* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
5398* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
5399* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
5400* [Evidence](evidence.html): Name of the publisher of the evidence
5401* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
5402* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
5403* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
5404* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
5405* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
5406* [Library](library.html): Name of the publisher of the library
5407* [Measure](measure.html): Name of the publisher of the measure
5408* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
5409* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
5410* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
5411* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
5412* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
5413* [Requirements](requirements.html): Name of the publisher of the requirements
5414* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
5415* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
5416* [StructureMap](structuremap.html): Name of the publisher of the structure map
5417* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
5418* [TestScript](testscript.html): Name of the publisher of the test script
5419* [ValueSet](valueset.html): Name of the publisher of the value set
5420</b><br>
5421   * Type: <b>string</b><br>
5422   * 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>
5423   * </p>
5424   */
5425  @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" )
5426  public static final String SP_PUBLISHER = "publisher";
5427 /**
5428   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
5429   * <p>
5430   * Description: <b>Multiple Resources: 
5431
5432* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
5433* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
5434* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
5435* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
5436* [Citation](citation.html): Name of the publisher of the citation
5437* [CodeSystem](codesystem.html): Name of the publisher of the code system
5438* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
5439* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
5440* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
5441* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
5442* [Evidence](evidence.html): Name of the publisher of the evidence
5443* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
5444* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
5445* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
5446* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
5447* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
5448* [Library](library.html): Name of the publisher of the library
5449* [Measure](measure.html): Name of the publisher of the measure
5450* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
5451* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
5452* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
5453* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
5454* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
5455* [Requirements](requirements.html): Name of the publisher of the requirements
5456* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
5457* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
5458* [StructureMap](structuremap.html): Name of the publisher of the structure map
5459* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
5460* [TestScript](testscript.html): Name of the publisher of the test script
5461* [ValueSet](valueset.html): Name of the publisher of the value set
5462</b><br>
5463   * Type: <b>string</b><br>
5464   * 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>
5465   * </p>
5466   */
5467  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
5468
5469 /**
5470   * Search parameter: <b>status</b>
5471   * <p>
5472   * Description: <b>Multiple Resources: 
5473
5474* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
5475* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
5476* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
5477* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
5478* [Citation](citation.html): The current status of the citation
5479* [CodeSystem](codesystem.html): The current status of the code system
5480* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
5481* [ConceptMap](conceptmap.html): The current status of the concept map
5482* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
5483* [EventDefinition](eventdefinition.html): The current status of the event definition
5484* [Evidence](evidence.html): The current status of the evidence
5485* [EvidenceReport](evidencereport.html): The current status of the evidence report
5486* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
5487* [ExampleScenario](examplescenario.html): The current status of the example scenario
5488* [GraphDefinition](graphdefinition.html): The current status of the graph definition
5489* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
5490* [Library](library.html): The current status of the library
5491* [Measure](measure.html): The current status of the measure
5492* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
5493* [MessageDefinition](messagedefinition.html): The current status of the message definition
5494* [NamingSystem](namingsystem.html): The current status of the naming system
5495* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
5496* [OperationDefinition](operationdefinition.html): The current status of the operation definition
5497* [PlanDefinition](plandefinition.html): The current status of the plan definition
5498* [Questionnaire](questionnaire.html): The current status of the questionnaire
5499* [Requirements](requirements.html): The current status of the requirements
5500* [SearchParameter](searchparameter.html): The current status of the search parameter
5501* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
5502* [StructureDefinition](structuredefinition.html): The current status of the structure definition
5503* [StructureMap](structuremap.html): The current status of the structure map
5504* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
5505* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
5506* [TestPlan](testplan.html): The current status of the test plan
5507* [TestScript](testscript.html): The current status of the test script
5508* [ValueSet](valueset.html): The current status of the value set
5509</b><br>
5510   * Type: <b>token</b><br>
5511   * 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>
5512   * </p>
5513   */
5514  @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" )
5515  public static final String SP_STATUS = "status";
5516 /**
5517   * <b>Fluent Client</b> search parameter constant for <b>status</b>
5518   * <p>
5519   * Description: <b>Multiple Resources: 
5520
5521* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
5522* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
5523* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
5524* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
5525* [Citation](citation.html): The current status of the citation
5526* [CodeSystem](codesystem.html): The current status of the code system
5527* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
5528* [ConceptMap](conceptmap.html): The current status of the concept map
5529* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
5530* [EventDefinition](eventdefinition.html): The current status of the event definition
5531* [Evidence](evidence.html): The current status of the evidence
5532* [EvidenceReport](evidencereport.html): The current status of the evidence report
5533* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
5534* [ExampleScenario](examplescenario.html): The current status of the example scenario
5535* [GraphDefinition](graphdefinition.html): The current status of the graph definition
5536* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
5537* [Library](library.html): The current status of the library
5538* [Measure](measure.html): The current status of the measure
5539* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
5540* [MessageDefinition](messagedefinition.html): The current status of the message definition
5541* [NamingSystem](namingsystem.html): The current status of the naming system
5542* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
5543* [OperationDefinition](operationdefinition.html): The current status of the operation definition
5544* [PlanDefinition](plandefinition.html): The current status of the plan definition
5545* [Questionnaire](questionnaire.html): The current status of the questionnaire
5546* [Requirements](requirements.html): The current status of the requirements
5547* [SearchParameter](searchparameter.html): The current status of the search parameter
5548* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
5549* [StructureDefinition](structuredefinition.html): The current status of the structure definition
5550* [StructureMap](structuremap.html): The current status of the structure map
5551* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
5552* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
5553* [TestPlan](testplan.html): The current status of the test plan
5554* [TestScript](testscript.html): The current status of the test script
5555* [ValueSet](valueset.html): The current status of the value set
5556</b><br>
5557   * Type: <b>token</b><br>
5558   * 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>
5559   * </p>
5560   */
5561  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
5562
5563 /**
5564   * Search parameter: <b>title</b>
5565   * <p>
5566   * Description: <b>Multiple Resources: 
5567
5568* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
5569* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
5570* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
5571* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
5572* [Citation](citation.html): The human-friendly name of the citation
5573* [CodeSystem](codesystem.html): The human-friendly name of the code system
5574* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
5575* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
5576* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
5577* [Evidence](evidence.html): The human-friendly name of the evidence
5578* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
5579* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
5580* [Library](library.html): The human-friendly name of the library
5581* [Measure](measure.html): The human-friendly name of the measure
5582* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
5583* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
5584* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
5585* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
5586* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
5587* [Requirements](requirements.html): The human-friendly name of the requirements
5588* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
5589* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
5590* [StructureMap](structuremap.html): The human-friendly name of the structure map
5591* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
5592* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
5593* [TestScript](testscript.html): The human-friendly name of the test script
5594* [ValueSet](valueset.html): The human-friendly name of the value set
5595</b><br>
5596   * Type: <b>string</b><br>
5597   * 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>
5598   * </p>
5599   */
5600  @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" )
5601  public static final String SP_TITLE = "title";
5602 /**
5603   * <b>Fluent Client</b> search parameter constant for <b>title</b>
5604   * <p>
5605   * Description: <b>Multiple Resources: 
5606
5607* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
5608* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
5609* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
5610* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
5611* [Citation](citation.html): The human-friendly name of the citation
5612* [CodeSystem](codesystem.html): The human-friendly name of the code system
5613* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
5614* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
5615* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
5616* [Evidence](evidence.html): The human-friendly name of the evidence
5617* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
5618* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
5619* [Library](library.html): The human-friendly name of the library
5620* [Measure](measure.html): The human-friendly name of the measure
5621* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
5622* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
5623* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
5624* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
5625* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
5626* [Requirements](requirements.html): The human-friendly name of the requirements
5627* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
5628* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
5629* [StructureMap](structuremap.html): The human-friendly name of the structure map
5630* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
5631* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
5632* [TestScript](testscript.html): The human-friendly name of the test script
5633* [ValueSet](valueset.html): The human-friendly name of the value set
5634</b><br>
5635   * Type: <b>string</b><br>
5636   * 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>
5637   * </p>
5638   */
5639  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
5640
5641 /**
5642   * Search parameter: <b>url</b>
5643   * <p>
5644   * Description: <b>Multiple Resources: 
5645
5646* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
5647* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
5648* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
5649* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
5650* [Citation](citation.html): The uri that identifies the citation
5651* [CodeSystem](codesystem.html): The uri that identifies the code system
5652* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
5653* [ConceptMap](conceptmap.html): The URI that identifies the concept map
5654* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
5655* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
5656* [Evidence](evidence.html): The uri that identifies the evidence
5657* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
5658* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
5659* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
5660* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
5661* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
5662* [Library](library.html): The uri that identifies the library
5663* [Measure](measure.html): The uri that identifies the measure
5664* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
5665* [NamingSystem](namingsystem.html): The uri that identifies the naming system
5666* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
5667* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
5668* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
5669* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
5670* [Requirements](requirements.html): The uri that identifies the requirements
5671* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
5672* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
5673* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
5674* [StructureMap](structuremap.html): The uri that identifies the structure map
5675* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
5676* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
5677* [TestPlan](testplan.html): The uri that identifies the test plan
5678* [TestScript](testscript.html): The uri that identifies the test script
5679* [ValueSet](valueset.html): The uri that identifies the value set
5680</b><br>
5681   * Type: <b>uri</b><br>
5682   * 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>
5683   * </p>
5684   */
5685  @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" )
5686  public static final String SP_URL = "url";
5687 /**
5688   * <b>Fluent Client</b> search parameter constant for <b>url</b>
5689   * <p>
5690   * Description: <b>Multiple Resources: 
5691
5692* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
5693* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
5694* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
5695* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
5696* [Citation](citation.html): The uri that identifies the citation
5697* [CodeSystem](codesystem.html): The uri that identifies the code system
5698* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
5699* [ConceptMap](conceptmap.html): The URI that identifies the concept map
5700* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
5701* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
5702* [Evidence](evidence.html): The uri that identifies the evidence
5703* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
5704* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
5705* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
5706* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
5707* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
5708* [Library](library.html): The uri that identifies the library
5709* [Measure](measure.html): The uri that identifies the measure
5710* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
5711* [NamingSystem](namingsystem.html): The uri that identifies the naming system
5712* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
5713* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
5714* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
5715* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
5716* [Requirements](requirements.html): The uri that identifies the requirements
5717* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
5718* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
5719* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
5720* [StructureMap](structuremap.html): The uri that identifies the structure map
5721* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
5722* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
5723* [TestPlan](testplan.html): The uri that identifies the test plan
5724* [TestScript](testscript.html): The uri that identifies the test script
5725* [ValueSet](valueset.html): The uri that identifies the value set
5726</b><br>
5727   * Type: <b>uri</b><br>
5728   * 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>
5729   * </p>
5730   */
5731  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
5732
5733 /**
5734   * Search parameter: <b>version</b>
5735   * <p>
5736   * Description: <b>Multiple Resources: 
5737
5738* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
5739* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
5740* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
5741* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
5742* [Citation](citation.html): The business version of the citation
5743* [CodeSystem](codesystem.html): The business version of the code system
5744* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
5745* [ConceptMap](conceptmap.html): The business version of the concept map
5746* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
5747* [EventDefinition](eventdefinition.html): The business version of the event definition
5748* [Evidence](evidence.html): The business version of the evidence
5749* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
5750* [ExampleScenario](examplescenario.html): The business version of the example scenario
5751* [GraphDefinition](graphdefinition.html): The business version of the graph definition
5752* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
5753* [Library](library.html): The business version of the library
5754* [Measure](measure.html): The business version of the measure
5755* [MessageDefinition](messagedefinition.html): The business version of the message definition
5756* [NamingSystem](namingsystem.html): The business version of the naming system
5757* [OperationDefinition](operationdefinition.html): The business version of the operation definition
5758* [PlanDefinition](plandefinition.html): The business version of the plan definition
5759* [Questionnaire](questionnaire.html): The business version of the questionnaire
5760* [Requirements](requirements.html): The business version of the requirements
5761* [SearchParameter](searchparameter.html): The business version of the search parameter
5762* [StructureDefinition](structuredefinition.html): The business version of the structure definition
5763* [StructureMap](structuremap.html): The business version of the structure map
5764* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
5765* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
5766* [TestScript](testscript.html): The business version of the test script
5767* [ValueSet](valueset.html): The business version of the value set
5768</b><br>
5769   * Type: <b>token</b><br>
5770   * 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>
5771   * </p>
5772   */
5773  @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" )
5774  public static final String SP_VERSION = "version";
5775 /**
5776   * <b>Fluent Client</b> search parameter constant for <b>version</b>
5777   * <p>
5778   * Description: <b>Multiple Resources: 
5779
5780* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
5781* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
5782* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
5783* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
5784* [Citation](citation.html): The business version of the citation
5785* [CodeSystem](codesystem.html): The business version of the code system
5786* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
5787* [ConceptMap](conceptmap.html): The business version of the concept map
5788* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
5789* [EventDefinition](eventdefinition.html): The business version of the event definition
5790* [Evidence](evidence.html): The business version of the evidence
5791* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
5792* [ExampleScenario](examplescenario.html): The business version of the example scenario
5793* [GraphDefinition](graphdefinition.html): The business version of the graph definition
5794* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
5795* [Library](library.html): The business version of the library
5796* [Measure](measure.html): The business version of the measure
5797* [MessageDefinition](messagedefinition.html): The business version of the message definition
5798* [NamingSystem](namingsystem.html): The business version of the naming system
5799* [OperationDefinition](operationdefinition.html): The business version of the operation definition
5800* [PlanDefinition](plandefinition.html): The business version of the plan definition
5801* [Questionnaire](questionnaire.html): The business version of the questionnaire
5802* [Requirements](requirements.html): The business version of the requirements
5803* [SearchParameter](searchparameter.html): The business version of the search parameter
5804* [StructureDefinition](structuredefinition.html): The business version of the structure definition
5805* [StructureMap](structuremap.html): The business version of the structure map
5806* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
5807* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
5808* [TestScript](testscript.html): The business version of the test script
5809* [ValueSet](valueset.html): The business version of the value set
5810</b><br>
5811   * Type: <b>token</b><br>
5812   * 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>
5813   * </p>
5814   */
5815  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
5816
5817 /**
5818   * Search parameter: <b>base</b>
5819   * <p>
5820   * Description: <b>Marks this as a profile of the base</b><br>
5821   * Type: <b>reference</b><br>
5822   * Path: <b>OperationDefinition.base</b><br>
5823   * </p>
5824   */
5825  @SearchParamDefinition(name="base", path="OperationDefinition.base", description="Marks this as a profile of the base", type="reference", target={OperationDefinition.class } )
5826  public static final String SP_BASE = "base";
5827 /**
5828   * <b>Fluent Client</b> search parameter constant for <b>base</b>
5829   * <p>
5830   * Description: <b>Marks this as a profile of the base</b><br>
5831   * Type: <b>reference</b><br>
5832   * Path: <b>OperationDefinition.base</b><br>
5833   * </p>
5834   */
5835  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASE);
5836
5837/**
5838   * Constant for fluent queries to be used to add include statements. Specifies
5839   * the path value of "<b>OperationDefinition:base</b>".
5840   */
5841  public static final ca.uhn.fhir.model.api.Include INCLUDE_BASE = new ca.uhn.fhir.model.api.Include("OperationDefinition:base").toLocked();
5842
5843 /**
5844   * Search parameter: <b>code</b>
5845   * <p>
5846   * Description: <b>Name used to invoke the operation</b><br>
5847   * Type: <b>token</b><br>
5848   * Path: <b>OperationDefinition.code</b><br>
5849   * </p>
5850   */
5851  @SearchParamDefinition(name="code", path="OperationDefinition.code", description="Name used to invoke the operation", type="token" )
5852  public static final String SP_CODE = "code";
5853 /**
5854   * <b>Fluent Client</b> search parameter constant for <b>code</b>
5855   * <p>
5856   * Description: <b>Name used to invoke the operation</b><br>
5857   * Type: <b>token</b><br>
5858   * Path: <b>OperationDefinition.code</b><br>
5859   * </p>
5860   */
5861  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
5862
5863 /**
5864   * Search parameter: <b>input-profile</b>
5865   * <p>
5866   * Description: <b>Validation information for in parameters</b><br>
5867   * Type: <b>reference</b><br>
5868   * Path: <b>OperationDefinition.inputProfile</b><br>
5869   * </p>
5870   */
5871  @SearchParamDefinition(name="input-profile", path="OperationDefinition.inputProfile", description="Validation information for in parameters", type="reference", target={StructureDefinition.class } )
5872  public static final String SP_INPUT_PROFILE = "input-profile";
5873 /**
5874   * <b>Fluent Client</b> search parameter constant for <b>input-profile</b>
5875   * <p>
5876   * Description: <b>Validation information for in parameters</b><br>
5877   * Type: <b>reference</b><br>
5878   * Path: <b>OperationDefinition.inputProfile</b><br>
5879   * </p>
5880   */
5881  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam INPUT_PROFILE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_INPUT_PROFILE);
5882
5883/**
5884   * Constant for fluent queries to be used to add include statements. Specifies
5885   * the path value of "<b>OperationDefinition:input-profile</b>".
5886   */
5887  public static final ca.uhn.fhir.model.api.Include INCLUDE_INPUT_PROFILE = new ca.uhn.fhir.model.api.Include("OperationDefinition:input-profile").toLocked();
5888
5889 /**
5890   * Search parameter: <b>instance</b>
5891   * <p>
5892   * Description: <b>Invoke on an instance?</b><br>
5893   * Type: <b>token</b><br>
5894   * Path: <b>OperationDefinition.instance</b><br>
5895   * </p>
5896   */
5897  @SearchParamDefinition(name="instance", path="OperationDefinition.instance", description="Invoke on an instance?", type="token" )
5898  public static final String SP_INSTANCE = "instance";
5899 /**
5900   * <b>Fluent Client</b> search parameter constant for <b>instance</b>
5901   * <p>
5902   * Description: <b>Invoke on an instance?</b><br>
5903   * Type: <b>token</b><br>
5904   * Path: <b>OperationDefinition.instance</b><br>
5905   * </p>
5906   */
5907  public static final ca.uhn.fhir.rest.gclient.TokenClientParam INSTANCE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_INSTANCE);
5908
5909 /**
5910   * Search parameter: <b>kind</b>
5911   * <p>
5912   * Description: <b>operation | query</b><br>
5913   * Type: <b>token</b><br>
5914   * Path: <b>OperationDefinition.kind</b><br>
5915   * </p>
5916   */
5917  @SearchParamDefinition(name="kind", path="OperationDefinition.kind", description="operation | query", type="token" )
5918  public static final String SP_KIND = "kind";
5919 /**
5920   * <b>Fluent Client</b> search parameter constant for <b>kind</b>
5921   * <p>
5922   * Description: <b>operation | query</b><br>
5923   * Type: <b>token</b><br>
5924   * Path: <b>OperationDefinition.kind</b><br>
5925   * </p>
5926   */
5927  public static final ca.uhn.fhir.rest.gclient.TokenClientParam KIND = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KIND);
5928
5929 /**
5930   * Search parameter: <b>output-profile</b>
5931   * <p>
5932   * Description: <b>Validation information for out parameters</b><br>
5933   * Type: <b>reference</b><br>
5934   * Path: <b>OperationDefinition.outputProfile</b><br>
5935   * </p>
5936   */
5937  @SearchParamDefinition(name="output-profile", path="OperationDefinition.outputProfile", description="Validation information for out parameters", type="reference", target={StructureDefinition.class } )
5938  public static final String SP_OUTPUT_PROFILE = "output-profile";
5939 /**
5940   * <b>Fluent Client</b> search parameter constant for <b>output-profile</b>
5941   * <p>
5942   * Description: <b>Validation information for out parameters</b><br>
5943   * Type: <b>reference</b><br>
5944   * Path: <b>OperationDefinition.outputProfile</b><br>
5945   * </p>
5946   */
5947  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam OUTPUT_PROFILE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_OUTPUT_PROFILE);
5948
5949/**
5950   * Constant for fluent queries to be used to add include statements. Specifies
5951   * the path value of "<b>OperationDefinition:output-profile</b>".
5952   */
5953  public static final ca.uhn.fhir.model.api.Include INCLUDE_OUTPUT_PROFILE = new ca.uhn.fhir.model.api.Include("OperationDefinition:output-profile").toLocked();
5954
5955 /**
5956   * Search parameter: <b>system</b>
5957   * <p>
5958   * Description: <b>Invoke at the system level?</b><br>
5959   * Type: <b>token</b><br>
5960   * Path: <b>OperationDefinition.system</b><br>
5961   * </p>
5962   */
5963  @SearchParamDefinition(name="system", path="OperationDefinition.system", description="Invoke at the system level?", type="token" )
5964  public static final String SP_SYSTEM = "system";
5965 /**
5966   * <b>Fluent Client</b> search parameter constant for <b>system</b>
5967   * <p>
5968   * Description: <b>Invoke at the system level?</b><br>
5969   * Type: <b>token</b><br>
5970   * Path: <b>OperationDefinition.system</b><br>
5971   * </p>
5972   */
5973  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SYSTEM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SYSTEM);
5974
5975 /**
5976   * Search parameter: <b>type</b>
5977   * <p>
5978   * Description: <b>Invoke at the type level?</b><br>
5979   * Type: <b>token</b><br>
5980   * Path: <b>OperationDefinition.type</b><br>
5981   * </p>
5982   */
5983  @SearchParamDefinition(name="type", path="OperationDefinition.type", description="Invoke at the type level?", type="token" )
5984  public static final String SP_TYPE = "type";
5985 /**
5986   * <b>Fluent Client</b> search parameter constant for <b>type</b>
5987   * <p>
5988   * Description: <b>Invoke at the type level?</b><br>
5989   * Type: <b>token</b><br>
5990   * Path: <b>OperationDefinition.type</b><br>
5991   * </p>
5992   */
5993  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
5994
5995// Manual code (from Configuration.txt):
5996  public boolean supportsCopyright() {
5997    return true;
5998  }
5999
6000// end addition
6001
6002}
6003