001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * The Measure resource provides the definition of a quality measure.
052 */
053@ResourceDef(name="Measure", profile="http://hl7.org/fhir/StructureDefinition/Measure")
054public class Measure extends MetadataResource {
055
056    @Block()
057    public static class MeasureTermComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * A codeable representation of the defined term.
060         */
061        @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
062        @Description(shortDefinition="What term?", formalDefinition="A codeable representation of the defined term." )
063        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-definition-example")
064        protected CodeableConcept code;
065
066        /**
067         * Provides a definition for the term as used within the measure.
068         */
069        @Child(name = "definition", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false)
070        @Description(shortDefinition="Meaning of the term", formalDefinition="Provides a definition for the term as used within the measure." )
071        protected MarkdownType definition;
072
073        private static final long serialVersionUID = -25931622L;
074
075    /**
076     * Constructor
077     */
078      public MeasureTermComponent() {
079        super();
080      }
081
082        /**
083         * @return {@link #code} (A codeable representation of the defined term.)
084         */
085        public CodeableConcept getCode() { 
086          if (this.code == null)
087            if (Configuration.errorOnAutoCreate())
088              throw new Error("Attempt to auto-create MeasureTermComponent.code");
089            else if (Configuration.doAutoCreate())
090              this.code = new CodeableConcept(); // cc
091          return this.code;
092        }
093
094        public boolean hasCode() { 
095          return this.code != null && !this.code.isEmpty();
096        }
097
098        /**
099         * @param value {@link #code} (A codeable representation of the defined term.)
100         */
101        public MeasureTermComponent setCode(CodeableConcept value) { 
102          this.code = value;
103          return this;
104        }
105
106        /**
107         * @return {@link #definition} (Provides a definition for the term as used within the measure.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value
108         */
109        public MarkdownType getDefinitionElement() { 
110          if (this.definition == null)
111            if (Configuration.errorOnAutoCreate())
112              throw new Error("Attempt to auto-create MeasureTermComponent.definition");
113            else if (Configuration.doAutoCreate())
114              this.definition = new MarkdownType(); // bb
115          return this.definition;
116        }
117
118        public boolean hasDefinitionElement() { 
119          return this.definition != null && !this.definition.isEmpty();
120        }
121
122        public boolean hasDefinition() { 
123          return this.definition != null && !this.definition.isEmpty();
124        }
125
126        /**
127         * @param value {@link #definition} (Provides a definition for the term as used within the measure.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value
128         */
129        public MeasureTermComponent setDefinitionElement(MarkdownType value) { 
130          this.definition = value;
131          return this;
132        }
133
134        /**
135         * @return Provides a definition for the term as used within the measure.
136         */
137        public String getDefinition() { 
138          return this.definition == null ? null : this.definition.getValue();
139        }
140
141        /**
142         * @param value Provides a definition for the term as used within the measure.
143         */
144        public MeasureTermComponent setDefinition(String value) { 
145          if (Utilities.noString(value))
146            this.definition = null;
147          else {
148            if (this.definition == null)
149              this.definition = new MarkdownType();
150            this.definition.setValue(value);
151          }
152          return this;
153        }
154
155        protected void listChildren(List<Property> children) {
156          super.listChildren(children);
157          children.add(new Property("code", "CodeableConcept", "A codeable representation of the defined term.", 0, 1, code));
158          children.add(new Property("definition", "markdown", "Provides a definition for the term as used within the measure.", 0, 1, definition));
159        }
160
161        @Override
162        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
163          switch (_hash) {
164          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A codeable representation of the defined term.", 0, 1, code);
165          case -1014418093: /*definition*/  return new Property("definition", "markdown", "Provides a definition for the term as used within the measure.", 0, 1, definition);
166          default: return super.getNamedProperty(_hash, _name, _checkValid);
167          }
168
169        }
170
171      @Override
172      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
173        switch (hash) {
174        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
175        case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // MarkdownType
176        default: return super.getProperty(hash, name, checkValid);
177        }
178
179      }
180
181      @Override
182      public Base setProperty(int hash, String name, Base value) throws FHIRException {
183        switch (hash) {
184        case 3059181: // code
185          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
186          return value;
187        case -1014418093: // definition
188          this.definition = TypeConvertor.castToMarkdown(value); // MarkdownType
189          return value;
190        default: return super.setProperty(hash, name, value);
191        }
192
193      }
194
195      @Override
196      public Base setProperty(String name, Base value) throws FHIRException {
197        if (name.equals("code")) {
198          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
199        } else if (name.equals("definition")) {
200          this.definition = TypeConvertor.castToMarkdown(value); // MarkdownType
201        } else
202          return super.setProperty(name, value);
203        return value;
204      }
205
206      @Override
207      public Base makeProperty(int hash, String name) throws FHIRException {
208        switch (hash) {
209        case 3059181:  return getCode();
210        case -1014418093:  return getDefinitionElement();
211        default: return super.makeProperty(hash, name);
212        }
213
214      }
215
216      @Override
217      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
218        switch (hash) {
219        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
220        case -1014418093: /*definition*/ return new String[] {"markdown"};
221        default: return super.getTypesForProperty(hash, name);
222        }
223
224      }
225
226      @Override
227      public Base addChild(String name) throws FHIRException {
228        if (name.equals("code")) {
229          this.code = new CodeableConcept();
230          return this.code;
231        }
232        else if (name.equals("definition")) {
233          throw new FHIRException("Cannot call addChild on a singleton property Measure.term.definition");
234        }
235        else
236          return super.addChild(name);
237      }
238
239      public MeasureTermComponent copy() {
240        MeasureTermComponent dst = new MeasureTermComponent();
241        copyValues(dst);
242        return dst;
243      }
244
245      public void copyValues(MeasureTermComponent dst) {
246        super.copyValues(dst);
247        dst.code = code == null ? null : code.copy();
248        dst.definition = definition == null ? null : definition.copy();
249      }
250
251      @Override
252      public boolean equalsDeep(Base other_) {
253        if (!super.equalsDeep(other_))
254          return false;
255        if (!(other_ instanceof MeasureTermComponent))
256          return false;
257        MeasureTermComponent o = (MeasureTermComponent) other_;
258        return compareDeep(code, o.code, true) && compareDeep(definition, o.definition, true);
259      }
260
261      @Override
262      public boolean equalsShallow(Base other_) {
263        if (!super.equalsShallow(other_))
264          return false;
265        if (!(other_ instanceof MeasureTermComponent))
266          return false;
267        MeasureTermComponent o = (MeasureTermComponent) other_;
268        return compareValues(definition, o.definition, true);
269      }
270
271      public boolean isEmpty() {
272        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, definition);
273      }
274
275  public String fhirType() {
276    return "Measure.term";
277
278  }
279
280  }
281
282    @Block()
283    public static class MeasureGroupComponent extends BackboneElement implements IBaseBackboneElement {
284        /**
285         * An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
286         */
287        @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
288        @Description(shortDefinition="Unique id for group in measure", formalDefinition="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource." )
289        protected StringType linkId;
290
291        /**
292         * Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.
293         */
294        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
295        @Description(shortDefinition="Meaning of the group", formalDefinition="Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures." )
296        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-group-example")
297        protected CodeableConcept code;
298
299        /**
300         * The human readable description of this population group.
301         */
302        @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false)
303        @Description(shortDefinition="Summary description", formalDefinition="The human readable description of this population group." )
304        protected MarkdownType description;
305
306        /**
307         * Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.
308         */
309        @Child(name = "type", type = {CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
310        @Description(shortDefinition="process | outcome | structure | patient-reported-outcome | composite", formalDefinition="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization." )
311        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-type")
312        protected List<CodeableConcept> type;
313
314        /**
315         * The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.
316         */
317        @Child(name = "subject", type = {CodeableConcept.class, Group.class}, order=5, min=0, max=1, modifier=false, summary=false)
318        @Description(shortDefinition="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device", formalDefinition="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything." )
319        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participant-resource-types")
320        protected DataType subject;
321
322        /**
323         * The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.
324         */
325        @Child(name = "basis", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=true)
326        @Description(shortDefinition="Population basis", formalDefinition="The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters." )
327        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fhir-types")
328        protected Enumeration<FHIRTypes> basis;
329
330        /**
331         * Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.
332         */
333        @Child(name = "scoring", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=true)
334        @Description(shortDefinition="proportion | ratio | continuous-variable | cohort", formalDefinition="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented." )
335        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/measure-scoring")
336        protected CodeableConcept scoring;
337
338        /**
339         * Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.
340         */
341        @Child(name = "scoringUnit", type = {CodeableConcept.class}, order=8, min=0, max=1, modifier=false, summary=true)
342        @Description(shortDefinition="What units?", formalDefinition="Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit." )
343        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-scoring-unit")
344        protected CodeableConcept scoringUnit;
345
346        /**
347         * Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.
348         */
349        @Child(name = "rateAggregation", type = {MarkdownType.class}, order=9, min=0, max=1, modifier=false, summary=true)
350        @Description(shortDefinition="How is rate aggregation performed for this measure", formalDefinition="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result." )
351        protected MarkdownType rateAggregation;
352
353        /**
354         * Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).
355         */
356        @Child(name = "improvementNotation", type = {CodeableConcept.class}, order=10, min=0, max=1, modifier=false, summary=true)
357        @Description(shortDefinition="increase | decrease", formalDefinition="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range)." )
358        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-improvement-notation")
359        protected CodeableConcept improvementNotation;
360
361        /**
362         * A reference to a Library resource containing the formal logic used by the measure group.
363         */
364        @Child(name = "library", type = {CanonicalType.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
365        @Description(shortDefinition="Logic used by the measure group", formalDefinition="A reference to a Library resource containing the formal logic used by the measure group." )
366        protected List<CanonicalType> library;
367
368        /**
369         * A population criteria for the measure.
370         */
371        @Child(name = "population", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
372        @Description(shortDefinition="Population criteria", formalDefinition="A population criteria for the measure." )
373        protected List<MeasureGroupPopulationComponent> population;
374
375        /**
376         * The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.
377         */
378        @Child(name = "stratifier", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
379        @Description(shortDefinition="Stratifier criteria for the measure", formalDefinition="The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path." )
380        protected List<MeasureGroupStratifierComponent> stratifier;
381
382        private static final long serialVersionUID = 1459308752L;
383
384    /**
385     * Constructor
386     */
387      public MeasureGroupComponent() {
388        super();
389      }
390
391        /**
392         * @return {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
393         */
394        public StringType getLinkIdElement() { 
395          if (this.linkId == null)
396            if (Configuration.errorOnAutoCreate())
397              throw new Error("Attempt to auto-create MeasureGroupComponent.linkId");
398            else if (Configuration.doAutoCreate())
399              this.linkId = new StringType(); // bb
400          return this.linkId;
401        }
402
403        public boolean hasLinkIdElement() { 
404          return this.linkId != null && !this.linkId.isEmpty();
405        }
406
407        public boolean hasLinkId() { 
408          return this.linkId != null && !this.linkId.isEmpty();
409        }
410
411        /**
412         * @param value {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
413         */
414        public MeasureGroupComponent setLinkIdElement(StringType value) { 
415          this.linkId = value;
416          return this;
417        }
418
419        /**
420         * @return An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
421         */
422        public String getLinkId() { 
423          return this.linkId == null ? null : this.linkId.getValue();
424        }
425
426        /**
427         * @param value An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
428         */
429        public MeasureGroupComponent setLinkId(String value) { 
430          if (Utilities.noString(value))
431            this.linkId = null;
432          else {
433            if (this.linkId == null)
434              this.linkId = new StringType();
435            this.linkId.setValue(value);
436          }
437          return this;
438        }
439
440        /**
441         * @return {@link #code} (Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.)
442         */
443        public CodeableConcept getCode() { 
444          if (this.code == null)
445            if (Configuration.errorOnAutoCreate())
446              throw new Error("Attempt to auto-create MeasureGroupComponent.code");
447            else if (Configuration.doAutoCreate())
448              this.code = new CodeableConcept(); // cc
449          return this.code;
450        }
451
452        public boolean hasCode() { 
453          return this.code != null && !this.code.isEmpty();
454        }
455
456        /**
457         * @param value {@link #code} (Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.)
458         */
459        public MeasureGroupComponent setCode(CodeableConcept value) { 
460          this.code = value;
461          return this;
462        }
463
464        /**
465         * @return {@link #description} (The human readable description of this population group.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
466         */
467        public MarkdownType getDescriptionElement() { 
468          if (this.description == null)
469            if (Configuration.errorOnAutoCreate())
470              throw new Error("Attempt to auto-create MeasureGroupComponent.description");
471            else if (Configuration.doAutoCreate())
472              this.description = new MarkdownType(); // bb
473          return this.description;
474        }
475
476        public boolean hasDescriptionElement() { 
477          return this.description != null && !this.description.isEmpty();
478        }
479
480        public boolean hasDescription() { 
481          return this.description != null && !this.description.isEmpty();
482        }
483
484        /**
485         * @param value {@link #description} (The human readable description of this population group.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
486         */
487        public MeasureGroupComponent setDescriptionElement(MarkdownType value) { 
488          this.description = value;
489          return this;
490        }
491
492        /**
493         * @return The human readable description of this population group.
494         */
495        public String getDescription() { 
496          return this.description == null ? null : this.description.getValue();
497        }
498
499        /**
500         * @param value The human readable description of this population group.
501         */
502        public MeasureGroupComponent setDescription(String value) { 
503          if (Utilities.noString(value))
504            this.description = null;
505          else {
506            if (this.description == null)
507              this.description = new MarkdownType();
508            this.description.setValue(value);
509          }
510          return this;
511        }
512
513        /**
514         * @return {@link #type} (Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.)
515         */
516        public List<CodeableConcept> getType() { 
517          if (this.type == null)
518            this.type = new ArrayList<CodeableConcept>();
519          return this.type;
520        }
521
522        /**
523         * @return Returns a reference to <code>this</code> for easy method chaining
524         */
525        public MeasureGroupComponent setType(List<CodeableConcept> theType) { 
526          this.type = theType;
527          return this;
528        }
529
530        public boolean hasType() { 
531          if (this.type == null)
532            return false;
533          for (CodeableConcept item : this.type)
534            if (!item.isEmpty())
535              return true;
536          return false;
537        }
538
539        public CodeableConcept addType() { //3
540          CodeableConcept t = new CodeableConcept();
541          if (this.type == null)
542            this.type = new ArrayList<CodeableConcept>();
543          this.type.add(t);
544          return t;
545        }
546
547        public MeasureGroupComponent addType(CodeableConcept t) { //3
548          if (t == null)
549            return this;
550          if (this.type == null)
551            this.type = new ArrayList<CodeableConcept>();
552          this.type.add(t);
553          return this;
554        }
555
556        /**
557         * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3}
558         */
559        public CodeableConcept getTypeFirstRep() { 
560          if (getType().isEmpty()) {
561            addType();
562          }
563          return getType().get(0);
564        }
565
566        /**
567         * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
568         */
569        public DataType getSubject() { 
570          return this.subject;
571        }
572
573        /**
574         * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
575         */
576        public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 
577          if (this.subject == null)
578            this.subject = new CodeableConcept();
579          if (!(this.subject instanceof CodeableConcept))
580            throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered");
581          return (CodeableConcept) this.subject;
582        }
583
584        public boolean hasSubjectCodeableConcept() { 
585          return this != null && this.subject instanceof CodeableConcept;
586        }
587
588        /**
589         * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
590         */
591        public Reference getSubjectReference() throws FHIRException { 
592          if (this.subject == null)
593            this.subject = new Reference();
594          if (!(this.subject instanceof Reference))
595            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered");
596          return (Reference) this.subject;
597        }
598
599        public boolean hasSubjectReference() { 
600          return this != null && this.subject instanceof Reference;
601        }
602
603        public boolean hasSubject() { 
604          return this.subject != null && !this.subject.isEmpty();
605        }
606
607        /**
608         * @param value {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
609         */
610        public MeasureGroupComponent setSubject(DataType value) { 
611          if (value != null && !(value instanceof CodeableConcept || value instanceof Reference))
612            throw new FHIRException("Not the right type for Measure.group.subject[x]: "+value.fhirType());
613          this.subject = value;
614          return this;
615        }
616
617        /**
618         * @return {@link #basis} (The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.). This is the underlying object with id, value and extensions. The accessor "getBasis" gives direct access to the value
619         */
620        public Enumeration<FHIRTypes> getBasisElement() { 
621          if (this.basis == null)
622            if (Configuration.errorOnAutoCreate())
623              throw new Error("Attempt to auto-create MeasureGroupComponent.basis");
624            else if (Configuration.doAutoCreate())
625              this.basis = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory()); // bb
626          return this.basis;
627        }
628
629        public boolean hasBasisElement() { 
630          return this.basis != null && !this.basis.isEmpty();
631        }
632
633        public boolean hasBasis() { 
634          return this.basis != null && !this.basis.isEmpty();
635        }
636
637        /**
638         * @param value {@link #basis} (The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.). This is the underlying object with id, value and extensions. The accessor "getBasis" gives direct access to the value
639         */
640        public MeasureGroupComponent setBasisElement(Enumeration<FHIRTypes> value) { 
641          this.basis = value;
642          return this;
643        }
644
645        /**
646         * @return The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.
647         */
648        public FHIRTypes getBasis() { 
649          return this.basis == null ? null : this.basis.getValue();
650        }
651
652        /**
653         * @param value The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.
654         */
655        public MeasureGroupComponent setBasis(FHIRTypes value) { 
656          if (value == null)
657            this.basis = null;
658          else {
659            if (this.basis == null)
660              this.basis = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory());
661            this.basis.setValue(value);
662          }
663          return this;
664        }
665
666        /**
667         * @return {@link #scoring} (Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.)
668         */
669        public CodeableConcept getScoring() { 
670          if (this.scoring == null)
671            if (Configuration.errorOnAutoCreate())
672              throw new Error("Attempt to auto-create MeasureGroupComponent.scoring");
673            else if (Configuration.doAutoCreate())
674              this.scoring = new CodeableConcept(); // cc
675          return this.scoring;
676        }
677
678        public boolean hasScoring() { 
679          return this.scoring != null && !this.scoring.isEmpty();
680        }
681
682        /**
683         * @param value {@link #scoring} (Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.)
684         */
685        public MeasureGroupComponent setScoring(CodeableConcept value) { 
686          this.scoring = value;
687          return this;
688        }
689
690        /**
691         * @return {@link #scoringUnit} (Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.)
692         */
693        public CodeableConcept getScoringUnit() { 
694          if (this.scoringUnit == null)
695            if (Configuration.errorOnAutoCreate())
696              throw new Error("Attempt to auto-create MeasureGroupComponent.scoringUnit");
697            else if (Configuration.doAutoCreate())
698              this.scoringUnit = new CodeableConcept(); // cc
699          return this.scoringUnit;
700        }
701
702        public boolean hasScoringUnit() { 
703          return this.scoringUnit != null && !this.scoringUnit.isEmpty();
704        }
705
706        /**
707         * @param value {@link #scoringUnit} (Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.)
708         */
709        public MeasureGroupComponent setScoringUnit(CodeableConcept value) { 
710          this.scoringUnit = value;
711          return this;
712        }
713
714        /**
715         * @return {@link #rateAggregation} (Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.). This is the underlying object with id, value and extensions. The accessor "getRateAggregation" gives direct access to the value
716         */
717        public MarkdownType getRateAggregationElement() { 
718          if (this.rateAggregation == null)
719            if (Configuration.errorOnAutoCreate())
720              throw new Error("Attempt to auto-create MeasureGroupComponent.rateAggregation");
721            else if (Configuration.doAutoCreate())
722              this.rateAggregation = new MarkdownType(); // bb
723          return this.rateAggregation;
724        }
725
726        public boolean hasRateAggregationElement() { 
727          return this.rateAggregation != null && !this.rateAggregation.isEmpty();
728        }
729
730        public boolean hasRateAggregation() { 
731          return this.rateAggregation != null && !this.rateAggregation.isEmpty();
732        }
733
734        /**
735         * @param value {@link #rateAggregation} (Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.). This is the underlying object with id, value and extensions. The accessor "getRateAggregation" gives direct access to the value
736         */
737        public MeasureGroupComponent setRateAggregationElement(MarkdownType value) { 
738          this.rateAggregation = value;
739          return this;
740        }
741
742        /**
743         * @return Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.
744         */
745        public String getRateAggregation() { 
746          return this.rateAggregation == null ? null : this.rateAggregation.getValue();
747        }
748
749        /**
750         * @param value Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.
751         */
752        public MeasureGroupComponent setRateAggregation(String value) { 
753          if (Utilities.noString(value))
754            this.rateAggregation = null;
755          else {
756            if (this.rateAggregation == null)
757              this.rateAggregation = new MarkdownType();
758            this.rateAggregation.setValue(value);
759          }
760          return this;
761        }
762
763        /**
764         * @return {@link #improvementNotation} (Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).)
765         */
766        public CodeableConcept getImprovementNotation() { 
767          if (this.improvementNotation == null)
768            if (Configuration.errorOnAutoCreate())
769              throw new Error("Attempt to auto-create MeasureGroupComponent.improvementNotation");
770            else if (Configuration.doAutoCreate())
771              this.improvementNotation = new CodeableConcept(); // cc
772          return this.improvementNotation;
773        }
774
775        public boolean hasImprovementNotation() { 
776          return this.improvementNotation != null && !this.improvementNotation.isEmpty();
777        }
778
779        /**
780         * @param value {@link #improvementNotation} (Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).)
781         */
782        public MeasureGroupComponent setImprovementNotation(CodeableConcept value) { 
783          this.improvementNotation = value;
784          return this;
785        }
786
787        /**
788         * @return {@link #library} (A reference to a Library resource containing the formal logic used by the measure group.)
789         */
790        public List<CanonicalType> getLibrary() { 
791          if (this.library == null)
792            this.library = new ArrayList<CanonicalType>();
793          return this.library;
794        }
795
796        /**
797         * @return Returns a reference to <code>this</code> for easy method chaining
798         */
799        public MeasureGroupComponent setLibrary(List<CanonicalType> theLibrary) { 
800          this.library = theLibrary;
801          return this;
802        }
803
804        public boolean hasLibrary() { 
805          if (this.library == null)
806            return false;
807          for (CanonicalType item : this.library)
808            if (!item.isEmpty())
809              return true;
810          return false;
811        }
812
813        /**
814         * @return {@link #library} (A reference to a Library resource containing the formal logic used by the measure group.)
815         */
816        public CanonicalType addLibraryElement() {//2 
817          CanonicalType t = new CanonicalType();
818          if (this.library == null)
819            this.library = new ArrayList<CanonicalType>();
820          this.library.add(t);
821          return t;
822        }
823
824        /**
825         * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the measure group.)
826         */
827        public MeasureGroupComponent addLibrary(String value) { //1
828          CanonicalType t = new CanonicalType();
829          t.setValue(value);
830          if (this.library == null)
831            this.library = new ArrayList<CanonicalType>();
832          this.library.add(t);
833          return this;
834        }
835
836        /**
837         * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the measure group.)
838         */
839        public boolean hasLibrary(String value) { 
840          if (this.library == null)
841            return false;
842          for (CanonicalType v : this.library)
843            if (v.getValue().equals(value)) // canonical
844              return true;
845          return false;
846        }
847
848        /**
849         * @return {@link #population} (A population criteria for the measure.)
850         */
851        public List<MeasureGroupPopulationComponent> getPopulation() { 
852          if (this.population == null)
853            this.population = new ArrayList<MeasureGroupPopulationComponent>();
854          return this.population;
855        }
856
857        /**
858         * @return Returns a reference to <code>this</code> for easy method chaining
859         */
860        public MeasureGroupComponent setPopulation(List<MeasureGroupPopulationComponent> thePopulation) { 
861          this.population = thePopulation;
862          return this;
863        }
864
865        public boolean hasPopulation() { 
866          if (this.population == null)
867            return false;
868          for (MeasureGroupPopulationComponent item : this.population)
869            if (!item.isEmpty())
870              return true;
871          return false;
872        }
873
874        public MeasureGroupPopulationComponent addPopulation() { //3
875          MeasureGroupPopulationComponent t = new MeasureGroupPopulationComponent();
876          if (this.population == null)
877            this.population = new ArrayList<MeasureGroupPopulationComponent>();
878          this.population.add(t);
879          return t;
880        }
881
882        public MeasureGroupComponent addPopulation(MeasureGroupPopulationComponent t) { //3
883          if (t == null)
884            return this;
885          if (this.population == null)
886            this.population = new ArrayList<MeasureGroupPopulationComponent>();
887          this.population.add(t);
888          return this;
889        }
890
891        /**
892         * @return The first repetition of repeating field {@link #population}, creating it if it does not already exist {3}
893         */
894        public MeasureGroupPopulationComponent getPopulationFirstRep() { 
895          if (getPopulation().isEmpty()) {
896            addPopulation();
897          }
898          return getPopulation().get(0);
899        }
900
901        /**
902         * @return {@link #stratifier} (The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.)
903         */
904        public List<MeasureGroupStratifierComponent> getStratifier() { 
905          if (this.stratifier == null)
906            this.stratifier = new ArrayList<MeasureGroupStratifierComponent>();
907          return this.stratifier;
908        }
909
910        /**
911         * @return Returns a reference to <code>this</code> for easy method chaining
912         */
913        public MeasureGroupComponent setStratifier(List<MeasureGroupStratifierComponent> theStratifier) { 
914          this.stratifier = theStratifier;
915          return this;
916        }
917
918        public boolean hasStratifier() { 
919          if (this.stratifier == null)
920            return false;
921          for (MeasureGroupStratifierComponent item : this.stratifier)
922            if (!item.isEmpty())
923              return true;
924          return false;
925        }
926
927        public MeasureGroupStratifierComponent addStratifier() { //3
928          MeasureGroupStratifierComponent t = new MeasureGroupStratifierComponent();
929          if (this.stratifier == null)
930            this.stratifier = new ArrayList<MeasureGroupStratifierComponent>();
931          this.stratifier.add(t);
932          return t;
933        }
934
935        public MeasureGroupComponent addStratifier(MeasureGroupStratifierComponent t) { //3
936          if (t == null)
937            return this;
938          if (this.stratifier == null)
939            this.stratifier = new ArrayList<MeasureGroupStratifierComponent>();
940          this.stratifier.add(t);
941          return this;
942        }
943
944        /**
945         * @return The first repetition of repeating field {@link #stratifier}, creating it if it does not already exist {3}
946         */
947        public MeasureGroupStratifierComponent getStratifierFirstRep() { 
948          if (getStratifier().isEmpty()) {
949            addStratifier();
950          }
951          return getStratifier().get(0);
952        }
953
954        protected void listChildren(List<Property> children) {
955          super.listChildren(children);
956          children.add(new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId));
957          children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.", 0, 1, code));
958          children.add(new Property("description", "markdown", "The human readable description of this population group.", 0, 1, description));
959          children.add(new Property("type", "CodeableConcept", "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.", 0, java.lang.Integer.MAX_VALUE, type));
960          children.add(new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject));
961          children.add(new Property("basis", "code", "The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.", 0, 1, basis));
962          children.add(new Property("scoring", "CodeableConcept", "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.", 0, 1, scoring));
963          children.add(new Property("scoringUnit", "CodeableConcept", "Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.", 0, 1, scoringUnit));
964          children.add(new Property("rateAggregation", "markdown", "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.", 0, 1, rateAggregation));
965          children.add(new Property("improvementNotation", "CodeableConcept", "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).", 0, 1, improvementNotation));
966          children.add(new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the measure group.", 0, java.lang.Integer.MAX_VALUE, library));
967          children.add(new Property("population", "", "A population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, population));
968          children.add(new Property("stratifier", "", "The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, stratifier));
969        }
970
971        @Override
972        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
973          switch (_hash) {
974          case -1102667083: /*linkId*/  return new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId);
975          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures.", 0, 1, code);
976          case -1724546052: /*description*/  return new Property("description", "markdown", "The human readable description of this population group.", 0, 1, description);
977          case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.", 0, java.lang.Integer.MAX_VALUE, type);
978          case -573640748: /*subject[x]*/  return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
979          case -1867885268: /*subject*/  return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
980          case -1257122603: /*subjectCodeableConcept*/  return new Property("subject[x]", "CodeableConcept", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
981          case 772938623: /*subjectReference*/  return new Property("subject[x]", "Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
982          case 93508670: /*basis*/  return new Property("basis", "code", "The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.", 0, 1, basis);
983          case 1924005583: /*scoring*/  return new Property("scoring", "CodeableConcept", "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.", 0, 1, scoring);
984          case 1527532787: /*scoringUnit*/  return new Property("scoringUnit", "CodeableConcept", "Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.", 0, 1, scoringUnit);
985          case 1254503906: /*rateAggregation*/  return new Property("rateAggregation", "markdown", "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.", 0, 1, rateAggregation);
986          case -2085456136: /*improvementNotation*/  return new Property("improvementNotation", "CodeableConcept", "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).", 0, 1, improvementNotation);
987          case 166208699: /*library*/  return new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the measure group.", 0, java.lang.Integer.MAX_VALUE, library);
988          case -2023558323: /*population*/  return new Property("population", "", "A population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, population);
989          case 90983669: /*stratifier*/  return new Property("stratifier", "", "The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, stratifier);
990          default: return super.getNamedProperty(_hash, _name, _checkValid);
991          }
992
993        }
994
995      @Override
996      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
997        switch (hash) {
998        case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType
999        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1000        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1001        case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept
1002        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // DataType
1003        case 93508670: /*basis*/ return this.basis == null ? new Base[0] : new Base[] {this.basis}; // Enumeration<FHIRTypes>
1004        case 1924005583: /*scoring*/ return this.scoring == null ? new Base[0] : new Base[] {this.scoring}; // CodeableConcept
1005        case 1527532787: /*scoringUnit*/ return this.scoringUnit == null ? new Base[0] : new Base[] {this.scoringUnit}; // CodeableConcept
1006        case 1254503906: /*rateAggregation*/ return this.rateAggregation == null ? new Base[0] : new Base[] {this.rateAggregation}; // MarkdownType
1007        case -2085456136: /*improvementNotation*/ return this.improvementNotation == null ? new Base[0] : new Base[] {this.improvementNotation}; // CodeableConcept
1008        case 166208699: /*library*/ return this.library == null ? new Base[0] : this.library.toArray(new Base[this.library.size()]); // CanonicalType
1009        case -2023558323: /*population*/ return this.population == null ? new Base[0] : this.population.toArray(new Base[this.population.size()]); // MeasureGroupPopulationComponent
1010        case 90983669: /*stratifier*/ return this.stratifier == null ? new Base[0] : this.stratifier.toArray(new Base[this.stratifier.size()]); // MeasureGroupStratifierComponent
1011        default: return super.getProperty(hash, name, checkValid);
1012        }
1013
1014      }
1015
1016      @Override
1017      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1018        switch (hash) {
1019        case -1102667083: // linkId
1020          this.linkId = TypeConvertor.castToString(value); // StringType
1021          return value;
1022        case 3059181: // code
1023          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1024          return value;
1025        case -1724546052: // description
1026          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1027          return value;
1028        case 3575610: // type
1029          this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1030          return value;
1031        case -1867885268: // subject
1032          this.subject = TypeConvertor.castToType(value); // DataType
1033          return value;
1034        case 93508670: // basis
1035          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1036          this.basis = (Enumeration) value; // Enumeration<FHIRTypes>
1037          return value;
1038        case 1924005583: // scoring
1039          this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1040          return value;
1041        case 1527532787: // scoringUnit
1042          this.scoringUnit = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1043          return value;
1044        case 1254503906: // rateAggregation
1045          this.rateAggregation = TypeConvertor.castToMarkdown(value); // MarkdownType
1046          return value;
1047        case -2085456136: // improvementNotation
1048          this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1049          return value;
1050        case 166208699: // library
1051          this.getLibrary().add(TypeConvertor.castToCanonical(value)); // CanonicalType
1052          return value;
1053        case -2023558323: // population
1054          this.getPopulation().add((MeasureGroupPopulationComponent) value); // MeasureGroupPopulationComponent
1055          return value;
1056        case 90983669: // stratifier
1057          this.getStratifier().add((MeasureGroupStratifierComponent) value); // MeasureGroupStratifierComponent
1058          return value;
1059        default: return super.setProperty(hash, name, value);
1060        }
1061
1062      }
1063
1064      @Override
1065      public Base setProperty(String name, Base value) throws FHIRException {
1066        if (name.equals("linkId")) {
1067          this.linkId = TypeConvertor.castToString(value); // StringType
1068        } else if (name.equals("code")) {
1069          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1070        } else if (name.equals("description")) {
1071          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1072        } else if (name.equals("type")) {
1073          this.getType().add(TypeConvertor.castToCodeableConcept(value));
1074        } else if (name.equals("subject[x]")) {
1075          this.subject = TypeConvertor.castToType(value); // DataType
1076        } else if (name.equals("basis")) {
1077          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
1078          this.basis = (Enumeration) value; // Enumeration<FHIRTypes>
1079        } else if (name.equals("scoring")) {
1080          this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1081        } else if (name.equals("scoringUnit")) {
1082          this.scoringUnit = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1083        } else if (name.equals("rateAggregation")) {
1084          this.rateAggregation = TypeConvertor.castToMarkdown(value); // MarkdownType
1085        } else if (name.equals("improvementNotation")) {
1086          this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1087        } else if (name.equals("library")) {
1088          this.getLibrary().add(TypeConvertor.castToCanonical(value));
1089        } else if (name.equals("population")) {
1090          this.getPopulation().add((MeasureGroupPopulationComponent) value);
1091        } else if (name.equals("stratifier")) {
1092          this.getStratifier().add((MeasureGroupStratifierComponent) value);
1093        } else
1094          return super.setProperty(name, value);
1095        return value;
1096      }
1097
1098      @Override
1099      public Base makeProperty(int hash, String name) throws FHIRException {
1100        switch (hash) {
1101        case -1102667083:  return getLinkIdElement();
1102        case 3059181:  return getCode();
1103        case -1724546052:  return getDescriptionElement();
1104        case 3575610:  return addType(); 
1105        case -573640748:  return getSubject();
1106        case -1867885268:  return getSubject();
1107        case 93508670:  return getBasisElement();
1108        case 1924005583:  return getScoring();
1109        case 1527532787:  return getScoringUnit();
1110        case 1254503906:  return getRateAggregationElement();
1111        case -2085456136:  return getImprovementNotation();
1112        case 166208699:  return addLibraryElement();
1113        case -2023558323:  return addPopulation(); 
1114        case 90983669:  return addStratifier(); 
1115        default: return super.makeProperty(hash, name);
1116        }
1117
1118      }
1119
1120      @Override
1121      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1122        switch (hash) {
1123        case -1102667083: /*linkId*/ return new String[] {"string"};
1124        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1125        case -1724546052: /*description*/ return new String[] {"markdown"};
1126        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
1127        case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"};
1128        case 93508670: /*basis*/ return new String[] {"code"};
1129        case 1924005583: /*scoring*/ return new String[] {"CodeableConcept"};
1130        case 1527532787: /*scoringUnit*/ return new String[] {"CodeableConcept"};
1131        case 1254503906: /*rateAggregation*/ return new String[] {"markdown"};
1132        case -2085456136: /*improvementNotation*/ return new String[] {"CodeableConcept"};
1133        case 166208699: /*library*/ return new String[] {"canonical"};
1134        case -2023558323: /*population*/ return new String[] {};
1135        case 90983669: /*stratifier*/ return new String[] {};
1136        default: return super.getTypesForProperty(hash, name);
1137        }
1138
1139      }
1140
1141      @Override
1142      public Base addChild(String name) throws FHIRException {
1143        if (name.equals("linkId")) {
1144          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.linkId");
1145        }
1146        else if (name.equals("code")) {
1147          this.code = new CodeableConcept();
1148          return this.code;
1149        }
1150        else if (name.equals("description")) {
1151          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.description");
1152        }
1153        else if (name.equals("type")) {
1154          return addType();
1155        }
1156        else if (name.equals("subjectCodeableConcept")) {
1157          this.subject = new CodeableConcept();
1158          return this.subject;
1159        }
1160        else if (name.equals("subjectReference")) {
1161          this.subject = new Reference();
1162          return this.subject;
1163        }
1164        else if (name.equals("basis")) {
1165          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.basis");
1166        }
1167        else if (name.equals("scoring")) {
1168          this.scoring = new CodeableConcept();
1169          return this.scoring;
1170        }
1171        else if (name.equals("scoringUnit")) {
1172          this.scoringUnit = new CodeableConcept();
1173          return this.scoringUnit;
1174        }
1175        else if (name.equals("rateAggregation")) {
1176          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.rateAggregation");
1177        }
1178        else if (name.equals("improvementNotation")) {
1179          this.improvementNotation = new CodeableConcept();
1180          return this.improvementNotation;
1181        }
1182        else if (name.equals("library")) {
1183          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.library");
1184        }
1185        else if (name.equals("population")) {
1186          return addPopulation();
1187        }
1188        else if (name.equals("stratifier")) {
1189          return addStratifier();
1190        }
1191        else
1192          return super.addChild(name);
1193      }
1194
1195      public MeasureGroupComponent copy() {
1196        MeasureGroupComponent dst = new MeasureGroupComponent();
1197        copyValues(dst);
1198        return dst;
1199      }
1200
1201      public void copyValues(MeasureGroupComponent dst) {
1202        super.copyValues(dst);
1203        dst.linkId = linkId == null ? null : linkId.copy();
1204        dst.code = code == null ? null : code.copy();
1205        dst.description = description == null ? null : description.copy();
1206        if (type != null) {
1207          dst.type = new ArrayList<CodeableConcept>();
1208          for (CodeableConcept i : type)
1209            dst.type.add(i.copy());
1210        };
1211        dst.subject = subject == null ? null : subject.copy();
1212        dst.basis = basis == null ? null : basis.copy();
1213        dst.scoring = scoring == null ? null : scoring.copy();
1214        dst.scoringUnit = scoringUnit == null ? null : scoringUnit.copy();
1215        dst.rateAggregation = rateAggregation == null ? null : rateAggregation.copy();
1216        dst.improvementNotation = improvementNotation == null ? null : improvementNotation.copy();
1217        if (library != null) {
1218          dst.library = new ArrayList<CanonicalType>();
1219          for (CanonicalType i : library)
1220            dst.library.add(i.copy());
1221        };
1222        if (population != null) {
1223          dst.population = new ArrayList<MeasureGroupPopulationComponent>();
1224          for (MeasureGroupPopulationComponent i : population)
1225            dst.population.add(i.copy());
1226        };
1227        if (stratifier != null) {
1228          dst.stratifier = new ArrayList<MeasureGroupStratifierComponent>();
1229          for (MeasureGroupStratifierComponent i : stratifier)
1230            dst.stratifier.add(i.copy());
1231        };
1232      }
1233
1234      @Override
1235      public boolean equalsDeep(Base other_) {
1236        if (!super.equalsDeep(other_))
1237          return false;
1238        if (!(other_ instanceof MeasureGroupComponent))
1239          return false;
1240        MeasureGroupComponent o = (MeasureGroupComponent) other_;
1241        return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true)
1242           && compareDeep(type, o.type, true) && compareDeep(subject, o.subject, true) && compareDeep(basis, o.basis, true)
1243           && compareDeep(scoring, o.scoring, true) && compareDeep(scoringUnit, o.scoringUnit, true) && compareDeep(rateAggregation, o.rateAggregation, true)
1244           && compareDeep(improvementNotation, o.improvementNotation, true) && compareDeep(library, o.library, true)
1245           && compareDeep(population, o.population, true) && compareDeep(stratifier, o.stratifier, true);
1246      }
1247
1248      @Override
1249      public boolean equalsShallow(Base other_) {
1250        if (!super.equalsShallow(other_))
1251          return false;
1252        if (!(other_ instanceof MeasureGroupComponent))
1253          return false;
1254        MeasureGroupComponent o = (MeasureGroupComponent) other_;
1255        return compareValues(linkId, o.linkId, true) && compareValues(description, o.description, true) && compareValues(basis, o.basis, true)
1256           && compareValues(rateAggregation, o.rateAggregation, true) && compareValues(library, o.library, true)
1257          ;
1258      }
1259
1260      public boolean isEmpty() {
1261        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, description
1262          , type, subject, basis, scoring, scoringUnit, rateAggregation, improvementNotation
1263          , library, population, stratifier);
1264      }
1265
1266  public String fhirType() {
1267    return "Measure.group";
1268
1269  }
1270
1271  }
1272
1273    @Block()
1274    public static class MeasureGroupPopulationComponent extends BackboneElement implements IBaseBackboneElement {
1275        /**
1276         * An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.
1277         */
1278        @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
1279        @Description(shortDefinition="Unique id for population in measure", formalDefinition="An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource." )
1280        protected StringType linkId;
1281
1282        /**
1283         * The type of population criteria.
1284         */
1285        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
1286        @Description(shortDefinition="initial-population | numerator | numerator-exclusion | denominator | denominator-exclusion | denominator-exception | measure-population | measure-population-exclusion | measure-observation", formalDefinition="The type of population criteria." )
1287        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-population")
1288        protected CodeableConcept code;
1289
1290        /**
1291         * The human readable description of this population criteria.
1292         */
1293        @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false)
1294        @Description(shortDefinition="The human readable description of this population criteria", formalDefinition="The human readable description of this population criteria." )
1295        protected MarkdownType description;
1296
1297        /**
1298         * An expression that specifies the criteria for the population, typically the name of an expression in a library.
1299         */
1300        @Child(name = "criteria", type = {Expression.class}, order=4, min=0, max=1, modifier=false, summary=false)
1301        @Description(shortDefinition="The criteria that defines this population", formalDefinition="An expression that specifies the criteria for the population, typically the name of an expression in a library." )
1302        protected Expression criteria;
1303
1304        /**
1305         * A Group resource that defines this population as a set of characteristics.
1306         */
1307        @Child(name = "groupDefinition", type = {Group.class}, order=5, min=0, max=1, modifier=false, summary=false)
1308        @Description(shortDefinition="A group resource that defines this population", formalDefinition="A Group resource that defines this population as a set of characteristics." )
1309        protected Reference groupDefinition;
1310
1311        /**
1312         * The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.
1313         */
1314        @Child(name = "inputPopulationId", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false)
1315        @Description(shortDefinition="Which population", formalDefinition="The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point." )
1316        protected StringType inputPopulationId;
1317
1318        /**
1319         * Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.
1320         */
1321        @Child(name = "aggregateMethod", type = {CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=false)
1322        @Description(shortDefinition="Aggregation method for a measure score (e.g. sum, average, median, minimum, maximum, count)", formalDefinition="Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation." )
1323        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-aggregate-method")
1324        protected CodeableConcept aggregateMethod;
1325
1326        private static final long serialVersionUID = -1233952485L;
1327
1328    /**
1329     * Constructor
1330     */
1331      public MeasureGroupPopulationComponent() {
1332        super();
1333      }
1334
1335        /**
1336         * @return {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
1337         */
1338        public StringType getLinkIdElement() { 
1339          if (this.linkId == null)
1340            if (Configuration.errorOnAutoCreate())
1341              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.linkId");
1342            else if (Configuration.doAutoCreate())
1343              this.linkId = new StringType(); // bb
1344          return this.linkId;
1345        }
1346
1347        public boolean hasLinkIdElement() { 
1348          return this.linkId != null && !this.linkId.isEmpty();
1349        }
1350
1351        public boolean hasLinkId() { 
1352          return this.linkId != null && !this.linkId.isEmpty();
1353        }
1354
1355        /**
1356         * @param value {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
1357         */
1358        public MeasureGroupPopulationComponent setLinkIdElement(StringType value) { 
1359          this.linkId = value;
1360          return this;
1361        }
1362
1363        /**
1364         * @return An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.
1365         */
1366        public String getLinkId() { 
1367          return this.linkId == null ? null : this.linkId.getValue();
1368        }
1369
1370        /**
1371         * @param value An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.
1372         */
1373        public MeasureGroupPopulationComponent setLinkId(String value) { 
1374          if (Utilities.noString(value))
1375            this.linkId = null;
1376          else {
1377            if (this.linkId == null)
1378              this.linkId = new StringType();
1379            this.linkId.setValue(value);
1380          }
1381          return this;
1382        }
1383
1384        /**
1385         * @return {@link #code} (The type of population criteria.)
1386         */
1387        public CodeableConcept getCode() { 
1388          if (this.code == null)
1389            if (Configuration.errorOnAutoCreate())
1390              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.code");
1391            else if (Configuration.doAutoCreate())
1392              this.code = new CodeableConcept(); // cc
1393          return this.code;
1394        }
1395
1396        public boolean hasCode() { 
1397          return this.code != null && !this.code.isEmpty();
1398        }
1399
1400        /**
1401         * @param value {@link #code} (The type of population criteria.)
1402         */
1403        public MeasureGroupPopulationComponent setCode(CodeableConcept value) { 
1404          this.code = value;
1405          return this;
1406        }
1407
1408        /**
1409         * @return {@link #description} (The human readable description of this population criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1410         */
1411        public MarkdownType getDescriptionElement() { 
1412          if (this.description == null)
1413            if (Configuration.errorOnAutoCreate())
1414              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.description");
1415            else if (Configuration.doAutoCreate())
1416              this.description = new MarkdownType(); // bb
1417          return this.description;
1418        }
1419
1420        public boolean hasDescriptionElement() { 
1421          return this.description != null && !this.description.isEmpty();
1422        }
1423
1424        public boolean hasDescription() { 
1425          return this.description != null && !this.description.isEmpty();
1426        }
1427
1428        /**
1429         * @param value {@link #description} (The human readable description of this population criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1430         */
1431        public MeasureGroupPopulationComponent setDescriptionElement(MarkdownType value) { 
1432          this.description = value;
1433          return this;
1434        }
1435
1436        /**
1437         * @return The human readable description of this population criteria.
1438         */
1439        public String getDescription() { 
1440          return this.description == null ? null : this.description.getValue();
1441        }
1442
1443        /**
1444         * @param value The human readable description of this population criteria.
1445         */
1446        public MeasureGroupPopulationComponent setDescription(String value) { 
1447          if (Utilities.noString(value))
1448            this.description = null;
1449          else {
1450            if (this.description == null)
1451              this.description = new MarkdownType();
1452            this.description.setValue(value);
1453          }
1454          return this;
1455        }
1456
1457        /**
1458         * @return {@link #criteria} (An expression that specifies the criteria for the population, typically the name of an expression in a library.)
1459         */
1460        public Expression getCriteria() { 
1461          if (this.criteria == null)
1462            if (Configuration.errorOnAutoCreate())
1463              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.criteria");
1464            else if (Configuration.doAutoCreate())
1465              this.criteria = new Expression(); // cc
1466          return this.criteria;
1467        }
1468
1469        public boolean hasCriteria() { 
1470          return this.criteria != null && !this.criteria.isEmpty();
1471        }
1472
1473        /**
1474         * @param value {@link #criteria} (An expression that specifies the criteria for the population, typically the name of an expression in a library.)
1475         */
1476        public MeasureGroupPopulationComponent setCriteria(Expression value) { 
1477          this.criteria = value;
1478          return this;
1479        }
1480
1481        /**
1482         * @return {@link #groupDefinition} (A Group resource that defines this population as a set of characteristics.)
1483         */
1484        public Reference getGroupDefinition() { 
1485          if (this.groupDefinition == null)
1486            if (Configuration.errorOnAutoCreate())
1487              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.groupDefinition");
1488            else if (Configuration.doAutoCreate())
1489              this.groupDefinition = new Reference(); // cc
1490          return this.groupDefinition;
1491        }
1492
1493        public boolean hasGroupDefinition() { 
1494          return this.groupDefinition != null && !this.groupDefinition.isEmpty();
1495        }
1496
1497        /**
1498         * @param value {@link #groupDefinition} (A Group resource that defines this population as a set of characteristics.)
1499         */
1500        public MeasureGroupPopulationComponent setGroupDefinition(Reference value) { 
1501          this.groupDefinition = value;
1502          return this;
1503        }
1504
1505        /**
1506         * @return {@link #inputPopulationId} (The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.). This is the underlying object with id, value and extensions. The accessor "getInputPopulationId" gives direct access to the value
1507         */
1508        public StringType getInputPopulationIdElement() { 
1509          if (this.inputPopulationId == null)
1510            if (Configuration.errorOnAutoCreate())
1511              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.inputPopulationId");
1512            else if (Configuration.doAutoCreate())
1513              this.inputPopulationId = new StringType(); // bb
1514          return this.inputPopulationId;
1515        }
1516
1517        public boolean hasInputPopulationIdElement() { 
1518          return this.inputPopulationId != null && !this.inputPopulationId.isEmpty();
1519        }
1520
1521        public boolean hasInputPopulationId() { 
1522          return this.inputPopulationId != null && !this.inputPopulationId.isEmpty();
1523        }
1524
1525        /**
1526         * @param value {@link #inputPopulationId} (The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.). This is the underlying object with id, value and extensions. The accessor "getInputPopulationId" gives direct access to the value
1527         */
1528        public MeasureGroupPopulationComponent setInputPopulationIdElement(StringType value) { 
1529          this.inputPopulationId = value;
1530          return this;
1531        }
1532
1533        /**
1534         * @return The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.
1535         */
1536        public String getInputPopulationId() { 
1537          return this.inputPopulationId == null ? null : this.inputPopulationId.getValue();
1538        }
1539
1540        /**
1541         * @param value The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.
1542         */
1543        public MeasureGroupPopulationComponent setInputPopulationId(String value) { 
1544          if (Utilities.noString(value))
1545            this.inputPopulationId = null;
1546          else {
1547            if (this.inputPopulationId == null)
1548              this.inputPopulationId = new StringType();
1549            this.inputPopulationId.setValue(value);
1550          }
1551          return this;
1552        }
1553
1554        /**
1555         * @return {@link #aggregateMethod} (Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.)
1556         */
1557        public CodeableConcept getAggregateMethod() { 
1558          if (this.aggregateMethod == null)
1559            if (Configuration.errorOnAutoCreate())
1560              throw new Error("Attempt to auto-create MeasureGroupPopulationComponent.aggregateMethod");
1561            else if (Configuration.doAutoCreate())
1562              this.aggregateMethod = new CodeableConcept(); // cc
1563          return this.aggregateMethod;
1564        }
1565
1566        public boolean hasAggregateMethod() { 
1567          return this.aggregateMethod != null && !this.aggregateMethod.isEmpty();
1568        }
1569
1570        /**
1571         * @param value {@link #aggregateMethod} (Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.)
1572         */
1573        public MeasureGroupPopulationComponent setAggregateMethod(CodeableConcept value) { 
1574          this.aggregateMethod = value;
1575          return this;
1576        }
1577
1578        protected void listChildren(List<Property> children) {
1579          super.listChildren(children);
1580          children.add(new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.", 0, 1, linkId));
1581          children.add(new Property("code", "CodeableConcept", "The type of population criteria.", 0, 1, code));
1582          children.add(new Property("description", "markdown", "The human readable description of this population criteria.", 0, 1, description));
1583          children.add(new Property("criteria", "Expression", "An expression that specifies the criteria for the population, typically the name of an expression in a library.", 0, 1, criteria));
1584          children.add(new Property("groupDefinition", "Reference(Group)", "A Group resource that defines this population as a set of characteristics.", 0, 1, groupDefinition));
1585          children.add(new Property("inputPopulationId", "string", "The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.", 0, 1, inputPopulationId));
1586          children.add(new Property("aggregateMethod", "CodeableConcept", "Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.", 0, 1, aggregateMethod));
1587        }
1588
1589        @Override
1590        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1591          switch (_hash) {
1592          case -1102667083: /*linkId*/  return new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent population in a MeasureReport resource.", 0, 1, linkId);
1593          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "The type of population criteria.", 0, 1, code);
1594          case -1724546052: /*description*/  return new Property("description", "markdown", "The human readable description of this population criteria.", 0, 1, description);
1595          case 1952046943: /*criteria*/  return new Property("criteria", "Expression", "An expression that specifies the criteria for the population, typically the name of an expression in a library.", 0, 1, criteria);
1596          case 158676274: /*groupDefinition*/  return new Property("groupDefinition", "Reference(Group)", "A Group resource that defines this population as a set of characteristics.", 0, 1, groupDefinition);
1597          case -464344526: /*inputPopulationId*/  return new Property("inputPopulationId", "string", "The id of a population element in this measure that provides the input for this population criteria. In most cases, the scoring structure of the measure implies specific relationships (e.g. the Numerator uses the Denominator as the source in a proportion scoring). In some cases, however, multiple possible choices exist and must be resolved explicitly. For example in a ratio measure with multiple initial populations, the denominator must specify which population should be used as the starting point.", 0, 1, inputPopulationId);
1598          case -1036416: /*aggregateMethod*/  return new Property("aggregateMethod", "CodeableConcept", "Specifies which method should be used to aggregate measure observation values. For most scoring types, this is implied by scoring (e.g. a proportion measure counts members of the populations). For continuous variables, however, this information must be specified to ensure correct calculation.", 0, 1, aggregateMethod);
1599          default: return super.getNamedProperty(_hash, _name, _checkValid);
1600          }
1601
1602        }
1603
1604      @Override
1605      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1606        switch (hash) {
1607        case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType
1608        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1609        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1610        case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression
1611        case 158676274: /*groupDefinition*/ return this.groupDefinition == null ? new Base[0] : new Base[] {this.groupDefinition}; // Reference
1612        case -464344526: /*inputPopulationId*/ return this.inputPopulationId == null ? new Base[0] : new Base[] {this.inputPopulationId}; // StringType
1613        case -1036416: /*aggregateMethod*/ return this.aggregateMethod == null ? new Base[0] : new Base[] {this.aggregateMethod}; // CodeableConcept
1614        default: return super.getProperty(hash, name, checkValid);
1615        }
1616
1617      }
1618
1619      @Override
1620      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1621        switch (hash) {
1622        case -1102667083: // linkId
1623          this.linkId = TypeConvertor.castToString(value); // StringType
1624          return value;
1625        case 3059181: // code
1626          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1627          return value;
1628        case -1724546052: // description
1629          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1630          return value;
1631        case 1952046943: // criteria
1632          this.criteria = TypeConvertor.castToExpression(value); // Expression
1633          return value;
1634        case 158676274: // groupDefinition
1635          this.groupDefinition = TypeConvertor.castToReference(value); // Reference
1636          return value;
1637        case -464344526: // inputPopulationId
1638          this.inputPopulationId = TypeConvertor.castToString(value); // StringType
1639          return value;
1640        case -1036416: // aggregateMethod
1641          this.aggregateMethod = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1642          return value;
1643        default: return super.setProperty(hash, name, value);
1644        }
1645
1646      }
1647
1648      @Override
1649      public Base setProperty(String name, Base value) throws FHIRException {
1650        if (name.equals("linkId")) {
1651          this.linkId = TypeConvertor.castToString(value); // StringType
1652        } else if (name.equals("code")) {
1653          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1654        } else if (name.equals("description")) {
1655          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1656        } else if (name.equals("criteria")) {
1657          this.criteria = TypeConvertor.castToExpression(value); // Expression
1658        } else if (name.equals("groupDefinition")) {
1659          this.groupDefinition = TypeConvertor.castToReference(value); // Reference
1660        } else if (name.equals("inputPopulationId")) {
1661          this.inputPopulationId = TypeConvertor.castToString(value); // StringType
1662        } else if (name.equals("aggregateMethod")) {
1663          this.aggregateMethod = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1664        } else
1665          return super.setProperty(name, value);
1666        return value;
1667      }
1668
1669      @Override
1670      public Base makeProperty(int hash, String name) throws FHIRException {
1671        switch (hash) {
1672        case -1102667083:  return getLinkIdElement();
1673        case 3059181:  return getCode();
1674        case -1724546052:  return getDescriptionElement();
1675        case 1952046943:  return getCriteria();
1676        case 158676274:  return getGroupDefinition();
1677        case -464344526:  return getInputPopulationIdElement();
1678        case -1036416:  return getAggregateMethod();
1679        default: return super.makeProperty(hash, name);
1680        }
1681
1682      }
1683
1684      @Override
1685      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1686        switch (hash) {
1687        case -1102667083: /*linkId*/ return new String[] {"string"};
1688        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1689        case -1724546052: /*description*/ return new String[] {"markdown"};
1690        case 1952046943: /*criteria*/ return new String[] {"Expression"};
1691        case 158676274: /*groupDefinition*/ return new String[] {"Reference"};
1692        case -464344526: /*inputPopulationId*/ return new String[] {"string"};
1693        case -1036416: /*aggregateMethod*/ return new String[] {"CodeableConcept"};
1694        default: return super.getTypesForProperty(hash, name);
1695        }
1696
1697      }
1698
1699      @Override
1700      public Base addChild(String name) throws FHIRException {
1701        if (name.equals("linkId")) {
1702          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.population.linkId");
1703        }
1704        else if (name.equals("code")) {
1705          this.code = new CodeableConcept();
1706          return this.code;
1707        }
1708        else if (name.equals("description")) {
1709          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.population.description");
1710        }
1711        else if (name.equals("criteria")) {
1712          this.criteria = new Expression();
1713          return this.criteria;
1714        }
1715        else if (name.equals("groupDefinition")) {
1716          this.groupDefinition = new Reference();
1717          return this.groupDefinition;
1718        }
1719        else if (name.equals("inputPopulationId")) {
1720          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.population.inputPopulationId");
1721        }
1722        else if (name.equals("aggregateMethod")) {
1723          this.aggregateMethod = new CodeableConcept();
1724          return this.aggregateMethod;
1725        }
1726        else
1727          return super.addChild(name);
1728      }
1729
1730      public MeasureGroupPopulationComponent copy() {
1731        MeasureGroupPopulationComponent dst = new MeasureGroupPopulationComponent();
1732        copyValues(dst);
1733        return dst;
1734      }
1735
1736      public void copyValues(MeasureGroupPopulationComponent dst) {
1737        super.copyValues(dst);
1738        dst.linkId = linkId == null ? null : linkId.copy();
1739        dst.code = code == null ? null : code.copy();
1740        dst.description = description == null ? null : description.copy();
1741        dst.criteria = criteria == null ? null : criteria.copy();
1742        dst.groupDefinition = groupDefinition == null ? null : groupDefinition.copy();
1743        dst.inputPopulationId = inputPopulationId == null ? null : inputPopulationId.copy();
1744        dst.aggregateMethod = aggregateMethod == null ? null : aggregateMethod.copy();
1745      }
1746
1747      @Override
1748      public boolean equalsDeep(Base other_) {
1749        if (!super.equalsDeep(other_))
1750          return false;
1751        if (!(other_ instanceof MeasureGroupPopulationComponent))
1752          return false;
1753        MeasureGroupPopulationComponent o = (MeasureGroupPopulationComponent) other_;
1754        return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true)
1755           && compareDeep(criteria, o.criteria, true) && compareDeep(groupDefinition, o.groupDefinition, true)
1756           && compareDeep(inputPopulationId, o.inputPopulationId, true) && compareDeep(aggregateMethod, o.aggregateMethod, true)
1757          ;
1758      }
1759
1760      @Override
1761      public boolean equalsShallow(Base other_) {
1762        if (!super.equalsShallow(other_))
1763          return false;
1764        if (!(other_ instanceof MeasureGroupPopulationComponent))
1765          return false;
1766        MeasureGroupPopulationComponent o = (MeasureGroupPopulationComponent) other_;
1767        return compareValues(linkId, o.linkId, true) && compareValues(description, o.description, true) && compareValues(inputPopulationId, o.inputPopulationId, true)
1768          ;
1769      }
1770
1771      public boolean isEmpty() {
1772        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, description
1773          , criteria, groupDefinition, inputPopulationId, aggregateMethod);
1774      }
1775
1776  public String fhirType() {
1777    return "Measure.group.population";
1778
1779  }
1780
1781  }
1782
1783    @Block()
1784    public static class MeasureGroupStratifierComponent extends BackboneElement implements IBaseBackboneElement {
1785        /**
1786         * An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
1787         */
1788        @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
1789        @Description(shortDefinition="Unique id for stratifier in measure", formalDefinition="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource." )
1790        protected StringType linkId;
1791
1792        /**
1793         * Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.
1794         */
1795        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
1796        @Description(shortDefinition="Meaning of the stratifier", formalDefinition="Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures." )
1797        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-stratifier-example")
1798        protected CodeableConcept code;
1799
1800        /**
1801         * The human readable description of this stratifier criteria.
1802         */
1803        @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false)
1804        @Description(shortDefinition="The human readable description of this stratifier", formalDefinition="The human readable description of this stratifier criteria." )
1805        protected MarkdownType description;
1806
1807        /**
1808         * An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.
1809         */
1810        @Child(name = "criteria", type = {Expression.class}, order=4, min=0, max=1, modifier=false, summary=false)
1811        @Description(shortDefinition="How the measure should be stratified", formalDefinition="An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element." )
1812        protected Expression criteria;
1813
1814        /**
1815         * A Group resource that defines this population as a set of characteristics.
1816         */
1817        @Child(name = "groupDefinition", type = {Group.class}, order=5, min=0, max=1, modifier=false, summary=false)
1818        @Description(shortDefinition="A group resource that defines this population", formalDefinition="A Group resource that defines this population as a set of characteristics." )
1819        protected Reference groupDefinition;
1820
1821        /**
1822         * A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.
1823         */
1824        @Child(name = "component", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1825        @Description(shortDefinition="Stratifier criteria component for the measure", formalDefinition="A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path." )
1826        protected List<MeasureGroupStratifierComponentComponent> component;
1827
1828        private static final long serialVersionUID = 1169588840L;
1829
1830    /**
1831     * Constructor
1832     */
1833      public MeasureGroupStratifierComponent() {
1834        super();
1835      }
1836
1837        /**
1838         * @return {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
1839         */
1840        public StringType getLinkIdElement() { 
1841          if (this.linkId == null)
1842            if (Configuration.errorOnAutoCreate())
1843              throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.linkId");
1844            else if (Configuration.doAutoCreate())
1845              this.linkId = new StringType(); // bb
1846          return this.linkId;
1847        }
1848
1849        public boolean hasLinkIdElement() { 
1850          return this.linkId != null && !this.linkId.isEmpty();
1851        }
1852
1853        public boolean hasLinkId() { 
1854          return this.linkId != null && !this.linkId.isEmpty();
1855        }
1856
1857        /**
1858         * @param value {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
1859         */
1860        public MeasureGroupStratifierComponent setLinkIdElement(StringType value) { 
1861          this.linkId = value;
1862          return this;
1863        }
1864
1865        /**
1866         * @return An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
1867         */
1868        public String getLinkId() { 
1869          return this.linkId == null ? null : this.linkId.getValue();
1870        }
1871
1872        /**
1873         * @param value An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
1874         */
1875        public MeasureGroupStratifierComponent setLinkId(String value) { 
1876          if (Utilities.noString(value))
1877            this.linkId = null;
1878          else {
1879            if (this.linkId == null)
1880              this.linkId = new StringType();
1881            this.linkId.setValue(value);
1882          }
1883          return this;
1884        }
1885
1886        /**
1887         * @return {@link #code} (Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.)
1888         */
1889        public CodeableConcept getCode() { 
1890          if (this.code == null)
1891            if (Configuration.errorOnAutoCreate())
1892              throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.code");
1893            else if (Configuration.doAutoCreate())
1894              this.code = new CodeableConcept(); // cc
1895          return this.code;
1896        }
1897
1898        public boolean hasCode() { 
1899          return this.code != null && !this.code.isEmpty();
1900        }
1901
1902        /**
1903         * @param value {@link #code} (Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.)
1904         */
1905        public MeasureGroupStratifierComponent setCode(CodeableConcept value) { 
1906          this.code = value;
1907          return this;
1908        }
1909
1910        /**
1911         * @return {@link #description} (The human readable description of this stratifier criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1912         */
1913        public MarkdownType getDescriptionElement() { 
1914          if (this.description == null)
1915            if (Configuration.errorOnAutoCreate())
1916              throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.description");
1917            else if (Configuration.doAutoCreate())
1918              this.description = new MarkdownType(); // bb
1919          return this.description;
1920        }
1921
1922        public boolean hasDescriptionElement() { 
1923          return this.description != null && !this.description.isEmpty();
1924        }
1925
1926        public boolean hasDescription() { 
1927          return this.description != null && !this.description.isEmpty();
1928        }
1929
1930        /**
1931         * @param value {@link #description} (The human readable description of this stratifier criteria.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
1932         */
1933        public MeasureGroupStratifierComponent setDescriptionElement(MarkdownType value) { 
1934          this.description = value;
1935          return this;
1936        }
1937
1938        /**
1939         * @return The human readable description of this stratifier criteria.
1940         */
1941        public String getDescription() { 
1942          return this.description == null ? null : this.description.getValue();
1943        }
1944
1945        /**
1946         * @param value The human readable description of this stratifier criteria.
1947         */
1948        public MeasureGroupStratifierComponent setDescription(String value) { 
1949          if (Utilities.noString(value))
1950            this.description = null;
1951          else {
1952            if (this.description == null)
1953              this.description = new MarkdownType();
1954            this.description.setValue(value);
1955          }
1956          return this;
1957        }
1958
1959        /**
1960         * @return {@link #criteria} (An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.)
1961         */
1962        public Expression getCriteria() { 
1963          if (this.criteria == null)
1964            if (Configuration.errorOnAutoCreate())
1965              throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.criteria");
1966            else if (Configuration.doAutoCreate())
1967              this.criteria = new Expression(); // cc
1968          return this.criteria;
1969        }
1970
1971        public boolean hasCriteria() { 
1972          return this.criteria != null && !this.criteria.isEmpty();
1973        }
1974
1975        /**
1976         * @param value {@link #criteria} (An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.)
1977         */
1978        public MeasureGroupStratifierComponent setCriteria(Expression value) { 
1979          this.criteria = value;
1980          return this;
1981        }
1982
1983        /**
1984         * @return {@link #groupDefinition} (A Group resource that defines this population as a set of characteristics.)
1985         */
1986        public Reference getGroupDefinition() { 
1987          if (this.groupDefinition == null)
1988            if (Configuration.errorOnAutoCreate())
1989              throw new Error("Attempt to auto-create MeasureGroupStratifierComponent.groupDefinition");
1990            else if (Configuration.doAutoCreate())
1991              this.groupDefinition = new Reference(); // cc
1992          return this.groupDefinition;
1993        }
1994
1995        public boolean hasGroupDefinition() { 
1996          return this.groupDefinition != null && !this.groupDefinition.isEmpty();
1997        }
1998
1999        /**
2000         * @param value {@link #groupDefinition} (A Group resource that defines this population as a set of characteristics.)
2001         */
2002        public MeasureGroupStratifierComponent setGroupDefinition(Reference value) { 
2003          this.groupDefinition = value;
2004          return this;
2005        }
2006
2007        /**
2008         * @return {@link #component} (A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.)
2009         */
2010        public List<MeasureGroupStratifierComponentComponent> getComponent() { 
2011          if (this.component == null)
2012            this.component = new ArrayList<MeasureGroupStratifierComponentComponent>();
2013          return this.component;
2014        }
2015
2016        /**
2017         * @return Returns a reference to <code>this</code> for easy method chaining
2018         */
2019        public MeasureGroupStratifierComponent setComponent(List<MeasureGroupStratifierComponentComponent> theComponent) { 
2020          this.component = theComponent;
2021          return this;
2022        }
2023
2024        public boolean hasComponent() { 
2025          if (this.component == null)
2026            return false;
2027          for (MeasureGroupStratifierComponentComponent item : this.component)
2028            if (!item.isEmpty())
2029              return true;
2030          return false;
2031        }
2032
2033        public MeasureGroupStratifierComponentComponent addComponent() { //3
2034          MeasureGroupStratifierComponentComponent t = new MeasureGroupStratifierComponentComponent();
2035          if (this.component == null)
2036            this.component = new ArrayList<MeasureGroupStratifierComponentComponent>();
2037          this.component.add(t);
2038          return t;
2039        }
2040
2041        public MeasureGroupStratifierComponent addComponent(MeasureGroupStratifierComponentComponent t) { //3
2042          if (t == null)
2043            return this;
2044          if (this.component == null)
2045            this.component = new ArrayList<MeasureGroupStratifierComponentComponent>();
2046          this.component.add(t);
2047          return this;
2048        }
2049
2050        /**
2051         * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist {3}
2052         */
2053        public MeasureGroupStratifierComponentComponent getComponentFirstRep() { 
2054          if (getComponent().isEmpty()) {
2055            addComponent();
2056          }
2057          return getComponent().get(0);
2058        }
2059
2060        protected void listChildren(List<Property> children) {
2061          super.listChildren(children);
2062          children.add(new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId));
2063          children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code));
2064          children.add(new Property("description", "markdown", "The human readable description of this stratifier criteria.", 0, 1, description));
2065          children.add(new Property("criteria", "Expression", "An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria));
2066          children.add(new Property("groupDefinition", "Reference(Group)", "A Group resource that defines this population as a set of characteristics.", 0, 1, groupDefinition));
2067          children.add(new Property("component", "", "A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, component));
2068        }
2069
2070        @Override
2071        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2072          switch (_hash) {
2073          case -1102667083: /*linkId*/  return new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId);
2074          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code);
2075          case -1724546052: /*description*/  return new Property("description", "markdown", "The human readable description of this stratifier criteria.", 0, 1, description);
2076          case 1952046943: /*criteria*/  return new Property("criteria", "Expression", "An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria);
2077          case 158676274: /*groupDefinition*/  return new Property("groupDefinition", "Reference(Group)", "A Group resource that defines this population as a set of characteristics.", 0, 1, groupDefinition);
2078          case -1399907075: /*component*/  return new Property("component", "", "A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, component);
2079          default: return super.getNamedProperty(_hash, _name, _checkValid);
2080          }
2081
2082        }
2083
2084      @Override
2085      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2086        switch (hash) {
2087        case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType
2088        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
2089        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
2090        case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression
2091        case 158676274: /*groupDefinition*/ return this.groupDefinition == null ? new Base[0] : new Base[] {this.groupDefinition}; // Reference
2092        case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // MeasureGroupStratifierComponentComponent
2093        default: return super.getProperty(hash, name, checkValid);
2094        }
2095
2096      }
2097
2098      @Override
2099      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2100        switch (hash) {
2101        case -1102667083: // linkId
2102          this.linkId = TypeConvertor.castToString(value); // StringType
2103          return value;
2104        case 3059181: // code
2105          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2106          return value;
2107        case -1724546052: // description
2108          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2109          return value;
2110        case 1952046943: // criteria
2111          this.criteria = TypeConvertor.castToExpression(value); // Expression
2112          return value;
2113        case 158676274: // groupDefinition
2114          this.groupDefinition = TypeConvertor.castToReference(value); // Reference
2115          return value;
2116        case -1399907075: // component
2117          this.getComponent().add((MeasureGroupStratifierComponentComponent) value); // MeasureGroupStratifierComponentComponent
2118          return value;
2119        default: return super.setProperty(hash, name, value);
2120        }
2121
2122      }
2123
2124      @Override
2125      public Base setProperty(String name, Base value) throws FHIRException {
2126        if (name.equals("linkId")) {
2127          this.linkId = TypeConvertor.castToString(value); // StringType
2128        } else if (name.equals("code")) {
2129          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2130        } else if (name.equals("description")) {
2131          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2132        } else if (name.equals("criteria")) {
2133          this.criteria = TypeConvertor.castToExpression(value); // Expression
2134        } else if (name.equals("groupDefinition")) {
2135          this.groupDefinition = TypeConvertor.castToReference(value); // Reference
2136        } else if (name.equals("component")) {
2137          this.getComponent().add((MeasureGroupStratifierComponentComponent) value);
2138        } else
2139          return super.setProperty(name, value);
2140        return value;
2141      }
2142
2143      @Override
2144      public Base makeProperty(int hash, String name) throws FHIRException {
2145        switch (hash) {
2146        case -1102667083:  return getLinkIdElement();
2147        case 3059181:  return getCode();
2148        case -1724546052:  return getDescriptionElement();
2149        case 1952046943:  return getCriteria();
2150        case 158676274:  return getGroupDefinition();
2151        case -1399907075:  return addComponent(); 
2152        default: return super.makeProperty(hash, name);
2153        }
2154
2155      }
2156
2157      @Override
2158      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2159        switch (hash) {
2160        case -1102667083: /*linkId*/ return new String[] {"string"};
2161        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
2162        case -1724546052: /*description*/ return new String[] {"markdown"};
2163        case 1952046943: /*criteria*/ return new String[] {"Expression"};
2164        case 158676274: /*groupDefinition*/ return new String[] {"Reference"};
2165        case -1399907075: /*component*/ return new String[] {};
2166        default: return super.getTypesForProperty(hash, name);
2167        }
2168
2169      }
2170
2171      @Override
2172      public Base addChild(String name) throws FHIRException {
2173        if (name.equals("linkId")) {
2174          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.stratifier.linkId");
2175        }
2176        else if (name.equals("code")) {
2177          this.code = new CodeableConcept();
2178          return this.code;
2179        }
2180        else if (name.equals("description")) {
2181          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.stratifier.description");
2182        }
2183        else if (name.equals("criteria")) {
2184          this.criteria = new Expression();
2185          return this.criteria;
2186        }
2187        else if (name.equals("groupDefinition")) {
2188          this.groupDefinition = new Reference();
2189          return this.groupDefinition;
2190        }
2191        else if (name.equals("component")) {
2192          return addComponent();
2193        }
2194        else
2195          return super.addChild(name);
2196      }
2197
2198      public MeasureGroupStratifierComponent copy() {
2199        MeasureGroupStratifierComponent dst = new MeasureGroupStratifierComponent();
2200        copyValues(dst);
2201        return dst;
2202      }
2203
2204      public void copyValues(MeasureGroupStratifierComponent dst) {
2205        super.copyValues(dst);
2206        dst.linkId = linkId == null ? null : linkId.copy();
2207        dst.code = code == null ? null : code.copy();
2208        dst.description = description == null ? null : description.copy();
2209        dst.criteria = criteria == null ? null : criteria.copy();
2210        dst.groupDefinition = groupDefinition == null ? null : groupDefinition.copy();
2211        if (component != null) {
2212          dst.component = new ArrayList<MeasureGroupStratifierComponentComponent>();
2213          for (MeasureGroupStratifierComponentComponent i : component)
2214            dst.component.add(i.copy());
2215        };
2216      }
2217
2218      @Override
2219      public boolean equalsDeep(Base other_) {
2220        if (!super.equalsDeep(other_))
2221          return false;
2222        if (!(other_ instanceof MeasureGroupStratifierComponent))
2223          return false;
2224        MeasureGroupStratifierComponent o = (MeasureGroupStratifierComponent) other_;
2225        return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true)
2226           && compareDeep(criteria, o.criteria, true) && compareDeep(groupDefinition, o.groupDefinition, true)
2227           && compareDeep(component, o.component, true);
2228      }
2229
2230      @Override
2231      public boolean equalsShallow(Base other_) {
2232        if (!super.equalsShallow(other_))
2233          return false;
2234        if (!(other_ instanceof MeasureGroupStratifierComponent))
2235          return false;
2236        MeasureGroupStratifierComponent o = (MeasureGroupStratifierComponent) other_;
2237        return compareValues(linkId, o.linkId, true) && compareValues(description, o.description, true);
2238      }
2239
2240      public boolean isEmpty() {
2241        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, description
2242          , criteria, groupDefinition, component);
2243      }
2244
2245  public String fhirType() {
2246    return "Measure.group.stratifier";
2247
2248  }
2249
2250  }
2251
2252    @Block()
2253    public static class MeasureGroupStratifierComponentComponent extends BackboneElement implements IBaseBackboneElement {
2254        /**
2255         * An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
2256         */
2257        @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
2258        @Description(shortDefinition="Unique id for stratifier component in measure", formalDefinition="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource." )
2259        protected StringType linkId;
2260
2261        /**
2262         * Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.
2263         */
2264        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
2265        @Description(shortDefinition="Meaning of the stratifier component", formalDefinition="Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures." )
2266        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-stratifier-example")
2267        protected CodeableConcept code;
2268
2269        /**
2270         * The human readable description of this stratifier criteria component.
2271         */
2272        @Child(name = "description", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false)
2273        @Description(shortDefinition="The human readable description of this stratifier component", formalDefinition="The human readable description of this stratifier criteria component." )
2274        protected MarkdownType description;
2275
2276        /**
2277         * An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.
2278         */
2279        @Child(name = "criteria", type = {Expression.class}, order=4, min=0, max=1, modifier=false, summary=false)
2280        @Description(shortDefinition="Component of how the measure should be stratified", formalDefinition="An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element." )
2281        protected Expression criteria;
2282
2283        /**
2284         * A Group resource that defines this population as a set of characteristics.
2285         */
2286        @Child(name = "groupDefinition", type = {Group.class}, order=5, min=0, max=1, modifier=false, summary=false)
2287        @Description(shortDefinition="A group resource that defines this population", formalDefinition="A Group resource that defines this population as a set of characteristics." )
2288        protected Reference groupDefinition;
2289
2290        private static final long serialVersionUID = 744342583L;
2291
2292    /**
2293     * Constructor
2294     */
2295      public MeasureGroupStratifierComponentComponent() {
2296        super();
2297      }
2298
2299        /**
2300         * @return {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
2301         */
2302        public StringType getLinkIdElement() { 
2303          if (this.linkId == null)
2304            if (Configuration.errorOnAutoCreate())
2305              throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.linkId");
2306            else if (Configuration.doAutoCreate())
2307              this.linkId = new StringType(); // bb
2308          return this.linkId;
2309        }
2310
2311        public boolean hasLinkIdElement() { 
2312          return this.linkId != null && !this.linkId.isEmpty();
2313        }
2314
2315        public boolean hasLinkId() { 
2316          return this.linkId != null && !this.linkId.isEmpty();
2317        }
2318
2319        /**
2320         * @param value {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
2321         */
2322        public MeasureGroupStratifierComponentComponent setLinkIdElement(StringType value) { 
2323          this.linkId = value;
2324          return this;
2325        }
2326
2327        /**
2328         * @return An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
2329         */
2330        public String getLinkId() { 
2331          return this.linkId == null ? null : this.linkId.getValue();
2332        }
2333
2334        /**
2335         * @param value An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
2336         */
2337        public MeasureGroupStratifierComponentComponent setLinkId(String value) { 
2338          if (Utilities.noString(value))
2339            this.linkId = null;
2340          else {
2341            if (this.linkId == null)
2342              this.linkId = new StringType();
2343            this.linkId.setValue(value);
2344          }
2345          return this;
2346        }
2347
2348        /**
2349         * @return {@link #code} (Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.)
2350         */
2351        public CodeableConcept getCode() { 
2352          if (this.code == null)
2353            if (Configuration.errorOnAutoCreate())
2354              throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.code");
2355            else if (Configuration.doAutoCreate())
2356              this.code = new CodeableConcept(); // cc
2357          return this.code;
2358        }
2359
2360        public boolean hasCode() { 
2361          return this.code != null && !this.code.isEmpty();
2362        }
2363
2364        /**
2365         * @param value {@link #code} (Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.)
2366         */
2367        public MeasureGroupStratifierComponentComponent setCode(CodeableConcept value) { 
2368          this.code = value;
2369          return this;
2370        }
2371
2372        /**
2373         * @return {@link #description} (The human readable description of this stratifier criteria component.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2374         */
2375        public MarkdownType getDescriptionElement() { 
2376          if (this.description == null)
2377            if (Configuration.errorOnAutoCreate())
2378              throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.description");
2379            else if (Configuration.doAutoCreate())
2380              this.description = new MarkdownType(); // bb
2381          return this.description;
2382        }
2383
2384        public boolean hasDescriptionElement() { 
2385          return this.description != null && !this.description.isEmpty();
2386        }
2387
2388        public boolean hasDescription() { 
2389          return this.description != null && !this.description.isEmpty();
2390        }
2391
2392        /**
2393         * @param value {@link #description} (The human readable description of this stratifier criteria component.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2394         */
2395        public MeasureGroupStratifierComponentComponent setDescriptionElement(MarkdownType value) { 
2396          this.description = value;
2397          return this;
2398        }
2399
2400        /**
2401         * @return The human readable description of this stratifier criteria component.
2402         */
2403        public String getDescription() { 
2404          return this.description == null ? null : this.description.getValue();
2405        }
2406
2407        /**
2408         * @param value The human readable description of this stratifier criteria component.
2409         */
2410        public MeasureGroupStratifierComponentComponent setDescription(String value) { 
2411          if (Utilities.noString(value))
2412            this.description = null;
2413          else {
2414            if (this.description == null)
2415              this.description = new MarkdownType();
2416            this.description.setValue(value);
2417          }
2418          return this;
2419        }
2420
2421        /**
2422         * @return {@link #criteria} (An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.)
2423         */
2424        public Expression getCriteria() { 
2425          if (this.criteria == null)
2426            if (Configuration.errorOnAutoCreate())
2427              throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.criteria");
2428            else if (Configuration.doAutoCreate())
2429              this.criteria = new Expression(); // cc
2430          return this.criteria;
2431        }
2432
2433        public boolean hasCriteria() { 
2434          return this.criteria != null && !this.criteria.isEmpty();
2435        }
2436
2437        /**
2438         * @param value {@link #criteria} (An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.)
2439         */
2440        public MeasureGroupStratifierComponentComponent setCriteria(Expression value) { 
2441          this.criteria = value;
2442          return this;
2443        }
2444
2445        /**
2446         * @return {@link #groupDefinition} (A Group resource that defines this population as a set of characteristics.)
2447         */
2448        public Reference getGroupDefinition() { 
2449          if (this.groupDefinition == null)
2450            if (Configuration.errorOnAutoCreate())
2451              throw new Error("Attempt to auto-create MeasureGroupStratifierComponentComponent.groupDefinition");
2452            else if (Configuration.doAutoCreate())
2453              this.groupDefinition = new Reference(); // cc
2454          return this.groupDefinition;
2455        }
2456
2457        public boolean hasGroupDefinition() { 
2458          return this.groupDefinition != null && !this.groupDefinition.isEmpty();
2459        }
2460
2461        /**
2462         * @param value {@link #groupDefinition} (A Group resource that defines this population as a set of characteristics.)
2463         */
2464        public MeasureGroupStratifierComponentComponent setGroupDefinition(Reference value) { 
2465          this.groupDefinition = value;
2466          return this;
2467        }
2468
2469        protected void listChildren(List<Property> children) {
2470          super.listChildren(children);
2471          children.add(new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId));
2472          children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code));
2473          children.add(new Property("description", "markdown", "The human readable description of this stratifier criteria component.", 0, 1, description));
2474          children.add(new Property("criteria", "Expression", "An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria));
2475          children.add(new Property("groupDefinition", "Reference(Group)", "A Group resource that defines this population as a set of characteristics.", 0, 1, groupDefinition));
2476        }
2477
2478        @Override
2479        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2480          switch (_hash) {
2481          case -1102667083: /*linkId*/  return new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId);
2482          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures.", 0, 1, code);
2483          case -1724546052: /*description*/  return new Property("description", "markdown", "The human readable description of this stratifier criteria component.", 0, 1, description);
2484          case 1952046943: /*criteria*/  return new Property("criteria", "Expression", "An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element.", 0, 1, criteria);
2485          case 158676274: /*groupDefinition*/  return new Property("groupDefinition", "Reference(Group)", "A Group resource that defines this population as a set of characteristics.", 0, 1, groupDefinition);
2486          default: return super.getNamedProperty(_hash, _name, _checkValid);
2487          }
2488
2489        }
2490
2491      @Override
2492      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2493        switch (hash) {
2494        case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType
2495        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
2496        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
2497        case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression
2498        case 158676274: /*groupDefinition*/ return this.groupDefinition == null ? new Base[0] : new Base[] {this.groupDefinition}; // Reference
2499        default: return super.getProperty(hash, name, checkValid);
2500        }
2501
2502      }
2503
2504      @Override
2505      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2506        switch (hash) {
2507        case -1102667083: // linkId
2508          this.linkId = TypeConvertor.castToString(value); // StringType
2509          return value;
2510        case 3059181: // code
2511          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2512          return value;
2513        case -1724546052: // description
2514          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2515          return value;
2516        case 1952046943: // criteria
2517          this.criteria = TypeConvertor.castToExpression(value); // Expression
2518          return value;
2519        case 158676274: // groupDefinition
2520          this.groupDefinition = TypeConvertor.castToReference(value); // Reference
2521          return value;
2522        default: return super.setProperty(hash, name, value);
2523        }
2524
2525      }
2526
2527      @Override
2528      public Base setProperty(String name, Base value) throws FHIRException {
2529        if (name.equals("linkId")) {
2530          this.linkId = TypeConvertor.castToString(value); // StringType
2531        } else if (name.equals("code")) {
2532          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2533        } else if (name.equals("description")) {
2534          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2535        } else if (name.equals("criteria")) {
2536          this.criteria = TypeConvertor.castToExpression(value); // Expression
2537        } else if (name.equals("groupDefinition")) {
2538          this.groupDefinition = TypeConvertor.castToReference(value); // Reference
2539        } else
2540          return super.setProperty(name, value);
2541        return value;
2542      }
2543
2544      @Override
2545      public Base makeProperty(int hash, String name) throws FHIRException {
2546        switch (hash) {
2547        case -1102667083:  return getLinkIdElement();
2548        case 3059181:  return getCode();
2549        case -1724546052:  return getDescriptionElement();
2550        case 1952046943:  return getCriteria();
2551        case 158676274:  return getGroupDefinition();
2552        default: return super.makeProperty(hash, name);
2553        }
2554
2555      }
2556
2557      @Override
2558      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2559        switch (hash) {
2560        case -1102667083: /*linkId*/ return new String[] {"string"};
2561        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
2562        case -1724546052: /*description*/ return new String[] {"markdown"};
2563        case 1952046943: /*criteria*/ return new String[] {"Expression"};
2564        case 158676274: /*groupDefinition*/ return new String[] {"Reference"};
2565        default: return super.getTypesForProperty(hash, name);
2566        }
2567
2568      }
2569
2570      @Override
2571      public Base addChild(String name) throws FHIRException {
2572        if (name.equals("linkId")) {
2573          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.stratifier.component.linkId");
2574        }
2575        else if (name.equals("code")) {
2576          this.code = new CodeableConcept();
2577          return this.code;
2578        }
2579        else if (name.equals("description")) {
2580          throw new FHIRException("Cannot call addChild on a singleton property Measure.group.stratifier.component.description");
2581        }
2582        else if (name.equals("criteria")) {
2583          this.criteria = new Expression();
2584          return this.criteria;
2585        }
2586        else if (name.equals("groupDefinition")) {
2587          this.groupDefinition = new Reference();
2588          return this.groupDefinition;
2589        }
2590        else
2591          return super.addChild(name);
2592      }
2593
2594      public MeasureGroupStratifierComponentComponent copy() {
2595        MeasureGroupStratifierComponentComponent dst = new MeasureGroupStratifierComponentComponent();
2596        copyValues(dst);
2597        return dst;
2598      }
2599
2600      public void copyValues(MeasureGroupStratifierComponentComponent dst) {
2601        super.copyValues(dst);
2602        dst.linkId = linkId == null ? null : linkId.copy();
2603        dst.code = code == null ? null : code.copy();
2604        dst.description = description == null ? null : description.copy();
2605        dst.criteria = criteria == null ? null : criteria.copy();
2606        dst.groupDefinition = groupDefinition == null ? null : groupDefinition.copy();
2607      }
2608
2609      @Override
2610      public boolean equalsDeep(Base other_) {
2611        if (!super.equalsDeep(other_))
2612          return false;
2613        if (!(other_ instanceof MeasureGroupStratifierComponentComponent))
2614          return false;
2615        MeasureGroupStratifierComponentComponent o = (MeasureGroupStratifierComponentComponent) other_;
2616        return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(description, o.description, true)
2617           && compareDeep(criteria, o.criteria, true) && compareDeep(groupDefinition, o.groupDefinition, true)
2618          ;
2619      }
2620
2621      @Override
2622      public boolean equalsShallow(Base other_) {
2623        if (!super.equalsShallow(other_))
2624          return false;
2625        if (!(other_ instanceof MeasureGroupStratifierComponentComponent))
2626          return false;
2627        MeasureGroupStratifierComponentComponent o = (MeasureGroupStratifierComponentComponent) other_;
2628        return compareValues(linkId, o.linkId, true) && compareValues(description, o.description, true);
2629      }
2630
2631      public boolean isEmpty() {
2632        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, description
2633          , criteria, groupDefinition);
2634      }
2635
2636  public String fhirType() {
2637    return "Measure.group.stratifier.component";
2638
2639  }
2640
2641  }
2642
2643    @Block()
2644    public static class MeasureSupplementalDataComponent extends BackboneElement implements IBaseBackboneElement {
2645        /**
2646         * An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
2647         */
2648        @Child(name = "linkId", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
2649        @Description(shortDefinition="Unique id for supplementalData in measure", formalDefinition="An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource." )
2650        protected StringType linkId;
2651
2652        /**
2653         * Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.
2654         */
2655        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
2656        @Description(shortDefinition="Meaning of the supplemental data", formalDefinition="Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures." )
2657        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-supplemental-data-example")
2658        protected CodeableConcept code;
2659
2660        /**
2661         * An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.
2662         */
2663        @Child(name = "usage", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2664        @Description(shortDefinition="supplemental-data | risk-adjustment-factor", formalDefinition="An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation." )
2665        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-data-usage")
2666        protected List<CodeableConcept> usage;
2667
2668        /**
2669         * The human readable description of this supplemental data.
2670         */
2671        @Child(name = "description", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false)
2672        @Description(shortDefinition="The human readable description of this supplemental data", formalDefinition="The human readable description of this supplemental data." )
2673        protected MarkdownType description;
2674
2675        /**
2676         * The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.
2677         */
2678        @Child(name = "criteria", type = {Expression.class}, order=5, min=1, max=1, modifier=false, summary=false)
2679        @Description(shortDefinition="Expression describing additional data to be reported", formalDefinition="The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element." )
2680        protected Expression criteria;
2681
2682        private static final long serialVersionUID = 745484444L;
2683
2684    /**
2685     * Constructor
2686     */
2687      public MeasureSupplementalDataComponent() {
2688        super();
2689      }
2690
2691    /**
2692     * Constructor
2693     */
2694      public MeasureSupplementalDataComponent(Expression criteria) {
2695        super();
2696        this.setCriteria(criteria);
2697      }
2698
2699        /**
2700         * @return {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
2701         */
2702        public StringType getLinkIdElement() { 
2703          if (this.linkId == null)
2704            if (Configuration.errorOnAutoCreate())
2705              throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.linkId");
2706            else if (Configuration.doAutoCreate())
2707              this.linkId = new StringType(); // bb
2708          return this.linkId;
2709        }
2710
2711        public boolean hasLinkIdElement() { 
2712          return this.linkId != null && !this.linkId.isEmpty();
2713        }
2714
2715        public boolean hasLinkId() { 
2716          return this.linkId != null && !this.linkId.isEmpty();
2717        }
2718
2719        /**
2720         * @param value {@link #linkId} (An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value
2721         */
2722        public MeasureSupplementalDataComponent setLinkIdElement(StringType value) { 
2723          this.linkId = value;
2724          return this;
2725        }
2726
2727        /**
2728         * @return An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
2729         */
2730        public String getLinkId() { 
2731          return this.linkId == null ? null : this.linkId.getValue();
2732        }
2733
2734        /**
2735         * @param value An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.
2736         */
2737        public MeasureSupplementalDataComponent setLinkId(String value) { 
2738          if (Utilities.noString(value))
2739            this.linkId = null;
2740          else {
2741            if (this.linkId == null)
2742              this.linkId = new StringType();
2743            this.linkId.setValue(value);
2744          }
2745          return this;
2746        }
2747
2748        /**
2749         * @return {@link #code} (Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.)
2750         */
2751        public CodeableConcept getCode() { 
2752          if (this.code == null)
2753            if (Configuration.errorOnAutoCreate())
2754              throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.code");
2755            else if (Configuration.doAutoCreate())
2756              this.code = new CodeableConcept(); // cc
2757          return this.code;
2758        }
2759
2760        public boolean hasCode() { 
2761          return this.code != null && !this.code.isEmpty();
2762        }
2763
2764        /**
2765         * @param value {@link #code} (Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.)
2766         */
2767        public MeasureSupplementalDataComponent setCode(CodeableConcept value) { 
2768          this.code = value;
2769          return this;
2770        }
2771
2772        /**
2773         * @return {@link #usage} (An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.)
2774         */
2775        public List<CodeableConcept> getUsage() { 
2776          if (this.usage == null)
2777            this.usage = new ArrayList<CodeableConcept>();
2778          return this.usage;
2779        }
2780
2781        /**
2782         * @return Returns a reference to <code>this</code> for easy method chaining
2783         */
2784        public MeasureSupplementalDataComponent setUsage(List<CodeableConcept> theUsage) { 
2785          this.usage = theUsage;
2786          return this;
2787        }
2788
2789        public boolean hasUsage() { 
2790          if (this.usage == null)
2791            return false;
2792          for (CodeableConcept item : this.usage)
2793            if (!item.isEmpty())
2794              return true;
2795          return false;
2796        }
2797
2798        public CodeableConcept addUsage() { //3
2799          CodeableConcept t = new CodeableConcept();
2800          if (this.usage == null)
2801            this.usage = new ArrayList<CodeableConcept>();
2802          this.usage.add(t);
2803          return t;
2804        }
2805
2806        public MeasureSupplementalDataComponent addUsage(CodeableConcept t) { //3
2807          if (t == null)
2808            return this;
2809          if (this.usage == null)
2810            this.usage = new ArrayList<CodeableConcept>();
2811          this.usage.add(t);
2812          return this;
2813        }
2814
2815        /**
2816         * @return The first repetition of repeating field {@link #usage}, creating it if it does not already exist {3}
2817         */
2818        public CodeableConcept getUsageFirstRep() { 
2819          if (getUsage().isEmpty()) {
2820            addUsage();
2821          }
2822          return getUsage().get(0);
2823        }
2824
2825        /**
2826         * @return {@link #description} (The human readable description of this supplemental data.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2827         */
2828        public MarkdownType getDescriptionElement() { 
2829          if (this.description == null)
2830            if (Configuration.errorOnAutoCreate())
2831              throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.description");
2832            else if (Configuration.doAutoCreate())
2833              this.description = new MarkdownType(); // bb
2834          return this.description;
2835        }
2836
2837        public boolean hasDescriptionElement() { 
2838          return this.description != null && !this.description.isEmpty();
2839        }
2840
2841        public boolean hasDescription() { 
2842          return this.description != null && !this.description.isEmpty();
2843        }
2844
2845        /**
2846         * @param value {@link #description} (The human readable description of this supplemental data.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2847         */
2848        public MeasureSupplementalDataComponent setDescriptionElement(MarkdownType value) { 
2849          this.description = value;
2850          return this;
2851        }
2852
2853        /**
2854         * @return The human readable description of this supplemental data.
2855         */
2856        public String getDescription() { 
2857          return this.description == null ? null : this.description.getValue();
2858        }
2859
2860        /**
2861         * @param value The human readable description of this supplemental data.
2862         */
2863        public MeasureSupplementalDataComponent setDescription(String value) { 
2864          if (Utilities.noString(value))
2865            this.description = null;
2866          else {
2867            if (this.description == null)
2868              this.description = new MarkdownType();
2869            this.description.setValue(value);
2870          }
2871          return this;
2872        }
2873
2874        /**
2875         * @return {@link #criteria} (The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.)
2876         */
2877        public Expression getCriteria() { 
2878          if (this.criteria == null)
2879            if (Configuration.errorOnAutoCreate())
2880              throw new Error("Attempt to auto-create MeasureSupplementalDataComponent.criteria");
2881            else if (Configuration.doAutoCreate())
2882              this.criteria = new Expression(); // cc
2883          return this.criteria;
2884        }
2885
2886        public boolean hasCriteria() { 
2887          return this.criteria != null && !this.criteria.isEmpty();
2888        }
2889
2890        /**
2891         * @param value {@link #criteria} (The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.)
2892         */
2893        public MeasureSupplementalDataComponent setCriteria(Expression value) { 
2894          this.criteria = value;
2895          return this;
2896        }
2897
2898        protected void listChildren(List<Property> children) {
2899          super.listChildren(children);
2900          children.add(new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId));
2901          children.add(new Property("code", "CodeableConcept", "Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.", 0, 1, code));
2902          children.add(new Property("usage", "CodeableConcept", "An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.", 0, java.lang.Integer.MAX_VALUE, usage));
2903          children.add(new Property("description", "markdown", "The human readable description of this supplemental data.", 0, 1, description));
2904          children.add(new Property("criteria", "Expression", "The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.", 0, 1, criteria));
2905        }
2906
2907        @Override
2908        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2909          switch (_hash) {
2910          case -1102667083: /*linkId*/  return new Property("linkId", "string", "An identifier that is unique within the Measure allowing linkage to the equivalent item in a MeasureReport resource.", 0, 1, linkId);
2911          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures.", 0, 1, code);
2912          case 111574433: /*usage*/  return new Property("usage", "CodeableConcept", "An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation.", 0, java.lang.Integer.MAX_VALUE, usage);
2913          case -1724546052: /*description*/  return new Property("description", "markdown", "The human readable description of this supplemental data.", 0, 1, description);
2914          case 1952046943: /*criteria*/  return new Property("criteria", "Expression", "The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element.", 0, 1, criteria);
2915          default: return super.getNamedProperty(_hash, _name, _checkValid);
2916          }
2917
2918        }
2919
2920      @Override
2921      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2922        switch (hash) {
2923        case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType
2924        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
2925        case 111574433: /*usage*/ return this.usage == null ? new Base[0] : this.usage.toArray(new Base[this.usage.size()]); // CodeableConcept
2926        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
2927        case 1952046943: /*criteria*/ return this.criteria == null ? new Base[0] : new Base[] {this.criteria}; // Expression
2928        default: return super.getProperty(hash, name, checkValid);
2929        }
2930
2931      }
2932
2933      @Override
2934      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2935        switch (hash) {
2936        case -1102667083: // linkId
2937          this.linkId = TypeConvertor.castToString(value); // StringType
2938          return value;
2939        case 3059181: // code
2940          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2941          return value;
2942        case 111574433: // usage
2943          this.getUsage().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
2944          return value;
2945        case -1724546052: // description
2946          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2947          return value;
2948        case 1952046943: // criteria
2949          this.criteria = TypeConvertor.castToExpression(value); // Expression
2950          return value;
2951        default: return super.setProperty(hash, name, value);
2952        }
2953
2954      }
2955
2956      @Override
2957      public Base setProperty(String name, Base value) throws FHIRException {
2958        if (name.equals("linkId")) {
2959          this.linkId = TypeConvertor.castToString(value); // StringType
2960        } else if (name.equals("code")) {
2961          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2962        } else if (name.equals("usage")) {
2963          this.getUsage().add(TypeConvertor.castToCodeableConcept(value));
2964        } else if (name.equals("description")) {
2965          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
2966        } else if (name.equals("criteria")) {
2967          this.criteria = TypeConvertor.castToExpression(value); // Expression
2968        } else
2969          return super.setProperty(name, value);
2970        return value;
2971      }
2972
2973      @Override
2974      public Base makeProperty(int hash, String name) throws FHIRException {
2975        switch (hash) {
2976        case -1102667083:  return getLinkIdElement();
2977        case 3059181:  return getCode();
2978        case 111574433:  return addUsage(); 
2979        case -1724546052:  return getDescriptionElement();
2980        case 1952046943:  return getCriteria();
2981        default: return super.makeProperty(hash, name);
2982        }
2983
2984      }
2985
2986      @Override
2987      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2988        switch (hash) {
2989        case -1102667083: /*linkId*/ return new String[] {"string"};
2990        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
2991        case 111574433: /*usage*/ return new String[] {"CodeableConcept"};
2992        case -1724546052: /*description*/ return new String[] {"markdown"};
2993        case 1952046943: /*criteria*/ return new String[] {"Expression"};
2994        default: return super.getTypesForProperty(hash, name);
2995        }
2996
2997      }
2998
2999      @Override
3000      public Base addChild(String name) throws FHIRException {
3001        if (name.equals("linkId")) {
3002          throw new FHIRException("Cannot call addChild on a singleton property Measure.supplementalData.linkId");
3003        }
3004        else if (name.equals("code")) {
3005          this.code = new CodeableConcept();
3006          return this.code;
3007        }
3008        else if (name.equals("usage")) {
3009          return addUsage();
3010        }
3011        else if (name.equals("description")) {
3012          throw new FHIRException("Cannot call addChild on a singleton property Measure.supplementalData.description");
3013        }
3014        else if (name.equals("criteria")) {
3015          this.criteria = new Expression();
3016          return this.criteria;
3017        }
3018        else
3019          return super.addChild(name);
3020      }
3021
3022      public MeasureSupplementalDataComponent copy() {
3023        MeasureSupplementalDataComponent dst = new MeasureSupplementalDataComponent();
3024        copyValues(dst);
3025        return dst;
3026      }
3027
3028      public void copyValues(MeasureSupplementalDataComponent dst) {
3029        super.copyValues(dst);
3030        dst.linkId = linkId == null ? null : linkId.copy();
3031        dst.code = code == null ? null : code.copy();
3032        if (usage != null) {
3033          dst.usage = new ArrayList<CodeableConcept>();
3034          for (CodeableConcept i : usage)
3035            dst.usage.add(i.copy());
3036        };
3037        dst.description = description == null ? null : description.copy();
3038        dst.criteria = criteria == null ? null : criteria.copy();
3039      }
3040
3041      @Override
3042      public boolean equalsDeep(Base other_) {
3043        if (!super.equalsDeep(other_))
3044          return false;
3045        if (!(other_ instanceof MeasureSupplementalDataComponent))
3046          return false;
3047        MeasureSupplementalDataComponent o = (MeasureSupplementalDataComponent) other_;
3048        return compareDeep(linkId, o.linkId, true) && compareDeep(code, o.code, true) && compareDeep(usage, o.usage, true)
3049           && compareDeep(description, o.description, true) && compareDeep(criteria, o.criteria, true);
3050      }
3051
3052      @Override
3053      public boolean equalsShallow(Base other_) {
3054        if (!super.equalsShallow(other_))
3055          return false;
3056        if (!(other_ instanceof MeasureSupplementalDataComponent))
3057          return false;
3058        MeasureSupplementalDataComponent o = (MeasureSupplementalDataComponent) other_;
3059        return compareValues(linkId, o.linkId, true) && compareValues(description, o.description, true);
3060      }
3061
3062      public boolean isEmpty() {
3063        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, code, usage, description
3064          , criteria);
3065      }
3066
3067  public String fhirType() {
3068    return "Measure.supplementalData";
3069
3070  }
3071
3072  }
3073
3074    /**
3075     * An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.
3076     */
3077    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
3078    @Description(shortDefinition="Canonical identifier for this measure, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers." )
3079    protected UriType url;
3080
3081    /**
3082     * A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.
3083     */
3084    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3085    @Description(shortDefinition="Additional identifier for the measure", formalDefinition="A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance." )
3086    protected List<Identifier> identifier;
3087
3088    /**
3089     * The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.
3090     */
3091    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
3092    @Description(shortDefinition="Business version of the measure", formalDefinition="The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts." )
3093    protected StringType version;
3094
3095    /**
3096     * Indicates the mechanism used to compare versions to determine which is more current.
3097     */
3098    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
3099    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
3100    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
3101    protected DataType versionAlgorithm;
3102
3103    /**
3104     * A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.
3105     */
3106    @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
3107    @Description(shortDefinition="Name for this measure (computer friendly)", formalDefinition="A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
3108    protected StringType name;
3109
3110    /**
3111     * A short, descriptive, user-friendly title for the measure.
3112     */
3113    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
3114    @Description(shortDefinition="Name for this measure (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the measure." )
3115    protected StringType title;
3116
3117    /**
3118     * An explanatory or alternate title for the measure giving additional information about its content.
3119     */
3120    @Child(name = "subtitle", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false)
3121    @Description(shortDefinition="Subordinate title of the measure", formalDefinition="An explanatory or alternate title for the measure giving additional information about its content." )
3122    protected StringType subtitle;
3123
3124    /**
3125     * The status of this measure. Enables tracking the life-cycle of the content.
3126     */
3127    @Child(name = "status", type = {CodeType.class}, order=7, min=1, max=1, modifier=true, summary=true)
3128    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this measure. Enables tracking the life-cycle of the content." )
3129    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
3130    protected Enumeration<PublicationStatus> status;
3131
3132    /**
3133     * A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
3134     */
3135    @Child(name = "experimental", type = {BooleanType.class}, order=8, min=0, max=1, modifier=false, summary=true)
3136    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
3137    protected BooleanType experimental;
3138
3139    /**
3140     * The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.
3141     */
3142    @Child(name = "subject", type = {CodeableConcept.class, Group.class}, order=9, min=0, max=1, modifier=false, summary=false)
3143    @Description(shortDefinition="E.g. Patient, Practitioner, RelatedPerson, Organization, Location, Device", formalDefinition="The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything." )
3144    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/participant-resource-types")
3145    protected DataType subject;
3146
3147    /**
3148     * The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.
3149     */
3150    @Child(name = "basis", type = {CodeType.class}, order=10, min=0, max=1, modifier=false, summary=true)
3151    @Description(shortDefinition="Population basis", formalDefinition="The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters." )
3152    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fhir-types")
3153    protected Enumeration<FHIRTypes> basis;
3154
3155    /**
3156     * The date  (and optionally time) when the measure 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 measure changes.
3157     */
3158    @Child(name = "date", type = {DateTimeType.class}, order=11, min=0, max=1, modifier=false, summary=true)
3159    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the measure 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 measure changes." )
3160    protected DateTimeType date;
3161
3162    /**
3163     * The name of the organization or individual responsible for the release and ongoing maintenance of the measure.
3164     */
3165    @Child(name = "publisher", type = {StringType.class}, order=12, min=0, max=1, modifier=false, summary=true)
3166    @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 measure." )
3167    protected StringType publisher;
3168
3169    /**
3170     * Contact details to assist a user in finding and communicating with the publisher.
3171     */
3172    @Child(name = "contact", type = {ContactDetail.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3173    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
3174    protected List<ContactDetail> contact;
3175
3176    /**
3177     * A free text natural language description of the measure from a consumer's perspective.
3178     */
3179    @Child(name = "description", type = {MarkdownType.class}, order=14, min=0, max=1, modifier=false, summary=true)
3180    @Description(shortDefinition="Natural language description of the measure", formalDefinition="A free text natural language description of the measure from a consumer's perspective." )
3181    protected MarkdownType description;
3182
3183    /**
3184     * 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 measure instances.
3185     */
3186    @Child(name = "useContext", type = {UsageContext.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3187    @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 measure instances." )
3188    protected List<UsageContext> useContext;
3189
3190    /**
3191     * A legal or geographic region in which the measure is intended to be used.
3192     */
3193    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3194    @Description(shortDefinition="Intended jurisdiction for measure (if applicable)", formalDefinition="A legal or geographic region in which the measure is intended to be used." )
3195    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
3196    protected List<CodeableConcept> jurisdiction;
3197
3198    /**
3199     * Explanation of why this measure is needed and why it has been designed as it has.
3200     */
3201    @Child(name = "purpose", type = {MarkdownType.class}, order=17, min=0, max=1, modifier=false, summary=false)
3202    @Description(shortDefinition="Why this measure is defined", formalDefinition="Explanation of why this measure is needed and why it has been designed as it has." )
3203    protected MarkdownType purpose;
3204
3205    /**
3206     * A detailed description, from a clinical perspective, of how the measure is used.
3207     */
3208    @Child(name = "usage", type = {MarkdownType.class}, order=18, min=0, max=1, modifier=false, summary=false)
3209    @Description(shortDefinition="Describes the clinical usage of the measure", formalDefinition="A detailed description, from a clinical perspective, of how the measure is used." )
3210    protected MarkdownType usage;
3211
3212    /**
3213     * A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.
3214     */
3215    @Child(name = "copyright", type = {MarkdownType.class}, order=19, min=0, max=1, modifier=false, summary=false)
3216    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure." )
3217    protected MarkdownType copyright;
3218
3219    /**
3220     * 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').
3221     */
3222    @Child(name = "copyrightLabel", type = {StringType.class}, order=20, min=0, max=1, modifier=false, summary=false)
3223    @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')." )
3224    protected StringType copyrightLabel;
3225
3226    /**
3227     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
3228     */
3229    @Child(name = "approvalDate", type = {DateType.class}, order=21, min=0, max=1, modifier=false, summary=false)
3230    @Description(shortDefinition="When the measure was approved by publisher", formalDefinition="The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage." )
3231    protected DateType approvalDate;
3232
3233    /**
3234     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
3235     */
3236    @Child(name = "lastReviewDate", type = {DateType.class}, order=22, min=0, max=1, modifier=false, summary=false)
3237    @Description(shortDefinition="When the measure was last reviewed by the publisher", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." )
3238    protected DateType lastReviewDate;
3239
3240    /**
3241     * The period during which the measure content was or is planned to be in active use.
3242     */
3243    @Child(name = "effectivePeriod", type = {Period.class}, order=23, min=0, max=1, modifier=false, summary=true)
3244    @Description(shortDefinition="When the measure is expected to be used", formalDefinition="The period during which the measure content was or is planned to be in active use." )
3245    protected Period effectivePeriod;
3246
3247    /**
3248     * Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.
3249     */
3250    @Child(name = "topic", type = {CodeableConcept.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3251    @Description(shortDefinition="The category of the measure, such as Education, Treatment, Assessment, etc", formalDefinition="Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching." )
3252    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic")
3253    protected List<CodeableConcept> topic;
3254
3255    /**
3256     * An individiual or organization primarily involved in the creation and maintenance of the content.
3257     */
3258    @Child(name = "author", type = {ContactDetail.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3259    @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." )
3260    protected List<ContactDetail> author;
3261
3262    /**
3263     * An individual or organization primarily responsible for internal coherence of the content.
3264     */
3265    @Child(name = "editor", type = {ContactDetail.class}, order=26, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3266    @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." )
3267    protected List<ContactDetail> editor;
3268
3269    /**
3270     * An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.
3271     */
3272    @Child(name = "reviewer", type = {ContactDetail.class}, order=27, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3273    @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content." )
3274    protected List<ContactDetail> reviewer;
3275
3276    /**
3277     * An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.
3278     */
3279    @Child(name = "endorser", type = {ContactDetail.class}, order=28, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3280    @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting." )
3281    protected List<ContactDetail> endorser;
3282
3283    /**
3284     * Related artifacts such as additional documentation, justification, or bibliographic references.
3285     */
3286    @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=29, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3287    @Description(shortDefinition="Additional documentation, citations, etc", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." )
3288    protected List<RelatedArtifact> relatedArtifact;
3289
3290    /**
3291     * A reference to a Library resource containing the formal logic used by the measure.
3292     */
3293    @Child(name = "library", type = {CanonicalType.class}, order=30, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3294    @Description(shortDefinition="Logic used by the measure", formalDefinition="A reference to a Library resource containing the formal logic used by the measure." )
3295    protected List<CanonicalType> library;
3296
3297    /**
3298     * Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.
3299     */
3300    @Child(name = "disclaimer", type = {MarkdownType.class}, order=31, min=0, max=1, modifier=false, summary=true)
3301    @Description(shortDefinition="Disclaimer for use of the measure or its referenced content", formalDefinition="Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure." )
3302    protected MarkdownType disclaimer;
3303
3304    /**
3305     * Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.
3306     */
3307    @Child(name = "scoring", type = {CodeableConcept.class}, order=32, min=0, max=1, modifier=false, summary=true)
3308    @Description(shortDefinition="proportion | ratio | continuous-variable | cohort", formalDefinition="Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented." )
3309    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/measure-scoring")
3310    protected CodeableConcept scoring;
3311
3312    /**
3313     * Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.
3314     */
3315    @Child(name = "scoringUnit", type = {CodeableConcept.class}, order=33, min=0, max=1, modifier=false, summary=true)
3316    @Description(shortDefinition="What units?", formalDefinition="Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit." )
3317    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-scoring-unit")
3318    protected CodeableConcept scoringUnit;
3319
3320    /**
3321     * If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.
3322     */
3323    @Child(name = "compositeScoring", type = {CodeableConcept.class}, order=34, min=0, max=1, modifier=false, summary=true)
3324    @Description(shortDefinition="opportunity | all-or-nothing | linear | weighted", formalDefinition="If this is a composite measure, the scoring method used to combine the component measures to determine the composite score." )
3325    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/composite-measure-scoring")
3326    protected CodeableConcept compositeScoring;
3327
3328    /**
3329     * Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.
3330     */
3331    @Child(name = "type", type = {CodeableConcept.class}, order=35, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
3332    @Description(shortDefinition="process | outcome | structure | patient-reported-outcome | composite", formalDefinition="Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization." )
3333    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-type")
3334    protected List<CodeableConcept> type;
3335
3336    /**
3337     * A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.
3338     */
3339    @Child(name = "riskAdjustment", type = {MarkdownType.class}, order=36, min=0, max=1, modifier=false, summary=true)
3340    @Description(shortDefinition="How risk adjustment is applied for this measure", formalDefinition="A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results." )
3341    protected MarkdownType riskAdjustment;
3342
3343    /**
3344     * Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.
3345     */
3346    @Child(name = "rateAggregation", type = {MarkdownType.class}, order=37, min=0, max=1, modifier=false, summary=true)
3347    @Description(shortDefinition="How is rate aggregation performed for this measure", formalDefinition="Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result." )
3348    protected MarkdownType rateAggregation;
3349
3350    /**
3351     * Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.
3352     */
3353    @Child(name = "rationale", type = {MarkdownType.class}, order=38, min=0, max=1, modifier=false, summary=true)
3354    @Description(shortDefinition="Detailed description of why the measure exists", formalDefinition="Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence." )
3355    protected MarkdownType rationale;
3356
3357    /**
3358     * Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.
3359     */
3360    @Child(name = "clinicalRecommendationStatement", type = {MarkdownType.class}, order=39, min=0, max=1, modifier=false, summary=true)
3361    @Description(shortDefinition="Summary of clinical guidelines", formalDefinition="Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure." )
3362    protected MarkdownType clinicalRecommendationStatement;
3363
3364    /**
3365     * Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).
3366     */
3367    @Child(name = "improvementNotation", type = {CodeableConcept.class}, order=40, min=0, max=1, modifier=false, summary=true)
3368    @Description(shortDefinition="increase | decrease", formalDefinition="Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range)." )
3369    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/measure-improvement-notation")
3370    protected CodeableConcept improvementNotation;
3371
3372    /**
3373     * Provides a description of an individual term used within the measure.
3374     */
3375    @Child(name = "term", type = {}, order=41, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3376    @Description(shortDefinition="Defined terms used in the measure documentation", formalDefinition="Provides a description of an individual term used within the measure." )
3377    protected List<MeasureTermComponent> term;
3378
3379    /**
3380     * Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.
3381     */
3382    @Child(name = "guidance", type = {MarkdownType.class}, order=42, min=0, max=1, modifier=false, summary=true)
3383    @Description(shortDefinition="Additional guidance for implementers (deprecated)", formalDefinition="Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure." )
3384    protected MarkdownType guidance;
3385
3386    /**
3387     * A group of population criteria for the measure.
3388     */
3389    @Child(name = "group", type = {}, order=43, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3390    @Description(shortDefinition="Population criteria group", formalDefinition="A group of population criteria for the measure." )
3391    protected List<MeasureGroupComponent> group;
3392
3393    /**
3394     * The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.
3395     */
3396    @Child(name = "supplementalData", type = {}, order=44, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
3397    @Description(shortDefinition="What other data should be reported with the measure", formalDefinition="The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path." )
3398    protected List<MeasureSupplementalDataComponent> supplementalData;
3399
3400    private static final long serialVersionUID = -1907068641L;
3401
3402  /**
3403   * Constructor
3404   */
3405    public Measure() {
3406      super();
3407    }
3408
3409  /**
3410   * Constructor
3411   */
3412    public Measure(PublicationStatus status) {
3413      super();
3414      this.setStatus(status);
3415    }
3416
3417    /**
3418     * @return {@link #url} (An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
3419     */
3420    public UriType getUrlElement() { 
3421      if (this.url == null)
3422        if (Configuration.errorOnAutoCreate())
3423          throw new Error("Attempt to auto-create Measure.url");
3424        else if (Configuration.doAutoCreate())
3425          this.url = new UriType(); // bb
3426      return this.url;
3427    }
3428
3429    public boolean hasUrlElement() { 
3430      return this.url != null && !this.url.isEmpty();
3431    }
3432
3433    public boolean hasUrl() { 
3434      return this.url != null && !this.url.isEmpty();
3435    }
3436
3437    /**
3438     * @param value {@link #url} (An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
3439     */
3440    public Measure setUrlElement(UriType value) { 
3441      this.url = value;
3442      return this;
3443    }
3444
3445    /**
3446     * @return An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.
3447     */
3448    public String getUrl() { 
3449      return this.url == null ? null : this.url.getValue();
3450    }
3451
3452    /**
3453     * @param value An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.
3454     */
3455    public Measure setUrl(String value) { 
3456      if (Utilities.noString(value))
3457        this.url = null;
3458      else {
3459        if (this.url == null)
3460          this.url = new UriType();
3461        this.url.setValue(value);
3462      }
3463      return this;
3464    }
3465
3466    /**
3467     * @return {@link #identifier} (A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.)
3468     */
3469    public List<Identifier> getIdentifier() { 
3470      if (this.identifier == null)
3471        this.identifier = new ArrayList<Identifier>();
3472      return this.identifier;
3473    }
3474
3475    /**
3476     * @return Returns a reference to <code>this</code> for easy method chaining
3477     */
3478    public Measure setIdentifier(List<Identifier> theIdentifier) { 
3479      this.identifier = theIdentifier;
3480      return this;
3481    }
3482
3483    public boolean hasIdentifier() { 
3484      if (this.identifier == null)
3485        return false;
3486      for (Identifier item : this.identifier)
3487        if (!item.isEmpty())
3488          return true;
3489      return false;
3490    }
3491
3492    public Identifier addIdentifier() { //3
3493      Identifier t = new Identifier();
3494      if (this.identifier == null)
3495        this.identifier = new ArrayList<Identifier>();
3496      this.identifier.add(t);
3497      return t;
3498    }
3499
3500    public Measure addIdentifier(Identifier t) { //3
3501      if (t == null)
3502        return this;
3503      if (this.identifier == null)
3504        this.identifier = new ArrayList<Identifier>();
3505      this.identifier.add(t);
3506      return this;
3507    }
3508
3509    /**
3510     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
3511     */
3512    public Identifier getIdentifierFirstRep() { 
3513      if (getIdentifier().isEmpty()) {
3514        addIdentifier();
3515      }
3516      return getIdentifier().get(0);
3517    }
3518
3519    /**
3520     * @return {@link #version} (The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
3521     */
3522    public StringType getVersionElement() { 
3523      if (this.version == null)
3524        if (Configuration.errorOnAutoCreate())
3525          throw new Error("Attempt to auto-create Measure.version");
3526        else if (Configuration.doAutoCreate())
3527          this.version = new StringType(); // bb
3528      return this.version;
3529    }
3530
3531    public boolean hasVersionElement() { 
3532      return this.version != null && !this.version.isEmpty();
3533    }
3534
3535    public boolean hasVersion() { 
3536      return this.version != null && !this.version.isEmpty();
3537    }
3538
3539    /**
3540     * @param value {@link #version} (The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
3541     */
3542    public Measure setVersionElement(StringType value) { 
3543      this.version = value;
3544      return this;
3545    }
3546
3547    /**
3548     * @return The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.
3549     */
3550    public String getVersion() { 
3551      return this.version == null ? null : this.version.getValue();
3552    }
3553
3554    /**
3555     * @param value The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.
3556     */
3557    public Measure setVersion(String value) { 
3558      if (Utilities.noString(value))
3559        this.version = null;
3560      else {
3561        if (this.version == null)
3562          this.version = new StringType();
3563        this.version.setValue(value);
3564      }
3565      return this;
3566    }
3567
3568    /**
3569     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3570     */
3571    public DataType getVersionAlgorithm() { 
3572      return this.versionAlgorithm;
3573    }
3574
3575    /**
3576     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3577     */
3578    public StringType getVersionAlgorithmStringType() throws FHIRException { 
3579      if (this.versionAlgorithm == null)
3580        this.versionAlgorithm = new StringType();
3581      if (!(this.versionAlgorithm instanceof StringType))
3582        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
3583      return (StringType) this.versionAlgorithm;
3584    }
3585
3586    public boolean hasVersionAlgorithmStringType() { 
3587      return this != null && this.versionAlgorithm instanceof StringType;
3588    }
3589
3590    /**
3591     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3592     */
3593    public Coding getVersionAlgorithmCoding() throws FHIRException { 
3594      if (this.versionAlgorithm == null)
3595        this.versionAlgorithm = new Coding();
3596      if (!(this.versionAlgorithm instanceof Coding))
3597        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
3598      return (Coding) this.versionAlgorithm;
3599    }
3600
3601    public boolean hasVersionAlgorithmCoding() { 
3602      return this != null && this.versionAlgorithm instanceof Coding;
3603    }
3604
3605    public boolean hasVersionAlgorithm() { 
3606      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
3607    }
3608
3609    /**
3610     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
3611     */
3612    public Measure setVersionAlgorithm(DataType value) { 
3613      if (value != null && !(value instanceof StringType || value instanceof Coding))
3614        throw new FHIRException("Not the right type for Measure.versionAlgorithm[x]: "+value.fhirType());
3615      this.versionAlgorithm = value;
3616      return this;
3617    }
3618
3619    /**
3620     * @return {@link #name} (A natural language name identifying the measure. 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
3621     */
3622    public StringType getNameElement() { 
3623      if (this.name == null)
3624        if (Configuration.errorOnAutoCreate())
3625          throw new Error("Attempt to auto-create Measure.name");
3626        else if (Configuration.doAutoCreate())
3627          this.name = new StringType(); // bb
3628      return this.name;
3629    }
3630
3631    public boolean hasNameElement() { 
3632      return this.name != null && !this.name.isEmpty();
3633    }
3634
3635    public boolean hasName() { 
3636      return this.name != null && !this.name.isEmpty();
3637    }
3638
3639    /**
3640     * @param value {@link #name} (A natural language name identifying the measure. 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
3641     */
3642    public Measure setNameElement(StringType value) { 
3643      this.name = value;
3644      return this;
3645    }
3646
3647    /**
3648     * @return A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.
3649     */
3650    public String getName() { 
3651      return this.name == null ? null : this.name.getValue();
3652    }
3653
3654    /**
3655     * @param value A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.
3656     */
3657    public Measure setName(String value) { 
3658      if (Utilities.noString(value))
3659        this.name = null;
3660      else {
3661        if (this.name == null)
3662          this.name = new StringType();
3663        this.name.setValue(value);
3664      }
3665      return this;
3666    }
3667
3668    /**
3669     * @return {@link #title} (A short, descriptive, user-friendly title for the measure.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
3670     */
3671    public StringType getTitleElement() { 
3672      if (this.title == null)
3673        if (Configuration.errorOnAutoCreate())
3674          throw new Error("Attempt to auto-create Measure.title");
3675        else if (Configuration.doAutoCreate())
3676          this.title = new StringType(); // bb
3677      return this.title;
3678    }
3679
3680    public boolean hasTitleElement() { 
3681      return this.title != null && !this.title.isEmpty();
3682    }
3683
3684    public boolean hasTitle() { 
3685      return this.title != null && !this.title.isEmpty();
3686    }
3687
3688    /**
3689     * @param value {@link #title} (A short, descriptive, user-friendly title for the measure.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
3690     */
3691    public Measure setTitleElement(StringType value) { 
3692      this.title = value;
3693      return this;
3694    }
3695
3696    /**
3697     * @return A short, descriptive, user-friendly title for the measure.
3698     */
3699    public String getTitle() { 
3700      return this.title == null ? null : this.title.getValue();
3701    }
3702
3703    /**
3704     * @param value A short, descriptive, user-friendly title for the measure.
3705     */
3706    public Measure setTitle(String value) { 
3707      if (Utilities.noString(value))
3708        this.title = null;
3709      else {
3710        if (this.title == null)
3711          this.title = new StringType();
3712        this.title.setValue(value);
3713      }
3714      return this;
3715    }
3716
3717    /**
3718     * @return {@link #subtitle} (An explanatory or alternate title for the measure giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value
3719     */
3720    public StringType getSubtitleElement() { 
3721      if (this.subtitle == null)
3722        if (Configuration.errorOnAutoCreate())
3723          throw new Error("Attempt to auto-create Measure.subtitle");
3724        else if (Configuration.doAutoCreate())
3725          this.subtitle = new StringType(); // bb
3726      return this.subtitle;
3727    }
3728
3729    public boolean hasSubtitleElement() { 
3730      return this.subtitle != null && !this.subtitle.isEmpty();
3731    }
3732
3733    public boolean hasSubtitle() { 
3734      return this.subtitle != null && !this.subtitle.isEmpty();
3735    }
3736
3737    /**
3738     * @param value {@link #subtitle} (An explanatory or alternate title for the measure giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value
3739     */
3740    public Measure setSubtitleElement(StringType value) { 
3741      this.subtitle = value;
3742      return this;
3743    }
3744
3745    /**
3746     * @return An explanatory or alternate title for the measure giving additional information about its content.
3747     */
3748    public String getSubtitle() { 
3749      return this.subtitle == null ? null : this.subtitle.getValue();
3750    }
3751
3752    /**
3753     * @param value An explanatory or alternate title for the measure giving additional information about its content.
3754     */
3755    public Measure setSubtitle(String value) { 
3756      if (Utilities.noString(value))
3757        this.subtitle = null;
3758      else {
3759        if (this.subtitle == null)
3760          this.subtitle = new StringType();
3761        this.subtitle.setValue(value);
3762      }
3763      return this;
3764    }
3765
3766    /**
3767     * @return {@link #status} (The status of this measure. 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
3768     */
3769    public Enumeration<PublicationStatus> getStatusElement() { 
3770      if (this.status == null)
3771        if (Configuration.errorOnAutoCreate())
3772          throw new Error("Attempt to auto-create Measure.status");
3773        else if (Configuration.doAutoCreate())
3774          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
3775      return this.status;
3776    }
3777
3778    public boolean hasStatusElement() { 
3779      return this.status != null && !this.status.isEmpty();
3780    }
3781
3782    public boolean hasStatus() { 
3783      return this.status != null && !this.status.isEmpty();
3784    }
3785
3786    /**
3787     * @param value {@link #status} (The status of this measure. 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
3788     */
3789    public Measure setStatusElement(Enumeration<PublicationStatus> value) { 
3790      this.status = value;
3791      return this;
3792    }
3793
3794    /**
3795     * @return The status of this measure. Enables tracking the life-cycle of the content.
3796     */
3797    public PublicationStatus getStatus() { 
3798      return this.status == null ? null : this.status.getValue();
3799    }
3800
3801    /**
3802     * @param value The status of this measure. Enables tracking the life-cycle of the content.
3803     */
3804    public Measure setStatus(PublicationStatus value) { 
3805        if (this.status == null)
3806          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
3807        this.status.setValue(value);
3808      return this;
3809    }
3810
3811    /**
3812     * @return {@link #experimental} (A Boolean value to indicate that this measure 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
3813     */
3814    public BooleanType getExperimentalElement() { 
3815      if (this.experimental == null)
3816        if (Configuration.errorOnAutoCreate())
3817          throw new Error("Attempt to auto-create Measure.experimental");
3818        else if (Configuration.doAutoCreate())
3819          this.experimental = new BooleanType(); // bb
3820      return this.experimental;
3821    }
3822
3823    public boolean hasExperimentalElement() { 
3824      return this.experimental != null && !this.experimental.isEmpty();
3825    }
3826
3827    public boolean hasExperimental() { 
3828      return this.experimental != null && !this.experimental.isEmpty();
3829    }
3830
3831    /**
3832     * @param value {@link #experimental} (A Boolean value to indicate that this measure 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
3833     */
3834    public Measure setExperimentalElement(BooleanType value) { 
3835      this.experimental = value;
3836      return this;
3837    }
3838
3839    /**
3840     * @return A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
3841     */
3842    public boolean getExperimental() { 
3843      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
3844    }
3845
3846    /**
3847     * @param value A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
3848     */
3849    public Measure setExperimental(boolean value) { 
3850        if (this.experimental == null)
3851          this.experimental = new BooleanType();
3852        this.experimental.setValue(value);
3853      return this;
3854    }
3855
3856    /**
3857     * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
3858     */
3859    public DataType getSubject() { 
3860      return this.subject;
3861    }
3862
3863    /**
3864     * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
3865     */
3866    public CodeableConcept getSubjectCodeableConcept() throws FHIRException { 
3867      if (this.subject == null)
3868        this.subject = new CodeableConcept();
3869      if (!(this.subject instanceof CodeableConcept))
3870        throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.subject.getClass().getName()+" was encountered");
3871      return (CodeableConcept) this.subject;
3872    }
3873
3874    public boolean hasSubjectCodeableConcept() { 
3875      return this != null && this.subject instanceof CodeableConcept;
3876    }
3877
3878    /**
3879     * @return {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
3880     */
3881    public Reference getSubjectReference() throws FHIRException { 
3882      if (this.subject == null)
3883        this.subject = new Reference();
3884      if (!(this.subject instanceof Reference))
3885        throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.subject.getClass().getName()+" was encountered");
3886      return (Reference) this.subject;
3887    }
3888
3889    public boolean hasSubjectReference() { 
3890      return this != null && this.subject instanceof Reference;
3891    }
3892
3893    public boolean hasSubject() { 
3894      return this.subject != null && !this.subject.isEmpty();
3895    }
3896
3897    /**
3898     * @param value {@link #subject} (The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.)
3899     */
3900    public Measure setSubject(DataType value) { 
3901      if (value != null && !(value instanceof CodeableConcept || value instanceof Reference))
3902        throw new FHIRException("Not the right type for Measure.subject[x]: "+value.fhirType());
3903      this.subject = value;
3904      return this;
3905    }
3906
3907    /**
3908     * @return {@link #basis} (The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.). This is the underlying object with id, value and extensions. The accessor "getBasis" gives direct access to the value
3909     */
3910    public Enumeration<FHIRTypes> getBasisElement() { 
3911      if (this.basis == null)
3912        if (Configuration.errorOnAutoCreate())
3913          throw new Error("Attempt to auto-create Measure.basis");
3914        else if (Configuration.doAutoCreate())
3915          this.basis = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory()); // bb
3916      return this.basis;
3917    }
3918
3919    public boolean hasBasisElement() { 
3920      return this.basis != null && !this.basis.isEmpty();
3921    }
3922
3923    public boolean hasBasis() { 
3924      return this.basis != null && !this.basis.isEmpty();
3925    }
3926
3927    /**
3928     * @param value {@link #basis} (The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.). This is the underlying object with id, value and extensions. The accessor "getBasis" gives direct access to the value
3929     */
3930    public Measure setBasisElement(Enumeration<FHIRTypes> value) { 
3931      this.basis = value;
3932      return this;
3933    }
3934
3935    /**
3936     * @return The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.
3937     */
3938    public FHIRTypes getBasis() { 
3939      return this.basis == null ? null : this.basis.getValue();
3940    }
3941
3942    /**
3943     * @param value The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.
3944     */
3945    public Measure setBasis(FHIRTypes value) { 
3946      if (value == null)
3947        this.basis = null;
3948      else {
3949        if (this.basis == null)
3950          this.basis = new Enumeration<FHIRTypes>(new FHIRTypesEnumFactory());
3951        this.basis.setValue(value);
3952      }
3953      return this;
3954    }
3955
3956    /**
3957     * @return {@link #date} (The date  (and optionally time) when the measure 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 measure changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
3958     */
3959    public DateTimeType getDateElement() { 
3960      if (this.date == null)
3961        if (Configuration.errorOnAutoCreate())
3962          throw new Error("Attempt to auto-create Measure.date");
3963        else if (Configuration.doAutoCreate())
3964          this.date = new DateTimeType(); // bb
3965      return this.date;
3966    }
3967
3968    public boolean hasDateElement() { 
3969      return this.date != null && !this.date.isEmpty();
3970    }
3971
3972    public boolean hasDate() { 
3973      return this.date != null && !this.date.isEmpty();
3974    }
3975
3976    /**
3977     * @param value {@link #date} (The date  (and optionally time) when the measure 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 measure changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
3978     */
3979    public Measure setDateElement(DateTimeType value) { 
3980      this.date = value;
3981      return this;
3982    }
3983
3984    /**
3985     * @return The date  (and optionally time) when the measure 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 measure changes.
3986     */
3987    public Date getDate() { 
3988      return this.date == null ? null : this.date.getValue();
3989    }
3990
3991    /**
3992     * @param value The date  (and optionally time) when the measure 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 measure changes.
3993     */
3994    public Measure setDate(Date value) { 
3995      if (value == null)
3996        this.date = null;
3997      else {
3998        if (this.date == null)
3999          this.date = new DateTimeType();
4000        this.date.setValue(value);
4001      }
4002      return this;
4003    }
4004
4005    /**
4006     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the measure.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4007     */
4008    public StringType getPublisherElement() { 
4009      if (this.publisher == null)
4010        if (Configuration.errorOnAutoCreate())
4011          throw new Error("Attempt to auto-create Measure.publisher");
4012        else if (Configuration.doAutoCreate())
4013          this.publisher = new StringType(); // bb
4014      return this.publisher;
4015    }
4016
4017    public boolean hasPublisherElement() { 
4018      return this.publisher != null && !this.publisher.isEmpty();
4019    }
4020
4021    public boolean hasPublisher() { 
4022      return this.publisher != null && !this.publisher.isEmpty();
4023    }
4024
4025    /**
4026     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the measure.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
4027     */
4028    public Measure setPublisherElement(StringType value) { 
4029      this.publisher = value;
4030      return this;
4031    }
4032
4033    /**
4034     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the measure.
4035     */
4036    public String getPublisher() { 
4037      return this.publisher == null ? null : this.publisher.getValue();
4038    }
4039
4040    /**
4041     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the measure.
4042     */
4043    public Measure setPublisher(String value) { 
4044      if (Utilities.noString(value))
4045        this.publisher = null;
4046      else {
4047        if (this.publisher == null)
4048          this.publisher = new StringType();
4049        this.publisher.setValue(value);
4050      }
4051      return this;
4052    }
4053
4054    /**
4055     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
4056     */
4057    public List<ContactDetail> getContact() { 
4058      if (this.contact == null)
4059        this.contact = new ArrayList<ContactDetail>();
4060      return this.contact;
4061    }
4062
4063    /**
4064     * @return Returns a reference to <code>this</code> for easy method chaining
4065     */
4066    public Measure setContact(List<ContactDetail> theContact) { 
4067      this.contact = theContact;
4068      return this;
4069    }
4070
4071    public boolean hasContact() { 
4072      if (this.contact == null)
4073        return false;
4074      for (ContactDetail item : this.contact)
4075        if (!item.isEmpty())
4076          return true;
4077      return false;
4078    }
4079
4080    public ContactDetail addContact() { //3
4081      ContactDetail t = new ContactDetail();
4082      if (this.contact == null)
4083        this.contact = new ArrayList<ContactDetail>();
4084      this.contact.add(t);
4085      return t;
4086    }
4087
4088    public Measure addContact(ContactDetail t) { //3
4089      if (t == null)
4090        return this;
4091      if (this.contact == null)
4092        this.contact = new ArrayList<ContactDetail>();
4093      this.contact.add(t);
4094      return this;
4095    }
4096
4097    /**
4098     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
4099     */
4100    public ContactDetail getContactFirstRep() { 
4101      if (getContact().isEmpty()) {
4102        addContact();
4103      }
4104      return getContact().get(0);
4105    }
4106
4107    /**
4108     * @return {@link #description} (A free text natural language description of the measure from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4109     */
4110    public MarkdownType getDescriptionElement() { 
4111      if (this.description == null)
4112        if (Configuration.errorOnAutoCreate())
4113          throw new Error("Attempt to auto-create Measure.description");
4114        else if (Configuration.doAutoCreate())
4115          this.description = new MarkdownType(); // bb
4116      return this.description;
4117    }
4118
4119    public boolean hasDescriptionElement() { 
4120      return this.description != null && !this.description.isEmpty();
4121    }
4122
4123    public boolean hasDescription() { 
4124      return this.description != null && !this.description.isEmpty();
4125    }
4126
4127    /**
4128     * @param value {@link #description} (A free text natural language description of the measure from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
4129     */
4130    public Measure setDescriptionElement(MarkdownType value) { 
4131      this.description = value;
4132      return this;
4133    }
4134
4135    /**
4136     * @return A free text natural language description of the measure from a consumer's perspective.
4137     */
4138    public String getDescription() { 
4139      return this.description == null ? null : this.description.getValue();
4140    }
4141
4142    /**
4143     * @param value A free text natural language description of the measure from a consumer's perspective.
4144     */
4145    public Measure setDescription(String value) { 
4146      if (Utilities.noString(value))
4147        this.description = null;
4148      else {
4149        if (this.description == null)
4150          this.description = new MarkdownType();
4151        this.description.setValue(value);
4152      }
4153      return this;
4154    }
4155
4156    /**
4157     * @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 measure instances.)
4158     */
4159    public List<UsageContext> getUseContext() { 
4160      if (this.useContext == null)
4161        this.useContext = new ArrayList<UsageContext>();
4162      return this.useContext;
4163    }
4164
4165    /**
4166     * @return Returns a reference to <code>this</code> for easy method chaining
4167     */
4168    public Measure setUseContext(List<UsageContext> theUseContext) { 
4169      this.useContext = theUseContext;
4170      return this;
4171    }
4172
4173    public boolean hasUseContext() { 
4174      if (this.useContext == null)
4175        return false;
4176      for (UsageContext item : this.useContext)
4177        if (!item.isEmpty())
4178          return true;
4179      return false;
4180    }
4181
4182    public UsageContext addUseContext() { //3
4183      UsageContext t = new UsageContext();
4184      if (this.useContext == null)
4185        this.useContext = new ArrayList<UsageContext>();
4186      this.useContext.add(t);
4187      return t;
4188    }
4189
4190    public Measure addUseContext(UsageContext t) { //3
4191      if (t == null)
4192        return this;
4193      if (this.useContext == null)
4194        this.useContext = new ArrayList<UsageContext>();
4195      this.useContext.add(t);
4196      return this;
4197    }
4198
4199    /**
4200     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
4201     */
4202    public UsageContext getUseContextFirstRep() { 
4203      if (getUseContext().isEmpty()) {
4204        addUseContext();
4205      }
4206      return getUseContext().get(0);
4207    }
4208
4209    /**
4210     * @return {@link #jurisdiction} (A legal or geographic region in which the measure is intended to be used.)
4211     */
4212    public List<CodeableConcept> getJurisdiction() { 
4213      if (this.jurisdiction == null)
4214        this.jurisdiction = new ArrayList<CodeableConcept>();
4215      return this.jurisdiction;
4216    }
4217
4218    /**
4219     * @return Returns a reference to <code>this</code> for easy method chaining
4220     */
4221    public Measure setJurisdiction(List<CodeableConcept> theJurisdiction) { 
4222      this.jurisdiction = theJurisdiction;
4223      return this;
4224    }
4225
4226    public boolean hasJurisdiction() { 
4227      if (this.jurisdiction == null)
4228        return false;
4229      for (CodeableConcept item : this.jurisdiction)
4230        if (!item.isEmpty())
4231          return true;
4232      return false;
4233    }
4234
4235    public CodeableConcept addJurisdiction() { //3
4236      CodeableConcept t = new CodeableConcept();
4237      if (this.jurisdiction == null)
4238        this.jurisdiction = new ArrayList<CodeableConcept>();
4239      this.jurisdiction.add(t);
4240      return t;
4241    }
4242
4243    public Measure addJurisdiction(CodeableConcept t) { //3
4244      if (t == null)
4245        return this;
4246      if (this.jurisdiction == null)
4247        this.jurisdiction = new ArrayList<CodeableConcept>();
4248      this.jurisdiction.add(t);
4249      return this;
4250    }
4251
4252    /**
4253     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
4254     */
4255    public CodeableConcept getJurisdictionFirstRep() { 
4256      if (getJurisdiction().isEmpty()) {
4257        addJurisdiction();
4258      }
4259      return getJurisdiction().get(0);
4260    }
4261
4262    /**
4263     * @return {@link #purpose} (Explanation of why this measure 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
4264     */
4265    public MarkdownType getPurposeElement() { 
4266      if (this.purpose == null)
4267        if (Configuration.errorOnAutoCreate())
4268          throw new Error("Attempt to auto-create Measure.purpose");
4269        else if (Configuration.doAutoCreate())
4270          this.purpose = new MarkdownType(); // bb
4271      return this.purpose;
4272    }
4273
4274    public boolean hasPurposeElement() { 
4275      return this.purpose != null && !this.purpose.isEmpty();
4276    }
4277
4278    public boolean hasPurpose() { 
4279      return this.purpose != null && !this.purpose.isEmpty();
4280    }
4281
4282    /**
4283     * @param value {@link #purpose} (Explanation of why this measure 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
4284     */
4285    public Measure setPurposeElement(MarkdownType value) { 
4286      this.purpose = value;
4287      return this;
4288    }
4289
4290    /**
4291     * @return Explanation of why this measure is needed and why it has been designed as it has.
4292     */
4293    public String getPurpose() { 
4294      return this.purpose == null ? null : this.purpose.getValue();
4295    }
4296
4297    /**
4298     * @param value Explanation of why this measure is needed and why it has been designed as it has.
4299     */
4300    public Measure setPurpose(String value) { 
4301      if (Utilities.noString(value))
4302        this.purpose = null;
4303      else {
4304        if (this.purpose == null)
4305          this.purpose = new MarkdownType();
4306        this.purpose.setValue(value);
4307      }
4308      return this;
4309    }
4310
4311    /**
4312     * @return {@link #usage} (A detailed description, from a clinical perspective, of how the measure is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value
4313     */
4314    public MarkdownType getUsageElement() { 
4315      if (this.usage == null)
4316        if (Configuration.errorOnAutoCreate())
4317          throw new Error("Attempt to auto-create Measure.usage");
4318        else if (Configuration.doAutoCreate())
4319          this.usage = new MarkdownType(); // bb
4320      return this.usage;
4321    }
4322
4323    public boolean hasUsageElement() { 
4324      return this.usage != null && !this.usage.isEmpty();
4325    }
4326
4327    public boolean hasUsage() { 
4328      return this.usage != null && !this.usage.isEmpty();
4329    }
4330
4331    /**
4332     * @param value {@link #usage} (A detailed description, from a clinical perspective, of how the measure is used.). This is the underlying object with id, value and extensions. The accessor "getUsage" gives direct access to the value
4333     */
4334    public Measure setUsageElement(MarkdownType value) { 
4335      this.usage = value;
4336      return this;
4337    }
4338
4339    /**
4340     * @return A detailed description, from a clinical perspective, of how the measure is used.
4341     */
4342    public String getUsage() { 
4343      return this.usage == null ? null : this.usage.getValue();
4344    }
4345
4346    /**
4347     * @param value A detailed description, from a clinical perspective, of how the measure is used.
4348     */
4349    public Measure setUsage(String value) { 
4350      if (Utilities.noString(value))
4351        this.usage = null;
4352      else {
4353        if (this.usage == null)
4354          this.usage = new MarkdownType();
4355        this.usage.setValue(value);
4356      }
4357      return this;
4358    }
4359
4360    /**
4361     * @return {@link #copyright} (A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
4362     */
4363    public MarkdownType getCopyrightElement() { 
4364      if (this.copyright == null)
4365        if (Configuration.errorOnAutoCreate())
4366          throw new Error("Attempt to auto-create Measure.copyright");
4367        else if (Configuration.doAutoCreate())
4368          this.copyright = new MarkdownType(); // bb
4369      return this.copyright;
4370    }
4371
4372    public boolean hasCopyrightElement() { 
4373      return this.copyright != null && !this.copyright.isEmpty();
4374    }
4375
4376    public boolean hasCopyright() { 
4377      return this.copyright != null && !this.copyright.isEmpty();
4378    }
4379
4380    /**
4381     * @param value {@link #copyright} (A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
4382     */
4383    public Measure setCopyrightElement(MarkdownType value) { 
4384      this.copyright = value;
4385      return this;
4386    }
4387
4388    /**
4389     * @return A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.
4390     */
4391    public String getCopyright() { 
4392      return this.copyright == null ? null : this.copyright.getValue();
4393    }
4394
4395    /**
4396     * @param value A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.
4397     */
4398    public Measure setCopyright(String value) { 
4399      if (Utilities.noString(value))
4400        this.copyright = null;
4401      else {
4402        if (this.copyright == null)
4403          this.copyright = new MarkdownType();
4404        this.copyright.setValue(value);
4405      }
4406      return this;
4407    }
4408
4409    /**
4410     * @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
4411     */
4412    public StringType getCopyrightLabelElement() { 
4413      if (this.copyrightLabel == null)
4414        if (Configuration.errorOnAutoCreate())
4415          throw new Error("Attempt to auto-create Measure.copyrightLabel");
4416        else if (Configuration.doAutoCreate())
4417          this.copyrightLabel = new StringType(); // bb
4418      return this.copyrightLabel;
4419    }
4420
4421    public boolean hasCopyrightLabelElement() { 
4422      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4423    }
4424
4425    public boolean hasCopyrightLabel() { 
4426      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
4427    }
4428
4429    /**
4430     * @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
4431     */
4432    public Measure setCopyrightLabelElement(StringType value) { 
4433      this.copyrightLabel = value;
4434      return this;
4435    }
4436
4437    /**
4438     * @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').
4439     */
4440    public String getCopyrightLabel() { 
4441      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
4442    }
4443
4444    /**
4445     * @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').
4446     */
4447    public Measure setCopyrightLabel(String value) { 
4448      if (Utilities.noString(value))
4449        this.copyrightLabel = null;
4450      else {
4451        if (this.copyrightLabel == null)
4452          this.copyrightLabel = new StringType();
4453        this.copyrightLabel.setValue(value);
4454      }
4455      return this;
4456    }
4457
4458    /**
4459     * @return {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
4460     */
4461    public DateType getApprovalDateElement() { 
4462      if (this.approvalDate == null)
4463        if (Configuration.errorOnAutoCreate())
4464          throw new Error("Attempt to auto-create Measure.approvalDate");
4465        else if (Configuration.doAutoCreate())
4466          this.approvalDate = new DateType(); // bb
4467      return this.approvalDate;
4468    }
4469
4470    public boolean hasApprovalDateElement() { 
4471      return this.approvalDate != null && !this.approvalDate.isEmpty();
4472    }
4473
4474    public boolean hasApprovalDate() { 
4475      return this.approvalDate != null && !this.approvalDate.isEmpty();
4476    }
4477
4478    /**
4479     * @param value {@link #approvalDate} (The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.). This is the underlying object with id, value and extensions. The accessor "getApprovalDate" gives direct access to the value
4480     */
4481    public Measure setApprovalDateElement(DateType value) { 
4482      this.approvalDate = value;
4483      return this;
4484    }
4485
4486    /**
4487     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4488     */
4489    public Date getApprovalDate() { 
4490      return this.approvalDate == null ? null : this.approvalDate.getValue();
4491    }
4492
4493    /**
4494     * @param value The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
4495     */
4496    public Measure setApprovalDate(Date value) { 
4497      if (value == null)
4498        this.approvalDate = null;
4499      else {
4500        if (this.approvalDate == null)
4501          this.approvalDate = new DateType();
4502        this.approvalDate.setValue(value);
4503      }
4504      return this;
4505    }
4506
4507    /**
4508     * @return {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
4509     */
4510    public DateType getLastReviewDateElement() { 
4511      if (this.lastReviewDate == null)
4512        if (Configuration.errorOnAutoCreate())
4513          throw new Error("Attempt to auto-create Measure.lastReviewDate");
4514        else if (Configuration.doAutoCreate())
4515          this.lastReviewDate = new DateType(); // bb
4516      return this.lastReviewDate;
4517    }
4518
4519    public boolean hasLastReviewDateElement() { 
4520      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
4521    }
4522
4523    public boolean hasLastReviewDate() { 
4524      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
4525    }
4526
4527    /**
4528     * @param value {@link #lastReviewDate} (The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.). This is the underlying object with id, value and extensions. The accessor "getLastReviewDate" gives direct access to the value
4529     */
4530    public Measure setLastReviewDateElement(DateType value) { 
4531      this.lastReviewDate = value;
4532      return this;
4533    }
4534
4535    /**
4536     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4537     */
4538    public Date getLastReviewDate() { 
4539      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
4540    }
4541
4542    /**
4543     * @param value The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
4544     */
4545    public Measure setLastReviewDate(Date value) { 
4546      if (value == null)
4547        this.lastReviewDate = null;
4548      else {
4549        if (this.lastReviewDate == null)
4550          this.lastReviewDate = new DateType();
4551        this.lastReviewDate.setValue(value);
4552      }
4553      return this;
4554    }
4555
4556    /**
4557     * @return {@link #effectivePeriod} (The period during which the measure content was or is planned to be in active use.)
4558     */
4559    public Period getEffectivePeriod() { 
4560      if (this.effectivePeriod == null)
4561        if (Configuration.errorOnAutoCreate())
4562          throw new Error("Attempt to auto-create Measure.effectivePeriod");
4563        else if (Configuration.doAutoCreate())
4564          this.effectivePeriod = new Period(); // cc
4565      return this.effectivePeriod;
4566    }
4567
4568    public boolean hasEffectivePeriod() { 
4569      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
4570    }
4571
4572    /**
4573     * @param value {@link #effectivePeriod} (The period during which the measure content was or is planned to be in active use.)
4574     */
4575    public Measure setEffectivePeriod(Period value) { 
4576      this.effectivePeriod = value;
4577      return this;
4578    }
4579
4580    /**
4581     * @return {@link #topic} (Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.)
4582     */
4583    public List<CodeableConcept> getTopic() { 
4584      if (this.topic == null)
4585        this.topic = new ArrayList<CodeableConcept>();
4586      return this.topic;
4587    }
4588
4589    /**
4590     * @return Returns a reference to <code>this</code> for easy method chaining
4591     */
4592    public Measure setTopic(List<CodeableConcept> theTopic) { 
4593      this.topic = theTopic;
4594      return this;
4595    }
4596
4597    public boolean hasTopic() { 
4598      if (this.topic == null)
4599        return false;
4600      for (CodeableConcept item : this.topic)
4601        if (!item.isEmpty())
4602          return true;
4603      return false;
4604    }
4605
4606    public CodeableConcept addTopic() { //3
4607      CodeableConcept t = new CodeableConcept();
4608      if (this.topic == null)
4609        this.topic = new ArrayList<CodeableConcept>();
4610      this.topic.add(t);
4611      return t;
4612    }
4613
4614    public Measure addTopic(CodeableConcept t) { //3
4615      if (t == null)
4616        return this;
4617      if (this.topic == null)
4618        this.topic = new ArrayList<CodeableConcept>();
4619      this.topic.add(t);
4620      return this;
4621    }
4622
4623    /**
4624     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist {3}
4625     */
4626    public CodeableConcept getTopicFirstRep() { 
4627      if (getTopic().isEmpty()) {
4628        addTopic();
4629      }
4630      return getTopic().get(0);
4631    }
4632
4633    /**
4634     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.)
4635     */
4636    public List<ContactDetail> getAuthor() { 
4637      if (this.author == null)
4638        this.author = new ArrayList<ContactDetail>();
4639      return this.author;
4640    }
4641
4642    /**
4643     * @return Returns a reference to <code>this</code> for easy method chaining
4644     */
4645    public Measure setAuthor(List<ContactDetail> theAuthor) { 
4646      this.author = theAuthor;
4647      return this;
4648    }
4649
4650    public boolean hasAuthor() { 
4651      if (this.author == null)
4652        return false;
4653      for (ContactDetail item : this.author)
4654        if (!item.isEmpty())
4655          return true;
4656      return false;
4657    }
4658
4659    public ContactDetail addAuthor() { //3
4660      ContactDetail t = new ContactDetail();
4661      if (this.author == null)
4662        this.author = new ArrayList<ContactDetail>();
4663      this.author.add(t);
4664      return t;
4665    }
4666
4667    public Measure addAuthor(ContactDetail t) { //3
4668      if (t == null)
4669        return this;
4670      if (this.author == null)
4671        this.author = new ArrayList<ContactDetail>();
4672      this.author.add(t);
4673      return this;
4674    }
4675
4676    /**
4677     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3}
4678     */
4679    public ContactDetail getAuthorFirstRep() { 
4680      if (getAuthor().isEmpty()) {
4681        addAuthor();
4682      }
4683      return getAuthor().get(0);
4684    }
4685
4686    /**
4687     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.)
4688     */
4689    public List<ContactDetail> getEditor() { 
4690      if (this.editor == null)
4691        this.editor = new ArrayList<ContactDetail>();
4692      return this.editor;
4693    }
4694
4695    /**
4696     * @return Returns a reference to <code>this</code> for easy method chaining
4697     */
4698    public Measure setEditor(List<ContactDetail> theEditor) { 
4699      this.editor = theEditor;
4700      return this;
4701    }
4702
4703    public boolean hasEditor() { 
4704      if (this.editor == null)
4705        return false;
4706      for (ContactDetail item : this.editor)
4707        if (!item.isEmpty())
4708          return true;
4709      return false;
4710    }
4711
4712    public ContactDetail addEditor() { //3
4713      ContactDetail t = new ContactDetail();
4714      if (this.editor == null)
4715        this.editor = new ArrayList<ContactDetail>();
4716      this.editor.add(t);
4717      return t;
4718    }
4719
4720    public Measure addEditor(ContactDetail t) { //3
4721      if (t == null)
4722        return this;
4723      if (this.editor == null)
4724        this.editor = new ArrayList<ContactDetail>();
4725      this.editor.add(t);
4726      return this;
4727    }
4728
4729    /**
4730     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist {3}
4731     */
4732    public ContactDetail getEditorFirstRep() { 
4733      if (getEditor().isEmpty()) {
4734        addEditor();
4735      }
4736      return getEditor().get(0);
4737    }
4738
4739    /**
4740     * @return {@link #reviewer} (An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.)
4741     */
4742    public List<ContactDetail> getReviewer() { 
4743      if (this.reviewer == null)
4744        this.reviewer = new ArrayList<ContactDetail>();
4745      return this.reviewer;
4746    }
4747
4748    /**
4749     * @return Returns a reference to <code>this</code> for easy method chaining
4750     */
4751    public Measure setReviewer(List<ContactDetail> theReviewer) { 
4752      this.reviewer = theReviewer;
4753      return this;
4754    }
4755
4756    public boolean hasReviewer() { 
4757      if (this.reviewer == null)
4758        return false;
4759      for (ContactDetail item : this.reviewer)
4760        if (!item.isEmpty())
4761          return true;
4762      return false;
4763    }
4764
4765    public ContactDetail addReviewer() { //3
4766      ContactDetail t = new ContactDetail();
4767      if (this.reviewer == null)
4768        this.reviewer = new ArrayList<ContactDetail>();
4769      this.reviewer.add(t);
4770      return t;
4771    }
4772
4773    public Measure addReviewer(ContactDetail t) { //3
4774      if (t == null)
4775        return this;
4776      if (this.reviewer == null)
4777        this.reviewer = new ArrayList<ContactDetail>();
4778      this.reviewer.add(t);
4779      return this;
4780    }
4781
4782    /**
4783     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist {3}
4784     */
4785    public ContactDetail getReviewerFirstRep() { 
4786      if (getReviewer().isEmpty()) {
4787        addReviewer();
4788      }
4789      return getReviewer().get(0);
4790    }
4791
4792    /**
4793     * @return {@link #endorser} (An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.)
4794     */
4795    public List<ContactDetail> getEndorser() { 
4796      if (this.endorser == null)
4797        this.endorser = new ArrayList<ContactDetail>();
4798      return this.endorser;
4799    }
4800
4801    /**
4802     * @return Returns a reference to <code>this</code> for easy method chaining
4803     */
4804    public Measure setEndorser(List<ContactDetail> theEndorser) { 
4805      this.endorser = theEndorser;
4806      return this;
4807    }
4808
4809    public boolean hasEndorser() { 
4810      if (this.endorser == null)
4811        return false;
4812      for (ContactDetail item : this.endorser)
4813        if (!item.isEmpty())
4814          return true;
4815      return false;
4816    }
4817
4818    public ContactDetail addEndorser() { //3
4819      ContactDetail t = new ContactDetail();
4820      if (this.endorser == null)
4821        this.endorser = new ArrayList<ContactDetail>();
4822      this.endorser.add(t);
4823      return t;
4824    }
4825
4826    public Measure addEndorser(ContactDetail t) { //3
4827      if (t == null)
4828        return this;
4829      if (this.endorser == null)
4830        this.endorser = new ArrayList<ContactDetail>();
4831      this.endorser.add(t);
4832      return this;
4833    }
4834
4835    /**
4836     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist {3}
4837     */
4838    public ContactDetail getEndorserFirstRep() { 
4839      if (getEndorser().isEmpty()) {
4840        addEndorser();
4841      }
4842      return getEndorser().get(0);
4843    }
4844
4845    /**
4846     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.)
4847     */
4848    public List<RelatedArtifact> getRelatedArtifact() { 
4849      if (this.relatedArtifact == null)
4850        this.relatedArtifact = new ArrayList<RelatedArtifact>();
4851      return this.relatedArtifact;
4852    }
4853
4854    /**
4855     * @return Returns a reference to <code>this</code> for easy method chaining
4856     */
4857    public Measure setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
4858      this.relatedArtifact = theRelatedArtifact;
4859      return this;
4860    }
4861
4862    public boolean hasRelatedArtifact() { 
4863      if (this.relatedArtifact == null)
4864        return false;
4865      for (RelatedArtifact item : this.relatedArtifact)
4866        if (!item.isEmpty())
4867          return true;
4868      return false;
4869    }
4870
4871    public RelatedArtifact addRelatedArtifact() { //3
4872      RelatedArtifact t = new RelatedArtifact();
4873      if (this.relatedArtifact == null)
4874        this.relatedArtifact = new ArrayList<RelatedArtifact>();
4875      this.relatedArtifact.add(t);
4876      return t;
4877    }
4878
4879    public Measure addRelatedArtifact(RelatedArtifact t) { //3
4880      if (t == null)
4881        return this;
4882      if (this.relatedArtifact == null)
4883        this.relatedArtifact = new ArrayList<RelatedArtifact>();
4884      this.relatedArtifact.add(t);
4885      return this;
4886    }
4887
4888    /**
4889     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist {3}
4890     */
4891    public RelatedArtifact getRelatedArtifactFirstRep() { 
4892      if (getRelatedArtifact().isEmpty()) {
4893        addRelatedArtifact();
4894      }
4895      return getRelatedArtifact().get(0);
4896    }
4897
4898    /**
4899     * @return {@link #library} (A reference to a Library resource containing the formal logic used by the measure.)
4900     */
4901    public List<CanonicalType> getLibrary() { 
4902      if (this.library == null)
4903        this.library = new ArrayList<CanonicalType>();
4904      return this.library;
4905    }
4906
4907    /**
4908     * @return Returns a reference to <code>this</code> for easy method chaining
4909     */
4910    public Measure setLibrary(List<CanonicalType> theLibrary) { 
4911      this.library = theLibrary;
4912      return this;
4913    }
4914
4915    public boolean hasLibrary() { 
4916      if (this.library == null)
4917        return false;
4918      for (CanonicalType item : this.library)
4919        if (!item.isEmpty())
4920          return true;
4921      return false;
4922    }
4923
4924    /**
4925     * @return {@link #library} (A reference to a Library resource containing the formal logic used by the measure.)
4926     */
4927    public CanonicalType addLibraryElement() {//2 
4928      CanonicalType t = new CanonicalType();
4929      if (this.library == null)
4930        this.library = new ArrayList<CanonicalType>();
4931      this.library.add(t);
4932      return t;
4933    }
4934
4935    /**
4936     * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the measure.)
4937     */
4938    public Measure addLibrary(String value) { //1
4939      CanonicalType t = new CanonicalType();
4940      t.setValue(value);
4941      if (this.library == null)
4942        this.library = new ArrayList<CanonicalType>();
4943      this.library.add(t);
4944      return this;
4945    }
4946
4947    /**
4948     * @param value {@link #library} (A reference to a Library resource containing the formal logic used by the measure.)
4949     */
4950    public boolean hasLibrary(String value) { 
4951      if (this.library == null)
4952        return false;
4953      for (CanonicalType v : this.library)
4954        if (v.getValue().equals(value)) // canonical
4955          return true;
4956      return false;
4957    }
4958
4959    /**
4960     * @return {@link #disclaimer} (Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.). This is the underlying object with id, value and extensions. The accessor "getDisclaimer" gives direct access to the value
4961     */
4962    public MarkdownType getDisclaimerElement() { 
4963      if (this.disclaimer == null)
4964        if (Configuration.errorOnAutoCreate())
4965          throw new Error("Attempt to auto-create Measure.disclaimer");
4966        else if (Configuration.doAutoCreate())
4967          this.disclaimer = new MarkdownType(); // bb
4968      return this.disclaimer;
4969    }
4970
4971    public boolean hasDisclaimerElement() { 
4972      return this.disclaimer != null && !this.disclaimer.isEmpty();
4973    }
4974
4975    public boolean hasDisclaimer() { 
4976      return this.disclaimer != null && !this.disclaimer.isEmpty();
4977    }
4978
4979    /**
4980     * @param value {@link #disclaimer} (Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.). This is the underlying object with id, value and extensions. The accessor "getDisclaimer" gives direct access to the value
4981     */
4982    public Measure setDisclaimerElement(MarkdownType value) { 
4983      this.disclaimer = value;
4984      return this;
4985    }
4986
4987    /**
4988     * @return Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.
4989     */
4990    public String getDisclaimer() { 
4991      return this.disclaimer == null ? null : this.disclaimer.getValue();
4992    }
4993
4994    /**
4995     * @param value Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.
4996     */
4997    public Measure setDisclaimer(String value) { 
4998      if (Utilities.noString(value))
4999        this.disclaimer = null;
5000      else {
5001        if (this.disclaimer == null)
5002          this.disclaimer = new MarkdownType();
5003        this.disclaimer.setValue(value);
5004      }
5005      return this;
5006    }
5007
5008    /**
5009     * @return {@link #scoring} (Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.)
5010     */
5011    public CodeableConcept getScoring() { 
5012      if (this.scoring == null)
5013        if (Configuration.errorOnAutoCreate())
5014          throw new Error("Attempt to auto-create Measure.scoring");
5015        else if (Configuration.doAutoCreate())
5016          this.scoring = new CodeableConcept(); // cc
5017      return this.scoring;
5018    }
5019
5020    public boolean hasScoring() { 
5021      return this.scoring != null && !this.scoring.isEmpty();
5022    }
5023
5024    /**
5025     * @param value {@link #scoring} (Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.)
5026     */
5027    public Measure setScoring(CodeableConcept value) { 
5028      this.scoring = value;
5029      return this;
5030    }
5031
5032    /**
5033     * @return {@link #scoringUnit} (Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.)
5034     */
5035    public CodeableConcept getScoringUnit() { 
5036      if (this.scoringUnit == null)
5037        if (Configuration.errorOnAutoCreate())
5038          throw new Error("Attempt to auto-create Measure.scoringUnit");
5039        else if (Configuration.doAutoCreate())
5040          this.scoringUnit = new CodeableConcept(); // cc
5041      return this.scoringUnit;
5042    }
5043
5044    public boolean hasScoringUnit() { 
5045      return this.scoringUnit != null && !this.scoringUnit.isEmpty();
5046    }
5047
5048    /**
5049     * @param value {@link #scoringUnit} (Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.)
5050     */
5051    public Measure setScoringUnit(CodeableConcept value) { 
5052      this.scoringUnit = value;
5053      return this;
5054    }
5055
5056    /**
5057     * @return {@link #compositeScoring} (If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.)
5058     */
5059    public CodeableConcept getCompositeScoring() { 
5060      if (this.compositeScoring == null)
5061        if (Configuration.errorOnAutoCreate())
5062          throw new Error("Attempt to auto-create Measure.compositeScoring");
5063        else if (Configuration.doAutoCreate())
5064          this.compositeScoring = new CodeableConcept(); // cc
5065      return this.compositeScoring;
5066    }
5067
5068    public boolean hasCompositeScoring() { 
5069      return this.compositeScoring != null && !this.compositeScoring.isEmpty();
5070    }
5071
5072    /**
5073     * @param value {@link #compositeScoring} (If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.)
5074     */
5075    public Measure setCompositeScoring(CodeableConcept value) { 
5076      this.compositeScoring = value;
5077      return this;
5078    }
5079
5080    /**
5081     * @return {@link #type} (Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.)
5082     */
5083    public List<CodeableConcept> getType() { 
5084      if (this.type == null)
5085        this.type = new ArrayList<CodeableConcept>();
5086      return this.type;
5087    }
5088
5089    /**
5090     * @return Returns a reference to <code>this</code> for easy method chaining
5091     */
5092    public Measure setType(List<CodeableConcept> theType) { 
5093      this.type = theType;
5094      return this;
5095    }
5096
5097    public boolean hasType() { 
5098      if (this.type == null)
5099        return false;
5100      for (CodeableConcept item : this.type)
5101        if (!item.isEmpty())
5102          return true;
5103      return false;
5104    }
5105
5106    public CodeableConcept addType() { //3
5107      CodeableConcept t = new CodeableConcept();
5108      if (this.type == null)
5109        this.type = new ArrayList<CodeableConcept>();
5110      this.type.add(t);
5111      return t;
5112    }
5113
5114    public Measure addType(CodeableConcept t) { //3
5115      if (t == null)
5116        return this;
5117      if (this.type == null)
5118        this.type = new ArrayList<CodeableConcept>();
5119      this.type.add(t);
5120      return this;
5121    }
5122
5123    /**
5124     * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3}
5125     */
5126    public CodeableConcept getTypeFirstRep() { 
5127      if (getType().isEmpty()) {
5128        addType();
5129      }
5130      return getType().get(0);
5131    }
5132
5133    /**
5134     * @return {@link #riskAdjustment} (A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.). This is the underlying object with id, value and extensions. The accessor "getRiskAdjustment" gives direct access to the value
5135     */
5136    public MarkdownType getRiskAdjustmentElement() { 
5137      if (this.riskAdjustment == null)
5138        if (Configuration.errorOnAutoCreate())
5139          throw new Error("Attempt to auto-create Measure.riskAdjustment");
5140        else if (Configuration.doAutoCreate())
5141          this.riskAdjustment = new MarkdownType(); // bb
5142      return this.riskAdjustment;
5143    }
5144
5145    public boolean hasRiskAdjustmentElement() { 
5146      return this.riskAdjustment != null && !this.riskAdjustment.isEmpty();
5147    }
5148
5149    public boolean hasRiskAdjustment() { 
5150      return this.riskAdjustment != null && !this.riskAdjustment.isEmpty();
5151    }
5152
5153    /**
5154     * @param value {@link #riskAdjustment} (A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.). This is the underlying object with id, value and extensions. The accessor "getRiskAdjustment" gives direct access to the value
5155     */
5156    public Measure setRiskAdjustmentElement(MarkdownType value) { 
5157      this.riskAdjustment = value;
5158      return this;
5159    }
5160
5161    /**
5162     * @return A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.
5163     */
5164    public String getRiskAdjustment() { 
5165      return this.riskAdjustment == null ? null : this.riskAdjustment.getValue();
5166    }
5167
5168    /**
5169     * @param value A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.
5170     */
5171    public Measure setRiskAdjustment(String value) { 
5172      if (Utilities.noString(value))
5173        this.riskAdjustment = null;
5174      else {
5175        if (this.riskAdjustment == null)
5176          this.riskAdjustment = new MarkdownType();
5177        this.riskAdjustment.setValue(value);
5178      }
5179      return this;
5180    }
5181
5182    /**
5183     * @return {@link #rateAggregation} (Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.). This is the underlying object with id, value and extensions. The accessor "getRateAggregation" gives direct access to the value
5184     */
5185    public MarkdownType getRateAggregationElement() { 
5186      if (this.rateAggregation == null)
5187        if (Configuration.errorOnAutoCreate())
5188          throw new Error("Attempt to auto-create Measure.rateAggregation");
5189        else if (Configuration.doAutoCreate())
5190          this.rateAggregation = new MarkdownType(); // bb
5191      return this.rateAggregation;
5192    }
5193
5194    public boolean hasRateAggregationElement() { 
5195      return this.rateAggregation != null && !this.rateAggregation.isEmpty();
5196    }
5197
5198    public boolean hasRateAggregation() { 
5199      return this.rateAggregation != null && !this.rateAggregation.isEmpty();
5200    }
5201
5202    /**
5203     * @param value {@link #rateAggregation} (Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.). This is the underlying object with id, value and extensions. The accessor "getRateAggregation" gives direct access to the value
5204     */
5205    public Measure setRateAggregationElement(MarkdownType value) { 
5206      this.rateAggregation = value;
5207      return this;
5208    }
5209
5210    /**
5211     * @return Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.
5212     */
5213    public String getRateAggregation() { 
5214      return this.rateAggregation == null ? null : this.rateAggregation.getValue();
5215    }
5216
5217    /**
5218     * @param value Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.
5219     */
5220    public Measure setRateAggregation(String value) { 
5221      if (Utilities.noString(value))
5222        this.rateAggregation = null;
5223      else {
5224        if (this.rateAggregation == null)
5225          this.rateAggregation = new MarkdownType();
5226        this.rateAggregation.setValue(value);
5227      }
5228      return this;
5229    }
5230
5231    /**
5232     * @return {@link #rationale} (Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.). This is the underlying object with id, value and extensions. The accessor "getRationale" gives direct access to the value
5233     */
5234    public MarkdownType getRationaleElement() { 
5235      if (this.rationale == null)
5236        if (Configuration.errorOnAutoCreate())
5237          throw new Error("Attempt to auto-create Measure.rationale");
5238        else if (Configuration.doAutoCreate())
5239          this.rationale = new MarkdownType(); // bb
5240      return this.rationale;
5241    }
5242
5243    public boolean hasRationaleElement() { 
5244      return this.rationale != null && !this.rationale.isEmpty();
5245    }
5246
5247    public boolean hasRationale() { 
5248      return this.rationale != null && !this.rationale.isEmpty();
5249    }
5250
5251    /**
5252     * @param value {@link #rationale} (Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.). This is the underlying object with id, value and extensions. The accessor "getRationale" gives direct access to the value
5253     */
5254    public Measure setRationaleElement(MarkdownType value) { 
5255      this.rationale = value;
5256      return this;
5257    }
5258
5259    /**
5260     * @return Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.
5261     */
5262    public String getRationale() { 
5263      return this.rationale == null ? null : this.rationale.getValue();
5264    }
5265
5266    /**
5267     * @param value Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.
5268     */
5269    public Measure setRationale(String value) { 
5270      if (Utilities.noString(value))
5271        this.rationale = null;
5272      else {
5273        if (this.rationale == null)
5274          this.rationale = new MarkdownType();
5275        this.rationale.setValue(value);
5276      }
5277      return this;
5278    }
5279
5280    /**
5281     * @return {@link #clinicalRecommendationStatement} (Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.). This is the underlying object with id, value and extensions. The accessor "getClinicalRecommendationStatement" gives direct access to the value
5282     */
5283    public MarkdownType getClinicalRecommendationStatementElement() { 
5284      if (this.clinicalRecommendationStatement == null)
5285        if (Configuration.errorOnAutoCreate())
5286          throw new Error("Attempt to auto-create Measure.clinicalRecommendationStatement");
5287        else if (Configuration.doAutoCreate())
5288          this.clinicalRecommendationStatement = new MarkdownType(); // bb
5289      return this.clinicalRecommendationStatement;
5290    }
5291
5292    public boolean hasClinicalRecommendationStatementElement() { 
5293      return this.clinicalRecommendationStatement != null && !this.clinicalRecommendationStatement.isEmpty();
5294    }
5295
5296    public boolean hasClinicalRecommendationStatement() { 
5297      return this.clinicalRecommendationStatement != null && !this.clinicalRecommendationStatement.isEmpty();
5298    }
5299
5300    /**
5301     * @param value {@link #clinicalRecommendationStatement} (Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.). This is the underlying object with id, value and extensions. The accessor "getClinicalRecommendationStatement" gives direct access to the value
5302     */
5303    public Measure setClinicalRecommendationStatementElement(MarkdownType value) { 
5304      this.clinicalRecommendationStatement = value;
5305      return this;
5306    }
5307
5308    /**
5309     * @return Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.
5310     */
5311    public String getClinicalRecommendationStatement() { 
5312      return this.clinicalRecommendationStatement == null ? null : this.clinicalRecommendationStatement.getValue();
5313    }
5314
5315    /**
5316     * @param value Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.
5317     */
5318    public Measure setClinicalRecommendationStatement(String value) { 
5319      if (Utilities.noString(value))
5320        this.clinicalRecommendationStatement = null;
5321      else {
5322        if (this.clinicalRecommendationStatement == null)
5323          this.clinicalRecommendationStatement = new MarkdownType();
5324        this.clinicalRecommendationStatement.setValue(value);
5325      }
5326      return this;
5327    }
5328
5329    /**
5330     * @return {@link #improvementNotation} (Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).)
5331     */
5332    public CodeableConcept getImprovementNotation() { 
5333      if (this.improvementNotation == null)
5334        if (Configuration.errorOnAutoCreate())
5335          throw new Error("Attempt to auto-create Measure.improvementNotation");
5336        else if (Configuration.doAutoCreate())
5337          this.improvementNotation = new CodeableConcept(); // cc
5338      return this.improvementNotation;
5339    }
5340
5341    public boolean hasImprovementNotation() { 
5342      return this.improvementNotation != null && !this.improvementNotation.isEmpty();
5343    }
5344
5345    /**
5346     * @param value {@link #improvementNotation} (Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).)
5347     */
5348    public Measure setImprovementNotation(CodeableConcept value) { 
5349      this.improvementNotation = value;
5350      return this;
5351    }
5352
5353    /**
5354     * @return {@link #term} (Provides a description of an individual term used within the measure.)
5355     */
5356    public List<MeasureTermComponent> getTerm() { 
5357      if (this.term == null)
5358        this.term = new ArrayList<MeasureTermComponent>();
5359      return this.term;
5360    }
5361
5362    /**
5363     * @return Returns a reference to <code>this</code> for easy method chaining
5364     */
5365    public Measure setTerm(List<MeasureTermComponent> theTerm) { 
5366      this.term = theTerm;
5367      return this;
5368    }
5369
5370    public boolean hasTerm() { 
5371      if (this.term == null)
5372        return false;
5373      for (MeasureTermComponent item : this.term)
5374        if (!item.isEmpty())
5375          return true;
5376      return false;
5377    }
5378
5379    public MeasureTermComponent addTerm() { //3
5380      MeasureTermComponent t = new MeasureTermComponent();
5381      if (this.term == null)
5382        this.term = new ArrayList<MeasureTermComponent>();
5383      this.term.add(t);
5384      return t;
5385    }
5386
5387    public Measure addTerm(MeasureTermComponent t) { //3
5388      if (t == null)
5389        return this;
5390      if (this.term == null)
5391        this.term = new ArrayList<MeasureTermComponent>();
5392      this.term.add(t);
5393      return this;
5394    }
5395
5396    /**
5397     * @return The first repetition of repeating field {@link #term}, creating it if it does not already exist {3}
5398     */
5399    public MeasureTermComponent getTermFirstRep() { 
5400      if (getTerm().isEmpty()) {
5401        addTerm();
5402      }
5403      return getTerm().get(0);
5404    }
5405
5406    /**
5407     * @return {@link #guidance} (Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.). This is the underlying object with id, value and extensions. The accessor "getGuidance" gives direct access to the value
5408     */
5409    public MarkdownType getGuidanceElement() { 
5410      if (this.guidance == null)
5411        if (Configuration.errorOnAutoCreate())
5412          throw new Error("Attempt to auto-create Measure.guidance");
5413        else if (Configuration.doAutoCreate())
5414          this.guidance = new MarkdownType(); // bb
5415      return this.guidance;
5416    }
5417
5418    public boolean hasGuidanceElement() { 
5419      return this.guidance != null && !this.guidance.isEmpty();
5420    }
5421
5422    public boolean hasGuidance() { 
5423      return this.guidance != null && !this.guidance.isEmpty();
5424    }
5425
5426    /**
5427     * @param value {@link #guidance} (Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.). This is the underlying object with id, value and extensions. The accessor "getGuidance" gives direct access to the value
5428     */
5429    public Measure setGuidanceElement(MarkdownType value) { 
5430      this.guidance = value;
5431      return this;
5432    }
5433
5434    /**
5435     * @return Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.
5436     */
5437    public String getGuidance() { 
5438      return this.guidance == null ? null : this.guidance.getValue();
5439    }
5440
5441    /**
5442     * @param value Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.
5443     */
5444    public Measure setGuidance(String value) { 
5445      if (Utilities.noString(value))
5446        this.guidance = null;
5447      else {
5448        if (this.guidance == null)
5449          this.guidance = new MarkdownType();
5450        this.guidance.setValue(value);
5451      }
5452      return this;
5453    }
5454
5455    /**
5456     * @return {@link #group} (A group of population criteria for the measure.)
5457     */
5458    public List<MeasureGroupComponent> getGroup() { 
5459      if (this.group == null)
5460        this.group = new ArrayList<MeasureGroupComponent>();
5461      return this.group;
5462    }
5463
5464    /**
5465     * @return Returns a reference to <code>this</code> for easy method chaining
5466     */
5467    public Measure setGroup(List<MeasureGroupComponent> theGroup) { 
5468      this.group = theGroup;
5469      return this;
5470    }
5471
5472    public boolean hasGroup() { 
5473      if (this.group == null)
5474        return false;
5475      for (MeasureGroupComponent item : this.group)
5476        if (!item.isEmpty())
5477          return true;
5478      return false;
5479    }
5480
5481    public MeasureGroupComponent addGroup() { //3
5482      MeasureGroupComponent t = new MeasureGroupComponent();
5483      if (this.group == null)
5484        this.group = new ArrayList<MeasureGroupComponent>();
5485      this.group.add(t);
5486      return t;
5487    }
5488
5489    public Measure addGroup(MeasureGroupComponent t) { //3
5490      if (t == null)
5491        return this;
5492      if (this.group == null)
5493        this.group = new ArrayList<MeasureGroupComponent>();
5494      this.group.add(t);
5495      return this;
5496    }
5497
5498    /**
5499     * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist {3}
5500     */
5501    public MeasureGroupComponent getGroupFirstRep() { 
5502      if (getGroup().isEmpty()) {
5503        addGroup();
5504      }
5505      return getGroup().get(0);
5506    }
5507
5508    /**
5509     * @return {@link #supplementalData} (The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.)
5510     */
5511    public List<MeasureSupplementalDataComponent> getSupplementalData() { 
5512      if (this.supplementalData == null)
5513        this.supplementalData = new ArrayList<MeasureSupplementalDataComponent>();
5514      return this.supplementalData;
5515    }
5516
5517    /**
5518     * @return Returns a reference to <code>this</code> for easy method chaining
5519     */
5520    public Measure setSupplementalData(List<MeasureSupplementalDataComponent> theSupplementalData) { 
5521      this.supplementalData = theSupplementalData;
5522      return this;
5523    }
5524
5525    public boolean hasSupplementalData() { 
5526      if (this.supplementalData == null)
5527        return false;
5528      for (MeasureSupplementalDataComponent item : this.supplementalData)
5529        if (!item.isEmpty())
5530          return true;
5531      return false;
5532    }
5533
5534    public MeasureSupplementalDataComponent addSupplementalData() { //3
5535      MeasureSupplementalDataComponent t = new MeasureSupplementalDataComponent();
5536      if (this.supplementalData == null)
5537        this.supplementalData = new ArrayList<MeasureSupplementalDataComponent>();
5538      this.supplementalData.add(t);
5539      return t;
5540    }
5541
5542    public Measure addSupplementalData(MeasureSupplementalDataComponent t) { //3
5543      if (t == null)
5544        return this;
5545      if (this.supplementalData == null)
5546        this.supplementalData = new ArrayList<MeasureSupplementalDataComponent>();
5547      this.supplementalData.add(t);
5548      return this;
5549    }
5550
5551    /**
5552     * @return The first repetition of repeating field {@link #supplementalData}, creating it if it does not already exist {3}
5553     */
5554    public MeasureSupplementalDataComponent getSupplementalDataFirstRep() { 
5555      if (getSupplementalData().isEmpty()) {
5556        addSupplementalData();
5557      }
5558      return getSupplementalData().get(0);
5559    }
5560
5561      protected void listChildren(List<Property> children) {
5562        super.listChildren(children);
5563        children.add(new Property("url", "uri", "An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.", 0, 1, url));
5564        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
5565        children.add(new Property("version", "string", "The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version));
5566        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
5567        children.add(new Property("name", "string", "A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
5568        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the measure.", 0, 1, title));
5569        children.add(new Property("subtitle", "string", "An explanatory or alternate title for the measure giving additional information about its content.", 0, 1, subtitle));
5570        children.add(new Property("status", "code", "The status of this measure. Enables tracking the life-cycle of the content.", 0, 1, status));
5571        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
5572        children.add(new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject));
5573        children.add(new Property("basis", "code", "The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.", 0, 1, basis));
5574        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the measure 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 measure changes.", 0, 1, date));
5575        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the measure.", 0, 1, publisher));
5576        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));
5577        children.add(new Property("description", "markdown", "A free text natural language description of the measure from a consumer's perspective.", 0, 1, description));
5578        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 measure instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
5579        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the measure is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
5580        children.add(new Property("purpose", "markdown", "Explanation of why this measure is needed and why it has been designed as it has.", 0, 1, purpose));
5581        children.add(new Property("usage", "markdown", "A detailed description, from a clinical perspective, of how the measure is used.", 0, 1, usage));
5582        children.add(new Property("copyright", "markdown", "A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.", 0, 1, copyright));
5583        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));
5584        children.add(new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate));
5585        children.add(new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate));
5586        children.add(new Property("effectivePeriod", "Period", "The period during which the measure content was or is planned to be in active use.", 0, 1, effectivePeriod));
5587        children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic));
5588        children.add(new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author));
5589        children.add(new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor));
5590        children.add(new Property("reviewer", "ContactDetail", "An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer));
5591        children.add(new Property("endorser", "ContactDetail", "An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser));
5592        children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact));
5593        children.add(new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the measure.", 0, java.lang.Integer.MAX_VALUE, library));
5594        children.add(new Property("disclaimer", "markdown", "Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.", 0, 1, disclaimer));
5595        children.add(new Property("scoring", "CodeableConcept", "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.", 0, 1, scoring));
5596        children.add(new Property("scoringUnit", "CodeableConcept", "Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.", 0, 1, scoringUnit));
5597        children.add(new Property("compositeScoring", "CodeableConcept", "If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.", 0, 1, compositeScoring));
5598        children.add(new Property("type", "CodeableConcept", "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.", 0, java.lang.Integer.MAX_VALUE, type));
5599        children.add(new Property("riskAdjustment", "markdown", "A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.", 0, 1, riskAdjustment));
5600        children.add(new Property("rateAggregation", "markdown", "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.", 0, 1, rateAggregation));
5601        children.add(new Property("rationale", "markdown", "Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.", 0, 1, rationale));
5602        children.add(new Property("clinicalRecommendationStatement", "markdown", "Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.", 0, 1, clinicalRecommendationStatement));
5603        children.add(new Property("improvementNotation", "CodeableConcept", "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).", 0, 1, improvementNotation));
5604        children.add(new Property("term", "", "Provides a description of an individual term used within the measure.", 0, java.lang.Integer.MAX_VALUE, term));
5605        children.add(new Property("guidance", "markdown", "Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.", 0, 1, guidance));
5606        children.add(new Property("group", "", "A group of population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, group));
5607        children.add(new Property("supplementalData", "", "The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, supplementalData));
5608      }
5609
5610      @Override
5611      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
5612        switch (_hash) {
5613        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this measure 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 measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers.", 0, 1, url);
5614        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
5615        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version);
5616        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);
5617        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);
5618        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);
5619        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);
5620        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
5621        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the measure.", 0, 1, title);
5622        case -2060497896: /*subtitle*/  return new Property("subtitle", "string", "An explanatory or alternate title for the measure giving additional information about its content.", 0, 1, subtitle);
5623        case -892481550: /*status*/  return new Property("status", "code", "The status of this measure. Enables tracking the life-cycle of the content.", 0, 1, status);
5624        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
5625        case -573640748: /*subject[x]*/  return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
5626        case -1867885268: /*subject*/  return new Property("subject[x]", "CodeableConcept|Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
5627        case -1257122603: /*subjectCodeableConcept*/  return new Property("subject[x]", "CodeableConcept", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
5628        case 772938623: /*subjectReference*/  return new Property("subject[x]", "Reference(Group)", "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything.", 0, 1, subject);
5629        case 93508670: /*basis*/  return new Property("basis", "code", "The population basis specifies the type of elements in the population. For a subject-based measure, this is boolean (because the subject and the population basis are the same, and the population criteria define yes/no values for each individual in the population). For measures that have a population basis that is different than the subject, this element specifies the type of the population basis. For example, an encounter-based measure has a subject of Patient and a population basis of Encounter, and the population criteria all return lists of Encounters.", 0, 1, basis);
5630        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the measure 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 measure changes.", 0, 1, date);
5631        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the measure.", 0, 1, publisher);
5632        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);
5633        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the measure from a consumer's perspective.", 0, 1, description);
5634        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 measure instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
5635        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the measure is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
5636        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this measure is needed and why it has been designed as it has.", 0, 1, purpose);
5637        case 111574433: /*usage*/  return new Property("usage", "markdown", "A detailed description, from a clinical perspective, of how the measure is used.", 0, 1, usage);
5638        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure.", 0, 1, copyright);
5639        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);
5640        case 223539345: /*approvalDate*/  return new Property("approvalDate", "date", "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 0, 1, approvalDate);
5641        case -1687512484: /*lastReviewDate*/  return new Property("lastReviewDate", "date", "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 0, 1, lastReviewDate);
5642        case -403934648: /*effectivePeriod*/  return new Property("effectivePeriod", "Period", "The period during which the measure content was or is planned to be in active use.", 0, 1, effectivePeriod);
5643        case 110546223: /*topic*/  return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic);
5644        case -1406328437: /*author*/  return new Property("author", "ContactDetail", "An individiual or organization primarily involved in the creation and maintenance of the content.", 0, java.lang.Integer.MAX_VALUE, author);
5645        case -1307827859: /*editor*/  return new Property("editor", "ContactDetail", "An individual or organization primarily responsible for internal coherence of the content.", 0, java.lang.Integer.MAX_VALUE, editor);
5646        case -261190139: /*reviewer*/  return new Property("reviewer", "ContactDetail", "An individual or organization asserted by the publisher to be primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer);
5647        case 1740277666: /*endorser*/  return new Property("endorser", "ContactDetail", "An individual or organization asserted by the publisher to be responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser);
5648        case 666807069: /*relatedArtifact*/  return new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact);
5649        case 166208699: /*library*/  return new Property("library", "canonical(Library)", "A reference to a Library resource containing the formal logic used by the measure.", 0, java.lang.Integer.MAX_VALUE, library);
5650        case 432371099: /*disclaimer*/  return new Property("disclaimer", "markdown", "Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure.", 0, 1, disclaimer);
5651        case 1924005583: /*scoring*/  return new Property("scoring", "CodeableConcept", "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented.", 0, 1, scoring);
5652        case 1527532787: /*scoringUnit*/  return new Property("scoringUnit", "CodeableConcept", "Defines the expected units of measure for the measure score. This element SHOULD be specified as a UCUM unit.", 0, 1, scoringUnit);
5653        case 569347656: /*compositeScoring*/  return new Property("compositeScoring", "CodeableConcept", "If this is a composite measure, the scoring method used to combine the component measures to determine the composite score.", 0, 1, compositeScoring);
5654        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization.", 0, java.lang.Integer.MAX_VALUE, type);
5655        case 93273500: /*riskAdjustment*/  return new Property("riskAdjustment", "markdown", "A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results.", 0, 1, riskAdjustment);
5656        case 1254503906: /*rateAggregation*/  return new Property("rateAggregation", "markdown", "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result.", 0, 1, rateAggregation);
5657        case 345689335: /*rationale*/  return new Property("rationale", "markdown", "Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence.", 0, 1, rationale);
5658        case -18631389: /*clinicalRecommendationStatement*/  return new Property("clinicalRecommendationStatement", "markdown", "Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure.", 0, 1, clinicalRecommendationStatement);
5659        case -2085456136: /*improvementNotation*/  return new Property("improvementNotation", "CodeableConcept", "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range).", 0, 1, improvementNotation);
5660        case 3556460: /*term*/  return new Property("term", "", "Provides a description of an individual term used within the measure.", 0, java.lang.Integer.MAX_VALUE, term);
5661        case -1314002088: /*guidance*/  return new Property("guidance", "markdown", "Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure.", 0, 1, guidance);
5662        case 98629247: /*group*/  return new Property("group", "", "A group of population criteria for the measure.", 0, java.lang.Integer.MAX_VALUE, group);
5663        case 1447496814: /*supplementalData*/  return new Property("supplementalData", "", "The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path.", 0, java.lang.Integer.MAX_VALUE, supplementalData);
5664        default: return super.getNamedProperty(_hash, _name, _checkValid);
5665        }
5666
5667      }
5668
5669      @Override
5670      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
5671        switch (hash) {
5672        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
5673        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
5674        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
5675        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
5676        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
5677        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
5678        case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType
5679        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
5680        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
5681        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // DataType
5682        case 93508670: /*basis*/ return this.basis == null ? new Base[0] : new Base[] {this.basis}; // Enumeration<FHIRTypes>
5683        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
5684        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
5685        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
5686        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
5687        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
5688        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
5689        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
5690        case 111574433: /*usage*/ return this.usage == null ? new Base[0] : new Base[] {this.usage}; // MarkdownType
5691        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
5692        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
5693        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
5694        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
5695        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
5696        case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept
5697        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail
5698        case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail
5699        case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail
5700        case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail
5701        case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact
5702        case 166208699: /*library*/ return this.library == null ? new Base[0] : this.library.toArray(new Base[this.library.size()]); // CanonicalType
5703        case 432371099: /*disclaimer*/ return this.disclaimer == null ? new Base[0] : new Base[] {this.disclaimer}; // MarkdownType
5704        case 1924005583: /*scoring*/ return this.scoring == null ? new Base[0] : new Base[] {this.scoring}; // CodeableConcept
5705        case 1527532787: /*scoringUnit*/ return this.scoringUnit == null ? new Base[0] : new Base[] {this.scoringUnit}; // CodeableConcept
5706        case 569347656: /*compositeScoring*/ return this.compositeScoring == null ? new Base[0] : new Base[] {this.compositeScoring}; // CodeableConcept
5707        case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept
5708        case 93273500: /*riskAdjustment*/ return this.riskAdjustment == null ? new Base[0] : new Base[] {this.riskAdjustment}; // MarkdownType
5709        case 1254503906: /*rateAggregation*/ return this.rateAggregation == null ? new Base[0] : new Base[] {this.rateAggregation}; // MarkdownType
5710        case 345689335: /*rationale*/ return this.rationale == null ? new Base[0] : new Base[] {this.rationale}; // MarkdownType
5711        case -18631389: /*clinicalRecommendationStatement*/ return this.clinicalRecommendationStatement == null ? new Base[0] : new Base[] {this.clinicalRecommendationStatement}; // MarkdownType
5712        case -2085456136: /*improvementNotation*/ return this.improvementNotation == null ? new Base[0] : new Base[] {this.improvementNotation}; // CodeableConcept
5713        case 3556460: /*term*/ return this.term == null ? new Base[0] : this.term.toArray(new Base[this.term.size()]); // MeasureTermComponent
5714        case -1314002088: /*guidance*/ return this.guidance == null ? new Base[0] : new Base[] {this.guidance}; // MarkdownType
5715        case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // MeasureGroupComponent
5716        case 1447496814: /*supplementalData*/ return this.supplementalData == null ? new Base[0] : this.supplementalData.toArray(new Base[this.supplementalData.size()]); // MeasureSupplementalDataComponent
5717        default: return super.getProperty(hash, name, checkValid);
5718        }
5719
5720      }
5721
5722      @Override
5723      public Base setProperty(int hash, String name, Base value) throws FHIRException {
5724        switch (hash) {
5725        case 116079: // url
5726          this.url = TypeConvertor.castToUri(value); // UriType
5727          return value;
5728        case -1618432855: // identifier
5729          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
5730          return value;
5731        case 351608024: // version
5732          this.version = TypeConvertor.castToString(value); // StringType
5733          return value;
5734        case 1508158071: // versionAlgorithm
5735          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5736          return value;
5737        case 3373707: // name
5738          this.name = TypeConvertor.castToString(value); // StringType
5739          return value;
5740        case 110371416: // title
5741          this.title = TypeConvertor.castToString(value); // StringType
5742          return value;
5743        case -2060497896: // subtitle
5744          this.subtitle = TypeConvertor.castToString(value); // StringType
5745          return value;
5746        case -892481550: // status
5747          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5748          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5749          return value;
5750        case -404562712: // experimental
5751          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5752          return value;
5753        case -1867885268: // subject
5754          this.subject = TypeConvertor.castToType(value); // DataType
5755          return value;
5756        case 93508670: // basis
5757          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
5758          this.basis = (Enumeration) value; // Enumeration<FHIRTypes>
5759          return value;
5760        case 3076014: // date
5761          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5762          return value;
5763        case 1447404028: // publisher
5764          this.publisher = TypeConvertor.castToString(value); // StringType
5765          return value;
5766        case 951526432: // contact
5767          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5768          return value;
5769        case -1724546052: // description
5770          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5771          return value;
5772        case -669707736: // useContext
5773          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
5774          return value;
5775        case -507075711: // jurisdiction
5776          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5777          return value;
5778        case -220463842: // purpose
5779          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5780          return value;
5781        case 111574433: // usage
5782          this.usage = TypeConvertor.castToMarkdown(value); // MarkdownType
5783          return value;
5784        case 1522889671: // copyright
5785          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5786          return value;
5787        case 765157229: // copyrightLabel
5788          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5789          return value;
5790        case 223539345: // approvalDate
5791          this.approvalDate = TypeConvertor.castToDate(value); // DateType
5792          return value;
5793        case -1687512484: // lastReviewDate
5794          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
5795          return value;
5796        case -403934648: // effectivePeriod
5797          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
5798          return value;
5799        case 110546223: // topic
5800          this.getTopic().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5801          return value;
5802        case -1406328437: // author
5803          this.getAuthor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5804          return value;
5805        case -1307827859: // editor
5806          this.getEditor().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5807          return value;
5808        case -261190139: // reviewer
5809          this.getReviewer().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5810          return value;
5811        case 1740277666: // endorser
5812          this.getEndorser().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
5813          return value;
5814        case 666807069: // relatedArtifact
5815          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact
5816          return value;
5817        case 166208699: // library
5818          this.getLibrary().add(TypeConvertor.castToCanonical(value)); // CanonicalType
5819          return value;
5820        case 432371099: // disclaimer
5821          this.disclaimer = TypeConvertor.castToMarkdown(value); // MarkdownType
5822          return value;
5823        case 1924005583: // scoring
5824          this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5825          return value;
5826        case 1527532787: // scoringUnit
5827          this.scoringUnit = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5828          return value;
5829        case 569347656: // compositeScoring
5830          this.compositeScoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5831          return value;
5832        case 3575610: // type
5833          this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
5834          return value;
5835        case 93273500: // riskAdjustment
5836          this.riskAdjustment = TypeConvertor.castToMarkdown(value); // MarkdownType
5837          return value;
5838        case 1254503906: // rateAggregation
5839          this.rateAggregation = TypeConvertor.castToMarkdown(value); // MarkdownType
5840          return value;
5841        case 345689335: // rationale
5842          this.rationale = TypeConvertor.castToMarkdown(value); // MarkdownType
5843          return value;
5844        case -18631389: // clinicalRecommendationStatement
5845          this.clinicalRecommendationStatement = TypeConvertor.castToMarkdown(value); // MarkdownType
5846          return value;
5847        case -2085456136: // improvementNotation
5848          this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5849          return value;
5850        case 3556460: // term
5851          this.getTerm().add((MeasureTermComponent) value); // MeasureTermComponent
5852          return value;
5853        case -1314002088: // guidance
5854          this.guidance = TypeConvertor.castToMarkdown(value); // MarkdownType
5855          return value;
5856        case 98629247: // group
5857          this.getGroup().add((MeasureGroupComponent) value); // MeasureGroupComponent
5858          return value;
5859        case 1447496814: // supplementalData
5860          this.getSupplementalData().add((MeasureSupplementalDataComponent) value); // MeasureSupplementalDataComponent
5861          return value;
5862        default: return super.setProperty(hash, name, value);
5863        }
5864
5865      }
5866
5867      @Override
5868      public Base setProperty(String name, Base value) throws FHIRException {
5869        if (name.equals("url")) {
5870          this.url = TypeConvertor.castToUri(value); // UriType
5871        } else if (name.equals("identifier")) {
5872          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
5873        } else if (name.equals("version")) {
5874          this.version = TypeConvertor.castToString(value); // StringType
5875        } else if (name.equals("versionAlgorithm[x]")) {
5876          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
5877        } else if (name.equals("name")) {
5878          this.name = TypeConvertor.castToString(value); // StringType
5879        } else if (name.equals("title")) {
5880          this.title = TypeConvertor.castToString(value); // StringType
5881        } else if (name.equals("subtitle")) {
5882          this.subtitle = TypeConvertor.castToString(value); // StringType
5883        } else if (name.equals("status")) {
5884          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
5885          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
5886        } else if (name.equals("experimental")) {
5887          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
5888        } else if (name.equals("subject[x]")) {
5889          this.subject = TypeConvertor.castToType(value); // DataType
5890        } else if (name.equals("basis")) {
5891          value = new FHIRTypesEnumFactory().fromType(TypeConvertor.castToCode(value));
5892          this.basis = (Enumeration) value; // Enumeration<FHIRTypes>
5893        } else if (name.equals("date")) {
5894          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
5895        } else if (name.equals("publisher")) {
5896          this.publisher = TypeConvertor.castToString(value); // StringType
5897        } else if (name.equals("contact")) {
5898          this.getContact().add(TypeConvertor.castToContactDetail(value));
5899        } else if (name.equals("description")) {
5900          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
5901        } else if (name.equals("useContext")) {
5902          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
5903        } else if (name.equals("jurisdiction")) {
5904          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
5905        } else if (name.equals("purpose")) {
5906          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
5907        } else if (name.equals("usage")) {
5908          this.usage = TypeConvertor.castToMarkdown(value); // MarkdownType
5909        } else if (name.equals("copyright")) {
5910          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
5911        } else if (name.equals("copyrightLabel")) {
5912          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
5913        } else if (name.equals("approvalDate")) {
5914          this.approvalDate = TypeConvertor.castToDate(value); // DateType
5915        } else if (name.equals("lastReviewDate")) {
5916          this.lastReviewDate = TypeConvertor.castToDate(value); // DateType
5917        } else if (name.equals("effectivePeriod")) {
5918          this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period
5919        } else if (name.equals("topic")) {
5920          this.getTopic().add(TypeConvertor.castToCodeableConcept(value));
5921        } else if (name.equals("author")) {
5922          this.getAuthor().add(TypeConvertor.castToContactDetail(value));
5923        } else if (name.equals("editor")) {
5924          this.getEditor().add(TypeConvertor.castToContactDetail(value));
5925        } else if (name.equals("reviewer")) {
5926          this.getReviewer().add(TypeConvertor.castToContactDetail(value));
5927        } else if (name.equals("endorser")) {
5928          this.getEndorser().add(TypeConvertor.castToContactDetail(value));
5929        } else if (name.equals("relatedArtifact")) {
5930          this.getRelatedArtifact().add(TypeConvertor.castToRelatedArtifact(value));
5931        } else if (name.equals("library")) {
5932          this.getLibrary().add(TypeConvertor.castToCanonical(value));
5933        } else if (name.equals("disclaimer")) {
5934          this.disclaimer = TypeConvertor.castToMarkdown(value); // MarkdownType
5935        } else if (name.equals("scoring")) {
5936          this.scoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5937        } else if (name.equals("scoringUnit")) {
5938          this.scoringUnit = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5939        } else if (name.equals("compositeScoring")) {
5940          this.compositeScoring = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5941        } else if (name.equals("type")) {
5942          this.getType().add(TypeConvertor.castToCodeableConcept(value));
5943        } else if (name.equals("riskAdjustment")) {
5944          this.riskAdjustment = TypeConvertor.castToMarkdown(value); // MarkdownType
5945        } else if (name.equals("rateAggregation")) {
5946          this.rateAggregation = TypeConvertor.castToMarkdown(value); // MarkdownType
5947        } else if (name.equals("rationale")) {
5948          this.rationale = TypeConvertor.castToMarkdown(value); // MarkdownType
5949        } else if (name.equals("clinicalRecommendationStatement")) {
5950          this.clinicalRecommendationStatement = TypeConvertor.castToMarkdown(value); // MarkdownType
5951        } else if (name.equals("improvementNotation")) {
5952          this.improvementNotation = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
5953        } else if (name.equals("term")) {
5954          this.getTerm().add((MeasureTermComponent) value);
5955        } else if (name.equals("guidance")) {
5956          this.guidance = TypeConvertor.castToMarkdown(value); // MarkdownType
5957        } else if (name.equals("group")) {
5958          this.getGroup().add((MeasureGroupComponent) value);
5959        } else if (name.equals("supplementalData")) {
5960          this.getSupplementalData().add((MeasureSupplementalDataComponent) value);
5961        } else
5962          return super.setProperty(name, value);
5963        return value;
5964      }
5965
5966      @Override
5967      public Base makeProperty(int hash, String name) throws FHIRException {
5968        switch (hash) {
5969        case 116079:  return getUrlElement();
5970        case -1618432855:  return addIdentifier(); 
5971        case 351608024:  return getVersionElement();
5972        case -115699031:  return getVersionAlgorithm();
5973        case 1508158071:  return getVersionAlgorithm();
5974        case 3373707:  return getNameElement();
5975        case 110371416:  return getTitleElement();
5976        case -2060497896:  return getSubtitleElement();
5977        case -892481550:  return getStatusElement();
5978        case -404562712:  return getExperimentalElement();
5979        case -573640748:  return getSubject();
5980        case -1867885268:  return getSubject();
5981        case 93508670:  return getBasisElement();
5982        case 3076014:  return getDateElement();
5983        case 1447404028:  return getPublisherElement();
5984        case 951526432:  return addContact(); 
5985        case -1724546052:  return getDescriptionElement();
5986        case -669707736:  return addUseContext(); 
5987        case -507075711:  return addJurisdiction(); 
5988        case -220463842:  return getPurposeElement();
5989        case 111574433:  return getUsageElement();
5990        case 1522889671:  return getCopyrightElement();
5991        case 765157229:  return getCopyrightLabelElement();
5992        case 223539345:  return getApprovalDateElement();
5993        case -1687512484:  return getLastReviewDateElement();
5994        case -403934648:  return getEffectivePeriod();
5995        case 110546223:  return addTopic(); 
5996        case -1406328437:  return addAuthor(); 
5997        case -1307827859:  return addEditor(); 
5998        case -261190139:  return addReviewer(); 
5999        case 1740277666:  return addEndorser(); 
6000        case 666807069:  return addRelatedArtifact(); 
6001        case 166208699:  return addLibraryElement();
6002        case 432371099:  return getDisclaimerElement();
6003        case 1924005583:  return getScoring();
6004        case 1527532787:  return getScoringUnit();
6005        case 569347656:  return getCompositeScoring();
6006        case 3575610:  return addType(); 
6007        case 93273500:  return getRiskAdjustmentElement();
6008        case 1254503906:  return getRateAggregationElement();
6009        case 345689335:  return getRationaleElement();
6010        case -18631389:  return getClinicalRecommendationStatementElement();
6011        case -2085456136:  return getImprovementNotation();
6012        case 3556460:  return addTerm(); 
6013        case -1314002088:  return getGuidanceElement();
6014        case 98629247:  return addGroup(); 
6015        case 1447496814:  return addSupplementalData(); 
6016        default: return super.makeProperty(hash, name);
6017        }
6018
6019      }
6020
6021      @Override
6022      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6023        switch (hash) {
6024        case 116079: /*url*/ return new String[] {"uri"};
6025        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
6026        case 351608024: /*version*/ return new String[] {"string"};
6027        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
6028        case 3373707: /*name*/ return new String[] {"string"};
6029        case 110371416: /*title*/ return new String[] {"string"};
6030        case -2060497896: /*subtitle*/ return new String[] {"string"};
6031        case -892481550: /*status*/ return new String[] {"code"};
6032        case -404562712: /*experimental*/ return new String[] {"boolean"};
6033        case -1867885268: /*subject*/ return new String[] {"CodeableConcept", "Reference"};
6034        case 93508670: /*basis*/ return new String[] {"code"};
6035        case 3076014: /*date*/ return new String[] {"dateTime"};
6036        case 1447404028: /*publisher*/ return new String[] {"string"};
6037        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
6038        case -1724546052: /*description*/ return new String[] {"markdown"};
6039        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
6040        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
6041        case -220463842: /*purpose*/ return new String[] {"markdown"};
6042        case 111574433: /*usage*/ return new String[] {"markdown"};
6043        case 1522889671: /*copyright*/ return new String[] {"markdown"};
6044        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
6045        case 223539345: /*approvalDate*/ return new String[] {"date"};
6046        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
6047        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
6048        case 110546223: /*topic*/ return new String[] {"CodeableConcept"};
6049        case -1406328437: /*author*/ return new String[] {"ContactDetail"};
6050        case -1307827859: /*editor*/ return new String[] {"ContactDetail"};
6051        case -261190139: /*reviewer*/ return new String[] {"ContactDetail"};
6052        case 1740277666: /*endorser*/ return new String[] {"ContactDetail"};
6053        case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"};
6054        case 166208699: /*library*/ return new String[] {"canonical"};
6055        case 432371099: /*disclaimer*/ return new String[] {"markdown"};
6056        case 1924005583: /*scoring*/ return new String[] {"CodeableConcept"};
6057        case 1527532787: /*scoringUnit*/ return new String[] {"CodeableConcept"};
6058        case 569347656: /*compositeScoring*/ return new String[] {"CodeableConcept"};
6059        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
6060        case 93273500: /*riskAdjustment*/ return new String[] {"markdown"};
6061        case 1254503906: /*rateAggregation*/ return new String[] {"markdown"};
6062        case 345689335: /*rationale*/ return new String[] {"markdown"};
6063        case -18631389: /*clinicalRecommendationStatement*/ return new String[] {"markdown"};
6064        case -2085456136: /*improvementNotation*/ return new String[] {"CodeableConcept"};
6065        case 3556460: /*term*/ return new String[] {};
6066        case -1314002088: /*guidance*/ return new String[] {"markdown"};
6067        case 98629247: /*group*/ return new String[] {};
6068        case 1447496814: /*supplementalData*/ return new String[] {};
6069        default: return super.getTypesForProperty(hash, name);
6070        }
6071
6072      }
6073
6074      @Override
6075      public Base addChild(String name) throws FHIRException {
6076        if (name.equals("url")) {
6077          throw new FHIRException("Cannot call addChild on a singleton property Measure.url");
6078        }
6079        else if (name.equals("identifier")) {
6080          return addIdentifier();
6081        }
6082        else if (name.equals("version")) {
6083          throw new FHIRException("Cannot call addChild on a singleton property Measure.version");
6084        }
6085        else if (name.equals("versionAlgorithmString")) {
6086          this.versionAlgorithm = new StringType();
6087          return this.versionAlgorithm;
6088        }
6089        else if (name.equals("versionAlgorithmCoding")) {
6090          this.versionAlgorithm = new Coding();
6091          return this.versionAlgorithm;
6092        }
6093        else if (name.equals("name")) {
6094          throw new FHIRException("Cannot call addChild on a singleton property Measure.name");
6095        }
6096        else if (name.equals("title")) {
6097          throw new FHIRException("Cannot call addChild on a singleton property Measure.title");
6098        }
6099        else if (name.equals("subtitle")) {
6100          throw new FHIRException("Cannot call addChild on a singleton property Measure.subtitle");
6101        }
6102        else if (name.equals("status")) {
6103          throw new FHIRException("Cannot call addChild on a singleton property Measure.status");
6104        }
6105        else if (name.equals("experimental")) {
6106          throw new FHIRException("Cannot call addChild on a singleton property Measure.experimental");
6107        }
6108        else if (name.equals("subjectCodeableConcept")) {
6109          this.subject = new CodeableConcept();
6110          return this.subject;
6111        }
6112        else if (name.equals("subjectReference")) {
6113          this.subject = new Reference();
6114          return this.subject;
6115        }
6116        else if (name.equals("basis")) {
6117          throw new FHIRException("Cannot call addChild on a singleton property Measure.basis");
6118        }
6119        else if (name.equals("date")) {
6120          throw new FHIRException("Cannot call addChild on a singleton property Measure.date");
6121        }
6122        else if (name.equals("publisher")) {
6123          throw new FHIRException("Cannot call addChild on a singleton property Measure.publisher");
6124        }
6125        else if (name.equals("contact")) {
6126          return addContact();
6127        }
6128        else if (name.equals("description")) {
6129          throw new FHIRException("Cannot call addChild on a singleton property Measure.description");
6130        }
6131        else if (name.equals("useContext")) {
6132          return addUseContext();
6133        }
6134        else if (name.equals("jurisdiction")) {
6135          return addJurisdiction();
6136        }
6137        else if (name.equals("purpose")) {
6138          throw new FHIRException("Cannot call addChild on a singleton property Measure.purpose");
6139        }
6140        else if (name.equals("usage")) {
6141          throw new FHIRException("Cannot call addChild on a singleton property Measure.usage");
6142        }
6143        else if (name.equals("copyright")) {
6144          throw new FHIRException("Cannot call addChild on a singleton property Measure.copyright");
6145        }
6146        else if (name.equals("copyrightLabel")) {
6147          throw new FHIRException("Cannot call addChild on a singleton property Measure.copyrightLabel");
6148        }
6149        else if (name.equals("approvalDate")) {
6150          throw new FHIRException("Cannot call addChild on a singleton property Measure.approvalDate");
6151        }
6152        else if (name.equals("lastReviewDate")) {
6153          throw new FHIRException("Cannot call addChild on a singleton property Measure.lastReviewDate");
6154        }
6155        else if (name.equals("effectivePeriod")) {
6156          this.effectivePeriod = new Period();
6157          return this.effectivePeriod;
6158        }
6159        else if (name.equals("topic")) {
6160          return addTopic();
6161        }
6162        else if (name.equals("author")) {
6163          return addAuthor();
6164        }
6165        else if (name.equals("editor")) {
6166          return addEditor();
6167        }
6168        else if (name.equals("reviewer")) {
6169          return addReviewer();
6170        }
6171        else if (name.equals("endorser")) {
6172          return addEndorser();
6173        }
6174        else if (name.equals("relatedArtifact")) {
6175          return addRelatedArtifact();
6176        }
6177        else if (name.equals("library")) {
6178          throw new FHIRException("Cannot call addChild on a singleton property Measure.library");
6179        }
6180        else if (name.equals("disclaimer")) {
6181          throw new FHIRException("Cannot call addChild on a singleton property Measure.disclaimer");
6182        }
6183        else if (name.equals("scoring")) {
6184          this.scoring = new CodeableConcept();
6185          return this.scoring;
6186        }
6187        else if (name.equals("scoringUnit")) {
6188          this.scoringUnit = new CodeableConcept();
6189          return this.scoringUnit;
6190        }
6191        else if (name.equals("compositeScoring")) {
6192          this.compositeScoring = new CodeableConcept();
6193          return this.compositeScoring;
6194        }
6195        else if (name.equals("type")) {
6196          return addType();
6197        }
6198        else if (name.equals("riskAdjustment")) {
6199          throw new FHIRException("Cannot call addChild on a singleton property Measure.riskAdjustment");
6200        }
6201        else if (name.equals("rateAggregation")) {
6202          throw new FHIRException("Cannot call addChild on a singleton property Measure.rateAggregation");
6203        }
6204        else if (name.equals("rationale")) {
6205          throw new FHIRException("Cannot call addChild on a singleton property Measure.rationale");
6206        }
6207        else if (name.equals("clinicalRecommendationStatement")) {
6208          throw new FHIRException("Cannot call addChild on a singleton property Measure.clinicalRecommendationStatement");
6209        }
6210        else if (name.equals("improvementNotation")) {
6211          this.improvementNotation = new CodeableConcept();
6212          return this.improvementNotation;
6213        }
6214        else if (name.equals("term")) {
6215          return addTerm();
6216        }
6217        else if (name.equals("guidance")) {
6218          throw new FHIRException("Cannot call addChild on a singleton property Measure.guidance");
6219        }
6220        else if (name.equals("group")) {
6221          return addGroup();
6222        }
6223        else if (name.equals("supplementalData")) {
6224          return addSupplementalData();
6225        }
6226        else
6227          return super.addChild(name);
6228      }
6229
6230  public String fhirType() {
6231    return "Measure";
6232
6233  }
6234
6235      public Measure copy() {
6236        Measure dst = new Measure();
6237        copyValues(dst);
6238        return dst;
6239      }
6240
6241      public void copyValues(Measure dst) {
6242        super.copyValues(dst);
6243        dst.url = url == null ? null : url.copy();
6244        if (identifier != null) {
6245          dst.identifier = new ArrayList<Identifier>();
6246          for (Identifier i : identifier)
6247            dst.identifier.add(i.copy());
6248        };
6249        dst.version = version == null ? null : version.copy();
6250        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
6251        dst.name = name == null ? null : name.copy();
6252        dst.title = title == null ? null : title.copy();
6253        dst.subtitle = subtitle == null ? null : subtitle.copy();
6254        dst.status = status == null ? null : status.copy();
6255        dst.experimental = experimental == null ? null : experimental.copy();
6256        dst.subject = subject == null ? null : subject.copy();
6257        dst.basis = basis == null ? null : basis.copy();
6258        dst.date = date == null ? null : date.copy();
6259        dst.publisher = publisher == null ? null : publisher.copy();
6260        if (contact != null) {
6261          dst.contact = new ArrayList<ContactDetail>();
6262          for (ContactDetail i : contact)
6263            dst.contact.add(i.copy());
6264        };
6265        dst.description = description == null ? null : description.copy();
6266        if (useContext != null) {
6267          dst.useContext = new ArrayList<UsageContext>();
6268          for (UsageContext i : useContext)
6269            dst.useContext.add(i.copy());
6270        };
6271        if (jurisdiction != null) {
6272          dst.jurisdiction = new ArrayList<CodeableConcept>();
6273          for (CodeableConcept i : jurisdiction)
6274            dst.jurisdiction.add(i.copy());
6275        };
6276        dst.purpose = purpose == null ? null : purpose.copy();
6277        dst.usage = usage == null ? null : usage.copy();
6278        dst.copyright = copyright == null ? null : copyright.copy();
6279        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
6280        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
6281        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
6282        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
6283        if (topic != null) {
6284          dst.topic = new ArrayList<CodeableConcept>();
6285          for (CodeableConcept i : topic)
6286            dst.topic.add(i.copy());
6287        };
6288        if (author != null) {
6289          dst.author = new ArrayList<ContactDetail>();
6290          for (ContactDetail i : author)
6291            dst.author.add(i.copy());
6292        };
6293        if (editor != null) {
6294          dst.editor = new ArrayList<ContactDetail>();
6295          for (ContactDetail i : editor)
6296            dst.editor.add(i.copy());
6297        };
6298        if (reviewer != null) {
6299          dst.reviewer = new ArrayList<ContactDetail>();
6300          for (ContactDetail i : reviewer)
6301            dst.reviewer.add(i.copy());
6302        };
6303        if (endorser != null) {
6304          dst.endorser = new ArrayList<ContactDetail>();
6305          for (ContactDetail i : endorser)
6306            dst.endorser.add(i.copy());
6307        };
6308        if (relatedArtifact != null) {
6309          dst.relatedArtifact = new ArrayList<RelatedArtifact>();
6310          for (RelatedArtifact i : relatedArtifact)
6311            dst.relatedArtifact.add(i.copy());
6312        };
6313        if (library != null) {
6314          dst.library = new ArrayList<CanonicalType>();
6315          for (CanonicalType i : library)
6316            dst.library.add(i.copy());
6317        };
6318        dst.disclaimer = disclaimer == null ? null : disclaimer.copy();
6319        dst.scoring = scoring == null ? null : scoring.copy();
6320        dst.scoringUnit = scoringUnit == null ? null : scoringUnit.copy();
6321        dst.compositeScoring = compositeScoring == null ? null : compositeScoring.copy();
6322        if (type != null) {
6323          dst.type = new ArrayList<CodeableConcept>();
6324          for (CodeableConcept i : type)
6325            dst.type.add(i.copy());
6326        };
6327        dst.riskAdjustment = riskAdjustment == null ? null : riskAdjustment.copy();
6328        dst.rateAggregation = rateAggregation == null ? null : rateAggregation.copy();
6329        dst.rationale = rationale == null ? null : rationale.copy();
6330        dst.clinicalRecommendationStatement = clinicalRecommendationStatement == null ? null : clinicalRecommendationStatement.copy();
6331        dst.improvementNotation = improvementNotation == null ? null : improvementNotation.copy();
6332        if (term != null) {
6333          dst.term = new ArrayList<MeasureTermComponent>();
6334          for (MeasureTermComponent i : term)
6335            dst.term.add(i.copy());
6336        };
6337        dst.guidance = guidance == null ? null : guidance.copy();
6338        if (group != null) {
6339          dst.group = new ArrayList<MeasureGroupComponent>();
6340          for (MeasureGroupComponent i : group)
6341            dst.group.add(i.copy());
6342        };
6343        if (supplementalData != null) {
6344          dst.supplementalData = new ArrayList<MeasureSupplementalDataComponent>();
6345          for (MeasureSupplementalDataComponent i : supplementalData)
6346            dst.supplementalData.add(i.copy());
6347        };
6348      }
6349
6350      protected Measure typedCopy() {
6351        return copy();
6352      }
6353
6354      @Override
6355      public boolean equalsDeep(Base other_) {
6356        if (!super.equalsDeep(other_))
6357          return false;
6358        if (!(other_ instanceof Measure))
6359          return false;
6360        Measure o = (Measure) other_;
6361        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
6362           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
6363           && compareDeep(subtitle, o.subtitle, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true)
6364           && compareDeep(subject, o.subject, true) && compareDeep(basis, o.basis, true) && compareDeep(date, o.date, true)
6365           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
6366           && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true)
6367           && compareDeep(purpose, o.purpose, true) && compareDeep(usage, o.usage, true) && compareDeep(copyright, o.copyright, true)
6368           && compareDeep(copyrightLabel, o.copyrightLabel, true) && compareDeep(approvalDate, o.approvalDate, true)
6369           && compareDeep(lastReviewDate, o.lastReviewDate, true) && compareDeep(effectivePeriod, o.effectivePeriod, true)
6370           && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true) && compareDeep(editor, o.editor, true)
6371           && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true) && compareDeep(relatedArtifact, o.relatedArtifact, true)
6372           && compareDeep(library, o.library, true) && compareDeep(disclaimer, o.disclaimer, true) && compareDeep(scoring, o.scoring, true)
6373           && compareDeep(scoringUnit, o.scoringUnit, true) && compareDeep(compositeScoring, o.compositeScoring, true)
6374           && compareDeep(type, o.type, true) && compareDeep(riskAdjustment, o.riskAdjustment, true) && compareDeep(rateAggregation, o.rateAggregation, true)
6375           && compareDeep(rationale, o.rationale, true) && compareDeep(clinicalRecommendationStatement, o.clinicalRecommendationStatement, true)
6376           && compareDeep(improvementNotation, o.improvementNotation, true) && compareDeep(term, o.term, true)
6377           && compareDeep(guidance, o.guidance, true) && compareDeep(group, o.group, true) && compareDeep(supplementalData, o.supplementalData, true)
6378          ;
6379      }
6380
6381      @Override
6382      public boolean equalsShallow(Base other_) {
6383        if (!super.equalsShallow(other_))
6384          return false;
6385        if (!(other_ instanceof Measure))
6386          return false;
6387        Measure o = (Measure) other_;
6388        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
6389           && compareValues(title, o.title, true) && compareValues(subtitle, o.subtitle, true) && compareValues(status, o.status, true)
6390           && compareValues(experimental, o.experimental, true) && compareValues(basis, o.basis, true) && compareValues(date, o.date, true)
6391           && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(purpose, o.purpose, true)
6392           && compareValues(usage, o.usage, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
6393           && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true)
6394           && compareValues(library, o.library, true) && compareValues(disclaimer, o.disclaimer, true) && compareValues(riskAdjustment, o.riskAdjustment, true)
6395           && compareValues(rateAggregation, o.rateAggregation, true) && compareValues(rationale, o.rationale, true)
6396           && compareValues(clinicalRecommendationStatement, o.clinicalRecommendationStatement, true) && compareValues(guidance, o.guidance, true)
6397          ;
6398      }
6399
6400      public boolean isEmpty() {
6401        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
6402          , versionAlgorithm, name, title, subtitle, status, experimental, subject, basis
6403          , date, publisher, contact, description, useContext, jurisdiction, purpose, usage
6404          , copyright, copyrightLabel, approvalDate, lastReviewDate, effectivePeriod, topic
6405          , author, editor, reviewer, endorser, relatedArtifact, library, disclaimer, scoring
6406          , scoringUnit, compositeScoring, type, riskAdjustment, rateAggregation, rationale
6407          , clinicalRecommendationStatement, improvementNotation, term, guidance, group, supplementalData
6408          );
6409      }
6410
6411  @Override
6412  public ResourceType getResourceType() {
6413    return ResourceType.Measure;
6414   }
6415
6416 /**
6417   * Search parameter: <b>context-quantity</b>
6418   * <p>
6419   * Description: <b>Multiple Resources: 
6420
6421* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6422* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6423* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6424* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6425* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6426* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6427* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6428* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6429* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6430* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6431* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6432* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6433* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6434* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6435* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6436* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6437* [Library](library.html): A quantity- or range-valued use context assigned to the library
6438* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6439* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6440* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6441* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6442* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6443* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6444* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6445* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6446* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6447* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6448* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6449* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6450* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6451</b><br>
6452   * Type: <b>quantity</b><br>
6453   * 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>
6454   * </p>
6455   */
6456  @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" )
6457  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
6458 /**
6459   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
6460   * <p>
6461   * Description: <b>Multiple Resources: 
6462
6463* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6464* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6465* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6466* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6467* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6468* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6469* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6470* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6471* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6472* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6473* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6474* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6475* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6476* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6477* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6478* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6479* [Library](library.html): A quantity- or range-valued use context assigned to the library
6480* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6481* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6482* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6483* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6484* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6485* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6486* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6487* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6488* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6489* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6490* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6491* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6492* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6493</b><br>
6494   * Type: <b>quantity</b><br>
6495   * 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>
6496   * </p>
6497   */
6498  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
6499
6500 /**
6501   * Search parameter: <b>context-type-quantity</b>
6502   * <p>
6503   * Description: <b>Multiple Resources: 
6504
6505* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
6506* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
6507* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
6508* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
6509* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
6510* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
6511* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
6512* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
6513* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
6514* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
6515* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
6516* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
6517* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
6518* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
6519* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
6520* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
6521* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
6522* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
6523* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
6524* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
6525* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
6526* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
6527* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
6528* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
6529* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
6530* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
6531* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
6532* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
6533* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
6534* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
6535</b><br>
6536   * Type: <b>composite</b><br>
6537   * 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>
6538   * </p>
6539   */
6540  @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"} )
6541  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
6542 /**
6543   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
6544   * <p>
6545   * Description: <b>Multiple Resources: 
6546
6547* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
6548* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
6549* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
6550* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
6551* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
6552* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
6553* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
6554* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
6555* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
6556* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
6557* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
6558* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
6559* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
6560* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
6561* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
6562* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
6563* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
6564* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
6565* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
6566* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
6567* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
6568* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
6569* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
6570* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
6571* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
6572* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
6573* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
6574* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
6575* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
6576* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
6577</b><br>
6578   * Type: <b>composite</b><br>
6579   * 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>
6580   * </p>
6581   */
6582  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);
6583
6584 /**
6585   * Search parameter: <b>context-type-value</b>
6586   * <p>
6587   * Description: <b>Multiple Resources: 
6588
6589* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
6590* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
6591* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
6592* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
6593* [Citation](citation.html): A use context type and value assigned to the citation
6594* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
6595* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
6596* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
6597* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
6598* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
6599* [Evidence](evidence.html): A use context type and value assigned to the evidence
6600* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
6601* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
6602* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
6603* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
6604* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
6605* [Library](library.html): A use context type and value assigned to the library
6606* [Measure](measure.html): A use context type and value assigned to the measure
6607* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
6608* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
6609* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
6610* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
6611* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
6612* [Requirements](requirements.html): A use context type and value assigned to the requirements
6613* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
6614* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
6615* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
6616* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
6617* [TestScript](testscript.html): A use context type and value assigned to the test script
6618* [ValueSet](valueset.html): A use context type and value assigned to the value set
6619</b><br>
6620   * Type: <b>composite</b><br>
6621   * 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>
6622   * </p>
6623   */
6624  @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"} )
6625  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
6626 /**
6627   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
6628   * <p>
6629   * Description: <b>Multiple Resources: 
6630
6631* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
6632* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
6633* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
6634* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
6635* [Citation](citation.html): A use context type and value assigned to the citation
6636* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
6637* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
6638* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
6639* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
6640* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
6641* [Evidence](evidence.html): A use context type and value assigned to the evidence
6642* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
6643* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
6644* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
6645* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
6646* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
6647* [Library](library.html): A use context type and value assigned to the library
6648* [Measure](measure.html): A use context type and value assigned to the measure
6649* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
6650* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
6651* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
6652* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
6653* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
6654* [Requirements](requirements.html): A use context type and value assigned to the requirements
6655* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
6656* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
6657* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
6658* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
6659* [TestScript](testscript.html): A use context type and value assigned to the test script
6660* [ValueSet](valueset.html): A use context type and value assigned to the value set
6661</b><br>
6662   * Type: <b>composite</b><br>
6663   * 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>
6664   * </p>
6665   */
6666  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);
6667
6668 /**
6669   * Search parameter: <b>context-type</b>
6670   * <p>
6671   * Description: <b>Multiple Resources: 
6672
6673* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
6674* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
6675* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
6676* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
6677* [Citation](citation.html): A type of use context assigned to the citation
6678* [CodeSystem](codesystem.html): A type of use context assigned to the code system
6679* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
6680* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
6681* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
6682* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
6683* [Evidence](evidence.html): A type of use context assigned to the evidence
6684* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
6685* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
6686* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
6687* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
6688* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
6689* [Library](library.html): A type of use context assigned to the library
6690* [Measure](measure.html): A type of use context assigned to the measure
6691* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
6692* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
6693* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
6694* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
6695* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
6696* [Requirements](requirements.html): A type of use context assigned to the requirements
6697* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
6698* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
6699* [StructureMap](structuremap.html): A type of use context assigned to the structure map
6700* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
6701* [TestScript](testscript.html): A type of use context assigned to the test script
6702* [ValueSet](valueset.html): A type of use context assigned to the value set
6703</b><br>
6704   * Type: <b>token</b><br>
6705   * 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>
6706   * </p>
6707   */
6708  @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" )
6709  public static final String SP_CONTEXT_TYPE = "context-type";
6710 /**
6711   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
6712   * <p>
6713   * Description: <b>Multiple Resources: 
6714
6715* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
6716* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
6717* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
6718* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
6719* [Citation](citation.html): A type of use context assigned to the citation
6720* [CodeSystem](codesystem.html): A type of use context assigned to the code system
6721* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
6722* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
6723* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
6724* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
6725* [Evidence](evidence.html): A type of use context assigned to the evidence
6726* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
6727* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
6728* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
6729* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
6730* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
6731* [Library](library.html): A type of use context assigned to the library
6732* [Measure](measure.html): A type of use context assigned to the measure
6733* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
6734* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
6735* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
6736* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
6737* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
6738* [Requirements](requirements.html): A type of use context assigned to the requirements
6739* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
6740* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
6741* [StructureMap](structuremap.html): A type of use context assigned to the structure map
6742* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
6743* [TestScript](testscript.html): A type of use context assigned to the test script
6744* [ValueSet](valueset.html): A type of use context assigned to the value set
6745</b><br>
6746   * Type: <b>token</b><br>
6747   * 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>
6748   * </p>
6749   */
6750  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
6751
6752 /**
6753   * Search parameter: <b>context</b>
6754   * <p>
6755   * Description: <b>Multiple Resources: 
6756
6757* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
6758* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
6759* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
6760* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
6761* [Citation](citation.html): A use context assigned to the citation
6762* [CodeSystem](codesystem.html): A use context assigned to the code system
6763* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6764* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6765* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6766* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6767* [Evidence](evidence.html): A use context assigned to the evidence
6768* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6769* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6770* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6771* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6772* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6773* [Library](library.html): A use context assigned to the library
6774* [Measure](measure.html): A use context assigned to the measure
6775* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6776* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6777* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6778* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6779* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6780* [Requirements](requirements.html): A use context assigned to the requirements
6781* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6782* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6783* [StructureMap](structuremap.html): A use context assigned to the structure map
6784* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
6785* [TestScript](testscript.html): A use context assigned to the test script
6786* [ValueSet](valueset.html): A use context assigned to the value set
6787</b><br>
6788   * Type: <b>token</b><br>
6789   * 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>
6790   * </p>
6791   */
6792  @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" )
6793  public static final String SP_CONTEXT = "context";
6794 /**
6795   * <b>Fluent Client</b> search parameter constant for <b>context</b>
6796   * <p>
6797   * Description: <b>Multiple Resources: 
6798
6799* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
6800* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
6801* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
6802* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
6803* [Citation](citation.html): A use context assigned to the citation
6804* [CodeSystem](codesystem.html): A use context assigned to the code system
6805* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
6806* [ConceptMap](conceptmap.html): A use context assigned to the concept map
6807* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
6808* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
6809* [Evidence](evidence.html): A use context assigned to the evidence
6810* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
6811* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
6812* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
6813* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
6814* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
6815* [Library](library.html): A use context assigned to the library
6816* [Measure](measure.html): A use context assigned to the measure
6817* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
6818* [NamingSystem](namingsystem.html): A use context assigned to the naming system
6819* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
6820* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
6821* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
6822* [Requirements](requirements.html): A use context assigned to the requirements
6823* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
6824* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
6825* [StructureMap](structuremap.html): A use context assigned to the structure map
6826* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
6827* [TestScript](testscript.html): A use context assigned to the test script
6828* [ValueSet](valueset.html): A use context assigned to the value set
6829</b><br>
6830   * Type: <b>token</b><br>
6831   * 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>
6832   * </p>
6833   */
6834  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
6835
6836 /**
6837   * Search parameter: <b>date</b>
6838   * <p>
6839   * Description: <b>Multiple Resources: 
6840
6841* [ActivityDefinition](activitydefinition.html): The activity definition publication date
6842* [ActorDefinition](actordefinition.html): The Actor Definition publication date
6843* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
6844* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
6845* [Citation](citation.html): The citation publication date
6846* [CodeSystem](codesystem.html): The code system publication date
6847* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
6848* [ConceptMap](conceptmap.html): The concept map publication date
6849* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
6850* [EventDefinition](eventdefinition.html): The event definition publication date
6851* [Evidence](evidence.html): The evidence publication date
6852* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
6853* [ExampleScenario](examplescenario.html): The example scenario publication date
6854* [GraphDefinition](graphdefinition.html): The graph definition publication date
6855* [ImplementationGuide](implementationguide.html): The implementation guide publication date
6856* [Library](library.html): The library publication date
6857* [Measure](measure.html): The measure publication date
6858* [MessageDefinition](messagedefinition.html): The message definition publication date
6859* [NamingSystem](namingsystem.html): The naming system publication date
6860* [OperationDefinition](operationdefinition.html): The operation definition publication date
6861* [PlanDefinition](plandefinition.html): The plan definition publication date
6862* [Questionnaire](questionnaire.html): The questionnaire publication date
6863* [Requirements](requirements.html): The requirements publication date
6864* [SearchParameter](searchparameter.html): The search parameter publication date
6865* [StructureDefinition](structuredefinition.html): The structure definition publication date
6866* [StructureMap](structuremap.html): The structure map publication date
6867* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
6868* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
6869* [TestScript](testscript.html): The test script publication date
6870* [ValueSet](valueset.html): The value set publication date
6871</b><br>
6872   * Type: <b>date</b><br>
6873   * 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>
6874   * </p>
6875   */
6876  @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" )
6877  public static final String SP_DATE = "date";
6878 /**
6879   * <b>Fluent Client</b> search parameter constant for <b>date</b>
6880   * <p>
6881   * Description: <b>Multiple Resources: 
6882
6883* [ActivityDefinition](activitydefinition.html): The activity definition publication date
6884* [ActorDefinition](actordefinition.html): The Actor Definition publication date
6885* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
6886* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
6887* [Citation](citation.html): The citation publication date
6888* [CodeSystem](codesystem.html): The code system publication date
6889* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
6890* [ConceptMap](conceptmap.html): The concept map publication date
6891* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
6892* [EventDefinition](eventdefinition.html): The event definition publication date
6893* [Evidence](evidence.html): The evidence publication date
6894* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
6895* [ExampleScenario](examplescenario.html): The example scenario publication date
6896* [GraphDefinition](graphdefinition.html): The graph definition publication date
6897* [ImplementationGuide](implementationguide.html): The implementation guide publication date
6898* [Library](library.html): The library publication date
6899* [Measure](measure.html): The measure publication date
6900* [MessageDefinition](messagedefinition.html): The message definition publication date
6901* [NamingSystem](namingsystem.html): The naming system publication date
6902* [OperationDefinition](operationdefinition.html): The operation definition publication date
6903* [PlanDefinition](plandefinition.html): The plan definition publication date
6904* [Questionnaire](questionnaire.html): The questionnaire publication date
6905* [Requirements](requirements.html): The requirements publication date
6906* [SearchParameter](searchparameter.html): The search parameter publication date
6907* [StructureDefinition](structuredefinition.html): The structure definition publication date
6908* [StructureMap](structuremap.html): The structure map publication date
6909* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
6910* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
6911* [TestScript](testscript.html): The test script publication date
6912* [ValueSet](valueset.html): The value set publication date
6913</b><br>
6914   * Type: <b>date</b><br>
6915   * 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>
6916   * </p>
6917   */
6918  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
6919
6920 /**
6921   * Search parameter: <b>description</b>
6922   * <p>
6923   * Description: <b>Multiple Resources: 
6924
6925* [ActivityDefinition](activitydefinition.html): The description of the activity definition
6926* [ActorDefinition](actordefinition.html): The description of the Actor Definition
6927* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
6928* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
6929* [Citation](citation.html): The description of the citation
6930* [CodeSystem](codesystem.html): The description of the code system
6931* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
6932* [ConceptMap](conceptmap.html): The description of the concept map
6933* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
6934* [EventDefinition](eventdefinition.html): The description of the event definition
6935* [Evidence](evidence.html): The description of the evidence
6936* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
6937* [GraphDefinition](graphdefinition.html): The description of the graph definition
6938* [ImplementationGuide](implementationguide.html): The description of the implementation guide
6939* [Library](library.html): The description of the library
6940* [Measure](measure.html): The description of the measure
6941* [MessageDefinition](messagedefinition.html): The description of the message definition
6942* [NamingSystem](namingsystem.html): The description of the naming system
6943* [OperationDefinition](operationdefinition.html): The description of the operation definition
6944* [PlanDefinition](plandefinition.html): The description of the plan definition
6945* [Questionnaire](questionnaire.html): The description of the questionnaire
6946* [Requirements](requirements.html): The description of the requirements
6947* [SearchParameter](searchparameter.html): The description of the search parameter
6948* [StructureDefinition](structuredefinition.html): The description of the structure definition
6949* [StructureMap](structuremap.html): The description of the structure map
6950* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
6951* [TestScript](testscript.html): The description of the test script
6952* [ValueSet](valueset.html): The description of the value set
6953</b><br>
6954   * Type: <b>string</b><br>
6955   * 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>
6956   * </p>
6957   */
6958  @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" )
6959  public static final String SP_DESCRIPTION = "description";
6960 /**
6961   * <b>Fluent Client</b> search parameter constant for <b>description</b>
6962   * <p>
6963   * Description: <b>Multiple Resources: 
6964
6965* [ActivityDefinition](activitydefinition.html): The description of the activity definition
6966* [ActorDefinition](actordefinition.html): The description of the Actor Definition
6967* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
6968* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
6969* [Citation](citation.html): The description of the citation
6970* [CodeSystem](codesystem.html): The description of the code system
6971* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
6972* [ConceptMap](conceptmap.html): The description of the concept map
6973* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
6974* [EventDefinition](eventdefinition.html): The description of the event definition
6975* [Evidence](evidence.html): The description of the evidence
6976* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
6977* [GraphDefinition](graphdefinition.html): The description of the graph definition
6978* [ImplementationGuide](implementationguide.html): The description of the implementation guide
6979* [Library](library.html): The description of the library
6980* [Measure](measure.html): The description of the measure
6981* [MessageDefinition](messagedefinition.html): The description of the message definition
6982* [NamingSystem](namingsystem.html): The description of the naming system
6983* [OperationDefinition](operationdefinition.html): The description of the operation definition
6984* [PlanDefinition](plandefinition.html): The description of the plan definition
6985* [Questionnaire](questionnaire.html): The description of the questionnaire
6986* [Requirements](requirements.html): The description of the requirements
6987* [SearchParameter](searchparameter.html): The description of the search parameter
6988* [StructureDefinition](structuredefinition.html): The description of the structure definition
6989* [StructureMap](structuremap.html): The description of the structure map
6990* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
6991* [TestScript](testscript.html): The description of the test script
6992* [ValueSet](valueset.html): The description of the value set
6993</b><br>
6994   * Type: <b>string</b><br>
6995   * 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>
6996   * </p>
6997   */
6998  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
6999
7000 /**
7001   * Search parameter: <b>identifier</b>
7002   * <p>
7003   * Description: <b>Multiple Resources: 
7004
7005* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7006* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7007* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7008* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7009* [Citation](citation.html): External identifier for the citation
7010* [CodeSystem](codesystem.html): External identifier for the code system
7011* [ConceptMap](conceptmap.html): External identifier for the concept map
7012* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7013* [EventDefinition](eventdefinition.html): External identifier for the event definition
7014* [Evidence](evidence.html): External identifier for the evidence
7015* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7016* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7017* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7018* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7019* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7020* [Library](library.html): External identifier for the library
7021* [Measure](measure.html): External identifier for the measure
7022* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7023* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7024* [NamingSystem](namingsystem.html): External identifier for the naming system
7025* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7026* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7027* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7028* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7029* [Requirements](requirements.html): External identifier for the requirements
7030* [SearchParameter](searchparameter.html): External identifier for the search parameter
7031* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7032* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7033* [StructureMap](structuremap.html): External identifier for the structure map
7034* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7035* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7036* [TestPlan](testplan.html): An identifier for the test plan
7037* [TestScript](testscript.html): External identifier for the test script
7038* [ValueSet](valueset.html): External identifier for the value set
7039</b><br>
7040   * Type: <b>token</b><br>
7041   * 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>
7042   * </p>
7043   */
7044  @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" )
7045  public static final String SP_IDENTIFIER = "identifier";
7046 /**
7047   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
7048   * <p>
7049   * Description: <b>Multiple Resources: 
7050
7051* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7052* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7053* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7054* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7055* [Citation](citation.html): External identifier for the citation
7056* [CodeSystem](codesystem.html): External identifier for the code system
7057* [ConceptMap](conceptmap.html): External identifier for the concept map
7058* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7059* [EventDefinition](eventdefinition.html): External identifier for the event definition
7060* [Evidence](evidence.html): External identifier for the evidence
7061* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7062* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7063* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7064* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7065* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7066* [Library](library.html): External identifier for the library
7067* [Measure](measure.html): External identifier for the measure
7068* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7069* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7070* [NamingSystem](namingsystem.html): External identifier for the naming system
7071* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7072* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7073* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7074* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7075* [Requirements](requirements.html): External identifier for the requirements
7076* [SearchParameter](searchparameter.html): External identifier for the search parameter
7077* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7078* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7079* [StructureMap](structuremap.html): External identifier for the structure map
7080* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7081* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7082* [TestPlan](testplan.html): An identifier for the test plan
7083* [TestScript](testscript.html): External identifier for the test script
7084* [ValueSet](valueset.html): External identifier for the value set
7085</b><br>
7086   * Type: <b>token</b><br>
7087   * 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>
7088   * </p>
7089   */
7090  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
7091
7092 /**
7093   * Search parameter: <b>jurisdiction</b>
7094   * <p>
7095   * Description: <b>Multiple Resources: 
7096
7097* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7098* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7099* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7100* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7101* [Citation](citation.html): Intended jurisdiction for the citation
7102* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7103* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7104* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7105* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7106* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7107* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7108* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7109* [Library](library.html): Intended jurisdiction for the library
7110* [Measure](measure.html): Intended jurisdiction for the measure
7111* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7112* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7113* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7114* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7115* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7116* [Requirements](requirements.html): Intended jurisdiction for the requirements
7117* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7118* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7119* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7120* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7121* [TestScript](testscript.html): Intended jurisdiction for the test script
7122* [ValueSet](valueset.html): Intended jurisdiction for the value set
7123</b><br>
7124   * Type: <b>token</b><br>
7125   * 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>
7126   * </p>
7127   */
7128  @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" )
7129  public static final String SP_JURISDICTION = "jurisdiction";
7130 /**
7131   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
7132   * <p>
7133   * Description: <b>Multiple Resources: 
7134
7135* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7136* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7137* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7138* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7139* [Citation](citation.html): Intended jurisdiction for the citation
7140* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7141* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7142* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7143* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7144* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7145* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7146* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7147* [Library](library.html): Intended jurisdiction for the library
7148* [Measure](measure.html): Intended jurisdiction for the measure
7149* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7150* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7151* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7152* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7153* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7154* [Requirements](requirements.html): Intended jurisdiction for the requirements
7155* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7156* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7157* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7158* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7159* [TestScript](testscript.html): Intended jurisdiction for the test script
7160* [ValueSet](valueset.html): Intended jurisdiction for the value set
7161</b><br>
7162   * Type: <b>token</b><br>
7163   * 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>
7164   * </p>
7165   */
7166  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
7167
7168 /**
7169   * Search parameter: <b>name</b>
7170   * <p>
7171   * Description: <b>Multiple Resources: 
7172
7173* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7174* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7175* [Citation](citation.html): Computationally friendly name of the citation
7176* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7177* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7178* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7179* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7180* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7181* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7182* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7183* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7184* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7185* [Library](library.html): Computationally friendly name of the library
7186* [Measure](measure.html): Computationally friendly name of the measure
7187* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7188* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7189* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7190* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7191* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7192* [Requirements](requirements.html): Computationally friendly name of the requirements
7193* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7194* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7195* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7196* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7197* [TestScript](testscript.html): Computationally friendly name of the test script
7198* [ValueSet](valueset.html): Computationally friendly name of the value set
7199</b><br>
7200   * Type: <b>string</b><br>
7201   * 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>
7202   * </p>
7203   */
7204  @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" )
7205  public static final String SP_NAME = "name";
7206 /**
7207   * <b>Fluent Client</b> search parameter constant for <b>name</b>
7208   * <p>
7209   * Description: <b>Multiple Resources: 
7210
7211* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7212* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7213* [Citation](citation.html): Computationally friendly name of the citation
7214* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7215* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7216* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7217* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7218* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7219* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7220* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7221* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7222* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7223* [Library](library.html): Computationally friendly name of the library
7224* [Measure](measure.html): Computationally friendly name of the measure
7225* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7226* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7227* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7228* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7229* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7230* [Requirements](requirements.html): Computationally friendly name of the requirements
7231* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7232* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7233* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7234* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7235* [TestScript](testscript.html): Computationally friendly name of the test script
7236* [ValueSet](valueset.html): Computationally friendly name of the value set
7237</b><br>
7238   * Type: <b>string</b><br>
7239   * 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>
7240   * </p>
7241   */
7242  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
7243
7244 /**
7245   * Search parameter: <b>publisher</b>
7246   * <p>
7247   * Description: <b>Multiple Resources: 
7248
7249* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7250* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7251* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7252* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7253* [Citation](citation.html): Name of the publisher of the citation
7254* [CodeSystem](codesystem.html): Name of the publisher of the code system
7255* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7256* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7257* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7258* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7259* [Evidence](evidence.html): Name of the publisher of the evidence
7260* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7261* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7262* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7263* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7264* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7265* [Library](library.html): Name of the publisher of the library
7266* [Measure](measure.html): Name of the publisher of the measure
7267* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7268* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7269* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7270* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7271* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7272* [Requirements](requirements.html): Name of the publisher of the requirements
7273* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7274* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7275* [StructureMap](structuremap.html): Name of the publisher of the structure map
7276* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7277* [TestScript](testscript.html): Name of the publisher of the test script
7278* [ValueSet](valueset.html): Name of the publisher of the value set
7279</b><br>
7280   * Type: <b>string</b><br>
7281   * 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>
7282   * </p>
7283   */
7284  @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" )
7285  public static final String SP_PUBLISHER = "publisher";
7286 /**
7287   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
7288   * <p>
7289   * Description: <b>Multiple Resources: 
7290
7291* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7292* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7293* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7294* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7295* [Citation](citation.html): Name of the publisher of the citation
7296* [CodeSystem](codesystem.html): Name of the publisher of the code system
7297* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7298* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7299* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7300* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7301* [Evidence](evidence.html): Name of the publisher of the evidence
7302* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7303* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7304* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7305* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7306* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7307* [Library](library.html): Name of the publisher of the library
7308* [Measure](measure.html): Name of the publisher of the measure
7309* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7310* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7311* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7312* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7313* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7314* [Requirements](requirements.html): Name of the publisher of the requirements
7315* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7316* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7317* [StructureMap](structuremap.html): Name of the publisher of the structure map
7318* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7319* [TestScript](testscript.html): Name of the publisher of the test script
7320* [ValueSet](valueset.html): Name of the publisher of the value set
7321</b><br>
7322   * Type: <b>string</b><br>
7323   * 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>
7324   * </p>
7325   */
7326  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
7327
7328 /**
7329   * Search parameter: <b>status</b>
7330   * <p>
7331   * Description: <b>Multiple Resources: 
7332
7333* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7334* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7335* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7336* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7337* [Citation](citation.html): The current status of the citation
7338* [CodeSystem](codesystem.html): The current status of the code system
7339* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7340* [ConceptMap](conceptmap.html): The current status of the concept map
7341* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7342* [EventDefinition](eventdefinition.html): The current status of the event definition
7343* [Evidence](evidence.html): The current status of the evidence
7344* [EvidenceReport](evidencereport.html): The current status of the evidence report
7345* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7346* [ExampleScenario](examplescenario.html): The current status of the example scenario
7347* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7348* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7349* [Library](library.html): The current status of the library
7350* [Measure](measure.html): The current status of the measure
7351* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7352* [MessageDefinition](messagedefinition.html): The current status of the message definition
7353* [NamingSystem](namingsystem.html): The current status of the naming system
7354* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7355* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7356* [PlanDefinition](plandefinition.html): The current status of the plan definition
7357* [Questionnaire](questionnaire.html): The current status of the questionnaire
7358* [Requirements](requirements.html): The current status of the requirements
7359* [SearchParameter](searchparameter.html): The current status of the search parameter
7360* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7361* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7362* [StructureMap](structuremap.html): The current status of the structure map
7363* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7364* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7365* [TestPlan](testplan.html): The current status of the test plan
7366* [TestScript](testscript.html): The current status of the test script
7367* [ValueSet](valueset.html): The current status of the value set
7368</b><br>
7369   * Type: <b>token</b><br>
7370   * 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>
7371   * </p>
7372   */
7373  @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" )
7374  public static final String SP_STATUS = "status";
7375 /**
7376   * <b>Fluent Client</b> search parameter constant for <b>status</b>
7377   * <p>
7378   * Description: <b>Multiple Resources: 
7379
7380* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7381* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7382* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7383* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7384* [Citation](citation.html): The current status of the citation
7385* [CodeSystem](codesystem.html): The current status of the code system
7386* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7387* [ConceptMap](conceptmap.html): The current status of the concept map
7388* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7389* [EventDefinition](eventdefinition.html): The current status of the event definition
7390* [Evidence](evidence.html): The current status of the evidence
7391* [EvidenceReport](evidencereport.html): The current status of the evidence report
7392* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7393* [ExampleScenario](examplescenario.html): The current status of the example scenario
7394* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7395* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7396* [Library](library.html): The current status of the library
7397* [Measure](measure.html): The current status of the measure
7398* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7399* [MessageDefinition](messagedefinition.html): The current status of the message definition
7400* [NamingSystem](namingsystem.html): The current status of the naming system
7401* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7402* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7403* [PlanDefinition](plandefinition.html): The current status of the plan definition
7404* [Questionnaire](questionnaire.html): The current status of the questionnaire
7405* [Requirements](requirements.html): The current status of the requirements
7406* [SearchParameter](searchparameter.html): The current status of the search parameter
7407* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7408* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7409* [StructureMap](structuremap.html): The current status of the structure map
7410* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7411* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7412* [TestPlan](testplan.html): The current status of the test plan
7413* [TestScript](testscript.html): The current status of the test script
7414* [ValueSet](valueset.html): The current status of the value set
7415</b><br>
7416   * Type: <b>token</b><br>
7417   * 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>
7418   * </p>
7419   */
7420  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
7421
7422 /**
7423   * Search parameter: <b>title</b>
7424   * <p>
7425   * Description: <b>Multiple Resources: 
7426
7427* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7428* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7429* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7430* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7431* [Citation](citation.html): The human-friendly name of the citation
7432* [CodeSystem](codesystem.html): The human-friendly name of the code system
7433* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7434* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7435* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7436* [Evidence](evidence.html): The human-friendly name of the evidence
7437* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7438* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7439* [Library](library.html): The human-friendly name of the library
7440* [Measure](measure.html): The human-friendly name of the measure
7441* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7442* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7443* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7444* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7445* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7446* [Requirements](requirements.html): The human-friendly name of the requirements
7447* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7448* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7449* [StructureMap](structuremap.html): The human-friendly name of the structure map
7450* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
7451* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
7452* [TestScript](testscript.html): The human-friendly name of the test script
7453* [ValueSet](valueset.html): The human-friendly name of the value set
7454</b><br>
7455   * Type: <b>string</b><br>
7456   * 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>
7457   * </p>
7458   */
7459  @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" )
7460  public static final String SP_TITLE = "title";
7461 /**
7462   * <b>Fluent Client</b> search parameter constant for <b>title</b>
7463   * <p>
7464   * Description: <b>Multiple Resources: 
7465
7466* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7467* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7468* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7469* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7470* [Citation](citation.html): The human-friendly name of the citation
7471* [CodeSystem](codesystem.html): The human-friendly name of the code system
7472* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7473* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7474* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7475* [Evidence](evidence.html): The human-friendly name of the evidence
7476* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7477* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7478* [Library](library.html): The human-friendly name of the library
7479* [Measure](measure.html): The human-friendly name of the measure
7480* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7481* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7482* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7483* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7484* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7485* [Requirements](requirements.html): The human-friendly name of the requirements
7486* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7487* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7488* [StructureMap](structuremap.html): The human-friendly name of the structure map
7489* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
7490* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
7491* [TestScript](testscript.html): The human-friendly name of the test script
7492* [ValueSet](valueset.html): The human-friendly name of the value set
7493</b><br>
7494   * Type: <b>string</b><br>
7495   * 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>
7496   * </p>
7497   */
7498  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
7499
7500 /**
7501   * Search parameter: <b>url</b>
7502   * <p>
7503   * Description: <b>Multiple Resources: 
7504
7505* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
7506* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
7507* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
7508* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
7509* [Citation](citation.html): The uri that identifies the citation
7510* [CodeSystem](codesystem.html): The uri that identifies the code system
7511* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
7512* [ConceptMap](conceptmap.html): The URI that identifies the concept map
7513* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
7514* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
7515* [Evidence](evidence.html): The uri that identifies the evidence
7516* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
7517* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
7518* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
7519* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
7520* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
7521* [Library](library.html): The uri that identifies the library
7522* [Measure](measure.html): The uri that identifies the measure
7523* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
7524* [NamingSystem](namingsystem.html): The uri that identifies the naming system
7525* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
7526* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
7527* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
7528* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
7529* [Requirements](requirements.html): The uri that identifies the requirements
7530* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
7531* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
7532* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
7533* [StructureMap](structuremap.html): The uri that identifies the structure map
7534* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
7535* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
7536* [TestPlan](testplan.html): The uri that identifies the test plan
7537* [TestScript](testscript.html): The uri that identifies the test script
7538* [ValueSet](valueset.html): The uri that identifies the value set
7539</b><br>
7540   * Type: <b>uri</b><br>
7541   * 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>
7542   * </p>
7543   */
7544  @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" )
7545  public static final String SP_URL = "url";
7546 /**
7547   * <b>Fluent Client</b> search parameter constant for <b>url</b>
7548   * <p>
7549   * Description: <b>Multiple Resources: 
7550
7551* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
7552* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
7553* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
7554* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
7555* [Citation](citation.html): The uri that identifies the citation
7556* [CodeSystem](codesystem.html): The uri that identifies the code system
7557* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
7558* [ConceptMap](conceptmap.html): The URI that identifies the concept map
7559* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
7560* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
7561* [Evidence](evidence.html): The uri that identifies the evidence
7562* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
7563* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
7564* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
7565* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
7566* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
7567* [Library](library.html): The uri that identifies the library
7568* [Measure](measure.html): The uri that identifies the measure
7569* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
7570* [NamingSystem](namingsystem.html): The uri that identifies the naming system
7571* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
7572* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
7573* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
7574* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
7575* [Requirements](requirements.html): The uri that identifies the requirements
7576* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
7577* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
7578* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
7579* [StructureMap](structuremap.html): The uri that identifies the structure map
7580* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
7581* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
7582* [TestPlan](testplan.html): The uri that identifies the test plan
7583* [TestScript](testscript.html): The uri that identifies the test script
7584* [ValueSet](valueset.html): The uri that identifies the value set
7585</b><br>
7586   * Type: <b>uri</b><br>
7587   * 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>
7588   * </p>
7589   */
7590  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
7591
7592 /**
7593   * Search parameter: <b>version</b>
7594   * <p>
7595   * Description: <b>Multiple Resources: 
7596
7597* [ActivityDefinition](activitydefinition.html): The business version of the activity definition
7598* [ActorDefinition](actordefinition.html): The business version of the Actor Definition
7599* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
7600* [ChargeItemDefinition](chargeitemdefinition.html): The business version of the charge item definition
7601* [Citation](citation.html): The business version of the citation
7602* [CodeSystem](codesystem.html): The business version of the code system
7603* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
7604* [ConceptMap](conceptmap.html): The business version of the concept map
7605* [ConditionDefinition](conditiondefinition.html): The business version of the condition definition
7606* [EventDefinition](eventdefinition.html): The business version of the event definition
7607* [Evidence](evidence.html): The business version of the evidence
7608* [EvidenceVariable](evidencevariable.html): The business version of the evidence variable
7609* [ExampleScenario](examplescenario.html): The business version of the example scenario
7610* [GraphDefinition](graphdefinition.html): The business version of the graph definition
7611* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
7612* [Library](library.html): The business version of the library
7613* [Measure](measure.html): The business version of the measure
7614* [MessageDefinition](messagedefinition.html): The business version of the message definition
7615* [NamingSystem](namingsystem.html): The business version of the naming system
7616* [OperationDefinition](operationdefinition.html): The business version of the operation definition
7617* [PlanDefinition](plandefinition.html): The business version of the plan definition
7618* [Questionnaire](questionnaire.html): The business version of the questionnaire
7619* [Requirements](requirements.html): The business version of the requirements
7620* [SearchParameter](searchparameter.html): The business version of the search parameter
7621* [StructureDefinition](structuredefinition.html): The business version of the structure definition
7622* [StructureMap](structuremap.html): The business version of the structure map
7623* [SubscriptionTopic](subscriptiontopic.html): Business version of the SubscriptionTopic
7624* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
7625* [TestScript](testscript.html): The business version of the test script
7626* [ValueSet](valueset.html): The business version of the value set
7627</b><br>
7628   * Type: <b>token</b><br>
7629   * 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>
7630   * </p>
7631   */
7632  @SearchParamDefinition(name="version", path="ActivityDefinition.version | ActorDefinition.version | CapabilityStatement.version | ChargeItemDefinition.version | Citati