001package org.hl7.fhir.r4b.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 Wed, Dec 29, 2021 07:58+1100 for FHIR v4.3.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r4b.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 compartment definition that defines how resources are accessed on a server.
052 */
053@ResourceDef(name="CompartmentDefinition", profile="http://hl7.org/fhir/StructureDefinition/CompartmentDefinition")
054public class CompartmentDefinition extends CanonicalResource {
055
056    @Block()
057    public static class CompartmentDefinitionResourceComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * The name of a resource supported by the server.
060         */
061        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
062        @Description(shortDefinition="Name of resource type", formalDefinition="The name of a resource supported by the server." )
063        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
064        protected CodeType code;
065
066        /**
067         * The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.
068         */
069        @Child(name = "param", type = {StringType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
070        @Description(shortDefinition="Search Parameter Name, or chained parameters", formalDefinition="The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,." )
071        protected List<StringType> param;
072
073        /**
074         * Additional documentation about the resource and compartment.
075         */
076        @Child(name = "documentation", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
077        @Description(shortDefinition="Additional documentation about the resource and compartment", formalDefinition="Additional documentation about the resource and compartment." )
078        protected StringType documentation;
079
080        private static final long serialVersionUID = 988080897L;
081
082    /**
083     * Constructor
084     */
085      public CompartmentDefinitionResourceComponent() {
086        super();
087      }
088
089    /**
090     * Constructor
091     */
092      public CompartmentDefinitionResourceComponent(String code) {
093        super();
094        this.setCode(code);
095      }
096
097        /**
098         * @return {@link #code} (The name of a resource supported by the server.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
099         */
100        public CodeType getCodeElement() { 
101          if (this.code == null)
102            if (Configuration.errorOnAutoCreate())
103              throw new Error("Attempt to auto-create CompartmentDefinitionResourceComponent.code");
104            else if (Configuration.doAutoCreate())
105              this.code = new CodeType(); // bb
106          return this.code;
107        }
108
109        public boolean hasCodeElement() { 
110          return this.code != null && !this.code.isEmpty();
111        }
112
113        public boolean hasCode() { 
114          return this.code != null && !this.code.isEmpty();
115        }
116
117        /**
118         * @param value {@link #code} (The name of a resource supported by the server.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
119         */
120        public CompartmentDefinitionResourceComponent setCodeElement(CodeType value) { 
121          this.code = value;
122          return this;
123        }
124
125        /**
126         * @return The name of a resource supported by the server.
127         */
128        public String getCode() { 
129          return this.code == null ? null : this.code.getValue();
130        }
131
132        /**
133         * @param value The name of a resource supported by the server.
134         */
135        public CompartmentDefinitionResourceComponent setCode(String value) { 
136            if (this.code == null)
137              this.code = new CodeType();
138            this.code.setValue(value);
139          return this;
140        }
141
142        /**
143         * @return {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
144         */
145        public List<StringType> getParam() { 
146          if (this.param == null)
147            this.param = new ArrayList<StringType>();
148          return this.param;
149        }
150
151        /**
152         * @return Returns a reference to <code>this</code> for easy method chaining
153         */
154        public CompartmentDefinitionResourceComponent setParam(List<StringType> theParam) { 
155          this.param = theParam;
156          return this;
157        }
158
159        public boolean hasParam() { 
160          if (this.param == null)
161            return false;
162          for (StringType item : this.param)
163            if (!item.isEmpty())
164              return true;
165          return false;
166        }
167
168        /**
169         * @return {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
170         */
171        public StringType addParamElement() {//2 
172          StringType t = new StringType();
173          if (this.param == null)
174            this.param = new ArrayList<StringType>();
175          this.param.add(t);
176          return t;
177        }
178
179        /**
180         * @param value {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
181         */
182        public CompartmentDefinitionResourceComponent addParam(String value) { //1
183          StringType t = new StringType();
184          t.setValue(value);
185          if (this.param == null)
186            this.param = new ArrayList<StringType>();
187          this.param.add(t);
188          return this;
189        }
190
191        /**
192         * @param value {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
193         */
194        public boolean hasParam(String value) { 
195          if (this.param == null)
196            return false;
197          for (StringType v : this.param)
198            if (v.getValue().equals(value)) // string
199              return true;
200          return false;
201        }
202
203        /**
204         * @return {@link #documentation} (Additional documentation about the resource and compartment.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
205         */
206        public StringType getDocumentationElement() { 
207          if (this.documentation == null)
208            if (Configuration.errorOnAutoCreate())
209              throw new Error("Attempt to auto-create CompartmentDefinitionResourceComponent.documentation");
210            else if (Configuration.doAutoCreate())
211              this.documentation = new StringType(); // bb
212          return this.documentation;
213        }
214
215        public boolean hasDocumentationElement() { 
216          return this.documentation != null && !this.documentation.isEmpty();
217        }
218
219        public boolean hasDocumentation() { 
220          return this.documentation != null && !this.documentation.isEmpty();
221        }
222
223        /**
224         * @param value {@link #documentation} (Additional documentation about the resource and compartment.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
225         */
226        public CompartmentDefinitionResourceComponent setDocumentationElement(StringType value) { 
227          this.documentation = value;
228          return this;
229        }
230
231        /**
232         * @return Additional documentation about the resource and compartment.
233         */
234        public String getDocumentation() { 
235          return this.documentation == null ? null : this.documentation.getValue();
236        }
237
238        /**
239         * @param value Additional documentation about the resource and compartment.
240         */
241        public CompartmentDefinitionResourceComponent setDocumentation(String value) { 
242          if (Utilities.noString(value))
243            this.documentation = null;
244          else {
245            if (this.documentation == null)
246              this.documentation = new StringType();
247            this.documentation.setValue(value);
248          }
249          return this;
250        }
251
252        protected void listChildren(List<Property> children) {
253          super.listChildren(children);
254          children.add(new Property("code", "code", "The name of a resource supported by the server.", 0, 1, code));
255          children.add(new Property("param", "string", "The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.", 0, java.lang.Integer.MAX_VALUE, param));
256          children.add(new Property("documentation", "string", "Additional documentation about the resource and compartment.", 0, 1, documentation));
257        }
258
259        @Override
260        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
261          switch (_hash) {
262          case 3059181: /*code*/  return new Property("code", "code", "The name of a resource supported by the server.", 0, 1, code);
263          case 106436749: /*param*/  return new Property("param", "string", "The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.", 0, java.lang.Integer.MAX_VALUE, param);
264          case 1587405498: /*documentation*/  return new Property("documentation", "string", "Additional documentation about the resource and compartment.", 0, 1, documentation);
265          default: return super.getNamedProperty(_hash, _name, _checkValid);
266          }
267
268        }
269
270      @Override
271      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
272        switch (hash) {
273        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
274        case 106436749: /*param*/ return this.param == null ? new Base[0] : this.param.toArray(new Base[this.param.size()]); // StringType
275        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType
276        default: return super.getProperty(hash, name, checkValid);
277        }
278
279      }
280
281      @Override
282      public Base setProperty(int hash, String name, Base value) throws FHIRException {
283        switch (hash) {
284        case 3059181: // code
285          this.code = TypeConvertor.castToCode(value); // CodeType
286          return value;
287        case 106436749: // param
288          this.getParam().add(TypeConvertor.castToString(value)); // StringType
289          return value;
290        case 1587405498: // documentation
291          this.documentation = TypeConvertor.castToString(value); // StringType
292          return value;
293        default: return super.setProperty(hash, name, value);
294        }
295
296      }
297
298      @Override
299      public Base setProperty(String name, Base value) throws FHIRException {
300        if (name.equals("code")) {
301          this.code = TypeConvertor.castToCode(value); // CodeType
302        } else if (name.equals("param")) {
303          this.getParam().add(TypeConvertor.castToString(value));
304        } else if (name.equals("documentation")) {
305          this.documentation = TypeConvertor.castToString(value); // StringType
306        } else
307          return super.setProperty(name, value);
308        return value;
309      }
310
311      @Override
312      public Base makeProperty(int hash, String name) throws FHIRException {
313        switch (hash) {
314        case 3059181:  return getCodeElement();
315        case 106436749:  return addParamElement();
316        case 1587405498:  return getDocumentationElement();
317        default: return super.makeProperty(hash, name);
318        }
319
320      }
321
322      @Override
323      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
324        switch (hash) {
325        case 3059181: /*code*/ return new String[] {"code"};
326        case 106436749: /*param*/ return new String[] {"string"};
327        case 1587405498: /*documentation*/ return new String[] {"string"};
328        default: return super.getTypesForProperty(hash, name);
329        }
330
331      }
332
333      @Override
334      public Base addChild(String name) throws FHIRException {
335        if (name.equals("code")) {
336          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.resource.code");
337        }
338        else if (name.equals("param")) {
339          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.resource.param");
340        }
341        else if (name.equals("documentation")) {
342          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.resource.documentation");
343        }
344        else
345          return super.addChild(name);
346      }
347
348      public CompartmentDefinitionResourceComponent copy() {
349        CompartmentDefinitionResourceComponent dst = new CompartmentDefinitionResourceComponent();
350        copyValues(dst);
351        return dst;
352      }
353
354      public void copyValues(CompartmentDefinitionResourceComponent dst) {
355        super.copyValues(dst);
356        dst.code = code == null ? null : code.copy();
357        if (param != null) {
358          dst.param = new ArrayList<StringType>();
359          for (StringType i : param)
360            dst.param.add(i.copy());
361        };
362        dst.documentation = documentation == null ? null : documentation.copy();
363      }
364
365      @Override
366      public boolean equalsDeep(Base other_) {
367        if (!super.equalsDeep(other_))
368          return false;
369        if (!(other_ instanceof CompartmentDefinitionResourceComponent))
370          return false;
371        CompartmentDefinitionResourceComponent o = (CompartmentDefinitionResourceComponent) other_;
372        return compareDeep(code, o.code, true) && compareDeep(param, o.param, true) && compareDeep(documentation, o.documentation, true)
373          ;
374      }
375
376      @Override
377      public boolean equalsShallow(Base other_) {
378        if (!super.equalsShallow(other_))
379          return false;
380        if (!(other_ instanceof CompartmentDefinitionResourceComponent))
381          return false;
382        CompartmentDefinitionResourceComponent o = (CompartmentDefinitionResourceComponent) other_;
383        return compareValues(code, o.code, true) && compareValues(param, o.param, true) && compareValues(documentation, o.documentation, true)
384          ;
385      }
386
387      public boolean isEmpty() {
388        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, param, documentation
389          );
390      }
391
392  public String fhirType() {
393    return "CompartmentDefinition.resource";
394
395  }
396
397  }
398
399    /**
400     * An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.
401     */
402    @Child(name = "url", type = {UriType.class}, order=0, min=1, max=1, modifier=false, summary=true)
403    @Description(shortDefinition="Canonical identifier for this compartment definition, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers." )
404    protected UriType url;
405
406    /**
407     * The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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.
408     */
409    @Child(name = "version", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true)
410    @Description(shortDefinition="Business version of the compartment definition", formalDefinition="The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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." )
411    protected StringType version;
412
413    /**
414     * A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
415     */
416    @Child(name = "name", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=true)
417    @Description(shortDefinition="Name for this compartment definition (computer friendly)", formalDefinition="A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
418    protected StringType name;
419
420    /**
421     * The status of this compartment definition. Enables tracking the life-cycle of the content.
422     */
423    @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true)
424    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this compartment definition. Enables tracking the life-cycle of the content." )
425    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
426    protected Enumeration<PublicationStatus> status;
427
428    /**
429     * A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
430     */
431    @Child(name = "experimental", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=true)
432    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
433    protected BooleanType experimental;
434
435    /**
436     * The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.
437     */
438    @Child(name = "date", type = {DateTimeType.class}, order=5, min=0, max=1, modifier=false, summary=true)
439    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes." )
440    protected DateTimeType date;
441
442    /**
443     * The name of the organization or individual that published the compartment definition.
444     */
445    @Child(name = "publisher", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true)
446    @Description(shortDefinition="Name of the publisher (organization or individual)", formalDefinition="The name of the organization or individual that published the compartment definition." )
447    protected StringType publisher;
448
449    /**
450     * Contact details to assist a user in finding and communicating with the publisher.
451     */
452    @Child(name = "contact", type = {ContactDetail.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
453    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
454    protected List<ContactDetail> contact;
455
456    /**
457     * A free text natural language description of the compartment definition from a consumer's perspective.
458     */
459    @Child(name = "description", type = {MarkdownType.class}, order=8, min=0, max=1, modifier=false, summary=false)
460    @Description(shortDefinition="Natural language description of the compartment definition", formalDefinition="A free text natural language description of the compartment definition from a consumer's perspective." )
461    protected MarkdownType description;
462
463    /**
464     * 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 compartment definition instances.
465     */
466    @Child(name = "useContext", type = {UsageContext.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
467    @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 compartment definition instances." )
468    protected List<UsageContext> useContext;
469
470    /**
471     * Explanation of why this compartment definition is needed and why it has been designed as it has.
472     */
473    @Child(name = "purpose", type = {MarkdownType.class}, order=10, min=0, max=1, modifier=false, summary=false)
474    @Description(shortDefinition="Why this compartment definition is defined", formalDefinition="Explanation of why this compartment definition is needed and why it has been designed as it has." )
475    protected MarkdownType purpose;
476
477    /**
478     * Which compartment this definition describes.
479     */
480    @Child(name = "code", type = {CodeType.class}, order=11, min=1, max=1, modifier=false, summary=true)
481    @Description(shortDefinition="Patient | Encounter | RelatedPerson | Practitioner | Device", formalDefinition="Which compartment this definition describes." )
482    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/compartment-type")
483    protected Enumeration<CompartmentType> code;
484
485    /**
486     * Whether the search syntax is supported,.
487     */
488    @Child(name = "search", type = {BooleanType.class}, order=12, min=1, max=1, modifier=false, summary=true)
489    @Description(shortDefinition="Whether the search syntax is supported", formalDefinition="Whether the search syntax is supported,." )
490    protected BooleanType search;
491
492    /**
493     * Information about how a resource is related to the compartment.
494     */
495    @Child(name = "resource", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
496    @Description(shortDefinition="How a resource is related to the compartment", formalDefinition="Information about how a resource is related to the compartment." )
497    protected List<CompartmentDefinitionResourceComponent> resource;
498
499    private static final long serialVersionUID = 1358693010L;
500
501  /**
502   * Constructor
503   */
504    public CompartmentDefinition() {
505      super();
506    }
507
508  /**
509   * Constructor
510   */
511    public CompartmentDefinition(String url, String name, PublicationStatus status, CompartmentType code, boolean search) {
512      super();
513      this.setUrl(url);
514      this.setName(name);
515      this.setStatus(status);
516      this.setCode(code);
517      this.setSearch(search);
518    }
519
520    /**
521     * @return {@link #url} (An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment 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
522     */
523    public UriType getUrlElement() { 
524      if (this.url == null)
525        if (Configuration.errorOnAutoCreate())
526          throw new Error("Attempt to auto-create CompartmentDefinition.url");
527        else if (Configuration.doAutoCreate())
528          this.url = new UriType(); // bb
529      return this.url;
530    }
531
532    public boolean hasUrlElement() { 
533      return this.url != null && !this.url.isEmpty();
534    }
535
536    public boolean hasUrl() { 
537      return this.url != null && !this.url.isEmpty();
538    }
539
540    /**
541     * @param value {@link #url} (An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment 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
542     */
543    public CompartmentDefinition setUrlElement(UriType value) { 
544      this.url = value;
545      return this;
546    }
547
548    /**
549     * @return An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.
550     */
551    public String getUrl() { 
552      return this.url == null ? null : this.url.getValue();
553    }
554
555    /**
556     * @param value An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.
557     */
558    public CompartmentDefinition setUrl(String value) { 
559        if (this.url == null)
560          this.url = new UriType();
561        this.url.setValue(value);
562      return this;
563    }
564
565    /**
566     * @return {@link #version} (The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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
567     */
568    public StringType getVersionElement() { 
569      if (this.version == null)
570        if (Configuration.errorOnAutoCreate())
571          throw new Error("Attempt to auto-create CompartmentDefinition.version");
572        else if (Configuration.doAutoCreate())
573          this.version = new StringType(); // bb
574      return this.version;
575    }
576
577    public boolean hasVersionElement() { 
578      return this.version != null && !this.version.isEmpty();
579    }
580
581    public boolean hasVersion() { 
582      return this.version != null && !this.version.isEmpty();
583    }
584
585    /**
586     * @param value {@link #version} (The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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
587     */
588    public CompartmentDefinition setVersionElement(StringType value) { 
589      this.version = value;
590      return this;
591    }
592
593    /**
594     * @return The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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.
595     */
596    public String getVersion() { 
597      return this.version == null ? null : this.version.getValue();
598    }
599
600    /**
601     * @param value The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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.
602     */
603    public CompartmentDefinition setVersion(String value) { 
604      if (Utilities.noString(value))
605        this.version = null;
606      else {
607        if (this.version == null)
608          this.version = new StringType();
609        this.version.setValue(value);
610      }
611      return this;
612    }
613
614    /**
615     * @return {@link #name} (A natural language name identifying the compartment 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
616     */
617    public StringType getNameElement() { 
618      if (this.name == null)
619        if (Configuration.errorOnAutoCreate())
620          throw new Error("Attempt to auto-create CompartmentDefinition.name");
621        else if (Configuration.doAutoCreate())
622          this.name = new StringType(); // bb
623      return this.name;
624    }
625
626    public boolean hasNameElement() { 
627      return this.name != null && !this.name.isEmpty();
628    }
629
630    public boolean hasName() { 
631      return this.name != null && !this.name.isEmpty();
632    }
633
634    /**
635     * @param value {@link #name} (A natural language name identifying the compartment 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
636     */
637    public CompartmentDefinition setNameElement(StringType value) { 
638      this.name = value;
639      return this;
640    }
641
642    /**
643     * @return A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
644     */
645    public String getName() { 
646      return this.name == null ? null : this.name.getValue();
647    }
648
649    /**
650     * @param value A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
651     */
652    public CompartmentDefinition setName(String value) { 
653        if (this.name == null)
654          this.name = new StringType();
655        this.name.setValue(value);
656      return this;
657    }
658
659    /**
660     * @return {@link #status} (The status of this compartment definition. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
661     */
662    public Enumeration<PublicationStatus> getStatusElement() { 
663      if (this.status == null)
664        if (Configuration.errorOnAutoCreate())
665          throw new Error("Attempt to auto-create CompartmentDefinition.status");
666        else if (Configuration.doAutoCreate())
667          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
668      return this.status;
669    }
670
671    public boolean hasStatusElement() { 
672      return this.status != null && !this.status.isEmpty();
673    }
674
675    public boolean hasStatus() { 
676      return this.status != null && !this.status.isEmpty();
677    }
678
679    /**
680     * @param value {@link #status} (The status of this compartment definition. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
681     */
682    public CompartmentDefinition setStatusElement(Enumeration<PublicationStatus> value) { 
683      this.status = value;
684      return this;
685    }
686
687    /**
688     * @return The status of this compartment definition. Enables tracking the life-cycle of the content.
689     */
690    public PublicationStatus getStatus() { 
691      return this.status == null ? null : this.status.getValue();
692    }
693
694    /**
695     * @param value The status of this compartment definition. Enables tracking the life-cycle of the content.
696     */
697    public CompartmentDefinition setStatus(PublicationStatus value) { 
698        if (this.status == null)
699          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
700        this.status.setValue(value);
701      return this;
702    }
703
704    /**
705     * @return {@link #experimental} (A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
706     */
707    public BooleanType getExperimentalElement() { 
708      if (this.experimental == null)
709        if (Configuration.errorOnAutoCreate())
710          throw new Error("Attempt to auto-create CompartmentDefinition.experimental");
711        else if (Configuration.doAutoCreate())
712          this.experimental = new BooleanType(); // bb
713      return this.experimental;
714    }
715
716    public boolean hasExperimentalElement() { 
717      return this.experimental != null && !this.experimental.isEmpty();
718    }
719
720    public boolean hasExperimental() { 
721      return this.experimental != null && !this.experimental.isEmpty();
722    }
723
724    /**
725     * @param value {@link #experimental} (A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
726     */
727    public CompartmentDefinition setExperimentalElement(BooleanType value) { 
728      this.experimental = value;
729      return this;
730    }
731
732    /**
733     * @return A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
734     */
735    public boolean getExperimental() { 
736      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
737    }
738
739    /**
740     * @param value A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
741     */
742    public CompartmentDefinition setExperimental(boolean value) { 
743        if (this.experimental == null)
744          this.experimental = new BooleanType();
745        this.experimental.setValue(value);
746      return this;
747    }
748
749    /**
750     * @return {@link #date} (The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
751     */
752    public DateTimeType getDateElement() { 
753      if (this.date == null)
754        if (Configuration.errorOnAutoCreate())
755          throw new Error("Attempt to auto-create CompartmentDefinition.date");
756        else if (Configuration.doAutoCreate())
757          this.date = new DateTimeType(); // bb
758      return this.date;
759    }
760
761    public boolean hasDateElement() { 
762      return this.date != null && !this.date.isEmpty();
763    }
764
765    public boolean hasDate() { 
766      return this.date != null && !this.date.isEmpty();
767    }
768
769    /**
770     * @param value {@link #date} (The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
771     */
772    public CompartmentDefinition setDateElement(DateTimeType value) { 
773      this.date = value;
774      return this;
775    }
776
777    /**
778     * @return The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.
779     */
780    public Date getDate() { 
781      return this.date == null ? null : this.date.getValue();
782    }
783
784    /**
785     * @param value The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.
786     */
787    public CompartmentDefinition setDate(Date value) { 
788      if (value == null)
789        this.date = null;
790      else {
791        if (this.date == null)
792          this.date = new DateTimeType();
793        this.date.setValue(value);
794      }
795      return this;
796    }
797
798    /**
799     * @return {@link #publisher} (The name of the organization or individual that published the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
800     */
801    public StringType getPublisherElement() { 
802      if (this.publisher == null)
803        if (Configuration.errorOnAutoCreate())
804          throw new Error("Attempt to auto-create CompartmentDefinition.publisher");
805        else if (Configuration.doAutoCreate())
806          this.publisher = new StringType(); // bb
807      return this.publisher;
808    }
809
810    public boolean hasPublisherElement() { 
811      return this.publisher != null && !this.publisher.isEmpty();
812    }
813
814    public boolean hasPublisher() { 
815      return this.publisher != null && !this.publisher.isEmpty();
816    }
817
818    /**
819     * @param value {@link #publisher} (The name of the organization or individual that published the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
820     */
821    public CompartmentDefinition setPublisherElement(StringType value) { 
822      this.publisher = value;
823      return this;
824    }
825
826    /**
827     * @return The name of the organization or individual that published the compartment definition.
828     */
829    public String getPublisher() { 
830      return this.publisher == null ? null : this.publisher.getValue();
831    }
832
833    /**
834     * @param value The name of the organization or individual that published the compartment definition.
835     */
836    public CompartmentDefinition setPublisher(String value) { 
837      if (Utilities.noString(value))
838        this.publisher = null;
839      else {
840        if (this.publisher == null)
841          this.publisher = new StringType();
842        this.publisher.setValue(value);
843      }
844      return this;
845    }
846
847    /**
848     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
849     */
850    public List<ContactDetail> getContact() { 
851      if (this.contact == null)
852        this.contact = new ArrayList<ContactDetail>();
853      return this.contact;
854    }
855
856    /**
857     * @return Returns a reference to <code>this</code> for easy method chaining
858     */
859    public CompartmentDefinition setContact(List<ContactDetail> theContact) { 
860      this.contact = theContact;
861      return this;
862    }
863
864    public boolean hasContact() { 
865      if (this.contact == null)
866        return false;
867      for (ContactDetail item : this.contact)
868        if (!item.isEmpty())
869          return true;
870      return false;
871    }
872
873    public ContactDetail addContact() { //3
874      ContactDetail t = new ContactDetail();
875      if (this.contact == null)
876        this.contact = new ArrayList<ContactDetail>();
877      this.contact.add(t);
878      return t;
879    }
880
881    public CompartmentDefinition addContact(ContactDetail t) { //3
882      if (t == null)
883        return this;
884      if (this.contact == null)
885        this.contact = new ArrayList<ContactDetail>();
886      this.contact.add(t);
887      return this;
888    }
889
890    /**
891     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
892     */
893    public ContactDetail getContactFirstRep() { 
894      if (getContact().isEmpty()) {
895        addContact();
896      }
897      return getContact().get(0);
898    }
899
900    /**
901     * @return {@link #description} (A free text natural language description of the compartment 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
902     */
903    public MarkdownType getDescriptionElement() { 
904      if (this.description == null)
905        if (Configuration.errorOnAutoCreate())
906          throw new Error("Attempt to auto-create CompartmentDefinition.description");
907        else if (Configuration.doAutoCreate())
908          this.description = new MarkdownType(); // bb
909      return this.description;
910    }
911
912    public boolean hasDescriptionElement() { 
913      return this.description != null && !this.description.isEmpty();
914    }
915
916    public boolean hasDescription() { 
917      return this.description != null && !this.description.isEmpty();
918    }
919
920    /**
921     * @param value {@link #description} (A free text natural language description of the compartment 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
922     */
923    public CompartmentDefinition setDescriptionElement(MarkdownType value) { 
924      this.description = value;
925      return this;
926    }
927
928    /**
929     * @return A free text natural language description of the compartment definition from a consumer's perspective.
930     */
931    public String getDescription() { 
932      return this.description == null ? null : this.description.getValue();
933    }
934
935    /**
936     * @param value A free text natural language description of the compartment definition from a consumer's perspective.
937     */
938    public CompartmentDefinition setDescription(String value) { 
939      if (value == null)
940        this.description = null;
941      else {
942        if (this.description == null)
943          this.description = new MarkdownType();
944        this.description.setValue(value);
945      }
946      return this;
947    }
948
949    /**
950     * @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 compartment definition instances.)
951     */
952    public List<UsageContext> getUseContext() { 
953      if (this.useContext == null)
954        this.useContext = new ArrayList<UsageContext>();
955      return this.useContext;
956    }
957
958    /**
959     * @return Returns a reference to <code>this</code> for easy method chaining
960     */
961    public CompartmentDefinition setUseContext(List<UsageContext> theUseContext) { 
962      this.useContext = theUseContext;
963      return this;
964    }
965
966    public boolean hasUseContext() { 
967      if (this.useContext == null)
968        return false;
969      for (UsageContext item : this.useContext)
970        if (!item.isEmpty())
971          return true;
972      return false;
973    }
974
975    public UsageContext addUseContext() { //3
976      UsageContext t = new UsageContext();
977      if (this.useContext == null)
978        this.useContext = new ArrayList<UsageContext>();
979      this.useContext.add(t);
980      return t;
981    }
982
983    public CompartmentDefinition addUseContext(UsageContext t) { //3
984      if (t == null)
985        return this;
986      if (this.useContext == null)
987        this.useContext = new ArrayList<UsageContext>();
988      this.useContext.add(t);
989      return this;
990    }
991
992    /**
993     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
994     */
995    public UsageContext getUseContextFirstRep() { 
996      if (getUseContext().isEmpty()) {
997        addUseContext();
998      }
999      return getUseContext().get(0);
1000    }
1001
1002    /**
1003     * @return {@link #purpose} (Explanation of why this compartment 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
1004     */
1005    public MarkdownType getPurposeElement() { 
1006      if (this.purpose == null)
1007        if (Configuration.errorOnAutoCreate())
1008          throw new Error("Attempt to auto-create CompartmentDefinition.purpose");
1009        else if (Configuration.doAutoCreate())
1010          this.purpose = new MarkdownType(); // bb
1011      return this.purpose;
1012    }
1013
1014    public boolean hasPurposeElement() { 
1015      return this.purpose != null && !this.purpose.isEmpty();
1016    }
1017
1018    public boolean hasPurpose() { 
1019      return this.purpose != null && !this.purpose.isEmpty();
1020    }
1021
1022    /**
1023     * @param value {@link #purpose} (Explanation of why this compartment 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
1024     */
1025    public CompartmentDefinition setPurposeElement(MarkdownType value) { 
1026      this.purpose = value;
1027      return this;
1028    }
1029
1030    /**
1031     * @return Explanation of why this compartment definition is needed and why it has been designed as it has.
1032     */
1033    public String getPurpose() { 
1034      return this.purpose == null ? null : this.purpose.getValue();
1035    }
1036
1037    /**
1038     * @param value Explanation of why this compartment definition is needed and why it has been designed as it has.
1039     */
1040    public CompartmentDefinition setPurpose(String value) { 
1041      if (value == null)
1042        this.purpose = null;
1043      else {
1044        if (this.purpose == null)
1045          this.purpose = new MarkdownType();
1046        this.purpose.setValue(value);
1047      }
1048      return this;
1049    }
1050
1051    /**
1052     * @return {@link #code} (Which compartment this definition describes.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1053     */
1054    public Enumeration<CompartmentType> getCodeElement() { 
1055      if (this.code == null)
1056        if (Configuration.errorOnAutoCreate())
1057          throw new Error("Attempt to auto-create CompartmentDefinition.code");
1058        else if (Configuration.doAutoCreate())
1059          this.code = new Enumeration<CompartmentType>(new CompartmentTypeEnumFactory()); // bb
1060      return this.code;
1061    }
1062
1063    public boolean hasCodeElement() { 
1064      return this.code != null && !this.code.isEmpty();
1065    }
1066
1067    public boolean hasCode() { 
1068      return this.code != null && !this.code.isEmpty();
1069    }
1070
1071    /**
1072     * @param value {@link #code} (Which compartment this definition describes.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1073     */
1074    public CompartmentDefinition setCodeElement(Enumeration<CompartmentType> value) { 
1075      this.code = value;
1076      return this;
1077    }
1078
1079    /**
1080     * @return Which compartment this definition describes.
1081     */
1082    public CompartmentType getCode() { 
1083      return this.code == null ? null : this.code.getValue();
1084    }
1085
1086    /**
1087     * @param value Which compartment this definition describes.
1088     */
1089    public CompartmentDefinition setCode(CompartmentType value) { 
1090        if (this.code == null)
1091          this.code = new Enumeration<CompartmentType>(new CompartmentTypeEnumFactory());
1092        this.code.setValue(value);
1093      return this;
1094    }
1095
1096    /**
1097     * @return {@link #search} (Whether the search syntax is supported,.). This is the underlying object with id, value and extensions. The accessor "getSearch" gives direct access to the value
1098     */
1099    public BooleanType getSearchElement() { 
1100      if (this.search == null)
1101        if (Configuration.errorOnAutoCreate())
1102          throw new Error("Attempt to auto-create CompartmentDefinition.search");
1103        else if (Configuration.doAutoCreate())
1104          this.search = new BooleanType(); // bb
1105      return this.search;
1106    }
1107
1108    public boolean hasSearchElement() { 
1109      return this.search != null && !this.search.isEmpty();
1110    }
1111
1112    public boolean hasSearch() { 
1113      return this.search != null && !this.search.isEmpty();
1114    }
1115
1116    /**
1117     * @param value {@link #search} (Whether the search syntax is supported,.). This is the underlying object with id, value and extensions. The accessor "getSearch" gives direct access to the value
1118     */
1119    public CompartmentDefinition setSearchElement(BooleanType value) { 
1120      this.search = value;
1121      return this;
1122    }
1123
1124    /**
1125     * @return Whether the search syntax is supported,.
1126     */
1127    public boolean getSearch() { 
1128      return this.search == null || this.search.isEmpty() ? false : this.search.getValue();
1129    }
1130
1131    /**
1132     * @param value Whether the search syntax is supported,.
1133     */
1134    public CompartmentDefinition setSearch(boolean value) { 
1135        if (this.search == null)
1136          this.search = new BooleanType();
1137        this.search.setValue(value);
1138      return this;
1139    }
1140
1141    /**
1142     * @return {@link #resource} (Information about how a resource is related to the compartment.)
1143     */
1144    public List<CompartmentDefinitionResourceComponent> getResource() { 
1145      if (this.resource == null)
1146        this.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1147      return this.resource;
1148    }
1149
1150    /**
1151     * @return Returns a reference to <code>this</code> for easy method chaining
1152     */
1153    public CompartmentDefinition setResource(List<CompartmentDefinitionResourceComponent> theResource) { 
1154      this.resource = theResource;
1155      return this;
1156    }
1157
1158    public boolean hasResource() { 
1159      if (this.resource == null)
1160        return false;
1161      for (CompartmentDefinitionResourceComponent item : this.resource)
1162        if (!item.isEmpty())
1163          return true;
1164      return false;
1165    }
1166
1167    public CompartmentDefinitionResourceComponent addResource() { //3
1168      CompartmentDefinitionResourceComponent t = new CompartmentDefinitionResourceComponent();
1169      if (this.resource == null)
1170        this.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1171      this.resource.add(t);
1172      return t;
1173    }
1174
1175    public CompartmentDefinition addResource(CompartmentDefinitionResourceComponent t) { //3
1176      if (t == null)
1177        return this;
1178      if (this.resource == null)
1179        this.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1180      this.resource.add(t);
1181      return this;
1182    }
1183
1184    /**
1185     * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist {3}
1186     */
1187    public CompartmentDefinitionResourceComponent getResourceFirstRep() { 
1188      if (getResource().isEmpty()) {
1189        addResource();
1190      }
1191      return getResource().get(0);
1192    }
1193
1194      protected void listChildren(List<Property> children) {
1195        super.listChildren(children);
1196        children.add(new Property("url", "uri", "An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.", 0, 1, url));
1197        children.add(new Property("version", "string", "The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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));
1198        children.add(new Property("name", "string", "A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
1199        children.add(new Property("status", "code", "The status of this compartment definition. Enables tracking the life-cycle of the content.", 0, 1, status));
1200        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
1201        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.", 0, 1, date));
1202        children.add(new Property("publisher", "string", "The name of the organization or individual that published the compartment definition.", 0, 1, publisher));
1203        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));
1204        children.add(new Property("description", "markdown", "A free text natural language description of the compartment definition from a consumer's perspective.", 0, 1, description));
1205        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 compartment definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
1206        children.add(new Property("purpose", "markdown", "Explanation of why this compartment definition is needed and why it has been designed as it has.", 0, 1, purpose));
1207        children.add(new Property("code", "code", "Which compartment this definition describes.", 0, 1, code));
1208        children.add(new Property("search", "boolean", "Whether the search syntax is supported,.", 0, 1, search));
1209        children.add(new Property("resource", "", "Information about how a resource is related to the compartment.", 0, java.lang.Integer.MAX_VALUE, resource));
1210      }
1211
1212      @Override
1213      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1214        switch (_hash) {
1215        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this compartment 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.", 0, 1, url);
1216        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment 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);
1217        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
1218        case -892481550: /*status*/  return new Property("status", "code", "The status of this compartment definition. Enables tracking the life-cycle of the content.", 0, 1, status);
1219        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
1220        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the compartment definition was published. 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 compartment definition changes.", 0, 1, date);
1221        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the compartment definition.", 0, 1, publisher);
1222        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);
1223        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the compartment definition from a consumer's perspective.", 0, 1, description);
1224        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 compartment definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
1225        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this compartment definition is needed and why it has been designed as it has.", 0, 1, purpose);
1226        case 3059181: /*code*/  return new Property("code", "code", "Which compartment this definition describes.", 0, 1, code);
1227        case -906336856: /*search*/  return new Property("search", "boolean", "Whether the search syntax is supported,.", 0, 1, search);
1228        case -341064690: /*resource*/  return new Property("resource", "", "Information about how a resource is related to the compartment.", 0, java.lang.Integer.MAX_VALUE, resource);
1229        default: return super.getNamedProperty(_hash, _name, _checkValid);
1230        }
1231
1232      }
1233
1234      @Override
1235      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1236        switch (hash) {
1237        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
1238        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
1239        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
1240        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
1241        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
1242        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
1243        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
1244        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
1245        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1246        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
1247        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
1248        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Enumeration<CompartmentType>
1249        case -906336856: /*search*/ return this.search == null ? new Base[0] : new Base[] {this.search}; // BooleanType
1250        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // CompartmentDefinitionResourceComponent
1251        default: return super.getProperty(hash, name, checkValid);
1252        }
1253
1254      }
1255
1256      @Override
1257      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1258        switch (hash) {
1259        case 116079: // url
1260          this.url = TypeConvertor.castToUri(value); // UriType
1261          return value;
1262        case 351608024: // version
1263          this.version = TypeConvertor.castToString(value); // StringType
1264          return value;
1265        case 3373707: // name
1266          this.name = TypeConvertor.castToString(value); // StringType
1267          return value;
1268        case -892481550: // status
1269          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1270          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1271          return value;
1272        case -404562712: // experimental
1273          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
1274          return value;
1275        case 3076014: // date
1276          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1277          return value;
1278        case 1447404028: // publisher
1279          this.publisher = TypeConvertor.castToString(value); // StringType
1280          return value;
1281        case 951526432: // contact
1282          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
1283          return value;
1284        case -1724546052: // description
1285          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1286          return value;
1287        case -669707736: // useContext
1288          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
1289          return value;
1290        case -220463842: // purpose
1291          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
1292          return value;
1293        case 3059181: // code
1294          value = new CompartmentTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1295          this.code = (Enumeration) value; // Enumeration<CompartmentType>
1296          return value;
1297        case -906336856: // search
1298          this.search = TypeConvertor.castToBoolean(value); // BooleanType
1299          return value;
1300        case -341064690: // resource
1301          this.getResource().add((CompartmentDefinitionResourceComponent) value); // CompartmentDefinitionResourceComponent
1302          return value;
1303        default: return super.setProperty(hash, name, value);
1304        }
1305
1306      }
1307
1308      @Override
1309      public Base setProperty(String name, Base value) throws FHIRException {
1310        if (name.equals("url")) {
1311          this.url = TypeConvertor.castToUri(value); // UriType
1312        } else if (name.equals("version")) {
1313          this.version = TypeConvertor.castToString(value); // StringType
1314        } else if (name.equals("name")) {
1315          this.name = TypeConvertor.castToString(value); // StringType
1316        } else if (name.equals("status")) {
1317          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1318          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1319        } else if (name.equals("experimental")) {
1320          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
1321        } else if (name.equals("date")) {
1322          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1323        } else if (name.equals("publisher")) {
1324          this.publisher = TypeConvertor.castToString(value); // StringType
1325        } else if (name.equals("contact")) {
1326          this.getContact().add(TypeConvertor.castToContactDetail(value));
1327        } else if (name.equals("description")) {
1328          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1329        } else if (name.equals("useContext")) {
1330          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
1331        } else if (name.equals("purpose")) {
1332          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
1333        } else if (name.equals("code")) {
1334          value = new CompartmentTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1335          this.code = (Enumeration) value; // Enumeration<CompartmentType>
1336        } else if (name.equals("search")) {
1337          this.search = TypeConvertor.castToBoolean(value); // BooleanType
1338        } else if (name.equals("resource")) {
1339          this.getResource().add((CompartmentDefinitionResourceComponent) value);
1340        } else
1341          return super.setProperty(name, value);
1342        return value;
1343      }
1344
1345      @Override
1346      public Base makeProperty(int hash, String name) throws FHIRException {
1347        switch (hash) {
1348        case 116079:  return getUrlElement();
1349        case 351608024:  return getVersionElement();
1350        case 3373707:  return getNameElement();
1351        case -892481550:  return getStatusElement();
1352        case -404562712:  return getExperimentalElement();
1353        case 3076014:  return getDateElement();
1354        case 1447404028:  return getPublisherElement();
1355        case 951526432:  return addContact(); 
1356        case -1724546052:  return getDescriptionElement();
1357        case -669707736:  return addUseContext(); 
1358        case -220463842:  return getPurposeElement();
1359        case 3059181:  return getCodeElement();
1360        case -906336856:  return getSearchElement();
1361        case -341064690:  return addResource(); 
1362        default: return super.makeProperty(hash, name);
1363        }
1364
1365      }
1366
1367      @Override
1368      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1369        switch (hash) {
1370        case 116079: /*url*/ return new String[] {"uri"};
1371        case 351608024: /*version*/ return new String[] {"string"};
1372        case 3373707: /*name*/ return new String[] {"string"};
1373        case -892481550: /*status*/ return new String[] {"code"};
1374        case -404562712: /*experimental*/ return new String[] {"boolean"};
1375        case 3076014: /*date*/ return new String[] {"dateTime"};
1376        case 1447404028: /*publisher*/ return new String[] {"string"};
1377        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
1378        case -1724546052: /*description*/ return new String[] {"markdown"};
1379        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
1380        case -220463842: /*purpose*/ return new String[] {"markdown"};
1381        case 3059181: /*code*/ return new String[] {"code"};
1382        case -906336856: /*search*/ return new String[] {"boolean"};
1383        case -341064690: /*resource*/ return new String[] {};
1384        default: return super.getTypesForProperty(hash, name);
1385        }
1386
1387      }
1388
1389      @Override
1390      public Base addChild(String name) throws FHIRException {
1391        if (name.equals("url")) {
1392          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.url");
1393        }
1394        else if (name.equals("version")) {
1395          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.version");
1396        }
1397        else if (name.equals("name")) {
1398          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.name");
1399        }
1400        else if (name.equals("status")) {
1401          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.status");
1402        }
1403        else if (name.equals("experimental")) {
1404          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.experimental");
1405        }
1406        else if (name.equals("date")) {
1407          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.date");
1408        }
1409        else if (name.equals("publisher")) {
1410          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.publisher");
1411        }
1412        else if (name.equals("contact")) {
1413          return addContact();
1414        }
1415        else if (name.equals("description")) {
1416          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.description");
1417        }
1418        else if (name.equals("useContext")) {
1419          return addUseContext();
1420        }
1421        else if (name.equals("purpose")) {
1422          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.purpose");
1423        }
1424        else if (name.equals("code")) {
1425          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.code");
1426        }
1427        else if (name.equals("search")) {
1428          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.search");
1429        }
1430        else if (name.equals("resource")) {
1431          return addResource();
1432        }
1433        else
1434          return super.addChild(name);
1435      }
1436
1437  public String fhirType() {
1438    return "CompartmentDefinition";
1439
1440  }
1441
1442      public CompartmentDefinition copy() {
1443        CompartmentDefinition dst = new CompartmentDefinition();
1444        copyValues(dst);
1445        return dst;
1446      }
1447
1448      public void copyValues(CompartmentDefinition dst) {
1449        super.copyValues(dst);
1450        dst.url = url == null ? null : url.copy();
1451        dst.version = version == null ? null : version.copy();
1452        dst.name = name == null ? null : name.copy();
1453        dst.status = status == null ? null : status.copy();
1454        dst.experimental = experimental == null ? null : experimental.copy();
1455        dst.date = date == null ? null : date.copy();
1456        dst.publisher = publisher == null ? null : publisher.copy();
1457        if (contact != null) {
1458          dst.contact = new ArrayList<ContactDetail>();
1459          for (ContactDetail i : contact)
1460            dst.contact.add(i.copy());
1461        };
1462        dst.description = description == null ? null : description.copy();
1463        if (useContext != null) {
1464          dst.useContext = new ArrayList<UsageContext>();
1465          for (UsageContext i : useContext)
1466            dst.useContext.add(i.copy());
1467        };
1468        dst.purpose = purpose == null ? null : purpose.copy();
1469        dst.code = code == null ? null : code.copy();
1470        dst.search = search == null ? null : search.copy();
1471        if (resource != null) {
1472          dst.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1473          for (CompartmentDefinitionResourceComponent i : resource)
1474            dst.resource.add(i.copy());
1475        };
1476      }
1477
1478      protected CompartmentDefinition typedCopy() {
1479        return copy();
1480      }
1481
1482      @Override
1483      public boolean equalsDeep(Base other_) {
1484        if (!super.equalsDeep(other_))
1485          return false;
1486        if (!(other_ instanceof CompartmentDefinition))
1487          return false;
1488        CompartmentDefinition o = (CompartmentDefinition) other_;
1489        return compareDeep(url, o.url, true) && compareDeep(version, o.version, true) && compareDeep(name, o.name, true)
1490           && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
1491           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
1492           && compareDeep(useContext, o.useContext, true) && compareDeep(purpose, o.purpose, true) && compareDeep(code, o.code, true)
1493           && compareDeep(search, o.search, true) && compareDeep(resource, o.resource, true);
1494      }
1495
1496      @Override
1497      public boolean equalsShallow(Base other_) {
1498        if (!super.equalsShallow(other_))
1499          return false;
1500        if (!(other_ instanceof CompartmentDefinition))
1501          return false;
1502        CompartmentDefinition o = (CompartmentDefinition) other_;
1503        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
1504           && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true)
1505           && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(purpose, o.purpose, true)
1506           && compareValues(code, o.code, true) && compareValues(search, o.search, true);
1507      }
1508
1509      public boolean isEmpty() {
1510        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, version, name, status
1511          , experimental, date, publisher, contact, description, useContext, purpose, code
1512          , search, resource);
1513      }
1514
1515  @Override
1516  public ResourceType getResourceType() {
1517    return ResourceType.CompartmentDefinition;
1518   }
1519
1520 /**
1521   * Search parameter: <b>code</b>
1522   * <p>
1523   * Description: <b>Patient | Encounter | RelatedPerson | Practitioner | Device</b><br>
1524   * Type: <b>token</b><br>
1525   * Path: <b>CompartmentDefinition.code</b><br>
1526   * </p>
1527   */
1528  @SearchParamDefinition(name="code", path="CompartmentDefinition.code", description="Patient | Encounter | RelatedPerson | Practitioner | Device", type="token" )
1529  public static final String SP_CODE = "code";
1530 /**
1531   * <b>Fluent Client</b> search parameter constant for <b>code</b>
1532   * <p>
1533   * Description: <b>Patient | Encounter | RelatedPerson | Practitioner | Device</b><br>
1534   * Type: <b>token</b><br>
1535   * Path: <b>CompartmentDefinition.code</b><br>
1536   * </p>
1537   */
1538  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
1539
1540 /**
1541   * Search parameter: <b>resource</b>
1542   * <p>
1543   * Description: <b>Name of resource type</b><br>
1544   * Type: <b>token</b><br>
1545   * Path: <b>CompartmentDefinition.resource.code</b><br>
1546   * </p>
1547   */
1548  @SearchParamDefinition(name="resource", path="CompartmentDefinition.resource.code", description="Name of resource type", type="token" )
1549  public static final String SP_RESOURCE = "resource";
1550 /**
1551   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
1552   * <p>
1553   * Description: <b>Name of resource type</b><br>
1554   * Type: <b>token</b><br>
1555   * Path: <b>CompartmentDefinition.resource.code</b><br>
1556   * </p>
1557   */
1558  public static final ca.uhn.fhir.rest.gclient.TokenClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_RESOURCE);
1559
1560 /**
1561   * Search parameter: <b>context-quantity</b>
1562   * <p>
1563   * Description: <b>Multiple Resources: 
1564
1565* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
1566* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
1567* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
1568* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
1569* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
1570* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
1571* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
1572* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
1573* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
1574* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
1575* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
1576* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
1577* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
1578* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
1579</b><br>
1580   * Type: <b>quantity</b><br>
1581   * Path: <b>(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)</b><br>
1582   * </p>
1583   */
1584  @SearchParamDefinition(name="context-quantity", path="(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
1585  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
1586 /**
1587   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
1588   * <p>
1589   * Description: <b>Multiple Resources: 
1590
1591* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
1592* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
1593* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
1594* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
1595* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
1596* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
1597* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
1598* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
1599* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
1600* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
1601* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
1602* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
1603* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
1604* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
1605</b><br>
1606   * Type: <b>quantity</b><br>
1607   * Path: <b>(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)</b><br>
1608   * </p>
1609   */
1610  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
1611
1612 /**
1613   * Search parameter: <b>context-type-quantity</b>
1614   * <p>
1615   * Description: <b>Multiple Resources: 
1616
1617* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
1618* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
1619* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
1620* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
1621* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
1622* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
1623* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
1624* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
1625* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
1626* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
1627* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
1628* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
1629* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
1630* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
1631</b><br>
1632   * Type: <b>composite</b><br>
1633   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
1634   * </p>
1635   */
1636  @SearchParamDefinition(name="context-type-quantity", path="CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\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* [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* [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* [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* [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"} )
1637  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
1638 /**
1639   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
1640   * <p>
1641   * Description: <b>Multiple Resources: 
1642
1643* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
1644* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
1645* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
1646* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
1647* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
1648* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
1649* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
1650* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
1651* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
1652* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
1653* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
1654* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
1655* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
1656* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
1657</b><br>
1658   * Type: <b>composite</b><br>
1659   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
1660   * </p>
1661   */
1662  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);
1663
1664 /**
1665   * Search parameter: <b>context-type-value</b>
1666   * <p>
1667   * Description: <b>Multiple Resources: 
1668
1669* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
1670* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
1671* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
1672* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
1673* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
1674* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
1675* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
1676* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
1677* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
1678* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
1679* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
1680* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
1681* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
1682* [ValueSet](valueset.html): A use context type and value assigned to the value set
1683</b><br>
1684   * Type: <b>composite</b><br>
1685   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
1686   * </p>
1687   */
1688  @SearchParamDefinition(name="context-type-value", path="CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
1689  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
1690 /**
1691   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
1692   * <p>
1693   * Description: <b>Multiple Resources: 
1694
1695* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
1696* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
1697* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
1698* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
1699* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
1700* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
1701* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
1702* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
1703* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
1704* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
1705* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
1706* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
1707* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
1708* [ValueSet](valueset.html): A use context type and value assigned to the value set
1709</b><br>
1710   * Type: <b>composite</b><br>
1711   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
1712   * </p>
1713   */
1714  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);
1715
1716 /**
1717   * Search parameter: <b>context-type</b>
1718   * <p>
1719   * Description: <b>Multiple Resources: 
1720
1721* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
1722* [CodeSystem](codesystem.html): A type of use context assigned to the code system
1723* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
1724* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
1725* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
1726* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
1727* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
1728* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
1729* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
1730* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
1731* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
1732* [StructureMap](structuremap.html): A type of use context assigned to the structure map
1733* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
1734* [ValueSet](valueset.html): A type of use context assigned to the value set
1735</b><br>
1736   * Type: <b>token</b><br>
1737   * Path: <b>CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code</b><br>
1738   * </p>
1739   */
1740  @SearchParamDefinition(name="context-type", path="CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
1741  public static final String SP_CONTEXT_TYPE = "context-type";
1742 /**
1743   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
1744   * <p>
1745   * Description: <b>Multiple Resources: 
1746
1747* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
1748* [CodeSystem](codesystem.html): A type of use context assigned to the code system
1749* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
1750* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
1751* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
1752* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
1753* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
1754* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
1755* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
1756* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
1757* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
1758* [StructureMap](structuremap.html): A type of use context assigned to the structure map
1759* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
1760* [ValueSet](valueset.html): A type of use context assigned to the value set
1761</b><br>
1762   * Type: <b>token</b><br>
1763   * Path: <b>CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code</b><br>
1764   * </p>
1765   */
1766  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
1767
1768 /**
1769   * Search parameter: <b>context</b>
1770   * <p>
1771   * Description: <b>Multiple Resources: 
1772
1773* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
1774* [CodeSystem](codesystem.html): A use context assigned to the code system
1775* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
1776* [ConceptMap](conceptmap.html): A use context assigned to the concept map
1777* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
1778* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
1779* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
1780* [NamingSystem](namingsystem.html): A use context assigned to the naming system
1781* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
1782* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
1783* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
1784* [StructureMap](structuremap.html): A use context assigned to the structure map
1785* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
1786* [ValueSet](valueset.html): A use context assigned to the value set
1787</b><br>
1788   * Type: <b>token</b><br>
1789   * Path: <b>(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)</b><br>
1790   * </p>
1791   */
1792  @SearchParamDefinition(name="context", path="(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
1793  public static final String SP_CONTEXT = "context";
1794 /**
1795   * <b>Fluent Client</b> search parameter constant for <b>context</b>
1796   * <p>
1797   * Description: <b>Multiple Resources: 
1798
1799* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
1800* [CodeSystem](codesystem.html): A use context assigned to the code system
1801* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
1802* [ConceptMap](conceptmap.html): A use context assigned to the concept map
1803* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
1804* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
1805* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
1806* [NamingSystem](namingsystem.html): A use context assigned to the naming system
1807* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
1808* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
1809* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
1810* [StructureMap](structuremap.html): A use context assigned to the structure map
1811* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
1812* [ValueSet](valueset.html): A use context assigned to the value set
1813</b><br>
1814   * Type: <b>token</b><br>
1815   * Path: <b>(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)</b><br>
1816   * </p>
1817   */
1818  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
1819
1820 /**
1821   * Search parameter: <b>date</b>
1822   * <p>
1823   * Description: <b>Multiple Resources: 
1824
1825* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
1826* [CodeSystem](codesystem.html): The code system publication date
1827* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
1828* [ConceptMap](conceptmap.html): The concept map publication date
1829* [GraphDefinition](graphdefinition.html): The graph definition publication date
1830* [ImplementationGuide](implementationguide.html): The implementation guide publication date
1831* [MessageDefinition](messagedefinition.html): The message definition publication date
1832* [NamingSystem](namingsystem.html): The naming system publication date
1833* [OperationDefinition](operationdefinition.html): The operation definition publication date
1834* [SearchParameter](searchparameter.html): The search parameter publication date
1835* [StructureDefinition](structuredefinition.html): The structure definition publication date
1836* [StructureMap](structuremap.html): The structure map publication date
1837* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
1838* [ValueSet](valueset.html): The value set publication date
1839</b><br>
1840   * Type: <b>date</b><br>
1841   * Path: <b>CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date</b><br>
1842   * </p>
1843   */
1844  @SearchParamDefinition(name="date", path="CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement 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* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide 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* [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* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
1845  public static final String SP_DATE = "date";
1846 /**
1847   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1848   * <p>
1849   * Description: <b>Multiple Resources: 
1850
1851* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
1852* [CodeSystem](codesystem.html): The code system publication date
1853* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
1854* [ConceptMap](conceptmap.html): The concept map publication date
1855* [GraphDefinition](graphdefinition.html): The graph definition publication date
1856* [ImplementationGuide](implementationguide.html): The implementation guide publication date
1857* [MessageDefinition](messagedefinition.html): The message definition publication date
1858* [NamingSystem](namingsystem.html): The naming system publication date
1859* [OperationDefinition](operationdefinition.html): The operation definition publication date
1860* [SearchParameter](searchparameter.html): The search parameter publication date
1861* [StructureDefinition](structuredefinition.html): The structure definition publication date
1862* [StructureMap](structuremap.html): The structure map publication date
1863* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
1864* [ValueSet](valueset.html): The value set publication date
1865</b><br>
1866   * Type: <b>date</b><br>
1867   * Path: <b>CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date</b><br>
1868   * </p>
1869   */
1870  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1871
1872 /**
1873   * Search parameter: <b>description</b>
1874   * <p>
1875   * Description: <b>Multiple Resources: 
1876
1877* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
1878* [CodeSystem](codesystem.html): The description of the code system
1879* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
1880* [ConceptMap](conceptmap.html): The description of the concept map
1881* [GraphDefinition](graphdefinition.html): The description of the graph definition
1882* [ImplementationGuide](implementationguide.html): The description of the implementation guide
1883* [MessageDefinition](messagedefinition.html): The description of the message definition
1884* [NamingSystem](namingsystem.html): The description of the naming system
1885* [OperationDefinition](operationdefinition.html): The description of the operation definition
1886* [SearchParameter](searchparameter.html): The description of the search parameter
1887* [StructureDefinition](structuredefinition.html): The description of the structure definition
1888* [StructureMap](structuremap.html): The description of the structure map
1889* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
1890* [ValueSet](valueset.html): The description of the value set
1891</b><br>
1892   * Type: <b>string</b><br>
1893   * Path: <b>CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description</b><br>
1894   * </p>
1895   */
1896  @SearchParamDefinition(name="description", path="CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\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* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\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* [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* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
1897  public static final String SP_DESCRIPTION = "description";
1898 /**
1899   * <b>Fluent Client</b> search parameter constant for <b>description</b>
1900   * <p>
1901   * Description: <b>Multiple Resources: 
1902
1903* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
1904* [CodeSystem](codesystem.html): The description of the code system
1905* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
1906* [ConceptMap](conceptmap.html): The description of the concept map
1907* [GraphDefinition](graphdefinition.html): The description of the graph definition
1908* [ImplementationGuide](implementationguide.html): The description of the implementation guide
1909* [MessageDefinition](messagedefinition.html): The description of the message definition
1910* [NamingSystem](namingsystem.html): The description of the naming system
1911* [OperationDefinition](operationdefinition.html): The description of the operation definition
1912* [SearchParameter](searchparameter.html): The description of the search parameter
1913* [StructureDefinition](structuredefinition.html): The description of the structure definition
1914* [StructureMap](structuremap.html): The description of the structure map
1915* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
1916* [ValueSet](valueset.html): The description of the value set
1917</b><br>
1918   * Type: <b>string</b><br>
1919   * Path: <b>CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description</b><br>
1920   * </p>
1921   */
1922  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
1923
1924 /**
1925   * Search parameter: <b>name</b>
1926   * <p>
1927   * Description: <b>Multiple Resources: 
1928
1929* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
1930* [CodeSystem](codesystem.html): Computationally friendly name of the code system
1931* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
1932* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
1933* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
1934* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
1935* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
1936* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
1937* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
1938* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
1939* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
1940* [StructureMap](structuremap.html): Computationally friendly name of the structure map
1941* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
1942* [ValueSet](valueset.html): Computationally friendly name of the value set
1943</b><br>
1944   * Type: <b>string</b><br>
1945   * Path: <b>CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name</b><br>
1946   * </p>
1947   */
1948  @SearchParamDefinition(name="name", path="CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\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* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\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* [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* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
1949  public static final String SP_NAME = "name";
1950 /**
1951   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1952   * <p>
1953   * Description: <b>Multiple Resources: 
1954
1955* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
1956* [CodeSystem](codesystem.html): Computationally friendly name of the code system
1957* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
1958* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
1959* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
1960* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
1961* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
1962* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
1963* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
1964* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
1965* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
1966* [StructureMap](structuremap.html): Computationally friendly name of the structure map
1967* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
1968* [ValueSet](valueset.html): Computationally friendly name of the value set
1969</b><br>
1970   * Type: <b>string</b><br>
1971   * Path: <b>CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name</b><br>
1972   * </p>
1973   */
1974  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1975
1976 /**
1977   * Search parameter: <b>publisher</b>
1978   * <p>
1979   * Description: <b>Multiple Resources: 
1980
1981* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
1982* [CodeSystem](codesystem.html): Name of the publisher of the code system
1983* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
1984* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
1985* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
1986* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
1987* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
1988* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
1989* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
1990* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
1991* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
1992* [StructureMap](structuremap.html): Name of the publisher of the structure map
1993* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
1994* [ValueSet](valueset.html): Name of the publisher of the value set
1995</b><br>
1996   * Type: <b>string</b><br>
1997   * Path: <b>CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher</b><br>
1998   * </p>
1999   */
2000  @SearchParamDefinition(name="publisher", path="CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\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* [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* [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* [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* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
2001  public static final String SP_PUBLISHER = "publisher";
2002 /**
2003   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
2004   * <p>
2005   * Description: <b>Multiple Resources: 
2006
2007* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
2008* [CodeSystem](codesystem.html): Name of the publisher of the code system
2009* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
2010* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
2011* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
2012* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
2013* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
2014* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
2015* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
2016* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
2017* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
2018* [StructureMap](structuremap.html): Name of the publisher of the structure map
2019* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
2020* [ValueSet](valueset.html): Name of the publisher of the value set
2021</b><br>
2022   * Type: <b>string</b><br>
2023   * Path: <b>CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher</b><br>
2024   * </p>
2025   */
2026  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
2027
2028 /**
2029   * Search parameter: <b>status</b>
2030   * <p>
2031   * Description: <b>Multiple Resources: 
2032
2033* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
2034* [CodeSystem](codesystem.html): The current status of the code system
2035* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
2036* [ConceptMap](conceptmap.html): The current status of the concept map
2037* [GraphDefinition](graphdefinition.html): The current status of the graph definition
2038* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
2039* [MessageDefinition](messagedefinition.html): The current status of the message definition
2040* [NamingSystem](namingsystem.html): The current status of the naming system
2041* [OperationDefinition](operationdefinition.html): The current status of the operation definition
2042* [SearchParameter](searchparameter.html): The current status of the search parameter
2043* [StructureDefinition](structuredefinition.html): The current status of the structure definition
2044* [StructureMap](structuremap.html): The current status of the structure map
2045* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
2046* [ValueSet](valueset.html): The current status of the value set
2047</b><br>
2048   * Type: <b>token</b><br>
2049   * Path: <b>CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status</b><br>
2050   * </p>
2051   */
2052  @SearchParamDefinition(name="status", path="CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\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* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\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* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\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* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
2053  public static final String SP_STATUS = "status";
2054 /**
2055   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2056   * <p>
2057   * Description: <b>Multiple Resources: 
2058
2059* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
2060* [CodeSystem](codesystem.html): The current status of the code system
2061* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
2062* [ConceptMap](conceptmap.html): The current status of the concept map
2063* [GraphDefinition](graphdefinition.html): The current status of the graph definition
2064* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
2065* [MessageDefinition](messagedefinition.html): The current status of the message definition
2066* [NamingSystem](namingsystem.html): The current status of the naming system
2067* [OperationDefinition](operationdefinition.html): The current status of the operation definition
2068* [SearchParameter](searchparameter.html): The current status of the search parameter
2069* [StructureDefinition](structuredefinition.html): The current status of the structure definition
2070* [StructureMap](structuremap.html): The current status of the structure map
2071* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
2072* [ValueSet](valueset.html): The current status of the value set
2073</b><br>
2074   * Type: <b>token</b><br>
2075   * Path: <b>CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status</b><br>
2076   * </p>
2077   */
2078  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2079
2080 /**
2081   * Search parameter: <b>url</b>
2082   * <p>
2083   * Description: <b>Multiple Resources: 
2084
2085* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
2086* [CodeSystem](codesystem.html): The uri that identifies the code system
2087* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
2088* [ConceptMap](conceptmap.html): The uri that identifies the concept map
2089* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
2090* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
2091* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
2092* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
2093* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
2094* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
2095* [StructureMap](structuremap.html): The uri that identifies the structure map
2096* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
2097* [ValueSet](valueset.html): The uri that identifies the value set
2098</b><br>
2099   * Type: <b>uri</b><br>
2100   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
2101   * </p>
2102   */
2103  @SearchParamDefinition(name="url", path="CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\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* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition\r\n* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\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* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
2104  public static final String SP_URL = "url";
2105 /**
2106   * <b>Fluent Client</b> search parameter constant for <b>url</b>
2107   * <p>
2108   * Description: <b>Multiple Resources: 
2109
2110* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
2111* [CodeSystem](codesystem.html): The uri that identifies the code system
2112* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
2113* [ConceptMap](conceptmap.html): The uri that identifies the concept map
2114* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
2115* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
2116* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
2117* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
2118* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
2119* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
2120* [StructureMap](structuremap.html): The uri that identifies the structure map
2121* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
2122* [ValueSet](valueset.html): The uri that identifies the value set
2123</b><br>
2124   * Type: <b>uri</b><br>
2125   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
2126   * </p>
2127   */
2128  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
2129
2130 /**
2131   * Search parameter: <b>version</b>
2132   * <p>
2133   * Description: <b>Multiple Resources: 
2134
2135* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
2136* [CodeSystem](codesystem.html): The business version of the code system
2137* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
2138* [ConceptMap](conceptmap.html): The business version of the concept map
2139* [GraphDefinition](graphdefinition.html): The business version of the graph definition
2140* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
2141* [MessageDefinition](messagedefinition.html): The business version of the message definition
2142* [OperationDefinition](operationdefinition.html): The business version of the operation definition
2143* [SearchParameter](searchparameter.html): The business version of the search parameter
2144* [StructureDefinition](structuredefinition.html): The business version of the structure definition
2145* [StructureMap](structuremap.html): The business version of the structure map
2146* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
2147* [ValueSet](valueset.html): The business version of the value set
2148</b><br>
2149   * Type: <b>token</b><br>
2150   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
2151   * </p>
2152   */
2153  @SearchParamDefinition(name="version", path="CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement\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* [GraphDefinition](graphdefinition.html): The business version of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The business version of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The business version of the message definition\r\n* [OperationDefinition](operationdefinition.html): The business version of the operation definition\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* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities\r\n* [ValueSet](valueset.html): The business version of the value set\r\n", type="token" )
2154  public static final String SP_VERSION = "version";
2155 /**
2156   * <b>Fluent Client</b> search parameter constant for <b>version</b>
2157   * <p>
2158   * Description: <b>Multiple Resources: 
2159
2160* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
2161* [CodeSystem](codesystem.html): The business version of the code system
2162* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
2163* [ConceptMap](conceptmap.html): The business version of the concept map
2164* [GraphDefinition](graphdefinition.html): The business version of the graph definition
2165* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
2166* [MessageDefinition](messagedefinition.html): The business version of the message definition
2167* [OperationDefinition](operationdefinition.html): The business version of the operation definition
2168* [SearchParameter](searchparameter.html): The business version of the search parameter
2169* [StructureDefinition](structuredefinition.html): The business version of the structure definition
2170* [StructureMap](structuremap.html): The business version of the structure map
2171* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
2172* [ValueSet](valueset.html): The business version of the value set
2173</b><br>
2174   * Type: <b>token</b><br>
2175   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
2176   * </p>
2177   */
2178  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
2179
2180// Manual code (from Configuration.txt):
2181  public boolean supportsCopyright() {
2182    return false;
2183  }
2184
2185  @Override
2186  public List<Identifier> getIdentifier() {
2187    return new ArrayList<>();
2188  }
2189
2190  @Override
2191  public CanonicalResource setIdentifier(List<Identifier> theIdentifier) {
2192    return this;
2193  }
2194
2195  @Override
2196  public boolean hasIdentifier() {
2197    return false;
2198  }
2199
2200  @Override
2201  public Identifier addIdentifier() {
2202    return new Identifier();
2203  }
2204
2205  @Override
2206  public CanonicalResource addIdentifier(Identifier t) {
2207    return this;
2208  }
2209
2210  @Override
2211  public Identifier getIdentifierFirstRep() {
2212    return new Identifier();
2213  }
2214
2215  @Override
2216  public StringType getTitleElement() {
2217    return new StringType();
2218  }
2219
2220  @Override
2221  public boolean hasTitleElement() {
2222    return false;
2223  }
2224
2225  @Override
2226  public boolean hasTitle() {
2227    return false;
2228  }
2229
2230  @Override
2231  public CanonicalResource setTitleElement(StringType value) {
2232    return this;
2233  }
2234
2235  @Override
2236  public String getTitle() {
2237    return null;
2238  }
2239
2240  @Override
2241  public CanonicalResource setTitle(String value) {
2242    return this;
2243  }
2244
2245  @Override
2246  public List<CodeableConcept> getJurisdiction() {
2247    return new ArrayList<>();
2248  }
2249
2250  @Override
2251  public CanonicalResource setJurisdiction(List<CodeableConcept> theJurisdiction) {
2252    return this;
2253  }
2254
2255  @Override
2256  public boolean hasJurisdiction() {
2257    return false;
2258  }
2259
2260  @Override
2261  public CodeableConcept addJurisdiction() {
2262    return new CodeableConcept();
2263  }
2264
2265  @Override
2266  public CanonicalResource addJurisdiction(CodeableConcept t) {
2267    return this;
2268  }
2269
2270  @Override
2271  public CodeableConcept getJurisdictionFirstRep() {
2272    return new CodeableConcept();
2273  }
2274
2275  @Override
2276  public MarkdownType getCopyrightElement() {
2277    return new MarkdownType();
2278  }
2279
2280  @Override
2281  public boolean hasCopyrightElement() {
2282    return false;
2283  }
2284
2285  @Override
2286  public boolean hasCopyright() {
2287    return false;
2288  }
2289
2290  @Override
2291  public CanonicalResource setCopyrightElement(MarkdownType value) {
2292    return this;
2293  }
2294
2295  @Override
2296  public String getCopyright() {
2297    return null;
2298  }
2299
2300  @Override
2301  public CanonicalResource setCopyright(String value) {
2302    return this;
2303  }
2304  
2305// end addition
2306
2307}
2308