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