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