001package org.hl7.fhir.r4.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Thu, Dec 27, 2018 10:06-0500 for FHIR v4.0.0
033
034import java.util.*;
035
036import java.math.*;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r4.model.Enumerations.*;
039import ca.uhn.fhir.model.api.annotation.ResourceDef;
040import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
041import ca.uhn.fhir.model.api.annotation.Child;
042import ca.uhn.fhir.model.api.annotation.ChildOrder;
043import ca.uhn.fhir.model.api.annotation.Description;
044import ca.uhn.fhir.model.api.annotation.Block;
045import org.hl7.fhir.instance.model.api.*;
046import org.hl7.fhir.exceptions.FHIRException;
047/**
048 * The RiskEvidenceSynthesis resource describes the likelihood of an outcome in a population plus exposure state where the risk estimate is derived from a combination of research studies.
049 */
050@ResourceDef(name="RiskEvidenceSynthesis", profile="http://hl7.org/fhir/StructureDefinition/RiskEvidenceSynthesis")
051@ChildOrder(names={"url", "identifier", "version", "name", "title", "status", "date", "publisher", "contact", "description", "note", "useContext", "jurisdiction", "copyright", "approvalDate", "lastReviewDate", "effectivePeriod", "topic", "author", "editor", "reviewer", "endorser", "relatedArtifact", "synthesisType", "studyType", "population", "exposure", "outcome", "sampleSize", "riskEstimate", "certainty"})
052public class RiskEvidenceSynthesis extends MetadataResource {
053
054    @Block()
055    public static class RiskEvidenceSynthesisSampleSizeComponent extends BackboneElement implements IBaseBackboneElement {
056        /**
057         * Human-readable summary of sample size.
058         */
059        @Child(name = "description", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
060        @Description(shortDefinition="Description of sample size", formalDefinition="Human-readable summary of sample size." )
061        protected StringType description;
062
063        /**
064         * Number of studies included in this evidence synthesis.
065         */
066        @Child(name = "numberOfStudies", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=false)
067        @Description(shortDefinition="How many studies?", formalDefinition="Number of studies included in this evidence synthesis." )
068        protected IntegerType numberOfStudies;
069
070        /**
071         * Number of participants included in this evidence synthesis.
072         */
073        @Child(name = "numberOfParticipants", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=false)
074        @Description(shortDefinition="How many participants?", formalDefinition="Number of participants included in this evidence synthesis." )
075        protected IntegerType numberOfParticipants;
076
077        private static final long serialVersionUID = -1116074476L;
078
079    /**
080     * Constructor
081     */
082      public RiskEvidenceSynthesisSampleSizeComponent() {
083        super();
084      }
085
086        /**
087         * @return {@link #description} (Human-readable summary of sample size.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
088         */
089        public StringType getDescriptionElement() { 
090          if (this.description == null)
091            if (Configuration.errorOnAutoCreate())
092              throw new Error("Attempt to auto-create RiskEvidenceSynthesisSampleSizeComponent.description");
093            else if (Configuration.doAutoCreate())
094              this.description = new StringType(); // bb
095          return this.description;
096        }
097
098        public boolean hasDescriptionElement() { 
099          return this.description != null && !this.description.isEmpty();
100        }
101
102        public boolean hasDescription() { 
103          return this.description != null && !this.description.isEmpty();
104        }
105
106        /**
107         * @param value {@link #description} (Human-readable summary of sample size.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
108         */
109        public RiskEvidenceSynthesisSampleSizeComponent setDescriptionElement(StringType value) { 
110          this.description = value;
111          return this;
112        }
113
114        /**
115         * @return Human-readable summary of sample size.
116         */
117        public String getDescription() { 
118          return this.description == null ? null : this.description.getValue();
119        }
120
121        /**
122         * @param value Human-readable summary of sample size.
123         */
124        public RiskEvidenceSynthesisSampleSizeComponent setDescription(String value) { 
125          if (Utilities.noString(value))
126            this.description = null;
127          else {
128            if (this.description == null)
129              this.description = new StringType();
130            this.description.setValue(value);
131          }
132          return this;
133        }
134
135        /**
136         * @return {@link #numberOfStudies} (Number of studies included in this evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getNumberOfStudies" gives direct access to the value
137         */
138        public IntegerType getNumberOfStudiesElement() { 
139          if (this.numberOfStudies == null)
140            if (Configuration.errorOnAutoCreate())
141              throw new Error("Attempt to auto-create RiskEvidenceSynthesisSampleSizeComponent.numberOfStudies");
142            else if (Configuration.doAutoCreate())
143              this.numberOfStudies = new IntegerType(); // bb
144          return this.numberOfStudies;
145        }
146
147        public boolean hasNumberOfStudiesElement() { 
148          return this.numberOfStudies != null && !this.numberOfStudies.isEmpty();
149        }
150
151        public boolean hasNumberOfStudies() { 
152          return this.numberOfStudies != null && !this.numberOfStudies.isEmpty();
153        }
154
155        /**
156         * @param value {@link #numberOfStudies} (Number of studies included in this evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getNumberOfStudies" gives direct access to the value
157         */
158        public RiskEvidenceSynthesisSampleSizeComponent setNumberOfStudiesElement(IntegerType value) { 
159          this.numberOfStudies = value;
160          return this;
161        }
162
163        /**
164         * @return Number of studies included in this evidence synthesis.
165         */
166        public int getNumberOfStudies() { 
167          return this.numberOfStudies == null || this.numberOfStudies.isEmpty() ? 0 : this.numberOfStudies.getValue();
168        }
169
170        /**
171         * @param value Number of studies included in this evidence synthesis.
172         */
173        public RiskEvidenceSynthesisSampleSizeComponent setNumberOfStudies(int value) { 
174            if (this.numberOfStudies == null)
175              this.numberOfStudies = new IntegerType();
176            this.numberOfStudies.setValue(value);
177          return this;
178        }
179
180        /**
181         * @return {@link #numberOfParticipants} (Number of participants included in this evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getNumberOfParticipants" gives direct access to the value
182         */
183        public IntegerType getNumberOfParticipantsElement() { 
184          if (this.numberOfParticipants == null)
185            if (Configuration.errorOnAutoCreate())
186              throw new Error("Attempt to auto-create RiskEvidenceSynthesisSampleSizeComponent.numberOfParticipants");
187            else if (Configuration.doAutoCreate())
188              this.numberOfParticipants = new IntegerType(); // bb
189          return this.numberOfParticipants;
190        }
191
192        public boolean hasNumberOfParticipantsElement() { 
193          return this.numberOfParticipants != null && !this.numberOfParticipants.isEmpty();
194        }
195
196        public boolean hasNumberOfParticipants() { 
197          return this.numberOfParticipants != null && !this.numberOfParticipants.isEmpty();
198        }
199
200        /**
201         * @param value {@link #numberOfParticipants} (Number of participants included in this evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getNumberOfParticipants" gives direct access to the value
202         */
203        public RiskEvidenceSynthesisSampleSizeComponent setNumberOfParticipantsElement(IntegerType value) { 
204          this.numberOfParticipants = value;
205          return this;
206        }
207
208        /**
209         * @return Number of participants included in this evidence synthesis.
210         */
211        public int getNumberOfParticipants() { 
212          return this.numberOfParticipants == null || this.numberOfParticipants.isEmpty() ? 0 : this.numberOfParticipants.getValue();
213        }
214
215        /**
216         * @param value Number of participants included in this evidence synthesis.
217         */
218        public RiskEvidenceSynthesisSampleSizeComponent setNumberOfParticipants(int value) { 
219            if (this.numberOfParticipants == null)
220              this.numberOfParticipants = new IntegerType();
221            this.numberOfParticipants.setValue(value);
222          return this;
223        }
224
225        protected void listChildren(List<Property> children) {
226          super.listChildren(children);
227          children.add(new Property("description", "string", "Human-readable summary of sample size.", 0, 1, description));
228          children.add(new Property("numberOfStudies", "integer", "Number of studies included in this evidence synthesis.", 0, 1, numberOfStudies));
229          children.add(new Property("numberOfParticipants", "integer", "Number of participants included in this evidence synthesis.", 0, 1, numberOfParticipants));
230        }
231
232        @Override
233        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
234          switch (_hash) {
235          case -1724546052: /*description*/  return new Property("description", "string", "Human-readable summary of sample size.", 0, 1, description);
236          case -177467129: /*numberOfStudies*/  return new Property("numberOfStudies", "integer", "Number of studies included in this evidence synthesis.", 0, 1, numberOfStudies);
237          case 1799357120: /*numberOfParticipants*/  return new Property("numberOfParticipants", "integer", "Number of participants included in this evidence synthesis.", 0, 1, numberOfParticipants);
238          default: return super.getNamedProperty(_hash, _name, _checkValid);
239          }
240
241        }
242
243      @Override
244      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
245        switch (hash) {
246        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
247        case -177467129: /*numberOfStudies*/ return this.numberOfStudies == null ? new Base[0] : new Base[] {this.numberOfStudies}; // IntegerType
248        case 1799357120: /*numberOfParticipants*/ return this.numberOfParticipants == null ? new Base[0] : new Base[] {this.numberOfParticipants}; // IntegerType
249        default: return super.getProperty(hash, name, checkValid);
250        }
251
252      }
253
254      @Override
255      public Base setProperty(int hash, String name, Base value) throws FHIRException {
256        switch (hash) {
257        case -1724546052: // description
258          this.description = castToString(value); // StringType
259          return value;
260        case -177467129: // numberOfStudies
261          this.numberOfStudies = castToInteger(value); // IntegerType
262          return value;
263        case 1799357120: // numberOfParticipants
264          this.numberOfParticipants = castToInteger(value); // IntegerType
265          return value;
266        default: return super.setProperty(hash, name, value);
267        }
268
269      }
270
271      @Override
272      public Base setProperty(String name, Base value) throws FHIRException {
273        if (name.equals("description")) {
274          this.description = castToString(value); // StringType
275        } else if (name.equals("numberOfStudies")) {
276          this.numberOfStudies = castToInteger(value); // IntegerType
277        } else if (name.equals("numberOfParticipants")) {
278          this.numberOfParticipants = castToInteger(value); // IntegerType
279        } else
280          return super.setProperty(name, value);
281        return value;
282      }
283
284      @Override
285      public Base makeProperty(int hash, String name) throws FHIRException {
286        switch (hash) {
287        case -1724546052:  return getDescriptionElement();
288        case -177467129:  return getNumberOfStudiesElement();
289        case 1799357120:  return getNumberOfParticipantsElement();
290        default: return super.makeProperty(hash, name);
291        }
292
293      }
294
295      @Override
296      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
297        switch (hash) {
298        case -1724546052: /*description*/ return new String[] {"string"};
299        case -177467129: /*numberOfStudies*/ return new String[] {"integer"};
300        case 1799357120: /*numberOfParticipants*/ return new String[] {"integer"};
301        default: return super.getTypesForProperty(hash, name);
302        }
303
304      }
305
306      @Override
307      public Base addChild(String name) throws FHIRException {
308        if (name.equals("description")) {
309          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.description");
310        }
311        else if (name.equals("numberOfStudies")) {
312          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.numberOfStudies");
313        }
314        else if (name.equals("numberOfParticipants")) {
315          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.numberOfParticipants");
316        }
317        else
318          return super.addChild(name);
319      }
320
321      public RiskEvidenceSynthesisSampleSizeComponent copy() {
322        RiskEvidenceSynthesisSampleSizeComponent dst = new RiskEvidenceSynthesisSampleSizeComponent();
323        copyValues(dst);
324        dst.description = description == null ? null : description.copy();
325        dst.numberOfStudies = numberOfStudies == null ? null : numberOfStudies.copy();
326        dst.numberOfParticipants = numberOfParticipants == null ? null : numberOfParticipants.copy();
327        return dst;
328      }
329
330      @Override
331      public boolean equalsDeep(Base other_) {
332        if (!super.equalsDeep(other_))
333          return false;
334        if (!(other_ instanceof RiskEvidenceSynthesisSampleSizeComponent))
335          return false;
336        RiskEvidenceSynthesisSampleSizeComponent o = (RiskEvidenceSynthesisSampleSizeComponent) other_;
337        return compareDeep(description, o.description, true) && compareDeep(numberOfStudies, o.numberOfStudies, true)
338           && compareDeep(numberOfParticipants, o.numberOfParticipants, true);
339      }
340
341      @Override
342      public boolean equalsShallow(Base other_) {
343        if (!super.equalsShallow(other_))
344          return false;
345        if (!(other_ instanceof RiskEvidenceSynthesisSampleSizeComponent))
346          return false;
347        RiskEvidenceSynthesisSampleSizeComponent o = (RiskEvidenceSynthesisSampleSizeComponent) other_;
348        return compareValues(description, o.description, true) && compareValues(numberOfStudies, o.numberOfStudies, true)
349           && compareValues(numberOfParticipants, o.numberOfParticipants, true);
350      }
351
352      public boolean isEmpty() {
353        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, numberOfStudies
354          , numberOfParticipants);
355      }
356
357  public String fhirType() {
358    return "RiskEvidenceSynthesis.sampleSize";
359
360  }
361
362  }
363
364    @Block()
365    public static class RiskEvidenceSynthesisRiskEstimateComponent extends BackboneElement implements IBaseBackboneElement {
366        /**
367         * Human-readable summary of risk estimate.
368         */
369        @Child(name = "description", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
370        @Description(shortDefinition="Description of risk estimate", formalDefinition="Human-readable summary of risk estimate." )
371        protected StringType description;
372
373        /**
374         * Examples include proportion and mean.
375         */
376        @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
377        @Description(shortDefinition="Type of risk estimate", formalDefinition="Examples include proportion and mean." )
378        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/risk-estimate-type")
379        protected CodeableConcept type;
380
381        /**
382         * The point estimate of the risk estimate.
383         */
384        @Child(name = "value", type = {DecimalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
385        @Description(shortDefinition="Point estimate", formalDefinition="The point estimate of the risk estimate." )
386        protected DecimalType value;
387
388        /**
389         * Specifies the UCUM unit for the outcome.
390         */
391        @Child(name = "unitOfMeasure", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=false)
392        @Description(shortDefinition="What unit is the outcome described in?", formalDefinition="Specifies the UCUM unit for the outcome." )
393        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/ucum-units")
394        protected CodeableConcept unitOfMeasure;
395
396        /**
397         * The sample size for the group that was measured for this risk estimate.
398         */
399        @Child(name = "denominatorCount", type = {IntegerType.class}, order=5, min=0, max=1, modifier=false, summary=false)
400        @Description(shortDefinition="Sample size for group measured", formalDefinition="The sample size for the group that was measured for this risk estimate." )
401        protected IntegerType denominatorCount;
402
403        /**
404         * The number of group members with the outcome of interest.
405         */
406        @Child(name = "numeratorCount", type = {IntegerType.class}, order=6, min=0, max=1, modifier=false, summary=false)
407        @Description(shortDefinition="Number with the outcome", formalDefinition="The number of group members with the outcome of interest." )
408        protected IntegerType numeratorCount;
409
410        /**
411         * A description of the precision of the estimate for the effect.
412         */
413        @Child(name = "precisionEstimate", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
414        @Description(shortDefinition="How precise the estimate is", formalDefinition="A description of the precision of the estimate for the effect." )
415        protected List<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent> precisionEstimate;
416
417        private static final long serialVersionUID = -15987415L;
418
419    /**
420     * Constructor
421     */
422      public RiskEvidenceSynthesisRiskEstimateComponent() {
423        super();
424      }
425
426        /**
427         * @return {@link #description} (Human-readable summary of risk estimate.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
428         */
429        public StringType getDescriptionElement() { 
430          if (this.description == null)
431            if (Configuration.errorOnAutoCreate())
432              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimateComponent.description");
433            else if (Configuration.doAutoCreate())
434              this.description = new StringType(); // bb
435          return this.description;
436        }
437
438        public boolean hasDescriptionElement() { 
439          return this.description != null && !this.description.isEmpty();
440        }
441
442        public boolean hasDescription() { 
443          return this.description != null && !this.description.isEmpty();
444        }
445
446        /**
447         * @param value {@link #description} (Human-readable summary of risk estimate.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
448         */
449        public RiskEvidenceSynthesisRiskEstimateComponent setDescriptionElement(StringType value) { 
450          this.description = value;
451          return this;
452        }
453
454        /**
455         * @return Human-readable summary of risk estimate.
456         */
457        public String getDescription() { 
458          return this.description == null ? null : this.description.getValue();
459        }
460
461        /**
462         * @param value Human-readable summary of risk estimate.
463         */
464        public RiskEvidenceSynthesisRiskEstimateComponent setDescription(String value) { 
465          if (Utilities.noString(value))
466            this.description = null;
467          else {
468            if (this.description == null)
469              this.description = new StringType();
470            this.description.setValue(value);
471          }
472          return this;
473        }
474
475        /**
476         * @return {@link #type} (Examples include proportion and mean.)
477         */
478        public CodeableConcept getType() { 
479          if (this.type == null)
480            if (Configuration.errorOnAutoCreate())
481              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimateComponent.type");
482            else if (Configuration.doAutoCreate())
483              this.type = new CodeableConcept(); // cc
484          return this.type;
485        }
486
487        public boolean hasType() { 
488          return this.type != null && !this.type.isEmpty();
489        }
490
491        /**
492         * @param value {@link #type} (Examples include proportion and mean.)
493         */
494        public RiskEvidenceSynthesisRiskEstimateComponent setType(CodeableConcept value) { 
495          this.type = value;
496          return this;
497        }
498
499        /**
500         * @return {@link #value} (The point estimate of the risk estimate.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
501         */
502        public DecimalType getValueElement() { 
503          if (this.value == null)
504            if (Configuration.errorOnAutoCreate())
505              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimateComponent.value");
506            else if (Configuration.doAutoCreate())
507              this.value = new DecimalType(); // bb
508          return this.value;
509        }
510
511        public boolean hasValueElement() { 
512          return this.value != null && !this.value.isEmpty();
513        }
514
515        public boolean hasValue() { 
516          return this.value != null && !this.value.isEmpty();
517        }
518
519        /**
520         * @param value {@link #value} (The point estimate of the risk estimate.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
521         */
522        public RiskEvidenceSynthesisRiskEstimateComponent setValueElement(DecimalType value) { 
523          this.value = value;
524          return this;
525        }
526
527        /**
528         * @return The point estimate of the risk estimate.
529         */
530        public BigDecimal getValue() { 
531          return this.value == null ? null : this.value.getValue();
532        }
533
534        /**
535         * @param value The point estimate of the risk estimate.
536         */
537        public RiskEvidenceSynthesisRiskEstimateComponent setValue(BigDecimal value) { 
538          if (value == null)
539            this.value = null;
540          else {
541            if (this.value == null)
542              this.value = new DecimalType();
543            this.value.setValue(value);
544          }
545          return this;
546        }
547
548        /**
549         * @param value The point estimate of the risk estimate.
550         */
551        public RiskEvidenceSynthesisRiskEstimateComponent setValue(long value) { 
552              this.value = new DecimalType();
553            this.value.setValue(value);
554          return this;
555        }
556
557        /**
558         * @param value The point estimate of the risk estimate.
559         */
560        public RiskEvidenceSynthesisRiskEstimateComponent setValue(double value) { 
561              this.value = new DecimalType();
562            this.value.setValue(value);
563          return this;
564        }
565
566        /**
567         * @return {@link #unitOfMeasure} (Specifies the UCUM unit for the outcome.)
568         */
569        public CodeableConcept getUnitOfMeasure() { 
570          if (this.unitOfMeasure == null)
571            if (Configuration.errorOnAutoCreate())
572              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimateComponent.unitOfMeasure");
573            else if (Configuration.doAutoCreate())
574              this.unitOfMeasure = new CodeableConcept(); // cc
575          return this.unitOfMeasure;
576        }
577
578        public boolean hasUnitOfMeasure() { 
579          return this.unitOfMeasure != null && !this.unitOfMeasure.isEmpty();
580        }
581
582        /**
583         * @param value {@link #unitOfMeasure} (Specifies the UCUM unit for the outcome.)
584         */
585        public RiskEvidenceSynthesisRiskEstimateComponent setUnitOfMeasure(CodeableConcept value) { 
586          this.unitOfMeasure = value;
587          return this;
588        }
589
590        /**
591         * @return {@link #denominatorCount} (The sample size for the group that was measured for this risk estimate.). This is the underlying object with id, value and extensions. The accessor "getDenominatorCount" gives direct access to the value
592         */
593        public IntegerType getDenominatorCountElement() { 
594          if (this.denominatorCount == null)
595            if (Configuration.errorOnAutoCreate())
596              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimateComponent.denominatorCount");
597            else if (Configuration.doAutoCreate())
598              this.denominatorCount = new IntegerType(); // bb
599          return this.denominatorCount;
600        }
601
602        public boolean hasDenominatorCountElement() { 
603          return this.denominatorCount != null && !this.denominatorCount.isEmpty();
604        }
605
606        public boolean hasDenominatorCount() { 
607          return this.denominatorCount != null && !this.denominatorCount.isEmpty();
608        }
609
610        /**
611         * @param value {@link #denominatorCount} (The sample size for the group that was measured for this risk estimate.). This is the underlying object with id, value and extensions. The accessor "getDenominatorCount" gives direct access to the value
612         */
613        public RiskEvidenceSynthesisRiskEstimateComponent setDenominatorCountElement(IntegerType value) { 
614          this.denominatorCount = value;
615          return this;
616        }
617
618        /**
619         * @return The sample size for the group that was measured for this risk estimate.
620         */
621        public int getDenominatorCount() { 
622          return this.denominatorCount == null || this.denominatorCount.isEmpty() ? 0 : this.denominatorCount.getValue();
623        }
624
625        /**
626         * @param value The sample size for the group that was measured for this risk estimate.
627         */
628        public RiskEvidenceSynthesisRiskEstimateComponent setDenominatorCount(int value) { 
629            if (this.denominatorCount == null)
630              this.denominatorCount = new IntegerType();
631            this.denominatorCount.setValue(value);
632          return this;
633        }
634
635        /**
636         * @return {@link #numeratorCount} (The number of group members with the outcome of interest.). This is the underlying object with id, value and extensions. The accessor "getNumeratorCount" gives direct access to the value
637         */
638        public IntegerType getNumeratorCountElement() { 
639          if (this.numeratorCount == null)
640            if (Configuration.errorOnAutoCreate())
641              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimateComponent.numeratorCount");
642            else if (Configuration.doAutoCreate())
643              this.numeratorCount = new IntegerType(); // bb
644          return this.numeratorCount;
645        }
646
647        public boolean hasNumeratorCountElement() { 
648          return this.numeratorCount != null && !this.numeratorCount.isEmpty();
649        }
650
651        public boolean hasNumeratorCount() { 
652          return this.numeratorCount != null && !this.numeratorCount.isEmpty();
653        }
654
655        /**
656         * @param value {@link #numeratorCount} (The number of group members with the outcome of interest.). This is the underlying object with id, value and extensions. The accessor "getNumeratorCount" gives direct access to the value
657         */
658        public RiskEvidenceSynthesisRiskEstimateComponent setNumeratorCountElement(IntegerType value) { 
659          this.numeratorCount = value;
660          return this;
661        }
662
663        /**
664         * @return The number of group members with the outcome of interest.
665         */
666        public int getNumeratorCount() { 
667          return this.numeratorCount == null || this.numeratorCount.isEmpty() ? 0 : this.numeratorCount.getValue();
668        }
669
670        /**
671         * @param value The number of group members with the outcome of interest.
672         */
673        public RiskEvidenceSynthesisRiskEstimateComponent setNumeratorCount(int value) { 
674            if (this.numeratorCount == null)
675              this.numeratorCount = new IntegerType();
676            this.numeratorCount.setValue(value);
677          return this;
678        }
679
680        /**
681         * @return {@link #precisionEstimate} (A description of the precision of the estimate for the effect.)
682         */
683        public List<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent> getPrecisionEstimate() { 
684          if (this.precisionEstimate == null)
685            this.precisionEstimate = new ArrayList<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent>();
686          return this.precisionEstimate;
687        }
688
689        /**
690         * @return Returns a reference to <code>this</code> for easy method chaining
691         */
692        public RiskEvidenceSynthesisRiskEstimateComponent setPrecisionEstimate(List<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent> thePrecisionEstimate) { 
693          this.precisionEstimate = thePrecisionEstimate;
694          return this;
695        }
696
697        public boolean hasPrecisionEstimate() { 
698          if (this.precisionEstimate == null)
699            return false;
700          for (RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent item : this.precisionEstimate)
701            if (!item.isEmpty())
702              return true;
703          return false;
704        }
705
706        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent addPrecisionEstimate() { //3
707          RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent t = new RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent();
708          if (this.precisionEstimate == null)
709            this.precisionEstimate = new ArrayList<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent>();
710          this.precisionEstimate.add(t);
711          return t;
712        }
713
714        public RiskEvidenceSynthesisRiskEstimateComponent addPrecisionEstimate(RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent t) { //3
715          if (t == null)
716            return this;
717          if (this.precisionEstimate == null)
718            this.precisionEstimate = new ArrayList<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent>();
719          this.precisionEstimate.add(t);
720          return this;
721        }
722
723        /**
724         * @return The first repetition of repeating field {@link #precisionEstimate}, creating it if it does not already exist
725         */
726        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent getPrecisionEstimateFirstRep() { 
727          if (getPrecisionEstimate().isEmpty()) {
728            addPrecisionEstimate();
729          }
730          return getPrecisionEstimate().get(0);
731        }
732
733        protected void listChildren(List<Property> children) {
734          super.listChildren(children);
735          children.add(new Property("description", "string", "Human-readable summary of risk estimate.", 0, 1, description));
736          children.add(new Property("type", "CodeableConcept", "Examples include proportion and mean.", 0, 1, type));
737          children.add(new Property("value", "decimal", "The point estimate of the risk estimate.", 0, 1, value));
738          children.add(new Property("unitOfMeasure", "CodeableConcept", "Specifies the UCUM unit for the outcome.", 0, 1, unitOfMeasure));
739          children.add(new Property("denominatorCount", "integer", "The sample size for the group that was measured for this risk estimate.", 0, 1, denominatorCount));
740          children.add(new Property("numeratorCount", "integer", "The number of group members with the outcome of interest.", 0, 1, numeratorCount));
741          children.add(new Property("precisionEstimate", "", "A description of the precision of the estimate for the effect.", 0, java.lang.Integer.MAX_VALUE, precisionEstimate));
742        }
743
744        @Override
745        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
746          switch (_hash) {
747          case -1724546052: /*description*/  return new Property("description", "string", "Human-readable summary of risk estimate.", 0, 1, description);
748          case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Examples include proportion and mean.", 0, 1, type);
749          case 111972721: /*value*/  return new Property("value", "decimal", "The point estimate of the risk estimate.", 0, 1, value);
750          case -750257565: /*unitOfMeasure*/  return new Property("unitOfMeasure", "CodeableConcept", "Specifies the UCUM unit for the outcome.", 0, 1, unitOfMeasure);
751          case 1323191881: /*denominatorCount*/  return new Property("denominatorCount", "integer", "The sample size for the group that was measured for this risk estimate.", 0, 1, denominatorCount);
752          case -755509242: /*numeratorCount*/  return new Property("numeratorCount", "integer", "The number of group members with the outcome of interest.", 0, 1, numeratorCount);
753          case 339632070: /*precisionEstimate*/  return new Property("precisionEstimate", "", "A description of the precision of the estimate for the effect.", 0, java.lang.Integer.MAX_VALUE, precisionEstimate);
754          default: return super.getNamedProperty(_hash, _name, _checkValid);
755          }
756
757        }
758
759      @Override
760      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
761        switch (hash) {
762        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
763        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
764        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DecimalType
765        case -750257565: /*unitOfMeasure*/ return this.unitOfMeasure == null ? new Base[0] : new Base[] {this.unitOfMeasure}; // CodeableConcept
766        case 1323191881: /*denominatorCount*/ return this.denominatorCount == null ? new Base[0] : new Base[] {this.denominatorCount}; // IntegerType
767        case -755509242: /*numeratorCount*/ return this.numeratorCount == null ? new Base[0] : new Base[] {this.numeratorCount}; // IntegerType
768        case 339632070: /*precisionEstimate*/ return this.precisionEstimate == null ? new Base[0] : this.precisionEstimate.toArray(new Base[this.precisionEstimate.size()]); // RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent
769        default: return super.getProperty(hash, name, checkValid);
770        }
771
772      }
773
774      @Override
775      public Base setProperty(int hash, String name, Base value) throws FHIRException {
776        switch (hash) {
777        case -1724546052: // description
778          this.description = castToString(value); // StringType
779          return value;
780        case 3575610: // type
781          this.type = castToCodeableConcept(value); // CodeableConcept
782          return value;
783        case 111972721: // value
784          this.value = castToDecimal(value); // DecimalType
785          return value;
786        case -750257565: // unitOfMeasure
787          this.unitOfMeasure = castToCodeableConcept(value); // CodeableConcept
788          return value;
789        case 1323191881: // denominatorCount
790          this.denominatorCount = castToInteger(value); // IntegerType
791          return value;
792        case -755509242: // numeratorCount
793          this.numeratorCount = castToInteger(value); // IntegerType
794          return value;
795        case 339632070: // precisionEstimate
796          this.getPrecisionEstimate().add((RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent) value); // RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent
797          return value;
798        default: return super.setProperty(hash, name, value);
799        }
800
801      }
802
803      @Override
804      public Base setProperty(String name, Base value) throws FHIRException {
805        if (name.equals("description")) {
806          this.description = castToString(value); // StringType
807        } else if (name.equals("type")) {
808          this.type = castToCodeableConcept(value); // CodeableConcept
809        } else if (name.equals("value")) {
810          this.value = castToDecimal(value); // DecimalType
811        } else if (name.equals("unitOfMeasure")) {
812          this.unitOfMeasure = castToCodeableConcept(value); // CodeableConcept
813        } else if (name.equals("denominatorCount")) {
814          this.denominatorCount = castToInteger(value); // IntegerType
815        } else if (name.equals("numeratorCount")) {
816          this.numeratorCount = castToInteger(value); // IntegerType
817        } else if (name.equals("precisionEstimate")) {
818          this.getPrecisionEstimate().add((RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent) value);
819        } else
820          return super.setProperty(name, value);
821        return value;
822      }
823
824      @Override
825      public Base makeProperty(int hash, String name) throws FHIRException {
826        switch (hash) {
827        case -1724546052:  return getDescriptionElement();
828        case 3575610:  return getType(); 
829        case 111972721:  return getValueElement();
830        case -750257565:  return getUnitOfMeasure(); 
831        case 1323191881:  return getDenominatorCountElement();
832        case -755509242:  return getNumeratorCountElement();
833        case 339632070:  return addPrecisionEstimate(); 
834        default: return super.makeProperty(hash, name);
835        }
836
837      }
838
839      @Override
840      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
841        switch (hash) {
842        case -1724546052: /*description*/ return new String[] {"string"};
843        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
844        case 111972721: /*value*/ return new String[] {"decimal"};
845        case -750257565: /*unitOfMeasure*/ return new String[] {"CodeableConcept"};
846        case 1323191881: /*denominatorCount*/ return new String[] {"integer"};
847        case -755509242: /*numeratorCount*/ return new String[] {"integer"};
848        case 339632070: /*precisionEstimate*/ return new String[] {};
849        default: return super.getTypesForProperty(hash, name);
850        }
851
852      }
853
854      @Override
855      public Base addChild(String name) throws FHIRException {
856        if (name.equals("description")) {
857          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.description");
858        }
859        else if (name.equals("type")) {
860          this.type = new CodeableConcept();
861          return this.type;
862        }
863        else if (name.equals("value")) {
864          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.value");
865        }
866        else if (name.equals("unitOfMeasure")) {
867          this.unitOfMeasure = new CodeableConcept();
868          return this.unitOfMeasure;
869        }
870        else if (name.equals("denominatorCount")) {
871          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.denominatorCount");
872        }
873        else if (name.equals("numeratorCount")) {
874          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.numeratorCount");
875        }
876        else if (name.equals("precisionEstimate")) {
877          return addPrecisionEstimate();
878        }
879        else
880          return super.addChild(name);
881      }
882
883      public RiskEvidenceSynthesisRiskEstimateComponent copy() {
884        RiskEvidenceSynthesisRiskEstimateComponent dst = new RiskEvidenceSynthesisRiskEstimateComponent();
885        copyValues(dst);
886        dst.description = description == null ? null : description.copy();
887        dst.type = type == null ? null : type.copy();
888        dst.value = value == null ? null : value.copy();
889        dst.unitOfMeasure = unitOfMeasure == null ? null : unitOfMeasure.copy();
890        dst.denominatorCount = denominatorCount == null ? null : denominatorCount.copy();
891        dst.numeratorCount = numeratorCount == null ? null : numeratorCount.copy();
892        if (precisionEstimate != null) {
893          dst.precisionEstimate = new ArrayList<RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent>();
894          for (RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent i : precisionEstimate)
895            dst.precisionEstimate.add(i.copy());
896        };
897        return dst;
898      }
899
900      @Override
901      public boolean equalsDeep(Base other_) {
902        if (!super.equalsDeep(other_))
903          return false;
904        if (!(other_ instanceof RiskEvidenceSynthesisRiskEstimateComponent))
905          return false;
906        RiskEvidenceSynthesisRiskEstimateComponent o = (RiskEvidenceSynthesisRiskEstimateComponent) other_;
907        return compareDeep(description, o.description, true) && compareDeep(type, o.type, true) && compareDeep(value, o.value, true)
908           && compareDeep(unitOfMeasure, o.unitOfMeasure, true) && compareDeep(denominatorCount, o.denominatorCount, true)
909           && compareDeep(numeratorCount, o.numeratorCount, true) && compareDeep(precisionEstimate, o.precisionEstimate, true)
910          ;
911      }
912
913      @Override
914      public boolean equalsShallow(Base other_) {
915        if (!super.equalsShallow(other_))
916          return false;
917        if (!(other_ instanceof RiskEvidenceSynthesisRiskEstimateComponent))
918          return false;
919        RiskEvidenceSynthesisRiskEstimateComponent o = (RiskEvidenceSynthesisRiskEstimateComponent) other_;
920        return compareValues(description, o.description, true) && compareValues(value, o.value, true) && compareValues(denominatorCount, o.denominatorCount, true)
921           && compareValues(numeratorCount, o.numeratorCount, true);
922      }
923
924      public boolean isEmpty() {
925        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, type, value
926          , unitOfMeasure, denominatorCount, numeratorCount, precisionEstimate);
927      }
928
929  public String fhirType() {
930    return "RiskEvidenceSynthesis.riskEstimate";
931
932  }
933
934  }
935
936    @Block()
937    public static class RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent extends BackboneElement implements IBaseBackboneElement {
938        /**
939         * Examples include confidence interval and interquartile range.
940         */
941        @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
942        @Description(shortDefinition="Type of precision estimate", formalDefinition="Examples include confidence interval and interquartile range." )
943        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/precision-estimate-type")
944        protected CodeableConcept type;
945
946        /**
947         * Use 95 for a 95% confidence interval.
948         */
949        @Child(name = "level", type = {DecimalType.class}, order=2, min=0, max=1, modifier=false, summary=false)
950        @Description(shortDefinition="Level of confidence interval", formalDefinition="Use 95 for a 95% confidence interval." )
951        protected DecimalType level;
952
953        /**
954         * Lower bound of confidence interval.
955         */
956        @Child(name = "from", type = {DecimalType.class}, order=3, min=0, max=1, modifier=false, summary=false)
957        @Description(shortDefinition="Lower bound", formalDefinition="Lower bound of confidence interval." )
958        protected DecimalType from;
959
960        /**
961         * Upper bound of confidence interval.
962         */
963        @Child(name = "to", type = {DecimalType.class}, order=4, min=0, max=1, modifier=false, summary=false)
964        @Description(shortDefinition="Upper bound", formalDefinition="Upper bound of confidence interval." )
965        protected DecimalType to;
966
967        private static final long serialVersionUID = -110178057L;
968
969    /**
970     * Constructor
971     */
972      public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent() {
973        super();
974      }
975
976        /**
977         * @return {@link #type} (Examples include confidence interval and interquartile range.)
978         */
979        public CodeableConcept getType() { 
980          if (this.type == null)
981            if (Configuration.errorOnAutoCreate())
982              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent.type");
983            else if (Configuration.doAutoCreate())
984              this.type = new CodeableConcept(); // cc
985          return this.type;
986        }
987
988        public boolean hasType() { 
989          return this.type != null && !this.type.isEmpty();
990        }
991
992        /**
993         * @param value {@link #type} (Examples include confidence interval and interquartile range.)
994         */
995        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setType(CodeableConcept value) { 
996          this.type = value;
997          return this;
998        }
999
1000        /**
1001         * @return {@link #level} (Use 95 for a 95% confidence interval.). This is the underlying object with id, value and extensions. The accessor "getLevel" gives direct access to the value
1002         */
1003        public DecimalType getLevelElement() { 
1004          if (this.level == null)
1005            if (Configuration.errorOnAutoCreate())
1006              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent.level");
1007            else if (Configuration.doAutoCreate())
1008              this.level = new DecimalType(); // bb
1009          return this.level;
1010        }
1011
1012        public boolean hasLevelElement() { 
1013          return this.level != null && !this.level.isEmpty();
1014        }
1015
1016        public boolean hasLevel() { 
1017          return this.level != null && !this.level.isEmpty();
1018        }
1019
1020        /**
1021         * @param value {@link #level} (Use 95 for a 95% confidence interval.). This is the underlying object with id, value and extensions. The accessor "getLevel" gives direct access to the value
1022         */
1023        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setLevelElement(DecimalType value) { 
1024          this.level = value;
1025          return this;
1026        }
1027
1028        /**
1029         * @return Use 95 for a 95% confidence interval.
1030         */
1031        public BigDecimal getLevel() { 
1032          return this.level == null ? null : this.level.getValue();
1033        }
1034
1035        /**
1036         * @param value Use 95 for a 95% confidence interval.
1037         */
1038        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setLevel(BigDecimal value) { 
1039          if (value == null)
1040            this.level = null;
1041          else {
1042            if (this.level == null)
1043              this.level = new DecimalType();
1044            this.level.setValue(value);
1045          }
1046          return this;
1047        }
1048
1049        /**
1050         * @param value Use 95 for a 95% confidence interval.
1051         */
1052        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setLevel(long value) { 
1053              this.level = new DecimalType();
1054            this.level.setValue(value);
1055          return this;
1056        }
1057
1058        /**
1059         * @param value Use 95 for a 95% confidence interval.
1060         */
1061        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setLevel(double value) { 
1062              this.level = new DecimalType();
1063            this.level.setValue(value);
1064          return this;
1065        }
1066
1067        /**
1068         * @return {@link #from} (Lower bound of confidence interval.). This is the underlying object with id, value and extensions. The accessor "getFrom" gives direct access to the value
1069         */
1070        public DecimalType getFromElement() { 
1071          if (this.from == null)
1072            if (Configuration.errorOnAutoCreate())
1073              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent.from");
1074            else if (Configuration.doAutoCreate())
1075              this.from = new DecimalType(); // bb
1076          return this.from;
1077        }
1078
1079        public boolean hasFromElement() { 
1080          return this.from != null && !this.from.isEmpty();
1081        }
1082
1083        public boolean hasFrom() { 
1084          return this.from != null && !this.from.isEmpty();
1085        }
1086
1087        /**
1088         * @param value {@link #from} (Lower bound of confidence interval.). This is the underlying object with id, value and extensions. The accessor "getFrom" gives direct access to the value
1089         */
1090        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setFromElement(DecimalType value) { 
1091          this.from = value;
1092          return this;
1093        }
1094
1095        /**
1096         * @return Lower bound of confidence interval.
1097         */
1098        public BigDecimal getFrom() { 
1099          return this.from == null ? null : this.from.getValue();
1100        }
1101
1102        /**
1103         * @param value Lower bound of confidence interval.
1104         */
1105        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setFrom(BigDecimal value) { 
1106          if (value == null)
1107            this.from = null;
1108          else {
1109            if (this.from == null)
1110              this.from = new DecimalType();
1111            this.from.setValue(value);
1112          }
1113          return this;
1114        }
1115
1116        /**
1117         * @param value Lower bound of confidence interval.
1118         */
1119        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setFrom(long value) { 
1120              this.from = new DecimalType();
1121            this.from.setValue(value);
1122          return this;
1123        }
1124
1125        /**
1126         * @param value Lower bound of confidence interval.
1127         */
1128        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setFrom(double value) { 
1129              this.from = new DecimalType();
1130            this.from.setValue(value);
1131          return this;
1132        }
1133
1134        /**
1135         * @return {@link #to} (Upper bound of confidence interval.). This is the underlying object with id, value and extensions. The accessor "getTo" gives direct access to the value
1136         */
1137        public DecimalType getToElement() { 
1138          if (this.to == null)
1139            if (Configuration.errorOnAutoCreate())
1140              throw new Error("Attempt to auto-create RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent.to");
1141            else if (Configuration.doAutoCreate())
1142              this.to = new DecimalType(); // bb
1143          return this.to;
1144        }
1145
1146        public boolean hasToElement() { 
1147          return this.to != null && !this.to.isEmpty();
1148        }
1149
1150        public boolean hasTo() { 
1151          return this.to != null && !this.to.isEmpty();
1152        }
1153
1154        /**
1155         * @param value {@link #to} (Upper bound of confidence interval.). This is the underlying object with id, value and extensions. The accessor "getTo" gives direct access to the value
1156         */
1157        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setToElement(DecimalType value) { 
1158          this.to = value;
1159          return this;
1160        }
1161
1162        /**
1163         * @return Upper bound of confidence interval.
1164         */
1165        public BigDecimal getTo() { 
1166          return this.to == null ? null : this.to.getValue();
1167        }
1168
1169        /**
1170         * @param value Upper bound of confidence interval.
1171         */
1172        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setTo(BigDecimal value) { 
1173          if (value == null)
1174            this.to = null;
1175          else {
1176            if (this.to == null)
1177              this.to = new DecimalType();
1178            this.to.setValue(value);
1179          }
1180          return this;
1181        }
1182
1183        /**
1184         * @param value Upper bound of confidence interval.
1185         */
1186        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setTo(long value) { 
1187              this.to = new DecimalType();
1188            this.to.setValue(value);
1189          return this;
1190        }
1191
1192        /**
1193         * @param value Upper bound of confidence interval.
1194         */
1195        public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent setTo(double value) { 
1196              this.to = new DecimalType();
1197            this.to.setValue(value);
1198          return this;
1199        }
1200
1201        protected void listChildren(List<Property> children) {
1202          super.listChildren(children);
1203          children.add(new Property("type", "CodeableConcept", "Examples include confidence interval and interquartile range.", 0, 1, type));
1204          children.add(new Property("level", "decimal", "Use 95 for a 95% confidence interval.", 0, 1, level));
1205          children.add(new Property("from", "decimal", "Lower bound of confidence interval.", 0, 1, from));
1206          children.add(new Property("to", "decimal", "Upper bound of confidence interval.", 0, 1, to));
1207        }
1208
1209        @Override
1210        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1211          switch (_hash) {
1212          case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Examples include confidence interval and interquartile range.", 0, 1, type);
1213          case 102865796: /*level*/  return new Property("level", "decimal", "Use 95 for a 95% confidence interval.", 0, 1, level);
1214          case 3151786: /*from*/  return new Property("from", "decimal", "Lower bound of confidence interval.", 0, 1, from);
1215          case 3707: /*to*/  return new Property("to", "decimal", "Upper bound of confidence interval.", 0, 1, to);
1216          default: return super.getNamedProperty(_hash, _name, _checkValid);
1217          }
1218
1219        }
1220
1221      @Override
1222      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1223        switch (hash) {
1224        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
1225        case 102865796: /*level*/ return this.level == null ? new Base[0] : new Base[] {this.level}; // DecimalType
1226        case 3151786: /*from*/ return this.from == null ? new Base[0] : new Base[] {this.from}; // DecimalType
1227        case 3707: /*to*/ return this.to == null ? new Base[0] : new Base[] {this.to}; // DecimalType
1228        default: return super.getProperty(hash, name, checkValid);
1229        }
1230
1231      }
1232
1233      @Override
1234      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1235        switch (hash) {
1236        case 3575610: // type
1237          this.type = castToCodeableConcept(value); // CodeableConcept
1238          return value;
1239        case 102865796: // level
1240          this.level = castToDecimal(value); // DecimalType
1241          return value;
1242        case 3151786: // from
1243          this.from = castToDecimal(value); // DecimalType
1244          return value;
1245        case 3707: // to
1246          this.to = castToDecimal(value); // DecimalType
1247          return value;
1248        default: return super.setProperty(hash, name, value);
1249        }
1250
1251      }
1252
1253      @Override
1254      public Base setProperty(String name, Base value) throws FHIRException {
1255        if (name.equals("type")) {
1256          this.type = castToCodeableConcept(value); // CodeableConcept
1257        } else if (name.equals("level")) {
1258          this.level = castToDecimal(value); // DecimalType
1259        } else if (name.equals("from")) {
1260          this.from = castToDecimal(value); // DecimalType
1261        } else if (name.equals("to")) {
1262          this.to = castToDecimal(value); // DecimalType
1263        } else
1264          return super.setProperty(name, value);
1265        return value;
1266      }
1267
1268      @Override
1269      public Base makeProperty(int hash, String name) throws FHIRException {
1270        switch (hash) {
1271        case 3575610:  return getType(); 
1272        case 102865796:  return getLevelElement();
1273        case 3151786:  return getFromElement();
1274        case 3707:  return getToElement();
1275        default: return super.makeProperty(hash, name);
1276        }
1277
1278      }
1279
1280      @Override
1281      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1282        switch (hash) {
1283        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
1284        case 102865796: /*level*/ return new String[] {"decimal"};
1285        case 3151786: /*from*/ return new String[] {"decimal"};
1286        case 3707: /*to*/ return new String[] {"decimal"};
1287        default: return super.getTypesForProperty(hash, name);
1288        }
1289
1290      }
1291
1292      @Override
1293      public Base addChild(String name) throws FHIRException {
1294        if (name.equals("type")) {
1295          this.type = new CodeableConcept();
1296          return this.type;
1297        }
1298        else if (name.equals("level")) {
1299          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.level");
1300        }
1301        else if (name.equals("from")) {
1302          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.from");
1303        }
1304        else if (name.equals("to")) {
1305          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.to");
1306        }
1307        else
1308          return super.addChild(name);
1309      }
1310
1311      public RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent copy() {
1312        RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent dst = new RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent();
1313        copyValues(dst);
1314        dst.type = type == null ? null : type.copy();
1315        dst.level = level == null ? null : level.copy();
1316        dst.from = from == null ? null : from.copy();
1317        dst.to = to == null ? null : to.copy();
1318        return dst;
1319      }
1320
1321      @Override
1322      public boolean equalsDeep(Base other_) {
1323        if (!super.equalsDeep(other_))
1324          return false;
1325        if (!(other_ instanceof RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent))
1326          return false;
1327        RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent o = (RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent) other_;
1328        return compareDeep(type, o.type, true) && compareDeep(level, o.level, true) && compareDeep(from, o.from, true)
1329           && compareDeep(to, o.to, true);
1330      }
1331
1332      @Override
1333      public boolean equalsShallow(Base other_) {
1334        if (!super.equalsShallow(other_))
1335          return false;
1336        if (!(other_ instanceof RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent))
1337          return false;
1338        RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent o = (RiskEvidenceSynthesisRiskEstimatePrecisionEstimateComponent) other_;
1339        return compareValues(level, o.level, true) && compareValues(from, o.from, true) && compareValues(to, o.to, true)
1340          ;
1341      }
1342
1343      public boolean isEmpty() {
1344        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, level, from, to
1345          );
1346      }
1347
1348  public String fhirType() {
1349    return "RiskEvidenceSynthesis.riskEstimate.precisionEstimate";
1350
1351  }
1352
1353  }
1354
1355    @Block()
1356    public static class RiskEvidenceSynthesisCertaintyComponent extends BackboneElement implements IBaseBackboneElement {
1357        /**
1358         * A rating of the certainty of the effect estimate.
1359         */
1360        @Child(name = "rating", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1361        @Description(shortDefinition="Certainty rating", formalDefinition="A rating of the certainty of the effect estimate." )
1362        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/evidence-quality")
1363        protected List<CodeableConcept> rating;
1364
1365        /**
1366         * A human-readable string to clarify or explain concepts about the resource.
1367         */
1368        @Child(name = "note", type = {Annotation.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1369        @Description(shortDefinition="Used for footnotes or explanatory notes", formalDefinition="A human-readable string to clarify or explain concepts about the resource." )
1370        protected List<Annotation> note;
1371
1372        /**
1373         * A description of a component of the overall certainty.
1374         */
1375        @Child(name = "certaintySubcomponent", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1376        @Description(shortDefinition="A component that contributes to the overall certainty", formalDefinition="A description of a component of the overall certainty." )
1377        protected List<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent> certaintySubcomponent;
1378
1379        private static final long serialVersionUID = 663360871L;
1380
1381    /**
1382     * Constructor
1383     */
1384      public RiskEvidenceSynthesisCertaintyComponent() {
1385        super();
1386      }
1387
1388        /**
1389         * @return {@link #rating} (A rating of the certainty of the effect estimate.)
1390         */
1391        public List<CodeableConcept> getRating() { 
1392          if (this.rating == null)
1393            this.rating = new ArrayList<CodeableConcept>();
1394          return this.rating;
1395        }
1396
1397        /**
1398         * @return Returns a reference to <code>this</code> for easy method chaining
1399         */
1400        public RiskEvidenceSynthesisCertaintyComponent setRating(List<CodeableConcept> theRating) { 
1401          this.rating = theRating;
1402          return this;
1403        }
1404
1405        public boolean hasRating() { 
1406          if (this.rating == null)
1407            return false;
1408          for (CodeableConcept item : this.rating)
1409            if (!item.isEmpty())
1410              return true;
1411          return false;
1412        }
1413
1414        public CodeableConcept addRating() { //3
1415          CodeableConcept t = new CodeableConcept();
1416          if (this.rating == null)
1417            this.rating = new ArrayList<CodeableConcept>();
1418          this.rating.add(t);
1419          return t;
1420        }
1421
1422        public RiskEvidenceSynthesisCertaintyComponent addRating(CodeableConcept t) { //3
1423          if (t == null)
1424            return this;
1425          if (this.rating == null)
1426            this.rating = new ArrayList<CodeableConcept>();
1427          this.rating.add(t);
1428          return this;
1429        }
1430
1431        /**
1432         * @return The first repetition of repeating field {@link #rating}, creating it if it does not already exist
1433         */
1434        public CodeableConcept getRatingFirstRep() { 
1435          if (getRating().isEmpty()) {
1436            addRating();
1437          }
1438          return getRating().get(0);
1439        }
1440
1441        /**
1442         * @return {@link #note} (A human-readable string to clarify or explain concepts about the resource.)
1443         */
1444        public List<Annotation> getNote() { 
1445          if (this.note == null)
1446            this.note = new ArrayList<Annotation>();
1447          return this.note;
1448        }
1449
1450        /**
1451         * @return Returns a reference to <code>this</code> for easy method chaining
1452         */
1453        public RiskEvidenceSynthesisCertaintyComponent setNote(List<Annotation> theNote) { 
1454          this.note = theNote;
1455          return this;
1456        }
1457
1458        public boolean hasNote() { 
1459          if (this.note == null)
1460            return false;
1461          for (Annotation item : this.note)
1462            if (!item.isEmpty())
1463              return true;
1464          return false;
1465        }
1466
1467        public Annotation addNote() { //3
1468          Annotation t = new Annotation();
1469          if (this.note == null)
1470            this.note = new ArrayList<Annotation>();
1471          this.note.add(t);
1472          return t;
1473        }
1474
1475        public RiskEvidenceSynthesisCertaintyComponent addNote(Annotation t) { //3
1476          if (t == null)
1477            return this;
1478          if (this.note == null)
1479            this.note = new ArrayList<Annotation>();
1480          this.note.add(t);
1481          return this;
1482        }
1483
1484        /**
1485         * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist
1486         */
1487        public Annotation getNoteFirstRep() { 
1488          if (getNote().isEmpty()) {
1489            addNote();
1490          }
1491          return getNote().get(0);
1492        }
1493
1494        /**
1495         * @return {@link #certaintySubcomponent} (A description of a component of the overall certainty.)
1496         */
1497        public List<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent> getCertaintySubcomponent() { 
1498          if (this.certaintySubcomponent == null)
1499            this.certaintySubcomponent = new ArrayList<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent>();
1500          return this.certaintySubcomponent;
1501        }
1502
1503        /**
1504         * @return Returns a reference to <code>this</code> for easy method chaining
1505         */
1506        public RiskEvidenceSynthesisCertaintyComponent setCertaintySubcomponent(List<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent> theCertaintySubcomponent) { 
1507          this.certaintySubcomponent = theCertaintySubcomponent;
1508          return this;
1509        }
1510
1511        public boolean hasCertaintySubcomponent() { 
1512          if (this.certaintySubcomponent == null)
1513            return false;
1514          for (RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent item : this.certaintySubcomponent)
1515            if (!item.isEmpty())
1516              return true;
1517          return false;
1518        }
1519
1520        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent addCertaintySubcomponent() { //3
1521          RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent t = new RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent();
1522          if (this.certaintySubcomponent == null)
1523            this.certaintySubcomponent = new ArrayList<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent>();
1524          this.certaintySubcomponent.add(t);
1525          return t;
1526        }
1527
1528        public RiskEvidenceSynthesisCertaintyComponent addCertaintySubcomponent(RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent t) { //3
1529          if (t == null)
1530            return this;
1531          if (this.certaintySubcomponent == null)
1532            this.certaintySubcomponent = new ArrayList<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent>();
1533          this.certaintySubcomponent.add(t);
1534          return this;
1535        }
1536
1537        /**
1538         * @return The first repetition of repeating field {@link #certaintySubcomponent}, creating it if it does not already exist
1539         */
1540        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent getCertaintySubcomponentFirstRep() { 
1541          if (getCertaintySubcomponent().isEmpty()) {
1542            addCertaintySubcomponent();
1543          }
1544          return getCertaintySubcomponent().get(0);
1545        }
1546
1547        protected void listChildren(List<Property> children) {
1548          super.listChildren(children);
1549          children.add(new Property("rating", "CodeableConcept", "A rating of the certainty of the effect estimate.", 0, java.lang.Integer.MAX_VALUE, rating));
1550          children.add(new Property("note", "Annotation", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, note));
1551          children.add(new Property("certaintySubcomponent", "", "A description of a component of the overall certainty.", 0, java.lang.Integer.MAX_VALUE, certaintySubcomponent));
1552        }
1553
1554        @Override
1555        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1556          switch (_hash) {
1557          case -938102371: /*rating*/  return new Property("rating", "CodeableConcept", "A rating of the certainty of the effect estimate.", 0, java.lang.Integer.MAX_VALUE, rating);
1558          case 3387378: /*note*/  return new Property("note", "Annotation", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, note);
1559          case 1806398212: /*certaintySubcomponent*/  return new Property("certaintySubcomponent", "", "A description of a component of the overall certainty.", 0, java.lang.Integer.MAX_VALUE, certaintySubcomponent);
1560          default: return super.getNamedProperty(_hash, _name, _checkValid);
1561          }
1562
1563        }
1564
1565      @Override
1566      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1567        switch (hash) {
1568        case -938102371: /*rating*/ return this.rating == null ? new Base[0] : this.rating.toArray(new Base[this.rating.size()]); // CodeableConcept
1569        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1570        case 1806398212: /*certaintySubcomponent*/ return this.certaintySubcomponent == null ? new Base[0] : this.certaintySubcomponent.toArray(new Base[this.certaintySubcomponent.size()]); // RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent
1571        default: return super.getProperty(hash, name, checkValid);
1572        }
1573
1574      }
1575
1576      @Override
1577      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1578        switch (hash) {
1579        case -938102371: // rating
1580          this.getRating().add(castToCodeableConcept(value)); // CodeableConcept
1581          return value;
1582        case 3387378: // note
1583          this.getNote().add(castToAnnotation(value)); // Annotation
1584          return value;
1585        case 1806398212: // certaintySubcomponent
1586          this.getCertaintySubcomponent().add((RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent) value); // RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent
1587          return value;
1588        default: return super.setProperty(hash, name, value);
1589        }
1590
1591      }
1592
1593      @Override
1594      public Base setProperty(String name, Base value) throws FHIRException {
1595        if (name.equals("rating")) {
1596          this.getRating().add(castToCodeableConcept(value));
1597        } else if (name.equals("note")) {
1598          this.getNote().add(castToAnnotation(value));
1599        } else if (name.equals("certaintySubcomponent")) {
1600          this.getCertaintySubcomponent().add((RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent) value);
1601        } else
1602          return super.setProperty(name, value);
1603        return value;
1604      }
1605
1606      @Override
1607      public Base makeProperty(int hash, String name) throws FHIRException {
1608        switch (hash) {
1609        case -938102371:  return addRating(); 
1610        case 3387378:  return addNote(); 
1611        case 1806398212:  return addCertaintySubcomponent(); 
1612        default: return super.makeProperty(hash, name);
1613        }
1614
1615      }
1616
1617      @Override
1618      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1619        switch (hash) {
1620        case -938102371: /*rating*/ return new String[] {"CodeableConcept"};
1621        case 3387378: /*note*/ return new String[] {"Annotation"};
1622        case 1806398212: /*certaintySubcomponent*/ return new String[] {};
1623        default: return super.getTypesForProperty(hash, name);
1624        }
1625
1626      }
1627
1628      @Override
1629      public Base addChild(String name) throws FHIRException {
1630        if (name.equals("rating")) {
1631          return addRating();
1632        }
1633        else if (name.equals("note")) {
1634          return addNote();
1635        }
1636        else if (name.equals("certaintySubcomponent")) {
1637          return addCertaintySubcomponent();
1638        }
1639        else
1640          return super.addChild(name);
1641      }
1642
1643      public RiskEvidenceSynthesisCertaintyComponent copy() {
1644        RiskEvidenceSynthesisCertaintyComponent dst = new RiskEvidenceSynthesisCertaintyComponent();
1645        copyValues(dst);
1646        if (rating != null) {
1647          dst.rating = new ArrayList<CodeableConcept>();
1648          for (CodeableConcept i : rating)
1649            dst.rating.add(i.copy());
1650        };
1651        if (note != null) {
1652          dst.note = new ArrayList<Annotation>();
1653          for (Annotation i : note)
1654            dst.note.add(i.copy());
1655        };
1656        if (certaintySubcomponent != null) {
1657          dst.certaintySubcomponent = new ArrayList<RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent>();
1658          for (RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent i : certaintySubcomponent)
1659            dst.certaintySubcomponent.add(i.copy());
1660        };
1661        return dst;
1662      }
1663
1664      @Override
1665      public boolean equalsDeep(Base other_) {
1666        if (!super.equalsDeep(other_))
1667          return false;
1668        if (!(other_ instanceof RiskEvidenceSynthesisCertaintyComponent))
1669          return false;
1670        RiskEvidenceSynthesisCertaintyComponent o = (RiskEvidenceSynthesisCertaintyComponent) other_;
1671        return compareDeep(rating, o.rating, true) && compareDeep(note, o.note, true) && compareDeep(certaintySubcomponent, o.certaintySubcomponent, true)
1672          ;
1673      }
1674
1675      @Override
1676      public boolean equalsShallow(Base other_) {
1677        if (!super.equalsShallow(other_))
1678          return false;
1679        if (!(other_ instanceof RiskEvidenceSynthesisCertaintyComponent))
1680          return false;
1681        RiskEvidenceSynthesisCertaintyComponent o = (RiskEvidenceSynthesisCertaintyComponent) other_;
1682        return true;
1683      }
1684
1685      public boolean isEmpty() {
1686        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rating, note, certaintySubcomponent
1687          );
1688      }
1689
1690  public String fhirType() {
1691    return "RiskEvidenceSynthesis.certainty";
1692
1693  }
1694
1695  }
1696
1697    @Block()
1698    public static class RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent extends BackboneElement implements IBaseBackboneElement {
1699        /**
1700         * Type of subcomponent of certainty rating.
1701         */
1702        @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
1703        @Description(shortDefinition="Type of subcomponent of certainty rating", formalDefinition="Type of subcomponent of certainty rating." )
1704        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/certainty-subcomponent-type")
1705        protected CodeableConcept type;
1706
1707        /**
1708         * A rating of a subcomponent of rating certainty.
1709         */
1710        @Child(name = "rating", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1711        @Description(shortDefinition="Subcomponent certainty rating", formalDefinition="A rating of a subcomponent of rating certainty." )
1712        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/certainty-subcomponent-rating")
1713        protected List<CodeableConcept> rating;
1714
1715        /**
1716         * A human-readable string to clarify or explain concepts about the resource.
1717         */
1718        @Child(name = "note", type = {Annotation.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1719        @Description(shortDefinition="Used for footnotes or explanatory notes", formalDefinition="A human-readable string to clarify or explain concepts about the resource." )
1720        protected List<Annotation> note;
1721
1722        private static final long serialVersionUID = -411994816L;
1723
1724    /**
1725     * Constructor
1726     */
1727      public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent() {
1728        super();
1729      }
1730
1731        /**
1732         * @return {@link #type} (Type of subcomponent of certainty rating.)
1733         */
1734        public CodeableConcept getType() { 
1735          if (this.type == null)
1736            if (Configuration.errorOnAutoCreate())
1737              throw new Error("Attempt to auto-create RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent.type");
1738            else if (Configuration.doAutoCreate())
1739              this.type = new CodeableConcept(); // cc
1740          return this.type;
1741        }
1742
1743        public boolean hasType() { 
1744          return this.type != null && !this.type.isEmpty();
1745        }
1746
1747        /**
1748         * @param value {@link #type} (Type of subcomponent of certainty rating.)
1749         */
1750        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent setType(CodeableConcept value) { 
1751          this.type = value;
1752          return this;
1753        }
1754
1755        /**
1756         * @return {@link #rating} (A rating of a subcomponent of rating certainty.)
1757         */
1758        public List<CodeableConcept> getRating() { 
1759          if (this.rating == null)
1760            this.rating = new ArrayList<CodeableConcept>();
1761          return this.rating;
1762        }
1763
1764        /**
1765         * @return Returns a reference to <code>this</code> for easy method chaining
1766         */
1767        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent setRating(List<CodeableConcept> theRating) { 
1768          this.rating = theRating;
1769          return this;
1770        }
1771
1772        public boolean hasRating() { 
1773          if (this.rating == null)
1774            return false;
1775          for (CodeableConcept item : this.rating)
1776            if (!item.isEmpty())
1777              return true;
1778          return false;
1779        }
1780
1781        public CodeableConcept addRating() { //3
1782          CodeableConcept t = new CodeableConcept();
1783          if (this.rating == null)
1784            this.rating = new ArrayList<CodeableConcept>();
1785          this.rating.add(t);
1786          return t;
1787        }
1788
1789        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent addRating(CodeableConcept t) { //3
1790          if (t == null)
1791            return this;
1792          if (this.rating == null)
1793            this.rating = new ArrayList<CodeableConcept>();
1794          this.rating.add(t);
1795          return this;
1796        }
1797
1798        /**
1799         * @return The first repetition of repeating field {@link #rating}, creating it if it does not already exist
1800         */
1801        public CodeableConcept getRatingFirstRep() { 
1802          if (getRating().isEmpty()) {
1803            addRating();
1804          }
1805          return getRating().get(0);
1806        }
1807
1808        /**
1809         * @return {@link #note} (A human-readable string to clarify or explain concepts about the resource.)
1810         */
1811        public List<Annotation> getNote() { 
1812          if (this.note == null)
1813            this.note = new ArrayList<Annotation>();
1814          return this.note;
1815        }
1816
1817        /**
1818         * @return Returns a reference to <code>this</code> for easy method chaining
1819         */
1820        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent setNote(List<Annotation> theNote) { 
1821          this.note = theNote;
1822          return this;
1823        }
1824
1825        public boolean hasNote() { 
1826          if (this.note == null)
1827            return false;
1828          for (Annotation item : this.note)
1829            if (!item.isEmpty())
1830              return true;
1831          return false;
1832        }
1833
1834        public Annotation addNote() { //3
1835          Annotation t = new Annotation();
1836          if (this.note == null)
1837            this.note = new ArrayList<Annotation>();
1838          this.note.add(t);
1839          return t;
1840        }
1841
1842        public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent addNote(Annotation t) { //3
1843          if (t == null)
1844            return this;
1845          if (this.note == null)
1846            this.note = new ArrayList<Annotation>();
1847          this.note.add(t);
1848          return this;
1849        }
1850
1851        /**
1852         * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist
1853         */
1854        public Annotation getNoteFirstRep() { 
1855          if (getNote().isEmpty()) {
1856            addNote();
1857          }
1858          return getNote().get(0);
1859        }
1860
1861        protected void listChildren(List<Property> children) {
1862          super.listChildren(children);
1863          children.add(new Property("type", "CodeableConcept", "Type of subcomponent of certainty rating.", 0, 1, type));
1864          children.add(new Property("rating", "CodeableConcept", "A rating of a subcomponent of rating certainty.", 0, java.lang.Integer.MAX_VALUE, rating));
1865          children.add(new Property("note", "Annotation", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, note));
1866        }
1867
1868        @Override
1869        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1870          switch (_hash) {
1871          case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Type of subcomponent of certainty rating.", 0, 1, type);
1872          case -938102371: /*rating*/  return new Property("rating", "CodeableConcept", "A rating of a subcomponent of rating certainty.", 0, java.lang.Integer.MAX_VALUE, rating);
1873          case 3387378: /*note*/  return new Property("note", "Annotation", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, note);
1874          default: return super.getNamedProperty(_hash, _name, _checkValid);
1875          }
1876
1877        }
1878
1879      @Override
1880      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1881        switch (hash) {
1882        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
1883        case -938102371: /*rating*/ return this.rating == null ? new Base[0] : this.rating.toArray(new Base[this.rating.size()]); // CodeableConcept
1884        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1885        default: return super.getProperty(hash, name, checkValid);
1886        }
1887
1888      }
1889
1890      @Override
1891      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1892        switch (hash) {
1893        case 3575610: // type
1894          this.type = castToCodeableConcept(value); // CodeableConcept
1895          return value;
1896        case -938102371: // rating
1897          this.getRating().add(castToCodeableConcept(value)); // CodeableConcept
1898          return value;
1899        case 3387378: // note
1900          this.getNote().add(castToAnnotation(value)); // Annotation
1901          return value;
1902        default: return super.setProperty(hash, name, value);
1903        }
1904
1905      }
1906
1907      @Override
1908      public Base setProperty(String name, Base value) throws FHIRException {
1909        if (name.equals("type")) {
1910          this.type = castToCodeableConcept(value); // CodeableConcept
1911        } else if (name.equals("rating")) {
1912          this.getRating().add(castToCodeableConcept(value));
1913        } else if (name.equals("note")) {
1914          this.getNote().add(castToAnnotation(value));
1915        } else
1916          return super.setProperty(name, value);
1917        return value;
1918      }
1919
1920      @Override
1921      public Base makeProperty(int hash, String name) throws FHIRException {
1922        switch (hash) {
1923        case 3575610:  return getType(); 
1924        case -938102371:  return addRating(); 
1925        case 3387378:  return addNote(); 
1926        default: return super.makeProperty(hash, name);
1927        }
1928
1929      }
1930
1931      @Override
1932      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1933        switch (hash) {
1934        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
1935        case -938102371: /*rating*/ return new String[] {"CodeableConcept"};
1936        case 3387378: /*note*/ return new String[] {"Annotation"};
1937        default: return super.getTypesForProperty(hash, name);
1938        }
1939
1940      }
1941
1942      @Override
1943      public Base addChild(String name) throws FHIRException {
1944        if (name.equals("type")) {
1945          this.type = new CodeableConcept();
1946          return this.type;
1947        }
1948        else if (name.equals("rating")) {
1949          return addRating();
1950        }
1951        else if (name.equals("note")) {
1952          return addNote();
1953        }
1954        else
1955          return super.addChild(name);
1956      }
1957
1958      public RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent copy() {
1959        RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent dst = new RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent();
1960        copyValues(dst);
1961        dst.type = type == null ? null : type.copy();
1962        if (rating != null) {
1963          dst.rating = new ArrayList<CodeableConcept>();
1964          for (CodeableConcept i : rating)
1965            dst.rating.add(i.copy());
1966        };
1967        if (note != null) {
1968          dst.note = new ArrayList<Annotation>();
1969          for (Annotation i : note)
1970            dst.note.add(i.copy());
1971        };
1972        return dst;
1973      }
1974
1975      @Override
1976      public boolean equalsDeep(Base other_) {
1977        if (!super.equalsDeep(other_))
1978          return false;
1979        if (!(other_ instanceof RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent))
1980          return false;
1981        RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent o = (RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent) other_;
1982        return compareDeep(type, o.type, true) && compareDeep(rating, o.rating, true) && compareDeep(note, o.note, true)
1983          ;
1984      }
1985
1986      @Override
1987      public boolean equalsShallow(Base other_) {
1988        if (!super.equalsShallow(other_))
1989          return false;
1990        if (!(other_ instanceof RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent))
1991          return false;
1992        RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent o = (RiskEvidenceSynthesisCertaintyCertaintySubcomponentComponent) other_;
1993        return true;
1994      }
1995
1996      public boolean isEmpty() {
1997        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, rating, note);
1998      }
1999
2000  public String fhirType() {
2001    return "RiskEvidenceSynthesis.certainty.certaintySubcomponent";
2002
2003  }
2004
2005  }
2006
2007    /**
2008     * A formal identifier that is used to identify this risk evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance.
2009     */
2010    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2011    @Description(shortDefinition="Additional identifier for the risk evidence synthesis", formalDefinition="A formal identifier that is used to identify this risk evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance." )
2012    protected List<Identifier> identifier;
2013
2014    /**
2015     * A human-readable string to clarify or explain concepts about the resource.
2016     */
2017    @Child(name = "note", type = {Annotation.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2018    @Description(shortDefinition="Used for footnotes or explanatory notes", formalDefinition="A human-readable string to clarify or explain concepts about the resource." )
2019    protected List<Annotation> note;
2020
2021    /**
2022     * A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.
2023     */
2024    @Child(name = "copyright", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false)
2025    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis." )
2026    protected MarkdownType copyright;
2027
2028    /**
2029     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
2030     */
2031    @Child(name = "approvalDate", type = {DateType.class}, order=3, min=0, max=1, modifier=false, summary=false)
2032    @Description(shortDefinition="When the risk evidence synthesis 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." )
2033    protected DateType approvalDate;
2034
2035    /**
2036     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
2037     */
2038    @Child(name = "lastReviewDate", type = {DateType.class}, order=4, min=0, max=1, modifier=false, summary=false)
2039    @Description(shortDefinition="When the risk evidence synthesis was last reviewed", formalDefinition="The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date." )
2040    protected DateType lastReviewDate;
2041
2042    /**
2043     * The period during which the risk evidence synthesis content was or is planned to be in active use.
2044     */
2045    @Child(name = "effectivePeriod", type = {Period.class}, order=5, min=0, max=1, modifier=false, summary=true)
2046    @Description(shortDefinition="When the risk evidence synthesis is expected to be used", formalDefinition="The period during which the risk evidence synthesis content was or is planned to be in active use." )
2047    protected Period effectivePeriod;
2048
2049    /**
2050     * Descriptive topics related to the content of the RiskEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching.
2051     */
2052    @Child(name = "topic", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2053    @Description(shortDefinition="The category of the EffectEvidenceSynthesis, such as Education, Treatment, Assessment, etc.", formalDefinition="Descriptive topics related to the content of the RiskEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching." )
2054    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic")
2055    protected List<CodeableConcept> topic;
2056
2057    /**
2058     * An individiual or organization primarily involved in the creation and maintenance of the content.
2059     */
2060    @Child(name = "author", type = {ContactDetail.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2061    @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." )
2062    protected List<ContactDetail> author;
2063
2064    /**
2065     * An individual or organization primarily responsible for internal coherence of the content.
2066     */
2067    @Child(name = "editor", type = {ContactDetail.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2068    @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." )
2069    protected List<ContactDetail> editor;
2070
2071    /**
2072     * An individual or organization primarily responsible for review of some aspect of the content.
2073     */
2074    @Child(name = "reviewer", type = {ContactDetail.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2075    @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization primarily responsible for review of some aspect of the content." )
2076    protected List<ContactDetail> reviewer;
2077
2078    /**
2079     * An individual or organization responsible for officially endorsing the content for use in some setting.
2080     */
2081    @Child(name = "endorser", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2082    @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization responsible for officially endorsing the content for use in some setting." )
2083    protected List<ContactDetail> endorser;
2084
2085    /**
2086     * Related artifacts such as additional documentation, justification, or bibliographic references.
2087     */
2088    @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2089    @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." )
2090    protected List<RelatedArtifact> relatedArtifact;
2091
2092    /**
2093     * Type of synthesis eg meta-analysis.
2094     */
2095    @Child(name = "synthesisType", type = {CodeableConcept.class}, order=12, min=0, max=1, modifier=false, summary=false)
2096    @Description(shortDefinition="Type of synthesis", formalDefinition="Type of synthesis eg meta-analysis." )
2097    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/synthesis-type")
2098    protected CodeableConcept synthesisType;
2099
2100    /**
2101     * Type of study eg randomized trial.
2102     */
2103    @Child(name = "studyType", type = {CodeableConcept.class}, order=13, min=0, max=1, modifier=false, summary=false)
2104    @Description(shortDefinition="Type of study", formalDefinition="Type of study eg randomized trial." )
2105    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/study-type")
2106    protected CodeableConcept studyType;
2107
2108    /**
2109     * A reference to a EvidenceVariable resource that defines the population for the research.
2110     */
2111    @Child(name = "population", type = {EvidenceVariable.class}, order=14, min=1, max=1, modifier=false, summary=true)
2112    @Description(shortDefinition="What population?", formalDefinition="A reference to a EvidenceVariable resource that defines the population for the research." )
2113    protected Reference population;
2114
2115    /**
2116     * The actual object that is the target of the reference (A reference to a EvidenceVariable resource that defines the population for the research.)
2117     */
2118    protected EvidenceVariable populationTarget;
2119
2120    /**
2121     * A reference to a EvidenceVariable resource that defines the exposure for the research.
2122     */
2123    @Child(name = "exposure", type = {EvidenceVariable.class}, order=15, min=0, max=1, modifier=false, summary=true)
2124    @Description(shortDefinition="What exposure?", formalDefinition="A reference to a EvidenceVariable resource that defines the exposure for the research." )
2125    protected Reference exposure;
2126
2127    /**
2128     * The actual object that is the target of the reference (A reference to a EvidenceVariable resource that defines the exposure for the research.)
2129     */
2130    protected EvidenceVariable exposureTarget;
2131
2132    /**
2133     * A reference to a EvidenceVariable resomece that defines the outcome for the research.
2134     */
2135    @Child(name = "outcome", type = {EvidenceVariable.class}, order=16, min=1, max=1, modifier=false, summary=true)
2136    @Description(shortDefinition="What outcome?", formalDefinition="A reference to a EvidenceVariable resomece that defines the outcome for the research." )
2137    protected Reference outcome;
2138
2139    /**
2140     * The actual object that is the target of the reference (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
2141     */
2142    protected EvidenceVariable outcomeTarget;
2143
2144    /**
2145     * A description of the size of the sample involved in the synthesis.
2146     */
2147    @Child(name = "sampleSize", type = {}, order=17, min=0, max=1, modifier=false, summary=false)
2148    @Description(shortDefinition="What sample size was involved?", formalDefinition="A description of the size of the sample involved in the synthesis." )
2149    protected RiskEvidenceSynthesisSampleSizeComponent sampleSize;
2150
2151    /**
2152     * The estimated risk of the outcome.
2153     */
2154    @Child(name = "riskEstimate", type = {}, order=18, min=0, max=1, modifier=false, summary=true)
2155    @Description(shortDefinition="What was the estimated risk", formalDefinition="The estimated risk of the outcome." )
2156    protected RiskEvidenceSynthesisRiskEstimateComponent riskEstimate;
2157
2158    /**
2159     * A description of the certainty of the risk estimate.
2160     */
2161    @Child(name = "certainty", type = {}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
2162    @Description(shortDefinition="How certain is the risk", formalDefinition="A description of the certainty of the risk estimate." )
2163    protected List<RiskEvidenceSynthesisCertaintyComponent> certainty;
2164
2165    private static final long serialVersionUID = 706492815L;
2166
2167  /**
2168   * Constructor
2169   */
2170    public RiskEvidenceSynthesis() {
2171      super();
2172    }
2173
2174  /**
2175   * Constructor
2176   */
2177    public RiskEvidenceSynthesis(Enumeration<PublicationStatus> status, Reference population, Reference outcome) {
2178      super();
2179      this.status = status;
2180      this.population = population;
2181      this.outcome = outcome;
2182    }
2183
2184    /**
2185     * @return {@link #url} (An absolute URI that is used to identify this risk evidence synthesis when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
2186     */
2187    public UriType getUrlElement() { 
2188      if (this.url == null)
2189        if (Configuration.errorOnAutoCreate())
2190          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.url");
2191        else if (Configuration.doAutoCreate())
2192          this.url = new UriType(); // bb
2193      return this.url;
2194    }
2195
2196    public boolean hasUrlElement() { 
2197      return this.url != null && !this.url.isEmpty();
2198    }
2199
2200    public boolean hasUrl() { 
2201      return this.url != null && !this.url.isEmpty();
2202    }
2203
2204    /**
2205     * @param value {@link #url} (An absolute URI that is used to identify this risk evidence synthesis when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
2206     */
2207    public RiskEvidenceSynthesis setUrlElement(UriType value) { 
2208      this.url = value;
2209      return this;
2210    }
2211
2212    /**
2213     * @return An absolute URI that is used to identify this risk evidence synthesis when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers.
2214     */
2215    public String getUrl() { 
2216      return this.url == null ? null : this.url.getValue();
2217    }
2218
2219    /**
2220     * @param value An absolute URI that is used to identify this risk evidence synthesis when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers.
2221     */
2222    public RiskEvidenceSynthesis setUrl(String value) { 
2223      if (Utilities.noString(value))
2224        this.url = null;
2225      else {
2226        if (this.url == null)
2227          this.url = new UriType();
2228        this.url.setValue(value);
2229      }
2230      return this;
2231    }
2232
2233    /**
2234     * @return {@link #identifier} (A formal identifier that is used to identify this risk evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance.)
2235     */
2236    public List<Identifier> getIdentifier() { 
2237      if (this.identifier == null)
2238        this.identifier = new ArrayList<Identifier>();
2239      return this.identifier;
2240    }
2241
2242    /**
2243     * @return Returns a reference to <code>this</code> for easy method chaining
2244     */
2245    public RiskEvidenceSynthesis setIdentifier(List<Identifier> theIdentifier) { 
2246      this.identifier = theIdentifier;
2247      return this;
2248    }
2249
2250    public boolean hasIdentifier() { 
2251      if (this.identifier == null)
2252        return false;
2253      for (Identifier item : this.identifier)
2254        if (!item.isEmpty())
2255          return true;
2256      return false;
2257    }
2258
2259    public Identifier addIdentifier() { //3
2260      Identifier t = new Identifier();
2261      if (this.identifier == null)
2262        this.identifier = new ArrayList<Identifier>();
2263      this.identifier.add(t);
2264      return t;
2265    }
2266
2267    public RiskEvidenceSynthesis addIdentifier(Identifier t) { //3
2268      if (t == null)
2269        return this;
2270      if (this.identifier == null)
2271        this.identifier = new ArrayList<Identifier>();
2272      this.identifier.add(t);
2273      return this;
2274    }
2275
2276    /**
2277     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
2278     */
2279    public Identifier getIdentifierFirstRep() { 
2280      if (getIdentifier().isEmpty()) {
2281        addIdentifier();
2282      }
2283      return getIdentifier().get(0);
2284    }
2285
2286    /**
2287     * @return {@link #version} (The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
2288     */
2289    public StringType getVersionElement() { 
2290      if (this.version == null)
2291        if (Configuration.errorOnAutoCreate())
2292          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.version");
2293        else if (Configuration.doAutoCreate())
2294          this.version = new StringType(); // bb
2295      return this.version;
2296    }
2297
2298    public boolean hasVersionElement() { 
2299      return this.version != null && !this.version.isEmpty();
2300    }
2301
2302    public boolean hasVersion() { 
2303      return this.version != null && !this.version.isEmpty();
2304    }
2305
2306    /**
2307     * @param value {@link #version} (The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
2308     */
2309    public RiskEvidenceSynthesis setVersionElement(StringType value) { 
2310      this.version = value;
2311      return this;
2312    }
2313
2314    /**
2315     * @return The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis 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.
2316     */
2317    public String getVersion() { 
2318      return this.version == null ? null : this.version.getValue();
2319    }
2320
2321    /**
2322     * @param value The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis 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.
2323     */
2324    public RiskEvidenceSynthesis setVersion(String value) { 
2325      if (Utilities.noString(value))
2326        this.version = null;
2327      else {
2328        if (this.version == null)
2329          this.version = new StringType();
2330        this.version.setValue(value);
2331      }
2332      return this;
2333    }
2334
2335    /**
2336     * @return {@link #name} (A natural language name identifying the risk evidence synthesis. 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
2337     */
2338    public StringType getNameElement() { 
2339      if (this.name == null)
2340        if (Configuration.errorOnAutoCreate())
2341          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.name");
2342        else if (Configuration.doAutoCreate())
2343          this.name = new StringType(); // bb
2344      return this.name;
2345    }
2346
2347    public boolean hasNameElement() { 
2348      return this.name != null && !this.name.isEmpty();
2349    }
2350
2351    public boolean hasName() { 
2352      return this.name != null && !this.name.isEmpty();
2353    }
2354
2355    /**
2356     * @param value {@link #name} (A natural language name identifying the risk evidence synthesis. 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
2357     */
2358    public RiskEvidenceSynthesis setNameElement(StringType value) { 
2359      this.name = value;
2360      return this;
2361    }
2362
2363    /**
2364     * @return A natural language name identifying the risk evidence synthesis. This name should be usable as an identifier for the module by machine processing applications such as code generation.
2365     */
2366    public String getName() { 
2367      return this.name == null ? null : this.name.getValue();
2368    }
2369
2370    /**
2371     * @param value A natural language name identifying the risk evidence synthesis. This name should be usable as an identifier for the module by machine processing applications such as code generation.
2372     */
2373    public RiskEvidenceSynthesis setName(String value) { 
2374      if (Utilities.noString(value))
2375        this.name = null;
2376      else {
2377        if (this.name == null)
2378          this.name = new StringType();
2379        this.name.setValue(value);
2380      }
2381      return this;
2382    }
2383
2384    /**
2385     * @return {@link #title} (A short, descriptive, user-friendly title for the risk evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
2386     */
2387    public StringType getTitleElement() { 
2388      if (this.title == null)
2389        if (Configuration.errorOnAutoCreate())
2390          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.title");
2391        else if (Configuration.doAutoCreate())
2392          this.title = new StringType(); // bb
2393      return this.title;
2394    }
2395
2396    public boolean hasTitleElement() { 
2397      return this.title != null && !this.title.isEmpty();
2398    }
2399
2400    public boolean hasTitle() { 
2401      return this.title != null && !this.title.isEmpty();
2402    }
2403
2404    /**
2405     * @param value {@link #title} (A short, descriptive, user-friendly title for the risk evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
2406     */
2407    public RiskEvidenceSynthesis setTitleElement(StringType value) { 
2408      this.title = value;
2409      return this;
2410    }
2411
2412    /**
2413     * @return A short, descriptive, user-friendly title for the risk evidence synthesis.
2414     */
2415    public String getTitle() { 
2416      return this.title == null ? null : this.title.getValue();
2417    }
2418
2419    /**
2420     * @param value A short, descriptive, user-friendly title for the risk evidence synthesis.
2421     */
2422    public RiskEvidenceSynthesis setTitle(String value) { 
2423      if (Utilities.noString(value))
2424        this.title = null;
2425      else {
2426        if (this.title == null)
2427          this.title = new StringType();
2428        this.title.setValue(value);
2429      }
2430      return this;
2431    }
2432
2433    /**
2434     * @return {@link #status} (The status of this risk evidence synthesis. 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
2435     */
2436    public Enumeration<PublicationStatus> getStatusElement() { 
2437      if (this.status == null)
2438        if (Configuration.errorOnAutoCreate())
2439          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.status");
2440        else if (Configuration.doAutoCreate())
2441          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
2442      return this.status;
2443    }
2444
2445    public boolean hasStatusElement() { 
2446      return this.status != null && !this.status.isEmpty();
2447    }
2448
2449    public boolean hasStatus() { 
2450      return this.status != null && !this.status.isEmpty();
2451    }
2452
2453    /**
2454     * @param value {@link #status} (The status of this risk evidence synthesis. 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
2455     */
2456    public RiskEvidenceSynthesis setStatusElement(Enumeration<PublicationStatus> value) { 
2457      this.status = value;
2458      return this;
2459    }
2460
2461    /**
2462     * @return The status of this risk evidence synthesis. Enables tracking the life-cycle of the content.
2463     */
2464    public PublicationStatus getStatus() { 
2465      return this.status == null ? null : this.status.getValue();
2466    }
2467
2468    /**
2469     * @param value The status of this risk evidence synthesis. Enables tracking the life-cycle of the content.
2470     */
2471    public RiskEvidenceSynthesis setStatus(PublicationStatus value) { 
2472        if (this.status == null)
2473          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
2474        this.status.setValue(value);
2475      return this;
2476    }
2477
2478    /**
2479     * @return {@link #date} (The date  (and optionally time) when the risk evidence synthesis was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the risk evidence synthesis changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
2480     */
2481    public DateTimeType getDateElement() { 
2482      if (this.date == null)
2483        if (Configuration.errorOnAutoCreate())
2484          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.date");
2485        else if (Configuration.doAutoCreate())
2486          this.date = new DateTimeType(); // bb
2487      return this.date;
2488    }
2489
2490    public boolean hasDateElement() { 
2491      return this.date != null && !this.date.isEmpty();
2492    }
2493
2494    public boolean hasDate() { 
2495      return this.date != null && !this.date.isEmpty();
2496    }
2497
2498    /**
2499     * @param value {@link #date} (The date  (and optionally time) when the risk evidence synthesis was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the risk evidence synthesis changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
2500     */
2501    public RiskEvidenceSynthesis setDateElement(DateTimeType value) { 
2502      this.date = value;
2503      return this;
2504    }
2505
2506    /**
2507     * @return The date  (and optionally time) when the risk evidence synthesis was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the risk evidence synthesis changes.
2508     */
2509    public Date getDate() { 
2510      return this.date == null ? null : this.date.getValue();
2511    }
2512
2513    /**
2514     * @param value The date  (and optionally time) when the risk evidence synthesis was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the risk evidence synthesis changes.
2515     */
2516    public RiskEvidenceSynthesis setDate(Date value) { 
2517      if (value == null)
2518        this.date = null;
2519      else {
2520        if (this.date == null)
2521          this.date = new DateTimeType();
2522        this.date.setValue(value);
2523      }
2524      return this;
2525    }
2526
2527    /**
2528     * @return {@link #publisher} (The name of the organization or individual that published the risk evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
2529     */
2530    public StringType getPublisherElement() { 
2531      if (this.publisher == null)
2532        if (Configuration.errorOnAutoCreate())
2533          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.publisher");
2534        else if (Configuration.doAutoCreate())
2535          this.publisher = new StringType(); // bb
2536      return this.publisher;
2537    }
2538
2539    public boolean hasPublisherElement() { 
2540      return this.publisher != null && !this.publisher.isEmpty();
2541    }
2542
2543    public boolean hasPublisher() { 
2544      return this.publisher != null && !this.publisher.isEmpty();
2545    }
2546
2547    /**
2548     * @param value {@link #publisher} (The name of the organization or individual that published the risk evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
2549     */
2550    public RiskEvidenceSynthesis setPublisherElement(StringType value) { 
2551      this.publisher = value;
2552      return this;
2553    }
2554
2555    /**
2556     * @return The name of the organization or individual that published the risk evidence synthesis.
2557     */
2558    public String getPublisher() { 
2559      return this.publisher == null ? null : this.publisher.getValue();
2560    }
2561
2562    /**
2563     * @param value The name of the organization or individual that published the risk evidence synthesis.
2564     */
2565    public RiskEvidenceSynthesis setPublisher(String value) { 
2566      if (Utilities.noString(value))
2567        this.publisher = null;
2568      else {
2569        if (this.publisher == null)
2570          this.publisher = new StringType();
2571        this.publisher.setValue(value);
2572      }
2573      return this;
2574    }
2575
2576    /**
2577     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
2578     */
2579    public List<ContactDetail> getContact() { 
2580      if (this.contact == null)
2581        this.contact = new ArrayList<ContactDetail>();
2582      return this.contact;
2583    }
2584
2585    /**
2586     * @return Returns a reference to <code>this</code> for easy method chaining
2587     */
2588    public RiskEvidenceSynthesis setContact(List<ContactDetail> theContact) { 
2589      this.contact = theContact;
2590      return this;
2591    }
2592
2593    public boolean hasContact() { 
2594      if (this.contact == null)
2595        return false;
2596      for (ContactDetail item : this.contact)
2597        if (!item.isEmpty())
2598          return true;
2599      return false;
2600    }
2601
2602    public ContactDetail addContact() { //3
2603      ContactDetail t = new ContactDetail();
2604      if (this.contact == null)
2605        this.contact = new ArrayList<ContactDetail>();
2606      this.contact.add(t);
2607      return t;
2608    }
2609
2610    public RiskEvidenceSynthesis addContact(ContactDetail t) { //3
2611      if (t == null)
2612        return this;
2613      if (this.contact == null)
2614        this.contact = new ArrayList<ContactDetail>();
2615      this.contact.add(t);
2616      return this;
2617    }
2618
2619    /**
2620     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist
2621     */
2622    public ContactDetail getContactFirstRep() { 
2623      if (getContact().isEmpty()) {
2624        addContact();
2625      }
2626      return getContact().get(0);
2627    }
2628
2629    /**
2630     * @return {@link #description} (A free text natural language description of the risk evidence synthesis from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2631     */
2632    public MarkdownType getDescriptionElement() { 
2633      if (this.description == null)
2634        if (Configuration.errorOnAutoCreate())
2635          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.description");
2636        else if (Configuration.doAutoCreate())
2637          this.description = new MarkdownType(); // bb
2638      return this.description;
2639    }
2640
2641    public boolean hasDescriptionElement() { 
2642      return this.description != null && !this.description.isEmpty();
2643    }
2644
2645    public boolean hasDescription() { 
2646      return this.description != null && !this.description.isEmpty();
2647    }
2648
2649    /**
2650     * @param value {@link #description} (A free text natural language description of the risk evidence synthesis from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
2651     */
2652    public RiskEvidenceSynthesis setDescriptionElement(MarkdownType value) { 
2653      this.description = value;
2654      return this;
2655    }
2656
2657    /**
2658     * @return A free text natural language description of the risk evidence synthesis from a consumer's perspective.
2659     */
2660    public String getDescription() { 
2661      return this.description == null ? null : this.description.getValue();
2662    }
2663
2664    /**
2665     * @param value A free text natural language description of the risk evidence synthesis from a consumer's perspective.
2666     */
2667    public RiskEvidenceSynthesis setDescription(String value) { 
2668      if (value == null)
2669        this.description = null;
2670      else {
2671        if (this.description == null)
2672          this.description = new MarkdownType();
2673        this.description.setValue(value);
2674      }
2675      return this;
2676    }
2677
2678    /**
2679     * @return {@link #note} (A human-readable string to clarify or explain concepts about the resource.)
2680     */
2681    public List<Annotation> getNote() { 
2682      if (this.note == null)
2683        this.note = new ArrayList<Annotation>();
2684      return this.note;
2685    }
2686
2687    /**
2688     * @return Returns a reference to <code>this</code> for easy method chaining
2689     */
2690    public RiskEvidenceSynthesis setNote(List<Annotation> theNote) { 
2691      this.note = theNote;
2692      return this;
2693    }
2694
2695    public boolean hasNote() { 
2696      if (this.note == null)
2697        return false;
2698      for (Annotation item : this.note)
2699        if (!item.isEmpty())
2700          return true;
2701      return false;
2702    }
2703
2704    public Annotation addNote() { //3
2705      Annotation t = new Annotation();
2706      if (this.note == null)
2707        this.note = new ArrayList<Annotation>();
2708      this.note.add(t);
2709      return t;
2710    }
2711
2712    public RiskEvidenceSynthesis addNote(Annotation t) { //3
2713      if (t == null)
2714        return this;
2715      if (this.note == null)
2716        this.note = new ArrayList<Annotation>();
2717      this.note.add(t);
2718      return this;
2719    }
2720
2721    /**
2722     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist
2723     */
2724    public Annotation getNoteFirstRep() { 
2725      if (getNote().isEmpty()) {
2726        addNote();
2727      }
2728      return getNote().get(0);
2729    }
2730
2731    /**
2732     * @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 risk evidence synthesis instances.)
2733     */
2734    public List<UsageContext> getUseContext() { 
2735      if (this.useContext == null)
2736        this.useContext = new ArrayList<UsageContext>();
2737      return this.useContext;
2738    }
2739
2740    /**
2741     * @return Returns a reference to <code>this</code> for easy method chaining
2742     */
2743    public RiskEvidenceSynthesis setUseContext(List<UsageContext> theUseContext) { 
2744      this.useContext = theUseContext;
2745      return this;
2746    }
2747
2748    public boolean hasUseContext() { 
2749      if (this.useContext == null)
2750        return false;
2751      for (UsageContext item : this.useContext)
2752        if (!item.isEmpty())
2753          return true;
2754      return false;
2755    }
2756
2757    public UsageContext addUseContext() { //3
2758      UsageContext t = new UsageContext();
2759      if (this.useContext == null)
2760        this.useContext = new ArrayList<UsageContext>();
2761      this.useContext.add(t);
2762      return t;
2763    }
2764
2765    public RiskEvidenceSynthesis addUseContext(UsageContext t) { //3
2766      if (t == null)
2767        return this;
2768      if (this.useContext == null)
2769        this.useContext = new ArrayList<UsageContext>();
2770      this.useContext.add(t);
2771      return this;
2772    }
2773
2774    /**
2775     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist
2776     */
2777    public UsageContext getUseContextFirstRep() { 
2778      if (getUseContext().isEmpty()) {
2779        addUseContext();
2780      }
2781      return getUseContext().get(0);
2782    }
2783
2784    /**
2785     * @return {@link #jurisdiction} (A legal or geographic region in which the risk evidence synthesis is intended to be used.)
2786     */
2787    public List<CodeableConcept> getJurisdiction() { 
2788      if (this.jurisdiction == null)
2789        this.jurisdiction = new ArrayList<CodeableConcept>();
2790      return this.jurisdiction;
2791    }
2792
2793    /**
2794     * @return Returns a reference to <code>this</code> for easy method chaining
2795     */
2796    public RiskEvidenceSynthesis setJurisdiction(List<CodeableConcept> theJurisdiction) { 
2797      this.jurisdiction = theJurisdiction;
2798      return this;
2799    }
2800
2801    public boolean hasJurisdiction() { 
2802      if (this.jurisdiction == null)
2803        return false;
2804      for (CodeableConcept item : this.jurisdiction)
2805        if (!item.isEmpty())
2806          return true;
2807      return false;
2808    }
2809
2810    public CodeableConcept addJurisdiction() { //3
2811      CodeableConcept t = new CodeableConcept();
2812      if (this.jurisdiction == null)
2813        this.jurisdiction = new ArrayList<CodeableConcept>();
2814      this.jurisdiction.add(t);
2815      return t;
2816    }
2817
2818    public RiskEvidenceSynthesis addJurisdiction(CodeableConcept t) { //3
2819      if (t == null)
2820        return this;
2821      if (this.jurisdiction == null)
2822        this.jurisdiction = new ArrayList<CodeableConcept>();
2823      this.jurisdiction.add(t);
2824      return this;
2825    }
2826
2827    /**
2828     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist
2829     */
2830    public CodeableConcept getJurisdictionFirstRep() { 
2831      if (getJurisdiction().isEmpty()) {
2832        addJurisdiction();
2833      }
2834      return getJurisdiction().get(0);
2835    }
2836
2837    /**
2838     * @return {@link #copyright} (A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
2839     */
2840    public MarkdownType getCopyrightElement() { 
2841      if (this.copyright == null)
2842        if (Configuration.errorOnAutoCreate())
2843          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.copyright");
2844        else if (Configuration.doAutoCreate())
2845          this.copyright = new MarkdownType(); // bb
2846      return this.copyright;
2847    }
2848
2849    public boolean hasCopyrightElement() { 
2850      return this.copyright != null && !this.copyright.isEmpty();
2851    }
2852
2853    public boolean hasCopyright() { 
2854      return this.copyright != null && !this.copyright.isEmpty();
2855    }
2856
2857    /**
2858     * @param value {@link #copyright} (A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
2859     */
2860    public RiskEvidenceSynthesis setCopyrightElement(MarkdownType value) { 
2861      this.copyright = value;
2862      return this;
2863    }
2864
2865    /**
2866     * @return A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.
2867     */
2868    public String getCopyright() { 
2869      return this.copyright == null ? null : this.copyright.getValue();
2870    }
2871
2872    /**
2873     * @param value A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.
2874     */
2875    public RiskEvidenceSynthesis setCopyright(String value) { 
2876      if (value == null)
2877        this.copyright = null;
2878      else {
2879        if (this.copyright == null)
2880          this.copyright = new MarkdownType();
2881        this.copyright.setValue(value);
2882      }
2883      return this;
2884    }
2885
2886    /**
2887     * @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
2888     */
2889    public DateType getApprovalDateElement() { 
2890      if (this.approvalDate == null)
2891        if (Configuration.errorOnAutoCreate())
2892          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.approvalDate");
2893        else if (Configuration.doAutoCreate())
2894          this.approvalDate = new DateType(); // bb
2895      return this.approvalDate;
2896    }
2897
2898    public boolean hasApprovalDateElement() { 
2899      return this.approvalDate != null && !this.approvalDate.isEmpty();
2900    }
2901
2902    public boolean hasApprovalDate() { 
2903      return this.approvalDate != null && !this.approvalDate.isEmpty();
2904    }
2905
2906    /**
2907     * @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
2908     */
2909    public RiskEvidenceSynthesis setApprovalDateElement(DateType value) { 
2910      this.approvalDate = value;
2911      return this;
2912    }
2913
2914    /**
2915     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
2916     */
2917    public Date getApprovalDate() { 
2918      return this.approvalDate == null ? null : this.approvalDate.getValue();
2919    }
2920
2921    /**
2922     * @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.
2923     */
2924    public RiskEvidenceSynthesis setApprovalDate(Date value) { 
2925      if (value == null)
2926        this.approvalDate = null;
2927      else {
2928        if (this.approvalDate == null)
2929          this.approvalDate = new DateType();
2930        this.approvalDate.setValue(value);
2931      }
2932      return this;
2933    }
2934
2935    /**
2936     * @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
2937     */
2938    public DateType getLastReviewDateElement() { 
2939      if (this.lastReviewDate == null)
2940        if (Configuration.errorOnAutoCreate())
2941          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.lastReviewDate");
2942        else if (Configuration.doAutoCreate())
2943          this.lastReviewDate = new DateType(); // bb
2944      return this.lastReviewDate;
2945    }
2946
2947    public boolean hasLastReviewDateElement() { 
2948      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
2949    }
2950
2951    public boolean hasLastReviewDate() { 
2952      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
2953    }
2954
2955    /**
2956     * @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
2957     */
2958    public RiskEvidenceSynthesis setLastReviewDateElement(DateType value) { 
2959      this.lastReviewDate = value;
2960      return this;
2961    }
2962
2963    /**
2964     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
2965     */
2966    public Date getLastReviewDate() { 
2967      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
2968    }
2969
2970    /**
2971     * @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.
2972     */
2973    public RiskEvidenceSynthesis setLastReviewDate(Date value) { 
2974      if (value == null)
2975        this.lastReviewDate = null;
2976      else {
2977        if (this.lastReviewDate == null)
2978          this.lastReviewDate = new DateType();
2979        this.lastReviewDate.setValue(value);
2980      }
2981      return this;
2982    }
2983
2984    /**
2985     * @return {@link #effectivePeriod} (The period during which the risk evidence synthesis content was or is planned to be in active use.)
2986     */
2987    public Period getEffectivePeriod() { 
2988      if (this.effectivePeriod == null)
2989        if (Configuration.errorOnAutoCreate())
2990          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.effectivePeriod");
2991        else if (Configuration.doAutoCreate())
2992          this.effectivePeriod = new Period(); // cc
2993      return this.effectivePeriod;
2994    }
2995
2996    public boolean hasEffectivePeriod() { 
2997      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
2998    }
2999
3000    /**
3001     * @param value {@link #effectivePeriod} (The period during which the risk evidence synthesis content was or is planned to be in active use.)
3002     */
3003    public RiskEvidenceSynthesis setEffectivePeriod(Period value) { 
3004      this.effectivePeriod = value;
3005      return this;
3006    }
3007
3008    /**
3009     * @return {@link #topic} (Descriptive topics related to the content of the RiskEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching.)
3010     */
3011    public List<CodeableConcept> getTopic() { 
3012      if (this.topic == null)
3013        this.topic = new ArrayList<CodeableConcept>();
3014      return this.topic;
3015    }
3016
3017    /**
3018     * @return Returns a reference to <code>this</code> for easy method chaining
3019     */
3020    public RiskEvidenceSynthesis setTopic(List<CodeableConcept> theTopic) { 
3021      this.topic = theTopic;
3022      return this;
3023    }
3024
3025    public boolean hasTopic() { 
3026      if (this.topic == null)
3027        return false;
3028      for (CodeableConcept item : this.topic)
3029        if (!item.isEmpty())
3030          return true;
3031      return false;
3032    }
3033
3034    public CodeableConcept addTopic() { //3
3035      CodeableConcept t = new CodeableConcept();
3036      if (this.topic == null)
3037        this.topic = new ArrayList<CodeableConcept>();
3038      this.topic.add(t);
3039      return t;
3040    }
3041
3042    public RiskEvidenceSynthesis addTopic(CodeableConcept t) { //3
3043      if (t == null)
3044        return this;
3045      if (this.topic == null)
3046        this.topic = new ArrayList<CodeableConcept>();
3047      this.topic.add(t);
3048      return this;
3049    }
3050
3051    /**
3052     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist
3053     */
3054    public CodeableConcept getTopicFirstRep() { 
3055      if (getTopic().isEmpty()) {
3056        addTopic();
3057      }
3058      return getTopic().get(0);
3059    }
3060
3061    /**
3062     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.)
3063     */
3064    public List<ContactDetail> getAuthor() { 
3065      if (this.author == null)
3066        this.author = new ArrayList<ContactDetail>();
3067      return this.author;
3068    }
3069
3070    /**
3071     * @return Returns a reference to <code>this</code> for easy method chaining
3072     */
3073    public RiskEvidenceSynthesis setAuthor(List<ContactDetail> theAuthor) { 
3074      this.author = theAuthor;
3075      return this;
3076    }
3077
3078    public boolean hasAuthor() { 
3079      if (this.author == null)
3080        return false;
3081      for (ContactDetail item : this.author)
3082        if (!item.isEmpty())
3083          return true;
3084      return false;
3085    }
3086
3087    public ContactDetail addAuthor() { //3
3088      ContactDetail t = new ContactDetail();
3089      if (this.author == null)
3090        this.author = new ArrayList<ContactDetail>();
3091      this.author.add(t);
3092      return t;
3093    }
3094
3095    public RiskEvidenceSynthesis addAuthor(ContactDetail t) { //3
3096      if (t == null)
3097        return this;
3098      if (this.author == null)
3099        this.author = new ArrayList<ContactDetail>();
3100      this.author.add(t);
3101      return this;
3102    }
3103
3104    /**
3105     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist
3106     */
3107    public ContactDetail getAuthorFirstRep() { 
3108      if (getAuthor().isEmpty()) {
3109        addAuthor();
3110      }
3111      return getAuthor().get(0);
3112    }
3113
3114    /**
3115     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.)
3116     */
3117    public List<ContactDetail> getEditor() { 
3118      if (this.editor == null)
3119        this.editor = new ArrayList<ContactDetail>();
3120      return this.editor;
3121    }
3122
3123    /**
3124     * @return Returns a reference to <code>this</code> for easy method chaining
3125     */
3126    public RiskEvidenceSynthesis setEditor(List<ContactDetail> theEditor) { 
3127      this.editor = theEditor;
3128      return this;
3129    }
3130
3131    public boolean hasEditor() { 
3132      if (this.editor == null)
3133        return false;
3134      for (ContactDetail item : this.editor)
3135        if (!item.isEmpty())
3136          return true;
3137      return false;
3138    }
3139
3140    public ContactDetail addEditor() { //3
3141      ContactDetail t = new ContactDetail();
3142      if (this.editor == null)
3143        this.editor = new ArrayList<ContactDetail>();
3144      this.editor.add(t);
3145      return t;
3146    }
3147
3148    public RiskEvidenceSynthesis addEditor(ContactDetail t) { //3
3149      if (t == null)
3150        return this;
3151      if (this.editor == null)
3152        this.editor = new ArrayList<ContactDetail>();
3153      this.editor.add(t);
3154      return this;
3155    }
3156
3157    /**
3158     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist
3159     */
3160    public ContactDetail getEditorFirstRep() { 
3161      if (getEditor().isEmpty()) {
3162        addEditor();
3163      }
3164      return getEditor().get(0);
3165    }
3166
3167    /**
3168     * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the content.)
3169     */
3170    public List<ContactDetail> getReviewer() { 
3171      if (this.reviewer == null)
3172        this.reviewer = new ArrayList<ContactDetail>();
3173      return this.reviewer;
3174    }
3175
3176    /**
3177     * @return Returns a reference to <code>this</code> for easy method chaining
3178     */
3179    public RiskEvidenceSynthesis setReviewer(List<ContactDetail> theReviewer) { 
3180      this.reviewer = theReviewer;
3181      return this;
3182    }
3183
3184    public boolean hasReviewer() { 
3185      if (this.reviewer == null)
3186        return false;
3187      for (ContactDetail item : this.reviewer)
3188        if (!item.isEmpty())
3189          return true;
3190      return false;
3191    }
3192
3193    public ContactDetail addReviewer() { //3
3194      ContactDetail t = new ContactDetail();
3195      if (this.reviewer == null)
3196        this.reviewer = new ArrayList<ContactDetail>();
3197      this.reviewer.add(t);
3198      return t;
3199    }
3200
3201    public RiskEvidenceSynthesis addReviewer(ContactDetail t) { //3
3202      if (t == null)
3203        return this;
3204      if (this.reviewer == null)
3205        this.reviewer = new ArrayList<ContactDetail>();
3206      this.reviewer.add(t);
3207      return this;
3208    }
3209
3210    /**
3211     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist
3212     */
3213    public ContactDetail getReviewerFirstRep() { 
3214      if (getReviewer().isEmpty()) {
3215        addReviewer();
3216      }
3217      return getReviewer().get(0);
3218    }
3219
3220    /**
3221     * @return {@link #endorser} (An individual or organization responsible for officially endorsing the content for use in some setting.)
3222     */
3223    public List<ContactDetail> getEndorser() { 
3224      if (this.endorser == null)
3225        this.endorser = new ArrayList<ContactDetail>();
3226      return this.endorser;
3227    }
3228
3229    /**
3230     * @return Returns a reference to <code>this</code> for easy method chaining
3231     */
3232    public RiskEvidenceSynthesis setEndorser(List<ContactDetail> theEndorser) { 
3233      this.endorser = theEndorser;
3234      return this;
3235    }
3236
3237    public boolean hasEndorser() { 
3238      if (this.endorser == null)
3239        return false;
3240      for (ContactDetail item : this.endorser)
3241        if (!item.isEmpty())
3242          return true;
3243      return false;
3244    }
3245
3246    public ContactDetail addEndorser() { //3
3247      ContactDetail t = new ContactDetail();
3248      if (this.endorser == null)
3249        this.endorser = new ArrayList<ContactDetail>();
3250      this.endorser.add(t);
3251      return t;
3252    }
3253
3254    public RiskEvidenceSynthesis addEndorser(ContactDetail t) { //3
3255      if (t == null)
3256        return this;
3257      if (this.endorser == null)
3258        this.endorser = new ArrayList<ContactDetail>();
3259      this.endorser.add(t);
3260      return this;
3261    }
3262
3263    /**
3264     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist
3265     */
3266    public ContactDetail getEndorserFirstRep() { 
3267      if (getEndorser().isEmpty()) {
3268        addEndorser();
3269      }
3270      return getEndorser().get(0);
3271    }
3272
3273    /**
3274     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.)
3275     */
3276    public List<RelatedArtifact> getRelatedArtifact() { 
3277      if (this.relatedArtifact == null)
3278        this.relatedArtifact = new ArrayList<RelatedArtifact>();
3279      return this.relatedArtifact;
3280    }
3281
3282    /**
3283     * @return Returns a reference to <code>this</code> for easy method chaining
3284     */
3285    public RiskEvidenceSynthesis setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
3286      this.relatedArtifact = theRelatedArtifact;
3287      return this;
3288    }
3289
3290    public boolean hasRelatedArtifact() { 
3291      if (this.relatedArtifact == null)
3292        return false;
3293      for (RelatedArtifact item : this.relatedArtifact)
3294        if (!item.isEmpty())
3295          return true;
3296      return false;
3297    }
3298
3299    public RelatedArtifact addRelatedArtifact() { //3
3300      RelatedArtifact t = new RelatedArtifact();
3301      if (this.relatedArtifact == null)
3302        this.relatedArtifact = new ArrayList<RelatedArtifact>();
3303      this.relatedArtifact.add(t);
3304      return t;
3305    }
3306
3307    public RiskEvidenceSynthesis addRelatedArtifact(RelatedArtifact t) { //3
3308      if (t == null)
3309        return this;
3310      if (this.relatedArtifact == null)
3311        this.relatedArtifact = new ArrayList<RelatedArtifact>();
3312      this.relatedArtifact.add(t);
3313      return this;
3314    }
3315
3316    /**
3317     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist
3318     */
3319    public RelatedArtifact getRelatedArtifactFirstRep() { 
3320      if (getRelatedArtifact().isEmpty()) {
3321        addRelatedArtifact();
3322      }
3323      return getRelatedArtifact().get(0);
3324    }
3325
3326    /**
3327     * @return {@link #synthesisType} (Type of synthesis eg meta-analysis.)
3328     */
3329    public CodeableConcept getSynthesisType() { 
3330      if (this.synthesisType == null)
3331        if (Configuration.errorOnAutoCreate())
3332          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.synthesisType");
3333        else if (Configuration.doAutoCreate())
3334          this.synthesisType = new CodeableConcept(); // cc
3335      return this.synthesisType;
3336    }
3337
3338    public boolean hasSynthesisType() { 
3339      return this.synthesisType != null && !this.synthesisType.isEmpty();
3340    }
3341
3342    /**
3343     * @param value {@link #synthesisType} (Type of synthesis eg meta-analysis.)
3344     */
3345    public RiskEvidenceSynthesis setSynthesisType(CodeableConcept value) { 
3346      this.synthesisType = value;
3347      return this;
3348    }
3349
3350    /**
3351     * @return {@link #studyType} (Type of study eg randomized trial.)
3352     */
3353    public CodeableConcept getStudyType() { 
3354      if (this.studyType == null)
3355        if (Configuration.errorOnAutoCreate())
3356          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.studyType");
3357        else if (Configuration.doAutoCreate())
3358          this.studyType = new CodeableConcept(); // cc
3359      return this.studyType;
3360    }
3361
3362    public boolean hasStudyType() { 
3363      return this.studyType != null && !this.studyType.isEmpty();
3364    }
3365
3366    /**
3367     * @param value {@link #studyType} (Type of study eg randomized trial.)
3368     */
3369    public RiskEvidenceSynthesis setStudyType(CodeableConcept value) { 
3370      this.studyType = value;
3371      return this;
3372    }
3373
3374    /**
3375     * @return {@link #population} (A reference to a EvidenceVariable resource that defines the population for the research.)
3376     */
3377    public Reference getPopulation() { 
3378      if (this.population == null)
3379        if (Configuration.errorOnAutoCreate())
3380          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.population");
3381        else if (Configuration.doAutoCreate())
3382          this.population = new Reference(); // cc
3383      return this.population;
3384    }
3385
3386    public boolean hasPopulation() { 
3387      return this.population != null && !this.population.isEmpty();
3388    }
3389
3390    /**
3391     * @param value {@link #population} (A reference to a EvidenceVariable resource that defines the population for the research.)
3392     */
3393    public RiskEvidenceSynthesis setPopulation(Reference value) { 
3394      this.population = value;
3395      return this;
3396    }
3397
3398    /**
3399     * @return {@link #population} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a EvidenceVariable resource that defines the population for the research.)
3400     */
3401    public EvidenceVariable getPopulationTarget() { 
3402      if (this.populationTarget == null)
3403        if (Configuration.errorOnAutoCreate())
3404          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.population");
3405        else if (Configuration.doAutoCreate())
3406          this.populationTarget = new EvidenceVariable(); // aa
3407      return this.populationTarget;
3408    }
3409
3410    /**
3411     * @param value {@link #population} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a EvidenceVariable resource that defines the population for the research.)
3412     */
3413    public RiskEvidenceSynthesis setPopulationTarget(EvidenceVariable value) { 
3414      this.populationTarget = value;
3415      return this;
3416    }
3417
3418    /**
3419     * @return {@link #exposure} (A reference to a EvidenceVariable resource that defines the exposure for the research.)
3420     */
3421    public Reference getExposure() { 
3422      if (this.exposure == null)
3423        if (Configuration.errorOnAutoCreate())
3424          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.exposure");
3425        else if (Configuration.doAutoCreate())
3426          this.exposure = new Reference(); // cc
3427      return this.exposure;
3428    }
3429
3430    public boolean hasExposure() { 
3431      return this.exposure != null && !this.exposure.isEmpty();
3432    }
3433
3434    /**
3435     * @param value {@link #exposure} (A reference to a EvidenceVariable resource that defines the exposure for the research.)
3436     */
3437    public RiskEvidenceSynthesis setExposure(Reference value) { 
3438      this.exposure = value;
3439      return this;
3440    }
3441
3442    /**
3443     * @return {@link #exposure} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a EvidenceVariable resource that defines the exposure for the research.)
3444     */
3445    public EvidenceVariable getExposureTarget() { 
3446      if (this.exposureTarget == null)
3447        if (Configuration.errorOnAutoCreate())
3448          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.exposure");
3449        else if (Configuration.doAutoCreate())
3450          this.exposureTarget = new EvidenceVariable(); // aa
3451      return this.exposureTarget;
3452    }
3453
3454    /**
3455     * @param value {@link #exposure} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a EvidenceVariable resource that defines the exposure for the research.)
3456     */
3457    public RiskEvidenceSynthesis setExposureTarget(EvidenceVariable value) { 
3458      this.exposureTarget = value;
3459      return this;
3460    }
3461
3462    /**
3463     * @return {@link #outcome} (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
3464     */
3465    public Reference getOutcome() { 
3466      if (this.outcome == null)
3467        if (Configuration.errorOnAutoCreate())
3468          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.outcome");
3469        else if (Configuration.doAutoCreate())
3470          this.outcome = new Reference(); // cc
3471      return this.outcome;
3472    }
3473
3474    public boolean hasOutcome() { 
3475      return this.outcome != null && !this.outcome.isEmpty();
3476    }
3477
3478    /**
3479     * @param value {@link #outcome} (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
3480     */
3481    public RiskEvidenceSynthesis setOutcome(Reference value) { 
3482      this.outcome = value;
3483      return this;
3484    }
3485
3486    /**
3487     * @return {@link #outcome} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
3488     */
3489    public EvidenceVariable getOutcomeTarget() { 
3490      if (this.outcomeTarget == null)
3491        if (Configuration.errorOnAutoCreate())
3492          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.outcome");
3493        else if (Configuration.doAutoCreate())
3494          this.outcomeTarget = new EvidenceVariable(); // aa
3495      return this.outcomeTarget;
3496    }
3497
3498    /**
3499     * @param value {@link #outcome} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
3500     */
3501    public RiskEvidenceSynthesis setOutcomeTarget(EvidenceVariable value) { 
3502      this.outcomeTarget = value;
3503      return this;
3504    }
3505
3506    /**
3507     * @return {@link #sampleSize} (A description of the size of the sample involved in the synthesis.)
3508     */
3509    public RiskEvidenceSynthesisSampleSizeComponent getSampleSize() { 
3510      if (this.sampleSize == null)
3511        if (Configuration.errorOnAutoCreate())
3512          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.sampleSize");
3513        else if (Configuration.doAutoCreate())
3514          this.sampleSize = new RiskEvidenceSynthesisSampleSizeComponent(); // cc
3515      return this.sampleSize;
3516    }
3517
3518    public boolean hasSampleSize() { 
3519      return this.sampleSize != null && !this.sampleSize.isEmpty();
3520    }
3521
3522    /**
3523     * @param value {@link #sampleSize} (A description of the size of the sample involved in the synthesis.)
3524     */
3525    public RiskEvidenceSynthesis setSampleSize(RiskEvidenceSynthesisSampleSizeComponent value) { 
3526      this.sampleSize = value;
3527      return this;
3528    }
3529
3530    /**
3531     * @return {@link #riskEstimate} (The estimated risk of the outcome.)
3532     */
3533    public RiskEvidenceSynthesisRiskEstimateComponent getRiskEstimate() { 
3534      if (this.riskEstimate == null)
3535        if (Configuration.errorOnAutoCreate())
3536          throw new Error("Attempt to auto-create RiskEvidenceSynthesis.riskEstimate");
3537        else if (Configuration.doAutoCreate())
3538          this.riskEstimate = new RiskEvidenceSynthesisRiskEstimateComponent(); // cc
3539      return this.riskEstimate;
3540    }
3541
3542    public boolean hasRiskEstimate() { 
3543      return this.riskEstimate != null && !this.riskEstimate.isEmpty();
3544    }
3545
3546    /**
3547     * @param value {@link #riskEstimate} (The estimated risk of the outcome.)
3548     */
3549    public RiskEvidenceSynthesis setRiskEstimate(RiskEvidenceSynthesisRiskEstimateComponent value) { 
3550      this.riskEstimate = value;
3551      return this;
3552    }
3553
3554    /**
3555     * @return {@link #certainty} (A description of the certainty of the risk estimate.)
3556     */
3557    public List<RiskEvidenceSynthesisCertaintyComponent> getCertainty() { 
3558      if (this.certainty == null)
3559        this.certainty = new ArrayList<RiskEvidenceSynthesisCertaintyComponent>();
3560      return this.certainty;
3561    }
3562
3563    /**
3564     * @return Returns a reference to <code>this</code> for easy method chaining
3565     */
3566    public RiskEvidenceSynthesis setCertainty(List<RiskEvidenceSynthesisCertaintyComponent> theCertainty) { 
3567      this.certainty = theCertainty;
3568      return this;
3569    }
3570
3571    public boolean hasCertainty() { 
3572      if (this.certainty == null)
3573        return false;
3574      for (RiskEvidenceSynthesisCertaintyComponent item : this.certainty)
3575        if (!item.isEmpty())
3576          return true;
3577      return false;
3578    }
3579
3580    public RiskEvidenceSynthesisCertaintyComponent addCertainty() { //3
3581      RiskEvidenceSynthesisCertaintyComponent t = new RiskEvidenceSynthesisCertaintyComponent();
3582      if (this.certainty == null)
3583        this.certainty = new ArrayList<RiskEvidenceSynthesisCertaintyComponent>();
3584      this.certainty.add(t);
3585      return t;
3586    }
3587
3588    public RiskEvidenceSynthesis addCertainty(RiskEvidenceSynthesisCertaintyComponent t) { //3
3589      if (t == null)
3590        return this;
3591      if (this.certainty == null)
3592        this.certainty = new ArrayList<RiskEvidenceSynthesisCertaintyComponent>();
3593      this.certainty.add(t);
3594      return this;
3595    }
3596
3597    /**
3598     * @return The first repetition of repeating field {@link #certainty}, creating it if it does not already exist
3599     */
3600    public RiskEvidenceSynthesisCertaintyComponent getCertaintyFirstRep() { 
3601      if (getCertainty().isEmpty()) {
3602        addCertainty();
3603      }
3604      return getCertainty().get(0);
3605    }
3606
3607      protected void listChildren(List<Property> children) {
3608        super.listChildren(children);
3609        children.add(new Property("url", "uri", "An absolute URI that is used to identify this risk evidence synthesis when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers.", 0, 1, url));
3610        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this risk evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
3611        children.add(new Property("version", "string", "The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
3612        children.add(new Property("name", "string", "A natural language name identifying the risk evidence synthesis. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
3613        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the risk evidence synthesis.", 0, 1, title));
3614        children.add(new Property("status", "code", "The status of this risk evidence synthesis. Enables tracking the life-cycle of the content.", 0, 1, status));
3615        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the risk evidence synthesis was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the risk evidence synthesis changes.", 0, 1, date));
3616        children.add(new Property("publisher", "string", "The name of the organization or individual that published the risk evidence synthesis.", 0, 1, publisher));
3617        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));
3618        children.add(new Property("description", "markdown", "A free text natural language description of the risk evidence synthesis from a consumer's perspective.", 0, 1, description));
3619        children.add(new Property("note", "Annotation", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, note));
3620        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 risk evidence synthesis instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
3621        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the risk evidence synthesis is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
3622        children.add(new Property("copyright", "markdown", "A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.", 0, 1, copyright));
3623        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));
3624        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));
3625        children.add(new Property("effectivePeriod", "Period", "The period during which the risk evidence synthesis content was or is planned to be in active use.", 0, 1, effectivePeriod));
3626        children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the RiskEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic));
3627        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));
3628        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));
3629        children.add(new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer));
3630        children.add(new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser));
3631        children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact));
3632        children.add(new Property("synthesisType", "CodeableConcept", "Type of synthesis eg meta-analysis.", 0, 1, synthesisType));
3633        children.add(new Property("studyType", "CodeableConcept", "Type of study eg randomized trial.", 0, 1, studyType));
3634        children.add(new Property("population", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the population for the research.", 0, 1, population));
3635        children.add(new Property("exposure", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the exposure for the research.", 0, 1, exposure));
3636        children.add(new Property("outcome", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resomece that defines the outcome for the research.", 0, 1, outcome));
3637        children.add(new Property("sampleSize", "", "A description of the size of the sample involved in the synthesis.", 0, 1, sampleSize));
3638        children.add(new Property("riskEstimate", "", "The estimated risk of the outcome.", 0, 1, riskEstimate));
3639        children.add(new Property("certainty", "", "A description of the certainty of the risk estimate.", 0, java.lang.Integer.MAX_VALUE, certainty));
3640      }
3641
3642      @Override
3643      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3644        switch (_hash) {
3645        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this risk evidence synthesis when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers.", 0, 1, url);
3646        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this risk evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
3647        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
3648        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the risk evidence synthesis. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
3649        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the risk evidence synthesis.", 0, 1, title);
3650        case -892481550: /*status*/  return new Property("status", "code", "The status of this risk evidence synthesis. Enables tracking the life-cycle of the content.", 0, 1, status);
3651        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the risk evidence synthesis was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the risk evidence synthesis changes.", 0, 1, date);
3652        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the risk evidence synthesis.", 0, 1, publisher);
3653        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);
3654        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the risk evidence synthesis from a consumer's perspective.", 0, 1, description);
3655        case 3387378: /*note*/  return new Property("note", "Annotation", "A human-readable string to clarify or explain concepts about the resource.", 0, java.lang.Integer.MAX_VALUE, note);
3656        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 risk evidence synthesis instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
3657        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the risk evidence synthesis is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
3658        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis.", 0, 1, copyright);
3659        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);
3660        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);
3661        case -403934648: /*effectivePeriod*/  return new Property("effectivePeriod", "Period", "The period during which the risk evidence synthesis content was or is planned to be in active use.", 0, 1, effectivePeriod);
3662        case 110546223: /*topic*/  return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the RiskEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic);
3663        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);
3664        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);
3665        case -261190139: /*reviewer*/  return new Property("reviewer", "ContactDetail", "An individual or organization primarily responsible for review of some aspect of the content.", 0, java.lang.Integer.MAX_VALUE, reviewer);
3666        case 1740277666: /*endorser*/  return new Property("endorser", "ContactDetail", "An individual or organization responsible for officially endorsing the content for use in some setting.", 0, java.lang.Integer.MAX_VALUE, endorser);
3667        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);
3668        case 672726254: /*synthesisType*/  return new Property("synthesisType", "CodeableConcept", "Type of synthesis eg meta-analysis.", 0, 1, synthesisType);
3669        case -1955265373: /*studyType*/  return new Property("studyType", "CodeableConcept", "Type of study eg randomized trial.", 0, 1, studyType);
3670        case -2023558323: /*population*/  return new Property("population", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the population for the research.", 0, 1, population);
3671        case -1926005497: /*exposure*/  return new Property("exposure", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the exposure for the research.", 0, 1, exposure);
3672        case -1106507950: /*outcome*/  return new Property("outcome", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resomece that defines the outcome for the research.", 0, 1, outcome);
3673        case 143123659: /*sampleSize*/  return new Property("sampleSize", "", "A description of the size of the sample involved in the synthesis.", 0, 1, sampleSize);
3674        case -1014254313: /*riskEstimate*/  return new Property("riskEstimate", "", "The estimated risk of the outcome.", 0, 1, riskEstimate);
3675        case -1404142937: /*certainty*/  return new Property("certainty", "", "A description of the certainty of the risk estimate.", 0, java.lang.Integer.MAX_VALUE, certainty);
3676        default: return super.getNamedProperty(_hash, _name, _checkValid);
3677        }
3678
3679      }
3680
3681      @Override
3682      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3683        switch (hash) {
3684        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
3685        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
3686        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
3687        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
3688        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
3689        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
3690        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
3691        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
3692        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
3693        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
3694        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
3695        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
3696        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
3697        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
3698        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
3699        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
3700        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
3701        case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept
3702        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail
3703        case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail
3704        case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail
3705        case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail
3706        case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact
3707        case 672726254: /*synthesisType*/ return this.synthesisType == null ? new Base[0] : new Base[] {this.synthesisType}; // CodeableConcept
3708        case -1955265373: /*studyType*/ return this.studyType == null ? new Base[0] : new Base[] {this.studyType}; // CodeableConcept
3709        case -2023558323: /*population*/ return this.population == null ? new Base[0] : new Base[] {this.population}; // Reference
3710        case -1926005497: /*exposure*/ return this.exposure == null ? new Base[0] : new Base[] {this.exposure}; // Reference
3711        case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // Reference
3712        case 143123659: /*sampleSize*/ return this.sampleSize == null ? new Base[0] : new Base[] {this.sampleSize}; // RiskEvidenceSynthesisSampleSizeComponent
3713        case -1014254313: /*riskEstimate*/ return this.riskEstimate == null ? new Base[0] : new Base[] {this.riskEstimate}; // RiskEvidenceSynthesisRiskEstimateComponent
3714        case -1404142937: /*certainty*/ return this.certainty == null ? new Base[0] : this.certainty.toArray(new Base[this.certainty.size()]); // RiskEvidenceSynthesisCertaintyComponent
3715        default: return super.getProperty(hash, name, checkValid);
3716        }
3717
3718      }
3719
3720      @Override
3721      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3722        switch (hash) {
3723        case 116079: // url
3724          this.url = castToUri(value); // UriType
3725          return value;
3726        case -1618432855: // identifier
3727          this.getIdentifier().add(castToIdentifier(value)); // Identifier
3728          return value;
3729        case 351608024: // version
3730          this.version = castToString(value); // StringType
3731          return value;
3732        case 3373707: // name
3733          this.name = castToString(value); // StringType
3734          return value;
3735        case 110371416: // title
3736          this.title = castToString(value); // StringType
3737          return value;
3738        case -892481550: // status
3739          value = new PublicationStatusEnumFactory().fromType(castToCode(value));
3740          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
3741          return value;
3742        case 3076014: // date
3743          this.date = castToDateTime(value); // DateTimeType
3744          return value;
3745        case 1447404028: // publisher
3746          this.publisher = castToString(value); // StringType
3747          return value;
3748        case 951526432: // contact
3749          this.getContact().add(castToContactDetail(value)); // ContactDetail
3750          return value;
3751        case -1724546052: // description
3752          this.description = castToMarkdown(value); // MarkdownType
3753          return value;
3754        case 3387378: // note
3755          this.getNote().add(castToAnnotation(value)); // Annotation
3756          return value;
3757        case -669707736: // useContext
3758          this.getUseContext().add(castToUsageContext(value)); // UsageContext
3759          return value;
3760        case -507075711: // jurisdiction
3761          this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept
3762          return value;
3763        case 1522889671: // copyright
3764          this.copyright = castToMarkdown(value); // MarkdownType
3765          return value;
3766        case 223539345: // approvalDate
3767          this.approvalDate = castToDate(value); // DateType
3768          return value;
3769        case -1687512484: // lastReviewDate
3770          this.lastReviewDate = castToDate(value); // DateType
3771          return value;
3772        case -403934648: // effectivePeriod
3773          this.effectivePeriod = castToPeriod(value); // Period
3774          return value;
3775        case 110546223: // topic
3776          this.getTopic().add(castToCodeableConcept(value)); // CodeableConcept
3777          return value;
3778        case -1406328437: // author
3779          this.getAuthor().add(castToContactDetail(value)); // ContactDetail
3780          return value;
3781        case -1307827859: // editor
3782          this.getEditor().add(castToContactDetail(value)); // ContactDetail
3783          return value;
3784        case -261190139: // reviewer
3785          this.getReviewer().add(castToContactDetail(value)); // ContactDetail
3786          return value;
3787        case 1740277666: // endorser
3788          this.getEndorser().add(castToContactDetail(value)); // ContactDetail
3789          return value;
3790        case 666807069: // relatedArtifact
3791          this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact
3792          return value;
3793        case 672726254: // synthesisType
3794          this.synthesisType = castToCodeableConcept(value); // CodeableConcept
3795          return value;
3796        case -1955265373: // studyType
3797          this.studyType = castToCodeableConcept(value); // CodeableConcept
3798          return value;
3799        case -2023558323: // population
3800          this.population = castToReference(value); // Reference
3801          return value;
3802        case -1926005497: // exposure
3803          this.exposure = castToReference(value); // Reference
3804          return value;
3805        case -1106507950: // outcome
3806          this.outcome = castToReference(value); // Reference
3807          return value;
3808        case 143123659: // sampleSize
3809          this.sampleSize = (RiskEvidenceSynthesisSampleSizeComponent) value; // RiskEvidenceSynthesisSampleSizeComponent
3810          return value;
3811        case -1014254313: // riskEstimate
3812          this.riskEstimate = (RiskEvidenceSynthesisRiskEstimateComponent) value; // RiskEvidenceSynthesisRiskEstimateComponent
3813          return value;
3814        case -1404142937: // certainty
3815          this.getCertainty().add((RiskEvidenceSynthesisCertaintyComponent) value); // RiskEvidenceSynthesisCertaintyComponent
3816          return value;
3817        default: return super.setProperty(hash, name, value);
3818        }
3819
3820      }
3821
3822      @Override
3823      public Base setProperty(String name, Base value) throws FHIRException {
3824        if (name.equals("url")) {
3825          this.url = castToUri(value); // UriType
3826        } else if (name.equals("identifier")) {
3827          this.getIdentifier().add(castToIdentifier(value));
3828        } else if (name.equals("version")) {
3829          this.version = castToString(value); // StringType
3830        } else if (name.equals("name")) {
3831          this.name = castToString(value); // StringType
3832        } else if (name.equals("title")) {
3833          this.title = castToString(value); // StringType
3834        } else if (name.equals("status")) {
3835          value = new PublicationStatusEnumFactory().fromType(castToCode(value));
3836          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
3837        } else if (name.equals("date")) {
3838          this.date = castToDateTime(value); // DateTimeType
3839        } else if (name.equals("publisher")) {
3840          this.publisher = castToString(value); // StringType
3841        } else if (name.equals("contact")) {
3842          this.getContact().add(castToContactDetail(value));
3843        } else if (name.equals("description")) {
3844          this.description = castToMarkdown(value); // MarkdownType
3845        } else if (name.equals("note")) {
3846          this.getNote().add(castToAnnotation(value));
3847        } else if (name.equals("useContext")) {
3848          this.getUseContext().add(castToUsageContext(value));
3849        } else if (name.equals("jurisdiction")) {
3850          this.getJurisdiction().add(castToCodeableConcept(value));
3851        } else if (name.equals("copyright")) {
3852          this.copyright = castToMarkdown(value); // MarkdownType
3853        } else if (name.equals("approvalDate")) {
3854          this.approvalDate = castToDate(value); // DateType
3855        } else if (name.equals("lastReviewDate")) {
3856          this.lastReviewDate = castToDate(value); // DateType
3857        } else if (name.equals("effectivePeriod")) {
3858          this.effectivePeriod = castToPeriod(value); // Period
3859        } else if (name.equals("topic")) {
3860          this.getTopic().add(castToCodeableConcept(value));
3861        } else if (name.equals("author")) {
3862          this.getAuthor().add(castToContactDetail(value));
3863        } else if (name.equals("editor")) {
3864          this.getEditor().add(castToContactDetail(value));
3865        } else if (name.equals("reviewer")) {
3866          this.getReviewer().add(castToContactDetail(value));
3867        } else if (name.equals("endorser")) {
3868          this.getEndorser().add(castToContactDetail(value));
3869        } else if (name.equals("relatedArtifact")) {
3870          this.getRelatedArtifact().add(castToRelatedArtifact(value));
3871        } else if (name.equals("synthesisType")) {
3872          this.synthesisType = castToCodeableConcept(value); // CodeableConcept
3873        } else if (name.equals("studyType")) {
3874          this.studyType = castToCodeableConcept(value); // CodeableConcept
3875        } else if (name.equals("population")) {
3876          this.population = castToReference(value); // Reference
3877        } else if (name.equals("exposure")) {
3878          this.exposure = castToReference(value); // Reference
3879        } else if (name.equals("outcome")) {
3880          this.outcome = castToReference(value); // Reference
3881        } else if (name.equals("sampleSize")) {
3882          this.sampleSize = (RiskEvidenceSynthesisSampleSizeComponent) value; // RiskEvidenceSynthesisSampleSizeComponent
3883        } else if (name.equals("riskEstimate")) {
3884          this.riskEstimate = (RiskEvidenceSynthesisRiskEstimateComponent) value; // RiskEvidenceSynthesisRiskEstimateComponent
3885        } else if (name.equals("certainty")) {
3886          this.getCertainty().add((RiskEvidenceSynthesisCertaintyComponent) value);
3887        } else
3888          return super.setProperty(name, value);
3889        return value;
3890      }
3891
3892      @Override
3893      public Base makeProperty(int hash, String name) throws FHIRException {
3894        switch (hash) {
3895        case 116079:  return getUrlElement();
3896        case -1618432855:  return addIdentifier(); 
3897        case 351608024:  return getVersionElement();
3898        case 3373707:  return getNameElement();
3899        case 110371416:  return getTitleElement();
3900        case -892481550:  return getStatusElement();
3901        case 3076014:  return getDateElement();
3902        case 1447404028:  return getPublisherElement();
3903        case 951526432:  return addContact(); 
3904        case -1724546052:  return getDescriptionElement();
3905        case 3387378:  return addNote(); 
3906        case -669707736:  return addUseContext(); 
3907        case -507075711:  return addJurisdiction(); 
3908        case 1522889671:  return getCopyrightElement();
3909        case 223539345:  return getApprovalDateElement();
3910        case -1687512484:  return getLastReviewDateElement();
3911        case -403934648:  return getEffectivePeriod(); 
3912        case 110546223:  return addTopic(); 
3913        case -1406328437:  return addAuthor(); 
3914        case -1307827859:  return addEditor(); 
3915        case -261190139:  return addReviewer(); 
3916        case 1740277666:  return addEndorser(); 
3917        case 666807069:  return addRelatedArtifact(); 
3918        case 672726254:  return getSynthesisType(); 
3919        case -1955265373:  return getStudyType(); 
3920        case -2023558323:  return getPopulation(); 
3921        case -1926005497:  return getExposure(); 
3922        case -1106507950:  return getOutcome(); 
3923        case 143123659:  return getSampleSize(); 
3924        case -1014254313:  return getRiskEstimate(); 
3925        case -1404142937:  return addCertainty(); 
3926        default: return super.makeProperty(hash, name);
3927        }
3928
3929      }
3930
3931      @Override
3932      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3933        switch (hash) {
3934        case 116079: /*url*/ return new String[] {"uri"};
3935        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
3936        case 351608024: /*version*/ return new String[] {"string"};
3937        case 3373707: /*name*/ return new String[] {"string"};
3938        case 110371416: /*title*/ return new String[] {"string"};
3939        case -892481550: /*status*/ return new String[] {"code"};
3940        case 3076014: /*date*/ return new String[] {"dateTime"};
3941        case 1447404028: /*publisher*/ return new String[] {"string"};
3942        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
3943        case -1724546052: /*description*/ return new String[] {"markdown"};
3944        case 3387378: /*note*/ return new String[] {"Annotation"};
3945        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
3946        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
3947        case 1522889671: /*copyright*/ return new String[] {"markdown"};
3948        case 223539345: /*approvalDate*/ return new String[] {"date"};
3949        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
3950        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
3951        case 110546223: /*topic*/ return new String[] {"CodeableConcept"};
3952        case -1406328437: /*author*/ return new String[] {"ContactDetail"};
3953        case -1307827859: /*editor*/ return new String[] {"ContactDetail"};
3954        case -261190139: /*reviewer*/ return new String[] {"ContactDetail"};
3955        case 1740277666: /*endorser*/ return new String[] {"ContactDetail"};
3956        case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"};
3957        case 672726254: /*synthesisType*/ return new String[] {"CodeableConcept"};
3958        case -1955265373: /*studyType*/ return new String[] {"CodeableConcept"};
3959        case -2023558323: /*population*/ return new String[] {"Reference"};
3960        case -1926005497: /*exposure*/ return new String[] {"Reference"};
3961        case -1106507950: /*outcome*/ return new String[] {"Reference"};
3962        case 143123659: /*sampleSize*/ return new String[] {};
3963        case -1014254313: /*riskEstimate*/ return new String[] {};
3964        case -1404142937: /*certainty*/ return new String[] {};
3965        default: return super.getTypesForProperty(hash, name);
3966        }
3967
3968      }
3969
3970      @Override
3971      public Base addChild(String name) throws FHIRException {
3972        if (name.equals("url")) {
3973          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.url");
3974        }
3975        else if (name.equals("identifier")) {
3976          return addIdentifier();
3977        }
3978        else if (name.equals("version")) {
3979          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.version");
3980        }
3981        else if (name.equals("name")) {
3982          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.name");
3983        }
3984        else if (name.equals("title")) {
3985          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.title");
3986        }
3987        else if (name.equals("status")) {
3988          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.status");
3989        }
3990        else if (name.equals("date")) {
3991          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.date");
3992        }
3993        else if (name.equals("publisher")) {
3994          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.publisher");
3995        }
3996        else if (name.equals("contact")) {
3997          return addContact();
3998        }
3999        else if (name.equals("description")) {
4000          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.description");
4001        }
4002        else if (name.equals("note")) {
4003          return addNote();
4004        }
4005        else if (name.equals("useContext")) {
4006          return addUseContext();
4007        }
4008        else if (name.equals("jurisdiction")) {
4009          return addJurisdiction();
4010        }
4011        else if (name.equals("copyright")) {
4012          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.copyright");
4013        }
4014        else if (name.equals("approvalDate")) {
4015          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.approvalDate");
4016        }
4017        else if (name.equals("lastReviewDate")) {
4018          throw new FHIRException("Cannot call addChild on a primitive type RiskEvidenceSynthesis.lastReviewDate");
4019        }
4020        else if (name.equals("effectivePeriod")) {
4021          this.effectivePeriod = new Period();
4022          return this.effectivePeriod;
4023        }
4024        else if (name.equals("topic")) {
4025          return addTopic();
4026        }
4027        else if (name.equals("author")) {
4028          return addAuthor();
4029        }
4030        else if (name.equals("editor")) {
4031          return addEditor();
4032        }
4033        else if (name.equals("reviewer")) {
4034          return addReviewer();
4035        }
4036        else if (name.equals("endorser")) {
4037          return addEndorser();
4038        }
4039        else if (name.equals("relatedArtifact")) {
4040          return addRelatedArtifact();
4041        }
4042        else if (name.equals("synthesisType")) {
4043          this.synthesisType = new CodeableConcept();
4044          return this.synthesisType;
4045        }
4046        else if (name.equals("studyType")) {
4047          this.studyType = new CodeableConcept();
4048          return this.studyType;
4049        }
4050        else if (name.equals("population")) {
4051          this.population = new Reference();
4052          return this.population;
4053        }
4054        else if (name.equals("exposure")) {
4055          this.exposure = new Reference();
4056          return this.exposure;
4057        }
4058        else if (name.equals("outcome")) {
4059          this.outcome = new Reference();
4060          return this.outcome;
4061        }
4062        else if (name.equals("sampleSize")) {
4063          this.sampleSize = new RiskEvidenceSynthesisSampleSizeComponent();
4064          return this.sampleSize;
4065        }
4066        else if (name.equals("riskEstimate")) {
4067          this.riskEstimate = new RiskEvidenceSynthesisRiskEstimateComponent();
4068          return this.riskEstimate;
4069        }
4070        else if (name.equals("certainty")) {
4071          return addCertainty();
4072        }
4073        else
4074          return super.addChild(name);
4075      }
4076
4077  public String fhirType() {
4078    return "RiskEvidenceSynthesis";
4079
4080  }
4081
4082      public RiskEvidenceSynthesis copy() {
4083        RiskEvidenceSynthesis dst = new RiskEvidenceSynthesis();
4084        copyValues(dst);
4085        dst.url = url == null ? null : url.copy();
4086        if (identifier != null) {
4087          dst.identifier = new ArrayList<Identifier>();
4088          for (Identifier i : identifier)
4089            dst.identifier.add(i.copy());
4090        };
4091        dst.version = version == null ? null : version.copy();
4092        dst.name = name == null ? null : name.copy();
4093        dst.title = title == null ? null : title.copy();
4094        dst.status = status == null ? null : status.copy();
4095        dst.date = date == null ? null : date.copy();
4096        dst.publisher = publisher == null ? null : publisher.copy();
4097        if (contact != null) {
4098          dst.contact = new ArrayList<ContactDetail>();
4099          for (ContactDetail i : contact)
4100            dst.contact.add(i.copy());
4101        };
4102        dst.description = description == null ? null : description.copy();
4103        if (note != null) {
4104          dst.note = new ArrayList<Annotation>();
4105          for (Annotation i : note)
4106            dst.note.add(i.copy());
4107        };
4108        if (useContext != null) {
4109          dst.useContext = new ArrayList<UsageContext>();
4110          for (UsageContext i : useContext)
4111            dst.useContext.add(i.copy());
4112        };
4113        if (jurisdiction != null) {
4114          dst.jurisdiction = new ArrayList<CodeableConcept>();
4115          for (CodeableConcept i : jurisdiction)
4116            dst.jurisdiction.add(i.copy());
4117        };
4118        dst.copyright = copyright == null ? null : copyright.copy();
4119        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
4120        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
4121        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
4122        if (topic != null) {
4123          dst.topic = new ArrayList<CodeableConcept>();
4124          for (CodeableConcept i : topic)
4125            dst.topic.add(i.copy());
4126        };
4127        if (author != null) {
4128          dst.author = new ArrayList<ContactDetail>();
4129          for (ContactDetail i : author)
4130            dst.author.add(i.copy());
4131        };
4132        if (editor != null) {
4133          dst.editor = new ArrayList<ContactDetail>();
4134          for (ContactDetail i : editor)
4135            dst.editor.add(i.copy());
4136        };
4137        if (reviewer != null) {
4138          dst.reviewer = new ArrayList<ContactDetail>();
4139          for (ContactDetail i : reviewer)
4140            dst.reviewer.add(i.copy());
4141        };
4142        if (endorser != null) {
4143          dst.endorser = new ArrayList<ContactDetail>();
4144          for (ContactDetail i : endorser)
4145            dst.endorser.add(i.copy());
4146        };
4147        if (relatedArtifact != null) {
4148          dst.relatedArtifact = new ArrayList<RelatedArtifact>();
4149          for (RelatedArtifact i : relatedArtifact)
4150            dst.relatedArtifact.add(i.copy());
4151        };
4152        dst.synthesisType = synthesisType == null ? null : synthesisType.copy();
4153        dst.studyType = studyType == null ? null : studyType.copy();
4154        dst.population = population == null ? null : population.copy();
4155        dst.exposure = exposure == null ? null : exposure.copy();
4156        dst.outcome = outcome == null ? null : outcome.copy();
4157        dst.sampleSize = sampleSize == null ? null : sampleSize.copy();
4158        dst.riskEstimate = riskEstimate == null ? null : riskEstimate.copy();
4159        if (certainty != null) {
4160          dst.certainty = new ArrayList<RiskEvidenceSynthesisCertaintyComponent>();
4161          for (RiskEvidenceSynthesisCertaintyComponent i : certainty)
4162            dst.certainty.add(i.copy());
4163        };
4164        return dst;
4165      }
4166
4167      protected RiskEvidenceSynthesis typedCopy() {
4168        return copy();
4169      }
4170
4171      @Override
4172      public boolean equalsDeep(Base other_) {
4173        if (!super.equalsDeep(other_))
4174          return false;
4175        if (!(other_ instanceof RiskEvidenceSynthesis))
4176          return false;
4177        RiskEvidenceSynthesis o = (RiskEvidenceSynthesis) other_;
4178        return compareDeep(identifier, o.identifier, true) && compareDeep(note, o.note, true) && compareDeep(copyright, o.copyright, true)
4179           && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true)
4180           && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true)
4181           && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true)
4182           && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(synthesisType, o.synthesisType, true)
4183           && compareDeep(studyType, o.studyType, true) && compareDeep(population, o.population, true) && compareDeep(exposure, o.exposure, true)
4184           && compareDeep(outcome, o.outcome, true) && compareDeep(sampleSize, o.sampleSize, true) && compareDeep(riskEstimate, o.riskEstimate, true)
4185           && compareDeep(certainty, o.certainty, true);
4186      }
4187
4188      @Override
4189      public boolean equalsShallow(Base other_) {
4190        if (!super.equalsShallow(other_))
4191          return false;
4192        if (!(other_ instanceof RiskEvidenceSynthesis))
4193          return false;
4194        RiskEvidenceSynthesis o = (RiskEvidenceSynthesis) other_;
4195        return compareValues(copyright, o.copyright, true) && compareValues(approvalDate, o.approvalDate, true)
4196           && compareValues(lastReviewDate, o.lastReviewDate, true);
4197      }
4198
4199      public boolean isEmpty() {
4200        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, note, copyright
4201          , approvalDate, lastReviewDate, effectivePeriod, topic, author, editor, reviewer
4202          , endorser, relatedArtifact, synthesisType, studyType, population, exposure, outcome
4203          , sampleSize, riskEstimate, certainty);
4204      }
4205
4206  @Override
4207  public ResourceType getResourceType() {
4208    return ResourceType.RiskEvidenceSynthesis;
4209   }
4210
4211 /**
4212   * Search parameter: <b>date</b>
4213   * <p>
4214   * Description: <b>The risk evidence synthesis publication date</b><br>
4215   * Type: <b>date</b><br>
4216   * Path: <b>RiskEvidenceSynthesis.date</b><br>
4217   * </p>
4218   */
4219  @SearchParamDefinition(name="date", path="RiskEvidenceSynthesis.date", description="The risk evidence synthesis publication date", type="date" )
4220  public static final String SP_DATE = "date";
4221 /**
4222   * <b>Fluent Client</b> search parameter constant for <b>date</b>
4223   * <p>
4224   * Description: <b>The risk evidence synthesis publication date</b><br>
4225   * Type: <b>date</b><br>
4226   * Path: <b>RiskEvidenceSynthesis.date</b><br>
4227   * </p>
4228   */
4229  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
4230
4231 /**
4232   * Search parameter: <b>identifier</b>
4233   * <p>
4234   * Description: <b>External identifier for the risk evidence synthesis</b><br>
4235   * Type: <b>token</b><br>
4236   * Path: <b>RiskEvidenceSynthesis.identifier</b><br>
4237   * </p>
4238   */
4239  @SearchParamDefinition(name="identifier", path="RiskEvidenceSynthesis.identifier", description="External identifier for the risk evidence synthesis", type="token" )
4240  public static final String SP_IDENTIFIER = "identifier";
4241 /**
4242   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
4243   * <p>
4244   * Description: <b>External identifier for the risk evidence synthesis</b><br>
4245   * Type: <b>token</b><br>
4246   * Path: <b>RiskEvidenceSynthesis.identifier</b><br>
4247   * </p>
4248   */
4249  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
4250
4251 /**
4252   * Search parameter: <b>context-type-value</b>
4253   * <p>
4254   * Description: <b>A use context type and value assigned to the risk evidence synthesis</b><br>
4255   * Type: <b>composite</b><br>
4256   * Path: <b></b><br>
4257   * </p>
4258   */
4259  @SearchParamDefinition(name="context-type-value", path="RiskEvidenceSynthesis.useContext", description="A use context type and value assigned to the risk evidence synthesis", type="composite", compositeOf={"context-type", "context"} )
4260  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
4261 /**
4262   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
4263   * <p>
4264   * Description: <b>A use context type and value assigned to the risk evidence synthesis</b><br>
4265   * Type: <b>composite</b><br>
4266   * Path: <b></b><br>
4267   * </p>
4268   */
4269  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);
4270
4271 /**
4272   * Search parameter: <b>jurisdiction</b>
4273   * <p>
4274   * Description: <b>Intended jurisdiction for the risk evidence synthesis</b><br>
4275   * Type: <b>token</b><br>
4276   * Path: <b>RiskEvidenceSynthesis.jurisdiction</b><br>
4277   * </p>
4278   */
4279  @SearchParamDefinition(name="jurisdiction", path="RiskEvidenceSynthesis.jurisdiction", description="Intended jurisdiction for the risk evidence synthesis", type="token" )
4280  public static final String SP_JURISDICTION = "jurisdiction";
4281 /**
4282   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
4283   * <p>
4284   * Description: <b>Intended jurisdiction for the risk evidence synthesis</b><br>
4285   * Type: <b>token</b><br>
4286   * Path: <b>RiskEvidenceSynthesis.jurisdiction</b><br>
4287   * </p>
4288   */
4289  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
4290
4291 /**
4292   * Search parameter: <b>description</b>
4293   * <p>
4294   * Description: <b>The description of the risk evidence synthesis</b><br>
4295   * Type: <b>string</b><br>
4296   * Path: <b>RiskEvidenceSynthesis.description</b><br>
4297   * </p>
4298   */
4299  @SearchParamDefinition(name="description", path="RiskEvidenceSynthesis.description", description="The description of the risk evidence synthesis", type="string" )
4300  public static final String SP_DESCRIPTION = "description";
4301 /**
4302   * <b>Fluent Client</b> search parameter constant for <b>description</b>
4303   * <p>
4304   * Description: <b>The description of the risk evidence synthesis</b><br>
4305   * Type: <b>string</b><br>
4306   * Path: <b>RiskEvidenceSynthesis.description</b><br>
4307   * </p>
4308   */
4309  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
4310
4311 /**
4312   * Search parameter: <b>context-type</b>
4313   * <p>
4314   * Description: <b>A type of use context assigned to the risk evidence synthesis</b><br>
4315   * Type: <b>token</b><br>
4316   * Path: <b>RiskEvidenceSynthesis.useContext.code</b><br>
4317   * </p>
4318   */
4319  @SearchParamDefinition(name="context-type", path="RiskEvidenceSynthesis.useContext.code", description="A type of use context assigned to the risk evidence synthesis", type="token" )
4320  public static final String SP_CONTEXT_TYPE = "context-type";
4321 /**
4322   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
4323   * <p>
4324   * Description: <b>A type of use context assigned to the risk evidence synthesis</b><br>
4325   * Type: <b>token</b><br>
4326   * Path: <b>RiskEvidenceSynthesis.useContext.code</b><br>
4327   * </p>
4328   */
4329  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
4330
4331 /**
4332   * Search parameter: <b>title</b>
4333   * <p>
4334   * Description: <b>The human-friendly name of the risk evidence synthesis</b><br>
4335   * Type: <b>string</b><br>
4336   * Path: <b>RiskEvidenceSynthesis.title</b><br>
4337   * </p>
4338   */
4339  @SearchParamDefinition(name="title", path="RiskEvidenceSynthesis.title", description="The human-friendly name of the risk evidence synthesis", type="string" )
4340  public static final String SP_TITLE = "title";
4341 /**
4342   * <b>Fluent Client</b> search parameter constant for <b>title</b>
4343   * <p>
4344   * Description: <b>The human-friendly name of the risk evidence synthesis</b><br>
4345   * Type: <b>string</b><br>
4346   * Path: <b>RiskEvidenceSynthesis.title</b><br>
4347   * </p>
4348   */
4349  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
4350
4351 /**
4352   * Search parameter: <b>version</b>
4353   * <p>
4354   * Description: <b>The business version of the risk evidence synthesis</b><br>
4355   * Type: <b>token</b><br>
4356   * Path: <b>RiskEvidenceSynthesis.version</b><br>
4357   * </p>
4358   */
4359  @SearchParamDefinition(name="version", path="RiskEvidenceSynthesis.version", description="The business version of the risk evidence synthesis", type="token" )
4360  public static final String SP_VERSION = "version";
4361 /**
4362   * <b>Fluent Client</b> search parameter constant for <b>version</b>
4363   * <p>
4364   * Description: <b>The business version of the risk evidence synthesis</b><br>
4365   * Type: <b>token</b><br>
4366   * Path: <b>RiskEvidenceSynthesis.version</b><br>
4367   * </p>
4368   */
4369  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
4370
4371 /**
4372   * Search parameter: <b>url</b>
4373   * <p>
4374   * Description: <b>The uri that identifies the risk evidence synthesis</b><br>
4375   * Type: <b>uri</b><br>
4376   * Path: <b>RiskEvidenceSynthesis.url</b><br>
4377   * </p>
4378   */
4379  @SearchParamDefinition(name="url", path="RiskEvidenceSynthesis.url", description="The uri that identifies the risk evidence synthesis", type="uri" )
4380  public static final String SP_URL = "url";
4381 /**
4382   * <b>Fluent Client</b> search parameter constant for <b>url</b>
4383   * <p>
4384   * Description: <b>The uri that identifies the risk evidence synthesis</b><br>
4385   * Type: <b>uri</b><br>
4386   * Path: <b>RiskEvidenceSynthesis.url</b><br>
4387   * </p>
4388   */
4389  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
4390
4391 /**
4392   * Search parameter: <b>context-quantity</b>
4393   * <p>
4394   * Description: <b>A quantity- or range-valued use context assigned to the risk evidence synthesis</b><br>
4395   * Type: <b>quantity</b><br>
4396   * Path: <b>RiskEvidenceSynthesis.useContext.valueQuantity, RiskEvidenceSynthesis.useContext.valueRange</b><br>
4397   * </p>
4398   */
4399  @SearchParamDefinition(name="context-quantity", path="(RiskEvidenceSynthesis.useContext.value as Quantity) | (RiskEvidenceSynthesis.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the risk evidence synthesis", type="quantity" )
4400  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
4401 /**
4402   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
4403   * <p>
4404   * Description: <b>A quantity- or range-valued use context assigned to the risk evidence synthesis</b><br>
4405   * Type: <b>quantity</b><br>
4406   * Path: <b>RiskEvidenceSynthesis.useContext.valueQuantity, RiskEvidenceSynthesis.useContext.valueRange</b><br>
4407   * </p>
4408   */
4409  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
4410
4411 /**
4412   * Search parameter: <b>effective</b>
4413   * <p>
4414   * Description: <b>The time during which the risk evidence synthesis is intended to be in use</b><br>
4415   * Type: <b>date</b><br>
4416   * Path: <b>RiskEvidenceSynthesis.effectivePeriod</b><br>
4417   * </p>
4418   */
4419  @SearchParamDefinition(name="effective", path="RiskEvidenceSynthesis.effectivePeriod", description="The time during which the risk evidence synthesis is intended to be in use", type="date" )
4420  public static final String SP_EFFECTIVE = "effective";
4421 /**
4422   * <b>Fluent Client</b> search parameter constant for <b>effective</b>
4423   * <p>
4424   * Description: <b>The time during which the risk evidence synthesis is intended to be in use</b><br>
4425   * Type: <b>date</b><br>
4426   * Path: <b>RiskEvidenceSynthesis.effectivePeriod</b><br>
4427   * </p>
4428   */
4429  public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE);
4430
4431 /**
4432   * Search parameter: <b>name</b>
4433   * <p>
4434   * Description: <b>Computationally friendly name of the risk evidence synthesis</b><br>
4435   * Type: <b>string</b><br>
4436   * Path: <b>RiskEvidenceSynthesis.name</b><br>
4437   * </p>
4438   */
4439  @SearchParamDefinition(name="name", path="RiskEvidenceSynthesis.name", description="Computationally friendly name of the risk evidence synthesis", type="string" )
4440  public static final String SP_NAME = "name";
4441 /**
4442   * <b>Fluent Client</b> search parameter constant for <b>name</b>
4443   * <p>
4444   * Description: <b>Computationally friendly name of the risk evidence synthesis</b><br>
4445   * Type: <b>string</b><br>
4446   * Path: <b>RiskEvidenceSynthesis.name</b><br>
4447   * </p>
4448   */
4449  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
4450
4451 /**
4452   * Search parameter: <b>context</b>
4453   * <p>
4454   * Description: <b>A use context assigned to the risk evidence synthesis</b><br>
4455   * Type: <b>token</b><br>
4456   * Path: <b>RiskEvidenceSynthesis.useContext.valueCodeableConcept</b><br>
4457   * </p>
4458   */
4459  @SearchParamDefinition(name="context", path="(RiskEvidenceSynthesis.useContext.value as CodeableConcept)", description="A use context assigned to the risk evidence synthesis", type="token" )
4460  public static final String SP_CONTEXT = "context";
4461 /**
4462   * <b>Fluent Client</b> search parameter constant for <b>context</b>
4463   * <p>
4464   * Description: <b>A use context assigned to the risk evidence synthesis</b><br>
4465   * Type: <b>token</b><br>
4466   * Path: <b>RiskEvidenceSynthesis.useContext.valueCodeableConcept</b><br>
4467   * </p>
4468   */
4469  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
4470
4471 /**
4472   * Search parameter: <b>publisher</b>
4473   * <p>
4474   * Description: <b>Name of the publisher of the risk evidence synthesis</b><br>
4475   * Type: <b>string</b><br>
4476   * Path: <b>RiskEvidenceSynthesis.publisher</b><br>
4477   * </p>
4478   */
4479  @SearchParamDefinition(name="publisher", path="RiskEvidenceSynthesis.publisher", description="Name of the publisher of the risk evidence synthesis", type="string" )
4480  public static final String SP_PUBLISHER = "publisher";
4481 /**
4482   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
4483   * <p>
4484   * Description: <b>Name of the publisher of the risk evidence synthesis</b><br>
4485   * Type: <b>string</b><br>
4486   * Path: <b>RiskEvidenceSynthesis.publisher</b><br>
4487   * </p>
4488   */
4489  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
4490
4491 /**
4492   * Search parameter: <b>context-type-quantity</b>
4493   * <p>
4494   * Description: <b>A use context type and quantity- or range-based value assigned to the risk evidence synthesis</b><br>
4495   * Type: <b>composite</b><br>
4496   * Path: <b></b><br>
4497   * </p>
4498   */
4499  @SearchParamDefinition(name="context-type-quantity", path="RiskEvidenceSynthesis.useContext", description="A use context type and quantity- or range-based value assigned to the risk evidence synthesis", type="composite", compositeOf={"context-type", "context-quantity"} )
4500  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
4501 /**
4502   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
4503   * <p>
4504   * Description: <b>A use context type and quantity- or range-based value assigned to the risk evidence synthesis</b><br>
4505   * Type: <b>composite</b><br>
4506   * Path: <b></b><br>
4507   * </p>
4508   */
4509  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);
4510
4511 /**
4512   * Search parameter: <b>status</b>
4513   * <p>
4514   * Description: <b>The current status of the risk evidence synthesis</b><br>
4515   * Type: <b>token</b><br>
4516   * Path: <b>RiskEvidenceSynthesis.status</b><br>
4517   * </p>
4518   */
4519  @SearchParamDefinition(name="status", path="RiskEvidenceSynthesis.status", description="The current status of the risk evidence synthesis", type="token" )
4520  public static final String SP_STATUS = "status";
4521 /**
4522   * <b>Fluent Client</b> search parameter constant for <b>status</b>
4523   * <p>
4524   * Description: <b>The current status of the risk evidence synthesis</b><br>
4525   * Type: <b>token</b><br>
4526   * Path: <b>RiskEvidenceSynthesis.status</b><br>
4527   * </p>
4528   */
4529  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
4530
4531
4532}
4533