001package org.hl7.fhir.r4.model;
002
003/*-
004 * #%L
005 * org.hl7.fhir.r4
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023/*
024  Copyright (c) 2011+, HL7, Inc.
025  All rights reserved.
026  
027  Redistribution and use in source and binary forms, with or without modification, 
028  are permitted provided that the following conditions are met:
029  
030   * Redistributions of source code must retain the above copyright notice, this 
031     list of conditions and the following disclaimer.
032   * Redistributions in binary form must reproduce the above copyright notice, 
033     this list of conditions and the following disclaimer in the documentation 
034     and/or other materials provided with the distribution.
035   * Neither the name of HL7 nor the names of its contributors may be used to 
036     endorse or promote products derived from this software without specific 
037     prior written permission.
038  
039  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
040  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
041  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
042  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
043  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
044  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
045  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
046  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
047  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
048  POSSIBILITY OF SUCH DAMAGE.
049  
050*/
051
052// Generated on Thu, Dec 13, 2018 14:07+1100 for FHIR v4.0.0
053import java.util.ArrayList;
054import java.util.Date;
055import java.util.List;
056
057import org.hl7.fhir.exceptions.FHIRException;
058import org.hl7.fhir.r4.model.Enumerations.PublicationStatus;
059import org.hl7.fhir.r4.model.Enumerations.PublicationStatusEnumFactory;
060import org.hl7.fhir.utilities.Utilities;
061
062import ca.uhn.fhir.model.api.annotation.Child;
063import ca.uhn.fhir.model.api.annotation.ChildOrder;
064import ca.uhn.fhir.model.api.annotation.Description;
065import ca.uhn.fhir.model.api.annotation.ResourceDef;
066import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
067/**
068 * The Evidence resource describes the conditional state (population and any exposures being compared within the population) and outcome (if specified) that the knowledge (evidence, assertion, recommendation) is about.
069 */
070@ResourceDef(name="Evidence", profile="http://hl7.org/fhir/StructureDefinition/Evidence")
071@ChildOrder(names={"url", "identifier", "version", "name", "title", "shortTitle", "subtitle", "status", "date", "publisher", "contact", "description", "note", "useContext", "jurisdiction", "copyright", "approvalDate", "lastReviewDate", "effectivePeriod", "topic", "author", "editor", "reviewer", "endorser", "relatedArtifact", "exposureBackground", "exposureVariant", "outcome"})
072public class Evidence extends MetadataResource {
073
074    /**
075     * A formal identifier that is used to identify this evidence when it is represented in other formats, or referenced in a specification, model, design or an instance.
076     */
077    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
078    @Description(shortDefinition="Additional identifier for the evidence", formalDefinition="A formal identifier that is used to identify this evidence when it is represented in other formats, or referenced in a specification, model, design or an instance." )
079    protected List<Identifier> identifier;
080
081    /**
082     * The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.
083     */
084    @Child(name = "shortTitle", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
085    @Description(shortDefinition="Title for use in informal contexts", formalDefinition="The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary." )
086    protected StringType shortTitle;
087
088    /**
089     * An explanatory or alternate title for the Evidence giving additional information about its content.
090     */
091    @Child(name = "subtitle", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
092    @Description(shortDefinition="Subordinate title of the Evidence", formalDefinition="An explanatory or alternate title for the Evidence giving additional information about its content." )
093    protected StringType subtitle;
094
095    /**
096     * A human-readable string to clarify or explain concepts about the resource.
097     */
098    @Child(name = "note", type = {Annotation.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
099    @Description(shortDefinition="Used for footnotes or explanatory notes", formalDefinition="A human-readable string to clarify or explain concepts about the resource." )
100    protected List<Annotation> note;
101
102    /**
103     * A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.
104     */
105    @Child(name = "copyright", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false)
106    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence." )
107    protected MarkdownType copyright;
108
109    /**
110     * The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
111     */
112    @Child(name = "approvalDate", type = {DateType.class}, order=5, min=0, max=1, modifier=false, summary=false)
113    @Description(shortDefinition="When the evidence 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." )
114    protected DateType approvalDate;
115
116    /**
117     * The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
118     */
119    @Child(name = "lastReviewDate", type = {DateType.class}, order=6, min=0, max=1, modifier=false, summary=false)
120    @Description(shortDefinition="When the evidence 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." )
121    protected DateType lastReviewDate;
122
123    /**
124     * The period during which the evidence content was or is planned to be in active use.
125     */
126    @Child(name = "effectivePeriod", type = {Period.class}, order=7, min=0, max=1, modifier=false, summary=true)
127    @Description(shortDefinition="When the evidence is expected to be used", formalDefinition="The period during which the evidence content was or is planned to be in active use." )
128    protected Period effectivePeriod;
129
130    /**
131     * Descriptive topics related to the content of the Evidence. Topics provide a high-level categorization grouping types of Evidences that can be useful for filtering and searching.
132     */
133    @Child(name = "topic", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
134    @Description(shortDefinition="The category of the Evidence, such as Education, Treatment, Assessment, etc.", formalDefinition="Descriptive topics related to the content of the Evidence. Topics provide a high-level categorization grouping types of Evidences that can be useful for filtering and searching." )
135    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/definition-topic")
136    protected List<CodeableConcept> topic;
137
138    /**
139     * An individiual or organization primarily involved in the creation and maintenance of the content.
140     */
141    @Child(name = "author", type = {ContactDetail.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
142    @Description(shortDefinition="Who authored the content", formalDefinition="An individiual or organization primarily involved in the creation and maintenance of the content." )
143    protected List<ContactDetail> author;
144
145    /**
146     * An individual or organization primarily responsible for internal coherence of the content.
147     */
148    @Child(name = "editor", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
149    @Description(shortDefinition="Who edited the content", formalDefinition="An individual or organization primarily responsible for internal coherence of the content." )
150    protected List<ContactDetail> editor;
151
152    /**
153     * An individual or organization primarily responsible for review of some aspect of the content.
154     */
155    @Child(name = "reviewer", type = {ContactDetail.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
156    @Description(shortDefinition="Who reviewed the content", formalDefinition="An individual or organization primarily responsible for review of some aspect of the content." )
157    protected List<ContactDetail> reviewer;
158
159    /**
160     * An individual or organization responsible for officially endorsing the content for use in some setting.
161     */
162    @Child(name = "endorser", type = {ContactDetail.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
163    @Description(shortDefinition="Who endorsed the content", formalDefinition="An individual or organization responsible for officially endorsing the content for use in some setting." )
164    protected List<ContactDetail> endorser;
165
166    /**
167     * Related artifacts such as additional documentation, justification, or bibliographic references.
168     */
169    @Child(name = "relatedArtifact", type = {RelatedArtifact.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
170    @Description(shortDefinition="Additional documentation, citations, etc.", formalDefinition="Related artifacts such as additional documentation, justification, or bibliographic references." )
171    protected List<RelatedArtifact> relatedArtifact;
172
173    /**
174     * A reference to a EvidenceVariable resource that defines the population for the research.
175     */
176    @Child(name = "exposureBackground", type = {EvidenceVariable.class}, order=14, min=1, max=1, modifier=false, summary=true)
177    @Description(shortDefinition="What population?", formalDefinition="A reference to a EvidenceVariable resource that defines the population for the research." )
178    protected Reference exposureBackground;
179
180    /**
181     * The actual object that is the target of the reference (A reference to a EvidenceVariable resource that defines the population for the research.)
182     */
183    protected EvidenceVariable exposureBackgroundTarget;
184
185    /**
186     * A reference to a EvidenceVariable resource that defines the exposure for the research.
187     */
188    @Child(name = "exposureVariant", type = {EvidenceVariable.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
189    @Description(shortDefinition="What exposure?", formalDefinition="A reference to a EvidenceVariable resource that defines the exposure for the research." )
190    protected List<Reference> exposureVariant;
191    /**
192     * The actual objects that are the target of the reference (A reference to a EvidenceVariable resource that defines the exposure for the research.)
193     */
194    protected List<EvidenceVariable> exposureVariantTarget;
195
196
197    /**
198     * A reference to a EvidenceVariable resomece that defines the outcome for the research.
199     */
200    @Child(name = "outcome", type = {EvidenceVariable.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
201    @Description(shortDefinition="What outcome?", formalDefinition="A reference to a EvidenceVariable resomece that defines the outcome for the research." )
202    protected List<Reference> outcome;
203    /**
204     * The actual objects that are the target of the reference (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
205     */
206    protected List<EvidenceVariable> outcomeTarget;
207
208
209    private static final long serialVersionUID = 137844509L;
210
211  /**
212   * Constructor
213   */
214    public Evidence() {
215      super();
216    }
217
218  /**
219   * Constructor
220   */
221    public Evidence(Enumeration<PublicationStatus> status, Reference exposureBackground) {
222      super();
223      this.status = status;
224      this.exposureBackground = exposureBackground;
225    }
226
227    /**
228     * @return {@link #url} (An absolute URI that is used to identify this evidence 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 evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
229     */
230    public UriType getUrlElement() { 
231      if (this.url == null)
232        if (Configuration.errorOnAutoCreate())
233          throw new Error("Attempt to auto-create Evidence.url");
234        else if (Configuration.doAutoCreate())
235          this.url = new UriType(); // bb
236      return this.url;
237    }
238
239    public boolean hasUrlElement() { 
240      return this.url != null && !this.url.isEmpty();
241    }
242
243    public boolean hasUrl() { 
244      return this.url != null && !this.url.isEmpty();
245    }
246
247    /**
248     * @param value {@link #url} (An absolute URI that is used to identify this evidence 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 evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
249     */
250    public Evidence setUrlElement(UriType value) { 
251      this.url = value;
252      return this;
253    }
254
255    /**
256     * @return An absolute URI that is used to identify this evidence 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 evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers.
257     */
258    public String getUrl() { 
259      return this.url == null ? null : this.url.getValue();
260    }
261
262    /**
263     * @param value An absolute URI that is used to identify this evidence 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 evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers.
264     */
265    public Evidence setUrl(String value) { 
266      if (Utilities.noString(value))
267        this.url = null;
268      else {
269        if (this.url == null)
270          this.url = new UriType();
271        this.url.setValue(value);
272      }
273      return this;
274    }
275
276    /**
277     * @return {@link #identifier} (A formal identifier that is used to identify this evidence when it is represented in other formats, or referenced in a specification, model, design or an instance.)
278     */
279    public List<Identifier> getIdentifier() { 
280      if (this.identifier == null)
281        this.identifier = new ArrayList<Identifier>();
282      return this.identifier;
283    }
284
285    /**
286     * @return Returns a reference to <code>this</code> for easy method chaining
287     */
288    public Evidence setIdentifier(List<Identifier> theIdentifier) { 
289      this.identifier = theIdentifier;
290      return this;
291    }
292
293    public boolean hasIdentifier() { 
294      if (this.identifier == null)
295        return false;
296      for (Identifier item : this.identifier)
297        if (!item.isEmpty())
298          return true;
299      return false;
300    }
301
302    public Identifier addIdentifier() { //3
303      Identifier t = new Identifier();
304      if (this.identifier == null)
305        this.identifier = new ArrayList<Identifier>();
306      this.identifier.add(t);
307      return t;
308    }
309
310    public Evidence addIdentifier(Identifier t) { //3
311      if (t == null)
312        return this;
313      if (this.identifier == null)
314        this.identifier = new ArrayList<Identifier>();
315      this.identifier.add(t);
316      return this;
317    }
318
319    /**
320     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
321     */
322    public Identifier getIdentifierFirstRep() { 
323      if (getIdentifier().isEmpty()) {
324        addIdentifier();
325      }
326      return getIdentifier().get(0);
327    }
328
329    /**
330     * @return {@link #version} (The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
331     */
332    public StringType getVersionElement() { 
333      if (this.version == null)
334        if (Configuration.errorOnAutoCreate())
335          throw new Error("Attempt to auto-create Evidence.version");
336        else if (Configuration.doAutoCreate())
337          this.version = new StringType(); // bb
338      return this.version;
339    }
340
341    public boolean hasVersionElement() { 
342      return this.version != null && !this.version.isEmpty();
343    }
344
345    public boolean hasVersion() { 
346      return this.version != null && !this.version.isEmpty();
347    }
348
349    /**
350     * @param value {@link #version} (The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
351     */
352    public Evidence setVersionElement(StringType value) { 
353      this.version = value;
354      return this;
355    }
356
357    /**
358     * @return The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.
359     */
360    public String getVersion() { 
361      return this.version == null ? null : this.version.getValue();
362    }
363
364    /**
365     * @param value The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.
366     */
367    public Evidence setVersion(String value) { 
368      if (Utilities.noString(value))
369        this.version = null;
370      else {
371        if (this.version == null)
372          this.version = new StringType();
373        this.version.setValue(value);
374      }
375      return this;
376    }
377
378    /**
379     * @return {@link #name} (A natural language name identifying the evidence. 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
380     */
381    public StringType getNameElement() { 
382      if (this.name == null)
383        if (Configuration.errorOnAutoCreate())
384          throw new Error("Attempt to auto-create Evidence.name");
385        else if (Configuration.doAutoCreate())
386          this.name = new StringType(); // bb
387      return this.name;
388    }
389
390    public boolean hasNameElement() { 
391      return this.name != null && !this.name.isEmpty();
392    }
393
394    public boolean hasName() { 
395      return this.name != null && !this.name.isEmpty();
396    }
397
398    /**
399     * @param value {@link #name} (A natural language name identifying the evidence. 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
400     */
401    public Evidence setNameElement(StringType value) { 
402      this.name = value;
403      return this;
404    }
405
406    /**
407     * @return A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation.
408     */
409    public String getName() { 
410      return this.name == null ? null : this.name.getValue();
411    }
412
413    /**
414     * @param value A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation.
415     */
416    public Evidence setName(String value) { 
417      if (Utilities.noString(value))
418        this.name = null;
419      else {
420        if (this.name == null)
421          this.name = new StringType();
422        this.name.setValue(value);
423      }
424      return this;
425    }
426
427    /**
428     * @return {@link #title} (A short, descriptive, user-friendly title for the evidence.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
429     */
430    public StringType getTitleElement() { 
431      if (this.title == null)
432        if (Configuration.errorOnAutoCreate())
433          throw new Error("Attempt to auto-create Evidence.title");
434        else if (Configuration.doAutoCreate())
435          this.title = new StringType(); // bb
436      return this.title;
437    }
438
439    public boolean hasTitleElement() { 
440      return this.title != null && !this.title.isEmpty();
441    }
442
443    public boolean hasTitle() { 
444      return this.title != null && !this.title.isEmpty();
445    }
446
447    /**
448     * @param value {@link #title} (A short, descriptive, user-friendly title for the evidence.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
449     */
450    public Evidence setTitleElement(StringType value) { 
451      this.title = value;
452      return this;
453    }
454
455    /**
456     * @return A short, descriptive, user-friendly title for the evidence.
457     */
458    public String getTitle() { 
459      return this.title == null ? null : this.title.getValue();
460    }
461
462    /**
463     * @param value A short, descriptive, user-friendly title for the evidence.
464     */
465    public Evidence setTitle(String value) { 
466      if (Utilities.noString(value))
467        this.title = null;
468      else {
469        if (this.title == null)
470          this.title = new StringType();
471        this.title.setValue(value);
472      }
473      return this;
474    }
475
476    /**
477     * @return {@link #shortTitle} (The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.). This is the underlying object with id, value and extensions. The accessor "getShortTitle" gives direct access to the value
478     */
479    public StringType getShortTitleElement() { 
480      if (this.shortTitle == null)
481        if (Configuration.errorOnAutoCreate())
482          throw new Error("Attempt to auto-create Evidence.shortTitle");
483        else if (Configuration.doAutoCreate())
484          this.shortTitle = new StringType(); // bb
485      return this.shortTitle;
486    }
487
488    public boolean hasShortTitleElement() { 
489      return this.shortTitle != null && !this.shortTitle.isEmpty();
490    }
491
492    public boolean hasShortTitle() { 
493      return this.shortTitle != null && !this.shortTitle.isEmpty();
494    }
495
496    /**
497     * @param value {@link #shortTitle} (The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.). This is the underlying object with id, value and extensions. The accessor "getShortTitle" gives direct access to the value
498     */
499    public Evidence setShortTitleElement(StringType value) { 
500      this.shortTitle = value;
501      return this;
502    }
503
504    /**
505     * @return The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.
506     */
507    public String getShortTitle() { 
508      return this.shortTitle == null ? null : this.shortTitle.getValue();
509    }
510
511    /**
512     * @param value The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.
513     */
514    public Evidence setShortTitle(String value) { 
515      if (Utilities.noString(value))
516        this.shortTitle = null;
517      else {
518        if (this.shortTitle == null)
519          this.shortTitle = new StringType();
520        this.shortTitle.setValue(value);
521      }
522      return this;
523    }
524
525    /**
526     * @return {@link #subtitle} (An explanatory or alternate title for the Evidence giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value
527     */
528    public StringType getSubtitleElement() { 
529      if (this.subtitle == null)
530        if (Configuration.errorOnAutoCreate())
531          throw new Error("Attempt to auto-create Evidence.subtitle");
532        else if (Configuration.doAutoCreate())
533          this.subtitle = new StringType(); // bb
534      return this.subtitle;
535    }
536
537    public boolean hasSubtitleElement() { 
538      return this.subtitle != null && !this.subtitle.isEmpty();
539    }
540
541    public boolean hasSubtitle() { 
542      return this.subtitle != null && !this.subtitle.isEmpty();
543    }
544
545    /**
546     * @param value {@link #subtitle} (An explanatory or alternate title for the Evidence giving additional information about its content.). This is the underlying object with id, value and extensions. The accessor "getSubtitle" gives direct access to the value
547     */
548    public Evidence setSubtitleElement(StringType value) { 
549      this.subtitle = value;
550      return this;
551    }
552
553    /**
554     * @return An explanatory or alternate title for the Evidence giving additional information about its content.
555     */
556    public String getSubtitle() { 
557      return this.subtitle == null ? null : this.subtitle.getValue();
558    }
559
560    /**
561     * @param value An explanatory or alternate title for the Evidence giving additional information about its content.
562     */
563    public Evidence setSubtitle(String value) { 
564      if (Utilities.noString(value))
565        this.subtitle = null;
566      else {
567        if (this.subtitle == null)
568          this.subtitle = new StringType();
569        this.subtitle.setValue(value);
570      }
571      return this;
572    }
573
574    /**
575     * @return {@link #status} (The status of this evidence. 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
576     */
577    public Enumeration<PublicationStatus> getStatusElement() { 
578      if (this.status == null)
579        if (Configuration.errorOnAutoCreate())
580          throw new Error("Attempt to auto-create Evidence.status");
581        else if (Configuration.doAutoCreate())
582          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
583      return this.status;
584    }
585
586    public boolean hasStatusElement() { 
587      return this.status != null && !this.status.isEmpty();
588    }
589
590    public boolean hasStatus() { 
591      return this.status != null && !this.status.isEmpty();
592    }
593
594    /**
595     * @param value {@link #status} (The status of this evidence. 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
596     */
597    public Evidence setStatusElement(Enumeration<PublicationStatus> value) { 
598      this.status = value;
599      return this;
600    }
601
602    /**
603     * @return The status of this evidence. Enables tracking the life-cycle of the content.
604     */
605    public PublicationStatus getStatus() { 
606      return this.status == null ? null : this.status.getValue();
607    }
608
609    /**
610     * @param value The status of this evidence. Enables tracking the life-cycle of the content.
611     */
612    public Evidence setStatus(PublicationStatus value) { 
613        if (this.status == null)
614          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
615        this.status.setValue(value);
616      return this;
617    }
618
619    /**
620     * @return {@link #date} (The date  (and optionally time) when the evidence 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 evidence changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
621     */
622    public DateTimeType getDateElement() { 
623      if (this.date == null)
624        if (Configuration.errorOnAutoCreate())
625          throw new Error("Attempt to auto-create Evidence.date");
626        else if (Configuration.doAutoCreate())
627          this.date = new DateTimeType(); // bb
628      return this.date;
629    }
630
631    public boolean hasDateElement() { 
632      return this.date != null && !this.date.isEmpty();
633    }
634
635    public boolean hasDate() { 
636      return this.date != null && !this.date.isEmpty();
637    }
638
639    /**
640     * @param value {@link #date} (The date  (and optionally time) when the evidence 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 evidence changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
641     */
642    public Evidence setDateElement(DateTimeType value) { 
643      this.date = value;
644      return this;
645    }
646
647    /**
648     * @return The date  (and optionally time) when the evidence 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 evidence changes.
649     */
650    public Date getDate() { 
651      return this.date == null ? null : this.date.getValue();
652    }
653
654    /**
655     * @param value The date  (and optionally time) when the evidence 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 evidence changes.
656     */
657    public Evidence setDate(Date value) { 
658      if (value == null)
659        this.date = null;
660      else {
661        if (this.date == null)
662          this.date = new DateTimeType();
663        this.date.setValue(value);
664      }
665      return this;
666    }
667
668    /**
669     * @return {@link #publisher} (The name of the organization or individual that published the evidence.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
670     */
671    public StringType getPublisherElement() { 
672      if (this.publisher == null)
673        if (Configuration.errorOnAutoCreate())
674          throw new Error("Attempt to auto-create Evidence.publisher");
675        else if (Configuration.doAutoCreate())
676          this.publisher = new StringType(); // bb
677      return this.publisher;
678    }
679
680    public boolean hasPublisherElement() { 
681      return this.publisher != null && !this.publisher.isEmpty();
682    }
683
684    public boolean hasPublisher() { 
685      return this.publisher != null && !this.publisher.isEmpty();
686    }
687
688    /**
689     * @param value {@link #publisher} (The name of the organization or individual that published the evidence.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
690     */
691    public Evidence setPublisherElement(StringType value) { 
692      this.publisher = value;
693      return this;
694    }
695
696    /**
697     * @return The name of the organization or individual that published the evidence.
698     */
699    public String getPublisher() { 
700      return this.publisher == null ? null : this.publisher.getValue();
701    }
702
703    /**
704     * @param value The name of the organization or individual that published the evidence.
705     */
706    public Evidence setPublisher(String value) { 
707      if (Utilities.noString(value))
708        this.publisher = null;
709      else {
710        if (this.publisher == null)
711          this.publisher = new StringType();
712        this.publisher.setValue(value);
713      }
714      return this;
715    }
716
717    /**
718     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
719     */
720    public List<ContactDetail> getContact() { 
721      if (this.contact == null)
722        this.contact = new ArrayList<ContactDetail>();
723      return this.contact;
724    }
725
726    /**
727     * @return Returns a reference to <code>this</code> for easy method chaining
728     */
729    public Evidence setContact(List<ContactDetail> theContact) { 
730      this.contact = theContact;
731      return this;
732    }
733
734    public boolean hasContact() { 
735      if (this.contact == null)
736        return false;
737      for (ContactDetail item : this.contact)
738        if (!item.isEmpty())
739          return true;
740      return false;
741    }
742
743    public ContactDetail addContact() { //3
744      ContactDetail t = new ContactDetail();
745      if (this.contact == null)
746        this.contact = new ArrayList<ContactDetail>();
747      this.contact.add(t);
748      return t;
749    }
750
751    public Evidence addContact(ContactDetail t) { //3
752      if (t == null)
753        return this;
754      if (this.contact == null)
755        this.contact = new ArrayList<ContactDetail>();
756      this.contact.add(t);
757      return this;
758    }
759
760    /**
761     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist
762     */
763    public ContactDetail getContactFirstRep() { 
764      if (getContact().isEmpty()) {
765        addContact();
766      }
767      return getContact().get(0);
768    }
769
770    /**
771     * @return {@link #description} (A free text natural language description of the evidence from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
772     */
773    public MarkdownType getDescriptionElement() { 
774      if (this.description == null)
775        if (Configuration.errorOnAutoCreate())
776          throw new Error("Attempt to auto-create Evidence.description");
777        else if (Configuration.doAutoCreate())
778          this.description = new MarkdownType(); // bb
779      return this.description;
780    }
781
782    public boolean hasDescriptionElement() { 
783      return this.description != null && !this.description.isEmpty();
784    }
785
786    public boolean hasDescription() { 
787      return this.description != null && !this.description.isEmpty();
788    }
789
790    /**
791     * @param value {@link #description} (A free text natural language description of the evidence from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
792     */
793    public Evidence setDescriptionElement(MarkdownType value) { 
794      this.description = value;
795      return this;
796    }
797
798    /**
799     * @return A free text natural language description of the evidence from a consumer's perspective.
800     */
801    public String getDescription() { 
802      return this.description == null ? null : this.description.getValue();
803    }
804
805    /**
806     * @param value A free text natural language description of the evidence from a consumer's perspective.
807     */
808    public Evidence setDescription(String value) { 
809      if (value == null)
810        this.description = null;
811      else {
812        if (this.description == null)
813          this.description = new MarkdownType();
814        this.description.setValue(value);
815      }
816      return this;
817    }
818
819    /**
820     * @return {@link #note} (A human-readable string to clarify or explain concepts about the resource.)
821     */
822    public List<Annotation> getNote() { 
823      if (this.note == null)
824        this.note = new ArrayList<Annotation>();
825      return this.note;
826    }
827
828    /**
829     * @return Returns a reference to <code>this</code> for easy method chaining
830     */
831    public Evidence setNote(List<Annotation> theNote) { 
832      this.note = theNote;
833      return this;
834    }
835
836    public boolean hasNote() { 
837      if (this.note == null)
838        return false;
839      for (Annotation item : this.note)
840        if (!item.isEmpty())
841          return true;
842      return false;
843    }
844
845    public Annotation addNote() { //3
846      Annotation t = new Annotation();
847      if (this.note == null)
848        this.note = new ArrayList<Annotation>();
849      this.note.add(t);
850      return t;
851    }
852
853    public Evidence addNote(Annotation t) { //3
854      if (t == null)
855        return this;
856      if (this.note == null)
857        this.note = new ArrayList<Annotation>();
858      this.note.add(t);
859      return this;
860    }
861
862    /**
863     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist
864     */
865    public Annotation getNoteFirstRep() { 
866      if (getNote().isEmpty()) {
867        addNote();
868      }
869      return getNote().get(0);
870    }
871
872    /**
873     * @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 evidence instances.)
874     */
875    public List<UsageContext> getUseContext() { 
876      if (this.useContext == null)
877        this.useContext = new ArrayList<UsageContext>();
878      return this.useContext;
879    }
880
881    /**
882     * @return Returns a reference to <code>this</code> for easy method chaining
883     */
884    public Evidence setUseContext(List<UsageContext> theUseContext) { 
885      this.useContext = theUseContext;
886      return this;
887    }
888
889    public boolean hasUseContext() { 
890      if (this.useContext == null)
891        return false;
892      for (UsageContext item : this.useContext)
893        if (!item.isEmpty())
894          return true;
895      return false;
896    }
897
898    public UsageContext addUseContext() { //3
899      UsageContext t = new UsageContext();
900      if (this.useContext == null)
901        this.useContext = new ArrayList<UsageContext>();
902      this.useContext.add(t);
903      return t;
904    }
905
906    public Evidence addUseContext(UsageContext t) { //3
907      if (t == null)
908        return this;
909      if (this.useContext == null)
910        this.useContext = new ArrayList<UsageContext>();
911      this.useContext.add(t);
912      return this;
913    }
914
915    /**
916     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist
917     */
918    public UsageContext getUseContextFirstRep() { 
919      if (getUseContext().isEmpty()) {
920        addUseContext();
921      }
922      return getUseContext().get(0);
923    }
924
925    /**
926     * @return {@link #jurisdiction} (A legal or geographic region in which the evidence is intended to be used.)
927     */
928    public List<CodeableConcept> getJurisdiction() { 
929      if (this.jurisdiction == null)
930        this.jurisdiction = new ArrayList<CodeableConcept>();
931      return this.jurisdiction;
932    }
933
934    /**
935     * @return Returns a reference to <code>this</code> for easy method chaining
936     */
937    public Evidence setJurisdiction(List<CodeableConcept> theJurisdiction) { 
938      this.jurisdiction = theJurisdiction;
939      return this;
940    }
941
942    public boolean hasJurisdiction() { 
943      if (this.jurisdiction == null)
944        return false;
945      for (CodeableConcept item : this.jurisdiction)
946        if (!item.isEmpty())
947          return true;
948      return false;
949    }
950
951    public CodeableConcept addJurisdiction() { //3
952      CodeableConcept t = new CodeableConcept();
953      if (this.jurisdiction == null)
954        this.jurisdiction = new ArrayList<CodeableConcept>();
955      this.jurisdiction.add(t);
956      return t;
957    }
958
959    public Evidence addJurisdiction(CodeableConcept t) { //3
960      if (t == null)
961        return this;
962      if (this.jurisdiction == null)
963        this.jurisdiction = new ArrayList<CodeableConcept>();
964      this.jurisdiction.add(t);
965      return this;
966    }
967
968    /**
969     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist
970     */
971    public CodeableConcept getJurisdictionFirstRep() { 
972      if (getJurisdiction().isEmpty()) {
973        addJurisdiction();
974      }
975      return getJurisdiction().get(0);
976    }
977
978    /**
979     * @return {@link #copyright} (A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
980     */
981    public MarkdownType getCopyrightElement() { 
982      if (this.copyright == null)
983        if (Configuration.errorOnAutoCreate())
984          throw new Error("Attempt to auto-create Evidence.copyright");
985        else if (Configuration.doAutoCreate())
986          this.copyright = new MarkdownType(); // bb
987      return this.copyright;
988    }
989
990    public boolean hasCopyrightElement() { 
991      return this.copyright != null && !this.copyright.isEmpty();
992    }
993
994    public boolean hasCopyright() { 
995      return this.copyright != null && !this.copyright.isEmpty();
996    }
997
998    /**
999     * @param value {@link #copyright} (A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
1000     */
1001    public Evidence setCopyrightElement(MarkdownType value) { 
1002      this.copyright = value;
1003      return this;
1004    }
1005
1006    /**
1007     * @return A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.
1008     */
1009    public String getCopyright() { 
1010      return this.copyright == null ? null : this.copyright.getValue();
1011    }
1012
1013    /**
1014     * @param value A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.
1015     */
1016    public Evidence setCopyright(String value) { 
1017      if (value == null)
1018        this.copyright = null;
1019      else {
1020        if (this.copyright == null)
1021          this.copyright = new MarkdownType();
1022        this.copyright.setValue(value);
1023      }
1024      return this;
1025    }
1026
1027    /**
1028     * @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
1029     */
1030    public DateType getApprovalDateElement() { 
1031      if (this.approvalDate == null)
1032        if (Configuration.errorOnAutoCreate())
1033          throw new Error("Attempt to auto-create Evidence.approvalDate");
1034        else if (Configuration.doAutoCreate())
1035          this.approvalDate = new DateType(); // bb
1036      return this.approvalDate;
1037    }
1038
1039    public boolean hasApprovalDateElement() { 
1040      return this.approvalDate != null && !this.approvalDate.isEmpty();
1041    }
1042
1043    public boolean hasApprovalDate() { 
1044      return this.approvalDate != null && !this.approvalDate.isEmpty();
1045    }
1046
1047    /**
1048     * @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
1049     */
1050    public Evidence setApprovalDateElement(DateType value) { 
1051      this.approvalDate = value;
1052      return this;
1053    }
1054
1055    /**
1056     * @return The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.
1057     */
1058    public Date getApprovalDate() { 
1059      return this.approvalDate == null ? null : this.approvalDate.getValue();
1060    }
1061
1062    /**
1063     * @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.
1064     */
1065    public Evidence setApprovalDate(Date value) { 
1066      if (value == null)
1067        this.approvalDate = null;
1068      else {
1069        if (this.approvalDate == null)
1070          this.approvalDate = new DateType();
1071        this.approvalDate.setValue(value);
1072      }
1073      return this;
1074    }
1075
1076    /**
1077     * @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
1078     */
1079    public DateType getLastReviewDateElement() { 
1080      if (this.lastReviewDate == null)
1081        if (Configuration.errorOnAutoCreate())
1082          throw new Error("Attempt to auto-create Evidence.lastReviewDate");
1083        else if (Configuration.doAutoCreate())
1084          this.lastReviewDate = new DateType(); // bb
1085      return this.lastReviewDate;
1086    }
1087
1088    public boolean hasLastReviewDateElement() { 
1089      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
1090    }
1091
1092    public boolean hasLastReviewDate() { 
1093      return this.lastReviewDate != null && !this.lastReviewDate.isEmpty();
1094    }
1095
1096    /**
1097     * @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
1098     */
1099    public Evidence setLastReviewDateElement(DateType value) { 
1100      this.lastReviewDate = value;
1101      return this;
1102    }
1103
1104    /**
1105     * @return The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.
1106     */
1107    public Date getLastReviewDate() { 
1108      return this.lastReviewDate == null ? null : this.lastReviewDate.getValue();
1109    }
1110
1111    /**
1112     * @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.
1113     */
1114    public Evidence setLastReviewDate(Date value) { 
1115      if (value == null)
1116        this.lastReviewDate = null;
1117      else {
1118        if (this.lastReviewDate == null)
1119          this.lastReviewDate = new DateType();
1120        this.lastReviewDate.setValue(value);
1121      }
1122      return this;
1123    }
1124
1125    /**
1126     * @return {@link #effectivePeriod} (The period during which the evidence content was or is planned to be in active use.)
1127     */
1128    public Period getEffectivePeriod() { 
1129      if (this.effectivePeriod == null)
1130        if (Configuration.errorOnAutoCreate())
1131          throw new Error("Attempt to auto-create Evidence.effectivePeriod");
1132        else if (Configuration.doAutoCreate())
1133          this.effectivePeriod = new Period(); // cc
1134      return this.effectivePeriod;
1135    }
1136
1137    public boolean hasEffectivePeriod() { 
1138      return this.effectivePeriod != null && !this.effectivePeriod.isEmpty();
1139    }
1140
1141    /**
1142     * @param value {@link #effectivePeriod} (The period during which the evidence content was or is planned to be in active use.)
1143     */
1144    public Evidence setEffectivePeriod(Period value) { 
1145      this.effectivePeriod = value;
1146      return this;
1147    }
1148
1149    /**
1150     * @return {@link #topic} (Descriptive topics related to the content of the Evidence. Topics provide a high-level categorization grouping types of Evidences that can be useful for filtering and searching.)
1151     */
1152    public List<CodeableConcept> getTopic() { 
1153      if (this.topic == null)
1154        this.topic = new ArrayList<CodeableConcept>();
1155      return this.topic;
1156    }
1157
1158    /**
1159     * @return Returns a reference to <code>this</code> for easy method chaining
1160     */
1161    public Evidence setTopic(List<CodeableConcept> theTopic) { 
1162      this.topic = theTopic;
1163      return this;
1164    }
1165
1166    public boolean hasTopic() { 
1167      if (this.topic == null)
1168        return false;
1169      for (CodeableConcept item : this.topic)
1170        if (!item.isEmpty())
1171          return true;
1172      return false;
1173    }
1174
1175    public CodeableConcept addTopic() { //3
1176      CodeableConcept t = new CodeableConcept();
1177      if (this.topic == null)
1178        this.topic = new ArrayList<CodeableConcept>();
1179      this.topic.add(t);
1180      return t;
1181    }
1182
1183    public Evidence addTopic(CodeableConcept t) { //3
1184      if (t == null)
1185        return this;
1186      if (this.topic == null)
1187        this.topic = new ArrayList<CodeableConcept>();
1188      this.topic.add(t);
1189      return this;
1190    }
1191
1192    /**
1193     * @return The first repetition of repeating field {@link #topic}, creating it if it does not already exist
1194     */
1195    public CodeableConcept getTopicFirstRep() { 
1196      if (getTopic().isEmpty()) {
1197        addTopic();
1198      }
1199      return getTopic().get(0);
1200    }
1201
1202    /**
1203     * @return {@link #author} (An individiual or organization primarily involved in the creation and maintenance of the content.)
1204     */
1205    public List<ContactDetail> getAuthor() { 
1206      if (this.author == null)
1207        this.author = new ArrayList<ContactDetail>();
1208      return this.author;
1209    }
1210
1211    /**
1212     * @return Returns a reference to <code>this</code> for easy method chaining
1213     */
1214    public Evidence setAuthor(List<ContactDetail> theAuthor) { 
1215      this.author = theAuthor;
1216      return this;
1217    }
1218
1219    public boolean hasAuthor() { 
1220      if (this.author == null)
1221        return false;
1222      for (ContactDetail item : this.author)
1223        if (!item.isEmpty())
1224          return true;
1225      return false;
1226    }
1227
1228    public ContactDetail addAuthor() { //3
1229      ContactDetail t = new ContactDetail();
1230      if (this.author == null)
1231        this.author = new ArrayList<ContactDetail>();
1232      this.author.add(t);
1233      return t;
1234    }
1235
1236    public Evidence addAuthor(ContactDetail t) { //3
1237      if (t == null)
1238        return this;
1239      if (this.author == null)
1240        this.author = new ArrayList<ContactDetail>();
1241      this.author.add(t);
1242      return this;
1243    }
1244
1245    /**
1246     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist
1247     */
1248    public ContactDetail getAuthorFirstRep() { 
1249      if (getAuthor().isEmpty()) {
1250        addAuthor();
1251      }
1252      return getAuthor().get(0);
1253    }
1254
1255    /**
1256     * @return {@link #editor} (An individual or organization primarily responsible for internal coherence of the content.)
1257     */
1258    public List<ContactDetail> getEditor() { 
1259      if (this.editor == null)
1260        this.editor = new ArrayList<ContactDetail>();
1261      return this.editor;
1262    }
1263
1264    /**
1265     * @return Returns a reference to <code>this</code> for easy method chaining
1266     */
1267    public Evidence setEditor(List<ContactDetail> theEditor) { 
1268      this.editor = theEditor;
1269      return this;
1270    }
1271
1272    public boolean hasEditor() { 
1273      if (this.editor == null)
1274        return false;
1275      for (ContactDetail item : this.editor)
1276        if (!item.isEmpty())
1277          return true;
1278      return false;
1279    }
1280
1281    public ContactDetail addEditor() { //3
1282      ContactDetail t = new ContactDetail();
1283      if (this.editor == null)
1284        this.editor = new ArrayList<ContactDetail>();
1285      this.editor.add(t);
1286      return t;
1287    }
1288
1289    public Evidence addEditor(ContactDetail t) { //3
1290      if (t == null)
1291        return this;
1292      if (this.editor == null)
1293        this.editor = new ArrayList<ContactDetail>();
1294      this.editor.add(t);
1295      return this;
1296    }
1297
1298    /**
1299     * @return The first repetition of repeating field {@link #editor}, creating it if it does not already exist
1300     */
1301    public ContactDetail getEditorFirstRep() { 
1302      if (getEditor().isEmpty()) {
1303        addEditor();
1304      }
1305      return getEditor().get(0);
1306    }
1307
1308    /**
1309     * @return {@link #reviewer} (An individual or organization primarily responsible for review of some aspect of the content.)
1310     */
1311    public List<ContactDetail> getReviewer() { 
1312      if (this.reviewer == null)
1313        this.reviewer = new ArrayList<ContactDetail>();
1314      return this.reviewer;
1315    }
1316
1317    /**
1318     * @return Returns a reference to <code>this</code> for easy method chaining
1319     */
1320    public Evidence setReviewer(List<ContactDetail> theReviewer) { 
1321      this.reviewer = theReviewer;
1322      return this;
1323    }
1324
1325    public boolean hasReviewer() { 
1326      if (this.reviewer == null)
1327        return false;
1328      for (ContactDetail item : this.reviewer)
1329        if (!item.isEmpty())
1330          return true;
1331      return false;
1332    }
1333
1334    public ContactDetail addReviewer() { //3
1335      ContactDetail t = new ContactDetail();
1336      if (this.reviewer == null)
1337        this.reviewer = new ArrayList<ContactDetail>();
1338      this.reviewer.add(t);
1339      return t;
1340    }
1341
1342    public Evidence addReviewer(ContactDetail t) { //3
1343      if (t == null)
1344        return this;
1345      if (this.reviewer == null)
1346        this.reviewer = new ArrayList<ContactDetail>();
1347      this.reviewer.add(t);
1348      return this;
1349    }
1350
1351    /**
1352     * @return The first repetition of repeating field {@link #reviewer}, creating it if it does not already exist
1353     */
1354    public ContactDetail getReviewerFirstRep() { 
1355      if (getReviewer().isEmpty()) {
1356        addReviewer();
1357      }
1358      return getReviewer().get(0);
1359    }
1360
1361    /**
1362     * @return {@link #endorser} (An individual or organization responsible for officially endorsing the content for use in some setting.)
1363     */
1364    public List<ContactDetail> getEndorser() { 
1365      if (this.endorser == null)
1366        this.endorser = new ArrayList<ContactDetail>();
1367      return this.endorser;
1368    }
1369
1370    /**
1371     * @return Returns a reference to <code>this</code> for easy method chaining
1372     */
1373    public Evidence setEndorser(List<ContactDetail> theEndorser) { 
1374      this.endorser = theEndorser;
1375      return this;
1376    }
1377
1378    public boolean hasEndorser() { 
1379      if (this.endorser == null)
1380        return false;
1381      for (ContactDetail item : this.endorser)
1382        if (!item.isEmpty())
1383          return true;
1384      return false;
1385    }
1386
1387    public ContactDetail addEndorser() { //3
1388      ContactDetail t = new ContactDetail();
1389      if (this.endorser == null)
1390        this.endorser = new ArrayList<ContactDetail>();
1391      this.endorser.add(t);
1392      return t;
1393    }
1394
1395    public Evidence addEndorser(ContactDetail t) { //3
1396      if (t == null)
1397        return this;
1398      if (this.endorser == null)
1399        this.endorser = new ArrayList<ContactDetail>();
1400      this.endorser.add(t);
1401      return this;
1402    }
1403
1404    /**
1405     * @return The first repetition of repeating field {@link #endorser}, creating it if it does not already exist
1406     */
1407    public ContactDetail getEndorserFirstRep() { 
1408      if (getEndorser().isEmpty()) {
1409        addEndorser();
1410      }
1411      return getEndorser().get(0);
1412    }
1413
1414    /**
1415     * @return {@link #relatedArtifact} (Related artifacts such as additional documentation, justification, or bibliographic references.)
1416     */
1417    public List<RelatedArtifact> getRelatedArtifact() { 
1418      if (this.relatedArtifact == null)
1419        this.relatedArtifact = new ArrayList<RelatedArtifact>();
1420      return this.relatedArtifact;
1421    }
1422
1423    /**
1424     * @return Returns a reference to <code>this</code> for easy method chaining
1425     */
1426    public Evidence setRelatedArtifact(List<RelatedArtifact> theRelatedArtifact) { 
1427      this.relatedArtifact = theRelatedArtifact;
1428      return this;
1429    }
1430
1431    public boolean hasRelatedArtifact() { 
1432      if (this.relatedArtifact == null)
1433        return false;
1434      for (RelatedArtifact item : this.relatedArtifact)
1435        if (!item.isEmpty())
1436          return true;
1437      return false;
1438    }
1439
1440    public RelatedArtifact addRelatedArtifact() { //3
1441      RelatedArtifact t = new RelatedArtifact();
1442      if (this.relatedArtifact == null)
1443        this.relatedArtifact = new ArrayList<RelatedArtifact>();
1444      this.relatedArtifact.add(t);
1445      return t;
1446    }
1447
1448    public Evidence addRelatedArtifact(RelatedArtifact t) { //3
1449      if (t == null)
1450        return this;
1451      if (this.relatedArtifact == null)
1452        this.relatedArtifact = new ArrayList<RelatedArtifact>();
1453      this.relatedArtifact.add(t);
1454      return this;
1455    }
1456
1457    /**
1458     * @return The first repetition of repeating field {@link #relatedArtifact}, creating it if it does not already exist
1459     */
1460    public RelatedArtifact getRelatedArtifactFirstRep() { 
1461      if (getRelatedArtifact().isEmpty()) {
1462        addRelatedArtifact();
1463      }
1464      return getRelatedArtifact().get(0);
1465    }
1466
1467    /**
1468     * @return {@link #exposureBackground} (A reference to a EvidenceVariable resource that defines the population for the research.)
1469     */
1470    public Reference getExposureBackground() { 
1471      if (this.exposureBackground == null)
1472        if (Configuration.errorOnAutoCreate())
1473          throw new Error("Attempt to auto-create Evidence.exposureBackground");
1474        else if (Configuration.doAutoCreate())
1475          this.exposureBackground = new Reference(); // cc
1476      return this.exposureBackground;
1477    }
1478
1479    public boolean hasExposureBackground() { 
1480      return this.exposureBackground != null && !this.exposureBackground.isEmpty();
1481    }
1482
1483    /**
1484     * @param value {@link #exposureBackground} (A reference to a EvidenceVariable resource that defines the population for the research.)
1485     */
1486    public Evidence setExposureBackground(Reference value) { 
1487      this.exposureBackground = value;
1488      return this;
1489    }
1490
1491    /**
1492     * @return {@link #exposureBackground} 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.)
1493     */
1494    public EvidenceVariable getExposureBackgroundTarget() { 
1495      if (this.exposureBackgroundTarget == null)
1496        if (Configuration.errorOnAutoCreate())
1497          throw new Error("Attempt to auto-create Evidence.exposureBackground");
1498        else if (Configuration.doAutoCreate())
1499          this.exposureBackgroundTarget = new EvidenceVariable(); // aa
1500      return this.exposureBackgroundTarget;
1501    }
1502
1503    /**
1504     * @param value {@link #exposureBackground} 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.)
1505     */
1506    public Evidence setExposureBackgroundTarget(EvidenceVariable value) { 
1507      this.exposureBackgroundTarget = value;
1508      return this;
1509    }
1510
1511    /**
1512     * @return {@link #exposureVariant} (A reference to a EvidenceVariable resource that defines the exposure for the research.)
1513     */
1514    public List<Reference> getExposureVariant() { 
1515      if (this.exposureVariant == null)
1516        this.exposureVariant = new ArrayList<Reference>();
1517      return this.exposureVariant;
1518    }
1519
1520    /**
1521     * @return Returns a reference to <code>this</code> for easy method chaining
1522     */
1523    public Evidence setExposureVariant(List<Reference> theExposureVariant) { 
1524      this.exposureVariant = theExposureVariant;
1525      return this;
1526    }
1527
1528    public boolean hasExposureVariant() { 
1529      if (this.exposureVariant == null)
1530        return false;
1531      for (Reference item : this.exposureVariant)
1532        if (!item.isEmpty())
1533          return true;
1534      return false;
1535    }
1536
1537    public Reference addExposureVariant() { //3
1538      Reference t = new Reference();
1539      if (this.exposureVariant == null)
1540        this.exposureVariant = new ArrayList<Reference>();
1541      this.exposureVariant.add(t);
1542      return t;
1543    }
1544
1545    public Evidence addExposureVariant(Reference t) { //3
1546      if (t == null)
1547        return this;
1548      if (this.exposureVariant == null)
1549        this.exposureVariant = new ArrayList<Reference>();
1550      this.exposureVariant.add(t);
1551      return this;
1552    }
1553
1554    /**
1555     * @return The first repetition of repeating field {@link #exposureVariant}, creating it if it does not already exist
1556     */
1557    public Reference getExposureVariantFirstRep() { 
1558      if (getExposureVariant().isEmpty()) {
1559        addExposureVariant();
1560      }
1561      return getExposureVariant().get(0);
1562    }
1563
1564    /**
1565     * @deprecated Use Reference#setResource(IBaseResource) instead
1566     */
1567    @Deprecated
1568    public List<EvidenceVariable> getExposureVariantTarget() { 
1569      if (this.exposureVariantTarget == null)
1570        this.exposureVariantTarget = new ArrayList<EvidenceVariable>();
1571      return this.exposureVariantTarget;
1572    }
1573
1574    /**
1575     * @deprecated Use Reference#setResource(IBaseResource) instead
1576     */
1577    @Deprecated
1578    public EvidenceVariable addExposureVariantTarget() { 
1579      EvidenceVariable r = new EvidenceVariable();
1580      if (this.exposureVariantTarget == null)
1581        this.exposureVariantTarget = new ArrayList<EvidenceVariable>();
1582      this.exposureVariantTarget.add(r);
1583      return r;
1584    }
1585
1586    /**
1587     * @return {@link #outcome} (A reference to a EvidenceVariable resomece that defines the outcome for the research.)
1588     */
1589    public List<Reference> getOutcome() { 
1590      if (this.outcome == null)
1591        this.outcome = new ArrayList<Reference>();
1592      return this.outcome;
1593    }
1594
1595    /**
1596     * @return Returns a reference to <code>this</code> for easy method chaining
1597     */
1598    public Evidence setOutcome(List<Reference> theOutcome) { 
1599      this.outcome = theOutcome;
1600      return this;
1601    }
1602
1603    public boolean hasOutcome() { 
1604      if (this.outcome == null)
1605        return false;
1606      for (Reference item : this.outcome)
1607        if (!item.isEmpty())
1608          return true;
1609      return false;
1610    }
1611
1612    public Reference addOutcome() { //3
1613      Reference t = new Reference();
1614      if (this.outcome == null)
1615        this.outcome = new ArrayList<Reference>();
1616      this.outcome.add(t);
1617      return t;
1618    }
1619
1620    public Evidence addOutcome(Reference t) { //3
1621      if (t == null)
1622        return this;
1623      if (this.outcome == null)
1624        this.outcome = new ArrayList<Reference>();
1625      this.outcome.add(t);
1626      return this;
1627    }
1628
1629    /**
1630     * @return The first repetition of repeating field {@link #outcome}, creating it if it does not already exist
1631     */
1632    public Reference getOutcomeFirstRep() { 
1633      if (getOutcome().isEmpty()) {
1634        addOutcome();
1635      }
1636      return getOutcome().get(0);
1637    }
1638
1639    /**
1640     * @deprecated Use Reference#setResource(IBaseResource) instead
1641     */
1642    @Deprecated
1643    public List<EvidenceVariable> getOutcomeTarget() { 
1644      if (this.outcomeTarget == null)
1645        this.outcomeTarget = new ArrayList<EvidenceVariable>();
1646      return this.outcomeTarget;
1647    }
1648
1649    /**
1650     * @deprecated Use Reference#setResource(IBaseResource) instead
1651     */
1652    @Deprecated
1653    public EvidenceVariable addOutcomeTarget() { 
1654      EvidenceVariable r = new EvidenceVariable();
1655      if (this.outcomeTarget == null)
1656        this.outcomeTarget = new ArrayList<EvidenceVariable>();
1657      this.outcomeTarget.add(r);
1658      return r;
1659    }
1660
1661      protected void listChildren(List<Property> children) {
1662        super.listChildren(children);
1663        children.add(new Property("url", "uri", "An absolute URI that is used to identify this evidence 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 evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers.", 0, 1, url));
1664        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this evidence when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
1665        children.add(new Property("version", "string", "The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version));
1666        children.add(new Property("name", "string", "A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
1667        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the evidence.", 0, 1, title));
1668        children.add(new Property("shortTitle", "string", "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.", 0, 1, shortTitle));
1669        children.add(new Property("subtitle", "string", "An explanatory or alternate title for the Evidence giving additional information about its content.", 0, 1, subtitle));
1670        children.add(new Property("status", "code", "The status of this evidence. Enables tracking the life-cycle of the content.", 0, 1, status));
1671        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the evidence 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 evidence changes.", 0, 1, date));
1672        children.add(new Property("publisher", "string", "The name of the organization or individual that published the evidence.", 0, 1, publisher));
1673        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));
1674        children.add(new Property("description", "markdown", "A free text natural language description of the evidence from a consumer's perspective.", 0, 1, description));
1675        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));
1676        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 evidence instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
1677        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the evidence is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
1678        children.add(new Property("copyright", "markdown", "A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.", 0, 1, copyright));
1679        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));
1680        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));
1681        children.add(new Property("effectivePeriod", "Period", "The period during which the evidence content was or is planned to be in active use.", 0, 1, effectivePeriod));
1682        children.add(new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the Evidence. Topics provide a high-level categorization grouping types of Evidences that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic));
1683        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));
1684        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));
1685        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));
1686        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));
1687        children.add(new Property("relatedArtifact", "RelatedArtifact", "Related artifacts such as additional documentation, justification, or bibliographic references.", 0, java.lang.Integer.MAX_VALUE, relatedArtifact));
1688        children.add(new Property("exposureBackground", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the population for the research.", 0, 1, exposureBackground));
1689        children.add(new Property("exposureVariant", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the exposure for the research.", 0, java.lang.Integer.MAX_VALUE, exposureVariant));
1690        children.add(new Property("outcome", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resomece that defines the outcome for the research.", 0, java.lang.Integer.MAX_VALUE, outcome));
1691      }
1692
1693      @Override
1694      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1695        switch (_hash) {
1696        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this evidence 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 evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers.", 0, 1, url);
1697        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this evidence when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
1698        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts.", 0, 1, version);
1699        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
1700        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the evidence.", 0, 1, title);
1701        case 1555503932: /*shortTitle*/  return new Property("shortTitle", "string", "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary.", 0, 1, shortTitle);
1702        case -2060497896: /*subtitle*/  return new Property("subtitle", "string", "An explanatory or alternate title for the Evidence giving additional information about its content.", 0, 1, subtitle);
1703        case -892481550: /*status*/  return new Property("status", "code", "The status of this evidence. Enables tracking the life-cycle of the content.", 0, 1, status);
1704        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the evidence 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 evidence changes.", 0, 1, date);
1705        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the evidence.", 0, 1, publisher);
1706        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);
1707        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the evidence from a consumer's perspective.", 0, 1, description);
1708        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);
1709        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 evidence instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
1710        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the evidence is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
1711        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence.", 0, 1, copyright);
1712        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);
1713        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);
1714        case -403934648: /*effectivePeriod*/  return new Property("effectivePeriod", "Period", "The period during which the evidence content was or is planned to be in active use.", 0, 1, effectivePeriod);
1715        case 110546223: /*topic*/  return new Property("topic", "CodeableConcept", "Descriptive topics related to the content of the Evidence. Topics provide a high-level categorization grouping types of Evidences that can be useful for filtering and searching.", 0, java.lang.Integer.MAX_VALUE, topic);
1716        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);
1717        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);
1718        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);
1719        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);
1720        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);
1721        case -832155243: /*exposureBackground*/  return new Property("exposureBackground", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the population for the research.", 0, 1, exposureBackground);
1722        case -19675778: /*exposureVariant*/  return new Property("exposureVariant", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resource that defines the exposure for the research.", 0, java.lang.Integer.MAX_VALUE, exposureVariant);
1723        case -1106507950: /*outcome*/  return new Property("outcome", "Reference(EvidenceVariable)", "A reference to a EvidenceVariable resomece that defines the outcome for the research.", 0, java.lang.Integer.MAX_VALUE, outcome);
1724        default: return super.getNamedProperty(_hash, _name, _checkValid);
1725        }
1726
1727      }
1728
1729      @Override
1730      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1731        switch (hash) {
1732        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
1733        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1734        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
1735        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
1736        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
1737        case 1555503932: /*shortTitle*/ return this.shortTitle == null ? new Base[0] : new Base[] {this.shortTitle}; // StringType
1738        case -2060497896: /*subtitle*/ return this.subtitle == null ? new Base[0] : new Base[] {this.subtitle}; // StringType
1739        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
1740        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
1741        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
1742        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
1743        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1744        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1745        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
1746        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
1747        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
1748        case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType
1749        case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType
1750        case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period
1751        case 110546223: /*topic*/ return this.topic == null ? new Base[0] : this.topic.toArray(new Base[this.topic.size()]); // CodeableConcept
1752        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // ContactDetail
1753        case -1307827859: /*editor*/ return this.editor == null ? new Base[0] : this.editor.toArray(new Base[this.editor.size()]); // ContactDetail
1754        case -261190139: /*reviewer*/ return this.reviewer == null ? new Base[0] : this.reviewer.toArray(new Base[this.reviewer.size()]); // ContactDetail
1755        case 1740277666: /*endorser*/ return this.endorser == null ? new Base[0] : this.endorser.toArray(new Base[this.endorser.size()]); // ContactDetail
1756        case 666807069: /*relatedArtifact*/ return this.relatedArtifact == null ? new Base[0] : this.relatedArtifact.toArray(new Base[this.relatedArtifact.size()]); // RelatedArtifact
1757        case -832155243: /*exposureBackground*/ return this.exposureBackground == null ? new Base[0] : new Base[] {this.exposureBackground}; // Reference
1758        case -19675778: /*exposureVariant*/ return this.exposureVariant == null ? new Base[0] : this.exposureVariant.toArray(new Base[this.exposureVariant.size()]); // Reference
1759        case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : this.outcome.toArray(new Base[this.outcome.size()]); // Reference
1760        default: return super.getProperty(hash, name, checkValid);
1761        }
1762
1763      }
1764
1765      @Override
1766      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1767        switch (hash) {
1768        case 116079: // url
1769          this.url = castToUri(value); // UriType
1770          return value;
1771        case -1618432855: // identifier
1772          this.getIdentifier().add(castToIdentifier(value)); // Identifier
1773          return value;
1774        case 351608024: // version
1775          this.version = castToString(value); // StringType
1776          return value;
1777        case 3373707: // name
1778          this.name = castToString(value); // StringType
1779          return value;
1780        case 110371416: // title
1781          this.title = castToString(value); // StringType
1782          return value;
1783        case 1555503932: // shortTitle
1784          this.shortTitle = castToString(value); // StringType
1785          return value;
1786        case -2060497896: // subtitle
1787          this.subtitle = castToString(value); // StringType
1788          return value;
1789        case -892481550: // status
1790          value = new PublicationStatusEnumFactory().fromType(castToCode(value));
1791          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1792          return value;
1793        case 3076014: // date
1794          this.date = castToDateTime(value); // DateTimeType
1795          return value;
1796        case 1447404028: // publisher
1797          this.publisher = castToString(value); // StringType
1798          return value;
1799        case 951526432: // contact
1800          this.getContact().add(castToContactDetail(value)); // ContactDetail
1801          return value;
1802        case -1724546052: // description
1803          this.description = castToMarkdown(value); // MarkdownType
1804          return value;
1805        case 3387378: // note
1806          this.getNote().add(castToAnnotation(value)); // Annotation
1807          return value;
1808        case -669707736: // useContext
1809          this.getUseContext().add(castToUsageContext(value)); // UsageContext
1810          return value;
1811        case -507075711: // jurisdiction
1812          this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept
1813          return value;
1814        case 1522889671: // copyright
1815          this.copyright = castToMarkdown(value); // MarkdownType
1816          return value;
1817        case 223539345: // approvalDate
1818          this.approvalDate = castToDate(value); // DateType
1819          return value;
1820        case -1687512484: // lastReviewDate
1821          this.lastReviewDate = castToDate(value); // DateType
1822          return value;
1823        case -403934648: // effectivePeriod
1824          this.effectivePeriod = castToPeriod(value); // Period
1825          return value;
1826        case 110546223: // topic
1827          this.getTopic().add(castToCodeableConcept(value)); // CodeableConcept
1828          return value;
1829        case -1406328437: // author
1830          this.getAuthor().add(castToContactDetail(value)); // ContactDetail
1831          return value;
1832        case -1307827859: // editor
1833          this.getEditor().add(castToContactDetail(value)); // ContactDetail
1834          return value;
1835        case -261190139: // reviewer
1836          this.getReviewer().add(castToContactDetail(value)); // ContactDetail
1837          return value;
1838        case 1740277666: // endorser
1839          this.getEndorser().add(castToContactDetail(value)); // ContactDetail
1840          return value;
1841        case 666807069: // relatedArtifact
1842          this.getRelatedArtifact().add(castToRelatedArtifact(value)); // RelatedArtifact
1843          return value;
1844        case -832155243: // exposureBackground
1845          this.exposureBackground = castToReference(value); // Reference
1846          return value;
1847        case -19675778: // exposureVariant
1848          this.getExposureVariant().add(castToReference(value)); // Reference
1849          return value;
1850        case -1106507950: // outcome
1851          this.getOutcome().add(castToReference(value)); // Reference
1852          return value;
1853        default: return super.setProperty(hash, name, value);
1854        }
1855
1856      }
1857
1858      @Override
1859      public Base setProperty(String name, Base value) throws FHIRException {
1860        if (name.equals("url")) {
1861          this.url = castToUri(value); // UriType
1862        } else if (name.equals("identifier")) {
1863          this.getIdentifier().add(castToIdentifier(value));
1864        } else if (name.equals("version")) {
1865          this.version = castToString(value); // StringType
1866        } else if (name.equals("name")) {
1867          this.name = castToString(value); // StringType
1868        } else if (name.equals("title")) {
1869          this.title = castToString(value); // StringType
1870        } else if (name.equals("shortTitle")) {
1871          this.shortTitle = castToString(value); // StringType
1872        } else if (name.equals("subtitle")) {
1873          this.subtitle = castToString(value); // StringType
1874        } else if (name.equals("status")) {
1875          value = new PublicationStatusEnumFactory().fromType(castToCode(value));
1876          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1877        } else if (name.equals("date")) {
1878          this.date = castToDateTime(value); // DateTimeType
1879        } else if (name.equals("publisher")) {
1880          this.publisher = castToString(value); // StringType
1881        } else if (name.equals("contact")) {
1882          this.getContact().add(castToContactDetail(value));
1883        } else if (name.equals("description")) {
1884          this.description = castToMarkdown(value); // MarkdownType
1885        } else if (name.equals("note")) {
1886          this.getNote().add(castToAnnotation(value));
1887        } else if (name.equals("useContext")) {
1888          this.getUseContext().add(castToUsageContext(value));
1889        } else if (name.equals("jurisdiction")) {
1890          this.getJurisdiction().add(castToCodeableConcept(value));
1891        } else if (name.equals("copyright")) {
1892          this.copyright = castToMarkdown(value); // MarkdownType
1893        } else if (name.equals("approvalDate")) {
1894          this.approvalDate = castToDate(value); // DateType
1895        } else if (name.equals("lastReviewDate")) {
1896          this.lastReviewDate = castToDate(value); // DateType
1897        } else if (name.equals("effectivePeriod")) {
1898          this.effectivePeriod = castToPeriod(value); // Period
1899        } else if (name.equals("topic")) {
1900          this.getTopic().add(castToCodeableConcept(value));
1901        } else if (name.equals("author")) {
1902          this.getAuthor().add(castToContactDetail(value));
1903        } else if (name.equals("editor")) {
1904          this.getEditor().add(castToContactDetail(value));
1905        } else if (name.equals("reviewer")) {
1906          this.getReviewer().add(castToContactDetail(value));
1907        } else if (name.equals("endorser")) {
1908          this.getEndorser().add(castToContactDetail(value));
1909        } else if (name.equals("relatedArtifact")) {
1910          this.getRelatedArtifact().add(castToRelatedArtifact(value));
1911        } else if (name.equals("exposureBackground")) {
1912          this.exposureBackground = castToReference(value); // Reference
1913        } else if (name.equals("exposureVariant")) {
1914          this.getExposureVariant().add(castToReference(value));
1915        } else if (name.equals("outcome")) {
1916          this.getOutcome().add(castToReference(value));
1917        } else
1918          return super.setProperty(name, value);
1919        return value;
1920      }
1921
1922      @Override
1923      public Base makeProperty(int hash, String name) throws FHIRException {
1924        switch (hash) {
1925        case 116079:  return getUrlElement();
1926        case -1618432855:  return addIdentifier(); 
1927        case 351608024:  return getVersionElement();
1928        case 3373707:  return getNameElement();
1929        case 110371416:  return getTitleElement();
1930        case 1555503932:  return getShortTitleElement();
1931        case -2060497896:  return getSubtitleElement();
1932        case -892481550:  return getStatusElement();
1933        case 3076014:  return getDateElement();
1934        case 1447404028:  return getPublisherElement();
1935        case 951526432:  return addContact(); 
1936        case -1724546052:  return getDescriptionElement();
1937        case 3387378:  return addNote(); 
1938        case -669707736:  return addUseContext(); 
1939        case -507075711:  return addJurisdiction(); 
1940        case 1522889671:  return getCopyrightElement();
1941        case 223539345:  return getApprovalDateElement();
1942        case -1687512484:  return getLastReviewDateElement();
1943        case -403934648:  return getEffectivePeriod(); 
1944        case 110546223:  return addTopic(); 
1945        case -1406328437:  return addAuthor(); 
1946        case -1307827859:  return addEditor(); 
1947        case -261190139:  return addReviewer(); 
1948        case 1740277666:  return addEndorser(); 
1949        case 666807069:  return addRelatedArtifact(); 
1950        case -832155243:  return getExposureBackground(); 
1951        case -19675778:  return addExposureVariant(); 
1952        case -1106507950:  return addOutcome(); 
1953        default: return super.makeProperty(hash, name);
1954        }
1955
1956      }
1957
1958      @Override
1959      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1960        switch (hash) {
1961        case 116079: /*url*/ return new String[] {"uri"};
1962        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1963        case 351608024: /*version*/ return new String[] {"string"};
1964        case 3373707: /*name*/ return new String[] {"string"};
1965        case 110371416: /*title*/ return new String[] {"string"};
1966        case 1555503932: /*shortTitle*/ return new String[] {"string"};
1967        case -2060497896: /*subtitle*/ return new String[] {"string"};
1968        case -892481550: /*status*/ return new String[] {"code"};
1969        case 3076014: /*date*/ return new String[] {"dateTime"};
1970        case 1447404028: /*publisher*/ return new String[] {"string"};
1971        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
1972        case -1724546052: /*description*/ return new String[] {"markdown"};
1973        case 3387378: /*note*/ return new String[] {"Annotation"};
1974        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
1975        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
1976        case 1522889671: /*copyright*/ return new String[] {"markdown"};
1977        case 223539345: /*approvalDate*/ return new String[] {"date"};
1978        case -1687512484: /*lastReviewDate*/ return new String[] {"date"};
1979        case -403934648: /*effectivePeriod*/ return new String[] {"Period"};
1980        case 110546223: /*topic*/ return new String[] {"CodeableConcept"};
1981        case -1406328437: /*author*/ return new String[] {"ContactDetail"};
1982        case -1307827859: /*editor*/ return new String[] {"ContactDetail"};
1983        case -261190139: /*reviewer*/ return new String[] {"ContactDetail"};
1984        case 1740277666: /*endorser*/ return new String[] {"ContactDetail"};
1985        case 666807069: /*relatedArtifact*/ return new String[] {"RelatedArtifact"};
1986        case -832155243: /*exposureBackground*/ return new String[] {"Reference"};
1987        case -19675778: /*exposureVariant*/ return new String[] {"Reference"};
1988        case -1106507950: /*outcome*/ return new String[] {"Reference"};
1989        default: return super.getTypesForProperty(hash, name);
1990        }
1991
1992      }
1993
1994      @Override
1995      public Base addChild(String name) throws FHIRException {
1996        if (name.equals("url")) {
1997          throw new FHIRException("Cannot call addChild on a primitive type Evidence.url");
1998        }
1999        else if (name.equals("identifier")) {
2000          return addIdentifier();
2001        }
2002        else if (name.equals("version")) {
2003          throw new FHIRException("Cannot call addChild on a primitive type Evidence.version");
2004        }
2005        else if (name.equals("name")) {
2006          throw new FHIRException("Cannot call addChild on a primitive type Evidence.name");
2007        }
2008        else if (name.equals("title")) {
2009          throw new FHIRException("Cannot call addChild on a primitive type Evidence.title");
2010        }
2011        else if (name.equals("shortTitle")) {
2012          throw new FHIRException("Cannot call addChild on a primitive type Evidence.shortTitle");
2013        }
2014        else if (name.equals("subtitle")) {
2015          throw new FHIRException("Cannot call addChild on a primitive type Evidence.subtitle");
2016        }
2017        else if (name.equals("status")) {
2018          throw new FHIRException("Cannot call addChild on a primitive type Evidence.status");
2019        }
2020        else if (name.equals("date")) {
2021          throw new FHIRException("Cannot call addChild on a primitive type Evidence.date");
2022        }
2023        else if (name.equals("publisher")) {
2024          throw new FHIRException("Cannot call addChild on a primitive type Evidence.publisher");
2025        }
2026        else if (name.equals("contact")) {
2027          return addContact();
2028        }
2029        else if (name.equals("description")) {
2030          throw new FHIRException("Cannot call addChild on a primitive type Evidence.description");
2031        }
2032        else if (name.equals("note")) {
2033          return addNote();
2034        }
2035        else if (name.equals("useContext")) {
2036          return addUseContext();
2037        }
2038        else if (name.equals("jurisdiction")) {
2039          return addJurisdiction();
2040        }
2041        else if (name.equals("copyright")) {
2042          throw new FHIRException("Cannot call addChild on a primitive type Evidence.copyright");
2043        }
2044        else if (name.equals("approvalDate")) {
2045          throw new FHIRException("Cannot call addChild on a primitive type Evidence.approvalDate");
2046        }
2047        else if (name.equals("lastReviewDate")) {
2048          throw new FHIRException("Cannot call addChild on a primitive type Evidence.lastReviewDate");
2049        }
2050        else if (name.equals("effectivePeriod")) {
2051          this.effectivePeriod = new Period();
2052          return this.effectivePeriod;
2053        }
2054        else if (name.equals("topic")) {
2055          return addTopic();
2056        }
2057        else if (name.equals("author")) {
2058          return addAuthor();
2059        }
2060        else if (name.equals("editor")) {
2061          return addEditor();
2062        }
2063        else if (name.equals("reviewer")) {
2064          return addReviewer();
2065        }
2066        else if (name.equals("endorser")) {
2067          return addEndorser();
2068        }
2069        else if (name.equals("relatedArtifact")) {
2070          return addRelatedArtifact();
2071        }
2072        else if (name.equals("exposureBackground")) {
2073          this.exposureBackground = new Reference();
2074          return this.exposureBackground;
2075        }
2076        else if (name.equals("exposureVariant")) {
2077          return addExposureVariant();
2078        }
2079        else if (name.equals("outcome")) {
2080          return addOutcome();
2081        }
2082        else
2083          return super.addChild(name);
2084      }
2085
2086  public String fhirType() {
2087    return "Evidence";
2088
2089  }
2090
2091      public Evidence copy() {
2092        Evidence dst = new Evidence();
2093        copyValues(dst);
2094        dst.url = url == null ? null : url.copy();
2095        if (identifier != null) {
2096          dst.identifier = new ArrayList<Identifier>();
2097          for (Identifier i : identifier)
2098            dst.identifier.add(i.copy());
2099        };
2100        dst.version = version == null ? null : version.copy();
2101        dst.name = name == null ? null : name.copy();
2102        dst.title = title == null ? null : title.copy();
2103        dst.shortTitle = shortTitle == null ? null : shortTitle.copy();
2104        dst.subtitle = subtitle == null ? null : subtitle.copy();
2105        dst.status = status == null ? null : status.copy();
2106        dst.date = date == null ? null : date.copy();
2107        dst.publisher = publisher == null ? null : publisher.copy();
2108        if (contact != null) {
2109          dst.contact = new ArrayList<ContactDetail>();
2110          for (ContactDetail i : contact)
2111            dst.contact.add(i.copy());
2112        };
2113        dst.description = description == null ? null : description.copy();
2114        if (note != null) {
2115          dst.note = new ArrayList<Annotation>();
2116          for (Annotation i : note)
2117            dst.note.add(i.copy());
2118        };
2119        if (useContext != null) {
2120          dst.useContext = new ArrayList<UsageContext>();
2121          for (UsageContext i : useContext)
2122            dst.useContext.add(i.copy());
2123        };
2124        if (jurisdiction != null) {
2125          dst.jurisdiction = new ArrayList<CodeableConcept>();
2126          for (CodeableConcept i : jurisdiction)
2127            dst.jurisdiction.add(i.copy());
2128        };
2129        dst.copyright = copyright == null ? null : copyright.copy();
2130        dst.approvalDate = approvalDate == null ? null : approvalDate.copy();
2131        dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy();
2132        dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy();
2133        if (topic != null) {
2134          dst.topic = new ArrayList<CodeableConcept>();
2135          for (CodeableConcept i : topic)
2136            dst.topic.add(i.copy());
2137        };
2138        if (author != null) {
2139          dst.author = new ArrayList<ContactDetail>();
2140          for (ContactDetail i : author)
2141            dst.author.add(i.copy());
2142        };
2143        if (editor != null) {
2144          dst.editor = new ArrayList<ContactDetail>();
2145          for (ContactDetail i : editor)
2146            dst.editor.add(i.copy());
2147        };
2148        if (reviewer != null) {
2149          dst.reviewer = new ArrayList<ContactDetail>();
2150          for (ContactDetail i : reviewer)
2151            dst.reviewer.add(i.copy());
2152        };
2153        if (endorser != null) {
2154          dst.endorser = new ArrayList<ContactDetail>();
2155          for (ContactDetail i : endorser)
2156            dst.endorser.add(i.copy());
2157        };
2158        if (relatedArtifact != null) {
2159          dst.relatedArtifact = new ArrayList<RelatedArtifact>();
2160          for (RelatedArtifact i : relatedArtifact)
2161            dst.relatedArtifact.add(i.copy());
2162        };
2163        dst.exposureBackground = exposureBackground == null ? null : exposureBackground.copy();
2164        if (exposureVariant != null) {
2165          dst.exposureVariant = new ArrayList<Reference>();
2166          for (Reference i : exposureVariant)
2167            dst.exposureVariant.add(i.copy());
2168        };
2169        if (outcome != null) {
2170          dst.outcome = new ArrayList<Reference>();
2171          for (Reference i : outcome)
2172            dst.outcome.add(i.copy());
2173        };
2174        return dst;
2175      }
2176
2177      protected Evidence typedCopy() {
2178        return copy();
2179      }
2180
2181      @Override
2182      public boolean equalsDeep(Base other_) {
2183        if (!super.equalsDeep(other_))
2184          return false;
2185        if (!(other_ instanceof Evidence))
2186          return false;
2187        Evidence o = (Evidence) other_;
2188        return compareDeep(identifier, o.identifier, true) && compareDeep(shortTitle, o.shortTitle, true)
2189           && compareDeep(subtitle, o.subtitle, true) && compareDeep(note, o.note, true) && compareDeep(copyright, o.copyright, true)
2190           && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true)
2191           && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(topic, o.topic, true) && compareDeep(author, o.author, true)
2192           && compareDeep(editor, o.editor, true) && compareDeep(reviewer, o.reviewer, true) && compareDeep(endorser, o.endorser, true)
2193           && compareDeep(relatedArtifact, o.relatedArtifact, true) && compareDeep(exposureBackground, o.exposureBackground, true)
2194           && compareDeep(exposureVariant, o.exposureVariant, true) && compareDeep(outcome, o.outcome, true)
2195          ;
2196      }
2197
2198      @Override
2199      public boolean equalsShallow(Base other_) {
2200        if (!super.equalsShallow(other_))
2201          return false;
2202        if (!(other_ instanceof Evidence))
2203          return false;
2204        Evidence o = (Evidence) other_;
2205        return compareValues(shortTitle, o.shortTitle, true) && compareValues(subtitle, o.subtitle, true) && compareValues(copyright, o.copyright, true)
2206           && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true)
2207          ;
2208      }
2209
2210      public boolean isEmpty() {
2211        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, shortTitle, subtitle
2212          , note, copyright, approvalDate, lastReviewDate, effectivePeriod, topic, author
2213          , editor, reviewer, endorser, relatedArtifact, exposureBackground, exposureVariant
2214          , outcome);
2215      }
2216
2217  @Override
2218  public ResourceType getResourceType() {
2219    return ResourceType.Evidence;
2220   }
2221
2222 /**
2223   * Search parameter: <b>date</b>
2224   * <p>
2225   * Description: <b>The evidence publication date</b><br>
2226   * Type: <b>date</b><br>
2227   * Path: <b>Evidence.date</b><br>
2228   * </p>
2229   */
2230  @SearchParamDefinition(name="date", path="Evidence.date", description="The evidence publication date", type="date" )
2231  public static final String SP_DATE = "date";
2232 /**
2233   * <b>Fluent Client</b> search parameter constant for <b>date</b>
2234   * <p>
2235   * Description: <b>The evidence publication date</b><br>
2236   * Type: <b>date</b><br>
2237   * Path: <b>Evidence.date</b><br>
2238   * </p>
2239   */
2240  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
2241
2242 /**
2243   * Search parameter: <b>identifier</b>
2244   * <p>
2245   * Description: <b>External identifier for the evidence</b><br>
2246   * Type: <b>token</b><br>
2247   * Path: <b>Evidence.identifier</b><br>
2248   * </p>
2249   */
2250  @SearchParamDefinition(name="identifier", path="Evidence.identifier", description="External identifier for the evidence", type="token" )
2251  public static final String SP_IDENTIFIER = "identifier";
2252 /**
2253   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2254   * <p>
2255   * Description: <b>External identifier for the evidence</b><br>
2256   * Type: <b>token</b><br>
2257   * Path: <b>Evidence.identifier</b><br>
2258   * </p>
2259   */
2260  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2261
2262 /**
2263   * Search parameter: <b>successor</b>
2264   * <p>
2265   * Description: <b>What resource is being referenced</b><br>
2266   * Type: <b>reference</b><br>
2267   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2268   * </p>
2269   */
2270  @SearchParamDefinition(name="successor", path="Evidence.relatedArtifact.where(type='successor').resource", description="What resource is being referenced", type="reference" )
2271  public static final String SP_SUCCESSOR = "successor";
2272 /**
2273   * <b>Fluent Client</b> search parameter constant for <b>successor</b>
2274   * <p>
2275   * Description: <b>What resource is being referenced</b><br>
2276   * Type: <b>reference</b><br>
2277   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2278   * </p>
2279   */
2280  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUCCESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUCCESSOR);
2281
2282/**
2283   * Constant for fluent queries to be used to add include statements. Specifies
2284   * the path value of "<b>Evidence:successor</b>".
2285   */
2286  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUCCESSOR = new ca.uhn.fhir.model.api.Include("Evidence:successor").toLocked();
2287
2288 /**
2289   * Search parameter: <b>context-type-value</b>
2290   * <p>
2291   * Description: <b>A use context type and value assigned to the evidence</b><br>
2292   * Type: <b>composite</b><br>
2293   * Path: <b></b><br>
2294   * </p>
2295   */
2296  @SearchParamDefinition(name="context-type-value", path="Evidence.useContext", description="A use context type and value assigned to the evidence", type="composite", compositeOf={"context-type", "context"} )
2297  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
2298 /**
2299   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
2300   * <p>
2301   * Description: <b>A use context type and value assigned to the evidence</b><br>
2302   * Type: <b>composite</b><br>
2303   * Path: <b></b><br>
2304   * </p>
2305   */
2306  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);
2307
2308 /**
2309   * Search parameter: <b>jurisdiction</b>
2310   * <p>
2311   * Description: <b>Intended jurisdiction for the evidence</b><br>
2312   * Type: <b>token</b><br>
2313   * Path: <b>Evidence.jurisdiction</b><br>
2314   * </p>
2315   */
2316  @SearchParamDefinition(name="jurisdiction", path="Evidence.jurisdiction", description="Intended jurisdiction for the evidence", type="token" )
2317  public static final String SP_JURISDICTION = "jurisdiction";
2318 /**
2319   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
2320   * <p>
2321   * Description: <b>Intended jurisdiction for the evidence</b><br>
2322   * Type: <b>token</b><br>
2323   * Path: <b>Evidence.jurisdiction</b><br>
2324   * </p>
2325   */
2326  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
2327
2328 /**
2329   * Search parameter: <b>description</b>
2330   * <p>
2331   * Description: <b>The description of the evidence</b><br>
2332   * Type: <b>string</b><br>
2333   * Path: <b>Evidence.description</b><br>
2334   * </p>
2335   */
2336  @SearchParamDefinition(name="description", path="Evidence.description", description="The description of the evidence", type="string" )
2337  public static final String SP_DESCRIPTION = "description";
2338 /**
2339   * <b>Fluent Client</b> search parameter constant for <b>description</b>
2340   * <p>
2341   * Description: <b>The description of the evidence</b><br>
2342   * Type: <b>string</b><br>
2343   * Path: <b>Evidence.description</b><br>
2344   * </p>
2345   */
2346  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
2347
2348 /**
2349   * Search parameter: <b>derived-from</b>
2350   * <p>
2351   * Description: <b>What resource is being referenced</b><br>
2352   * Type: <b>reference</b><br>
2353   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2354   * </p>
2355   */
2356  @SearchParamDefinition(name="derived-from", path="Evidence.relatedArtifact.where(type='derived-from').resource", description="What resource is being referenced", type="reference" )
2357  public static final String SP_DERIVED_FROM = "derived-from";
2358 /**
2359   * <b>Fluent Client</b> search parameter constant for <b>derived-from</b>
2360   * <p>
2361   * Description: <b>What resource is being referenced</b><br>
2362   * Type: <b>reference</b><br>
2363   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2364   * </p>
2365   */
2366  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM);
2367
2368/**
2369   * Constant for fluent queries to be used to add include statements. Specifies
2370   * the path value of "<b>Evidence:derived-from</b>".
2371   */
2372  public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("Evidence:derived-from").toLocked();
2373
2374 /**
2375   * Search parameter: <b>context-type</b>
2376   * <p>
2377   * Description: <b>A type of use context assigned to the evidence</b><br>
2378   * Type: <b>token</b><br>
2379   * Path: <b>Evidence.useContext.code</b><br>
2380   * </p>
2381   */
2382  @SearchParamDefinition(name="context-type", path="Evidence.useContext.code", description="A type of use context assigned to the evidence", type="token" )
2383  public static final String SP_CONTEXT_TYPE = "context-type";
2384 /**
2385   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
2386   * <p>
2387   * Description: <b>A type of use context assigned to the evidence</b><br>
2388   * Type: <b>token</b><br>
2389   * Path: <b>Evidence.useContext.code</b><br>
2390   * </p>
2391   */
2392  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
2393
2394 /**
2395   * Search parameter: <b>predecessor</b>
2396   * <p>
2397   * Description: <b>What resource is being referenced</b><br>
2398   * Type: <b>reference</b><br>
2399   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2400   * </p>
2401   */
2402  @SearchParamDefinition(name="predecessor", path="Evidence.relatedArtifact.where(type='predecessor').resource", description="What resource is being referenced", type="reference" )
2403  public static final String SP_PREDECESSOR = "predecessor";
2404 /**
2405   * <b>Fluent Client</b> search parameter constant for <b>predecessor</b>
2406   * <p>
2407   * Description: <b>What resource is being referenced</b><br>
2408   * Type: <b>reference</b><br>
2409   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2410   * </p>
2411   */
2412  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PREDECESSOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PREDECESSOR);
2413
2414/**
2415   * Constant for fluent queries to be used to add include statements. Specifies
2416   * the path value of "<b>Evidence:predecessor</b>".
2417   */
2418  public static final ca.uhn.fhir.model.api.Include INCLUDE_PREDECESSOR = new ca.uhn.fhir.model.api.Include("Evidence:predecessor").toLocked();
2419
2420 /**
2421   * Search parameter: <b>title</b>
2422   * <p>
2423   * Description: <b>The human-friendly name of the evidence</b><br>
2424   * Type: <b>string</b><br>
2425   * Path: <b>Evidence.title</b><br>
2426   * </p>
2427   */
2428  @SearchParamDefinition(name="title", path="Evidence.title", description="The human-friendly name of the evidence", type="string" )
2429  public static final String SP_TITLE = "title";
2430 /**
2431   * <b>Fluent Client</b> search parameter constant for <b>title</b>
2432   * <p>
2433   * Description: <b>The human-friendly name of the evidence</b><br>
2434   * Type: <b>string</b><br>
2435   * Path: <b>Evidence.title</b><br>
2436   * </p>
2437   */
2438  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
2439
2440 /**
2441   * Search parameter: <b>composed-of</b>
2442   * <p>
2443   * Description: <b>What resource is being referenced</b><br>
2444   * Type: <b>reference</b><br>
2445   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2446   * </p>
2447   */
2448  @SearchParamDefinition(name="composed-of", path="Evidence.relatedArtifact.where(type='composed-of').resource", description="What resource is being referenced", type="reference" )
2449  public static final String SP_COMPOSED_OF = "composed-of";
2450 /**
2451   * <b>Fluent Client</b> search parameter constant for <b>composed-of</b>
2452   * <p>
2453   * Description: <b>What resource is being referenced</b><br>
2454   * Type: <b>reference</b><br>
2455   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2456   * </p>
2457   */
2458  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPOSED_OF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPOSED_OF);
2459
2460/**
2461   * Constant for fluent queries to be used to add include statements. Specifies
2462   * the path value of "<b>Evidence:composed-of</b>".
2463   */
2464  public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPOSED_OF = new ca.uhn.fhir.model.api.Include("Evidence:composed-of").toLocked();
2465
2466 /**
2467   * Search parameter: <b>version</b>
2468   * <p>
2469   * Description: <b>The business version of the evidence</b><br>
2470   * Type: <b>token</b><br>
2471   * Path: <b>Evidence.version</b><br>
2472   * </p>
2473   */
2474  @SearchParamDefinition(name="version", path="Evidence.version", description="The business version of the evidence", type="token" )
2475  public static final String SP_VERSION = "version";
2476 /**
2477   * <b>Fluent Client</b> search parameter constant for <b>version</b>
2478   * <p>
2479   * Description: <b>The business version of the evidence</b><br>
2480   * Type: <b>token</b><br>
2481   * Path: <b>Evidence.version</b><br>
2482   * </p>
2483   */
2484  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
2485
2486 /**
2487   * Search parameter: <b>url</b>
2488   * <p>
2489   * Description: <b>The uri that identifies the evidence</b><br>
2490   * Type: <b>uri</b><br>
2491   * Path: <b>Evidence.url</b><br>
2492   * </p>
2493   */
2494  @SearchParamDefinition(name="url", path="Evidence.url", description="The uri that identifies the evidence", type="uri" )
2495  public static final String SP_URL = "url";
2496 /**
2497   * <b>Fluent Client</b> search parameter constant for <b>url</b>
2498   * <p>
2499   * Description: <b>The uri that identifies the evidence</b><br>
2500   * Type: <b>uri</b><br>
2501   * Path: <b>Evidence.url</b><br>
2502   * </p>
2503   */
2504  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
2505
2506 /**
2507   * Search parameter: <b>context-quantity</b>
2508   * <p>
2509   * Description: <b>A quantity- or range-valued use context assigned to the evidence</b><br>
2510   * Type: <b>quantity</b><br>
2511   * Path: <b>Evidence.useContext.valueQuantity, Evidence.useContext.valueRange</b><br>
2512   * </p>
2513   */
2514  @SearchParamDefinition(name="context-quantity", path="(Evidence.useContext.value as Quantity) | (Evidence.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the evidence", type="quantity" )
2515  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
2516 /**
2517   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
2518   * <p>
2519   * Description: <b>A quantity- or range-valued use context assigned to the evidence</b><br>
2520   * Type: <b>quantity</b><br>
2521   * Path: <b>Evidence.useContext.valueQuantity, Evidence.useContext.valueRange</b><br>
2522   * </p>
2523   */
2524  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
2525
2526 /**
2527   * Search parameter: <b>effective</b>
2528   * <p>
2529   * Description: <b>The time during which the evidence is intended to be in use</b><br>
2530   * Type: <b>date</b><br>
2531   * Path: <b>Evidence.effectivePeriod</b><br>
2532   * </p>
2533   */
2534  @SearchParamDefinition(name="effective", path="Evidence.effectivePeriod", description="The time during which the evidence is intended to be in use", type="date" )
2535  public static final String SP_EFFECTIVE = "effective";
2536 /**
2537   * <b>Fluent Client</b> search parameter constant for <b>effective</b>
2538   * <p>
2539   * Description: <b>The time during which the evidence is intended to be in use</b><br>
2540   * Type: <b>date</b><br>
2541   * Path: <b>Evidence.effectivePeriod</b><br>
2542   * </p>
2543   */
2544  public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE);
2545
2546 /**
2547   * Search parameter: <b>depends-on</b>
2548   * <p>
2549   * Description: <b>What resource is being referenced</b><br>
2550   * Type: <b>reference</b><br>
2551   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2552   * </p>
2553   */
2554  @SearchParamDefinition(name="depends-on", path="Evidence.relatedArtifact.where(type='depends-on').resource", description="What resource is being referenced", type="reference" )
2555  public static final String SP_DEPENDS_ON = "depends-on";
2556 /**
2557   * <b>Fluent Client</b> search parameter constant for <b>depends-on</b>
2558   * <p>
2559   * Description: <b>What resource is being referenced</b><br>
2560   * Type: <b>reference</b><br>
2561   * Path: <b>Evidence.relatedArtifact.resource</b><br>
2562   * </p>
2563   */
2564  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON);
2565
2566/**
2567   * Constant for fluent queries to be used to add include statements. Specifies
2568   * the path value of "<b>Evidence:depends-on</b>".
2569   */
2570  public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("Evidence:depends-on").toLocked();
2571
2572 /**
2573   * Search parameter: <b>name</b>
2574   * <p>
2575   * Description: <b>Computationally friendly name of the evidence</b><br>
2576   * Type: <b>string</b><br>
2577   * Path: <b>Evidence.name</b><br>
2578   * </p>
2579   */
2580  @SearchParamDefinition(name="name", path="Evidence.name", description="Computationally friendly name of the evidence", type="string" )
2581  public static final String SP_NAME = "name";
2582 /**
2583   * <b>Fluent Client</b> search parameter constant for <b>name</b>
2584   * <p>
2585   * Description: <b>Computationally friendly name of the evidence</b><br>
2586   * Type: <b>string</b><br>
2587   * Path: <b>Evidence.name</b><br>
2588   * </p>
2589   */
2590  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
2591
2592 /**
2593   * Search parameter: <b>context</b>
2594   * <p>
2595   * Description: <b>A use context assigned to the evidence</b><br>
2596   * Type: <b>token</b><br>
2597   * Path: <b>Evidence.useContext.valueCodeableConcept</b><br>
2598   * </p>
2599   */
2600  @SearchParamDefinition(name="context", path="(Evidence.useContext.value as CodeableConcept)", description="A use context assigned to the evidence", type="token" )
2601  public static final String SP_CONTEXT = "context";
2602 /**
2603   * <b>Fluent Client</b> search parameter constant for <b>context</b>
2604   * <p>
2605   * Description: <b>A use context assigned to the evidence</b><br>
2606   * Type: <b>token</b><br>
2607   * Path: <b>Evidence.useContext.valueCodeableConcept</b><br>
2608   * </p>
2609   */
2610  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
2611
2612 /**
2613   * Search parameter: <b>publisher</b>
2614   * <p>
2615   * Description: <b>Name of the publisher of the evidence</b><br>
2616   * Type: <b>string</b><br>
2617   * Path: <b>Evidence.publisher</b><br>
2618   * </p>
2619   */
2620  @SearchParamDefinition(name="publisher", path="Evidence.publisher", description="Name of the publisher of the evidence", type="string" )
2621  public static final String SP_PUBLISHER = "publisher";
2622 /**
2623   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
2624   * <p>
2625   * Description: <b>Name of the publisher of the evidence</b><br>
2626   * Type: <b>string</b><br>
2627   * Path: <b>Evidence.publisher</b><br>
2628   * </p>
2629   */
2630  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
2631
2632 /**
2633   * Search parameter: <b>topic</b>
2634   * <p>
2635   * Description: <b>Topics associated with the Evidence</b><br>
2636   * Type: <b>token</b><br>
2637   * Path: <b>Evidence.topic</b><br>
2638   * </p>
2639   */
2640  @SearchParamDefinition(name="topic", path="Evidence.topic", description="Topics associated with the Evidence", type="token" )
2641  public static final String SP_TOPIC = "topic";
2642 /**
2643   * <b>Fluent Client</b> search parameter constant for <b>topic</b>
2644   * <p>
2645   * Description: <b>Topics associated with the Evidence</b><br>
2646   * Type: <b>token</b><br>
2647   * Path: <b>Evidence.topic</b><br>
2648   * </p>
2649   */
2650  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TOPIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TOPIC);
2651
2652 /**
2653   * Search parameter: <b>context-type-quantity</b>
2654   * <p>
2655   * Description: <b>A use context type and quantity- or range-based value assigned to the evidence</b><br>
2656   * Type: <b>composite</b><br>
2657   * Path: <b></b><br>
2658   * </p>
2659   */
2660  @SearchParamDefinition(name="context-type-quantity", path="Evidence.useContext", description="A use context type and quantity- or range-based value assigned to the evidence", type="composite", compositeOf={"context-type", "context-quantity"} )
2661  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
2662 /**
2663   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
2664   * <p>
2665   * Description: <b>A use context type and quantity- or range-based value assigned to the evidence</b><br>
2666   * Type: <b>composite</b><br>
2667   * Path: <b></b><br>
2668   * </p>
2669   */
2670  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);
2671
2672 /**
2673   * Search parameter: <b>status</b>
2674   * <p>
2675   * Description: <b>The current status of the evidence</b><br>
2676   * Type: <b>token</b><br>
2677   * Path: <b>Evidence.status</b><br>
2678   * </p>
2679   */
2680  @SearchParamDefinition(name="status", path="Evidence.status", description="The current status of the evidence", type="token" )
2681  public static final String SP_STATUS = "status";
2682 /**
2683   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2684   * <p>
2685   * Description: <b>The current status of the evidence</b><br>
2686   * Type: <b>token</b><br>
2687   * Path: <b>Evidence.status</b><br>
2688   * </p>
2689   */
2690  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2691
2692
2693}
2694