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