001package org.hl7.fhir.dstu3.model;
002
003
004
005/*
006  Copyright (c) 2011+, HL7, Inc.
007  All rights reserved.
008  
009  Redistribution and use in source and binary forms, with or without modification, 
010  are permitted provided that the following conditions are met:
011  
012   * Redistributions of source code must retain the above copyright notice, this 
013     list of conditions and the following disclaimer.
014   * Redistributions in binary form must reproduce the above copyright notice, 
015     this list of conditions and the following disclaimer in the documentation 
016     and/or other materials provided with the distribution.
017   * Neither the name of HL7 nor the names of its contributors may be used to 
018     endorse or promote products derived from this software without specific 
019     prior written permission.
020  
021  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
022  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
023  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
024  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
025  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
026  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
027  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
028  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
029  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
030  POSSIBILITY OF SUCH DAMAGE.
031  
032*/
033
034// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x
035import java.util.ArrayList;
036import java.util.Date;
037import java.util.List;
038
039import org.hl7.fhir.exceptions.FHIRException;
040import org.hl7.fhir.exceptions.FHIRFormatError;
041import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
042
043import ca.uhn.fhir.model.api.annotation.Block;
044import ca.uhn.fhir.model.api.annotation.Child;
045import ca.uhn.fhir.model.api.annotation.Description;
046import ca.uhn.fhir.model.api.annotation.ResourceDef;
047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
048/**
049 * A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern.
050 */
051@ResourceDef(name="Condition", profile="http://hl7.org/fhir/Profile/Condition")
052public class Condition extends DomainResource {
053
054    public enum ConditionClinicalStatus {
055        /**
056         * The subject is currently experiencing the symptoms of the condition or there is evidence of the condition.
057         */
058        ACTIVE, 
059        /**
060         * The subject is having a relapse or re-experiencing the condition after a period of remission or presumed resolution.
061         */
062        RECURRENCE, 
063        /**
064         * The subject is no longer experiencing the symptoms of the condition or there is no longer evidence of the condition.
065         */
066        INACTIVE, 
067        /**
068         * The subject is no longer experiencing the symptoms of the condition, but there is a risk of the symptoms returning.
069         */
070        REMISSION, 
071        /**
072         * The subject is no longer experiencing the symptoms of the condition and there is a negligible perceived risk of the symptoms returning.
073         */
074        RESOLVED, 
075        /**
076         * added to help the parsers with the generic types
077         */
078        NULL;
079        public static ConditionClinicalStatus fromCode(String codeString) throws FHIRException {
080            if (codeString == null || "".equals(codeString))
081                return null;
082        if ("active".equals(codeString))
083          return ACTIVE;
084        if ("recurrence".equals(codeString))
085          return RECURRENCE;
086        if ("inactive".equals(codeString))
087          return INACTIVE;
088        if ("remission".equals(codeString))
089          return REMISSION;
090        if ("resolved".equals(codeString))
091          return RESOLVED;
092        if (Configuration.isAcceptInvalidEnums())
093          return null;
094        else
095          throw new FHIRException("Unknown ConditionClinicalStatus code '"+codeString+"'");
096        }
097        public String toCode() {
098          switch (this) {
099            case ACTIVE: return "active";
100            case RECURRENCE: return "recurrence";
101            case INACTIVE: return "inactive";
102            case REMISSION: return "remission";
103            case RESOLVED: return "resolved";
104            case NULL: return null;
105            default: return "?";
106          }
107        }
108        public String getSystem() {
109          switch (this) {
110            case ACTIVE: return "http://hl7.org/fhir/condition-clinical";
111            case RECURRENCE: return "http://hl7.org/fhir/condition-clinical";
112            case INACTIVE: return "http://hl7.org/fhir/condition-clinical";
113            case REMISSION: return "http://hl7.org/fhir/condition-clinical";
114            case RESOLVED: return "http://hl7.org/fhir/condition-clinical";
115            case NULL: return null;
116            default: return "?";
117          }
118        }
119        public String getDefinition() {
120          switch (this) {
121            case ACTIVE: return "The subject is currently experiencing the symptoms of the condition or there is evidence of the condition.";
122            case RECURRENCE: return "The subject is having a relapse or re-experiencing the condition after a period of remission or presumed resolution.";
123            case INACTIVE: return "The subject is no longer experiencing the symptoms of the condition or there is no longer evidence of the condition.";
124            case REMISSION: return "The subject is no longer experiencing the symptoms of the condition, but there is a risk of the symptoms returning.";
125            case RESOLVED: return "The subject is no longer experiencing the symptoms of the condition and there is a negligible perceived risk of the symptoms returning.";
126            case NULL: return null;
127            default: return "?";
128          }
129        }
130        public String getDisplay() {
131          switch (this) {
132            case ACTIVE: return "Active";
133            case RECURRENCE: return "Recurrence";
134            case INACTIVE: return "Inactive";
135            case REMISSION: return "Remission";
136            case RESOLVED: return "Resolved";
137            case NULL: return null;
138            default: return "?";
139          }
140        }
141    }
142
143  public static class ConditionClinicalStatusEnumFactory implements EnumFactory<ConditionClinicalStatus> {
144    public ConditionClinicalStatus fromCode(String codeString) throws IllegalArgumentException {
145      if (codeString == null || "".equals(codeString))
146            if (codeString == null || "".equals(codeString))
147                return null;
148        if ("active".equals(codeString))
149          return ConditionClinicalStatus.ACTIVE;
150        if ("recurrence".equals(codeString))
151          return ConditionClinicalStatus.RECURRENCE;
152        if ("inactive".equals(codeString))
153          return ConditionClinicalStatus.INACTIVE;
154        if ("remission".equals(codeString))
155          return ConditionClinicalStatus.REMISSION;
156        if ("resolved".equals(codeString))
157          return ConditionClinicalStatus.RESOLVED;
158        throw new IllegalArgumentException("Unknown ConditionClinicalStatus code '"+codeString+"'");
159        }
160        public Enumeration<ConditionClinicalStatus> fromType(PrimitiveType<?> code) throws FHIRException {
161          if (code == null)
162            return null;
163          if (code.isEmpty())
164            return new Enumeration<ConditionClinicalStatus>(this);
165          String codeString = code.asStringValue();
166          if (codeString == null || "".equals(codeString))
167            return null;
168        if ("active".equals(codeString))
169          return new Enumeration<ConditionClinicalStatus>(this, ConditionClinicalStatus.ACTIVE);
170        if ("recurrence".equals(codeString))
171          return new Enumeration<ConditionClinicalStatus>(this, ConditionClinicalStatus.RECURRENCE);
172        if ("inactive".equals(codeString))
173          return new Enumeration<ConditionClinicalStatus>(this, ConditionClinicalStatus.INACTIVE);
174        if ("remission".equals(codeString))
175          return new Enumeration<ConditionClinicalStatus>(this, ConditionClinicalStatus.REMISSION);
176        if ("resolved".equals(codeString))
177          return new Enumeration<ConditionClinicalStatus>(this, ConditionClinicalStatus.RESOLVED);
178        throw new FHIRException("Unknown ConditionClinicalStatus code '"+codeString+"'");
179        }
180    public String toCode(ConditionClinicalStatus code) {
181       if (code == ConditionClinicalStatus.NULL)
182           return null;
183       if (code == ConditionClinicalStatus.ACTIVE)
184        return "active";
185      if (code == ConditionClinicalStatus.RECURRENCE)
186        return "recurrence";
187      if (code == ConditionClinicalStatus.INACTIVE)
188        return "inactive";
189      if (code == ConditionClinicalStatus.REMISSION)
190        return "remission";
191      if (code == ConditionClinicalStatus.RESOLVED)
192        return "resolved";
193      return "?";
194   }
195    public String toSystem(ConditionClinicalStatus code) {
196      return code.getSystem();
197      }
198    }
199
200    public enum ConditionVerificationStatus {
201        /**
202         * This is a tentative diagnosis - still a candidate that is under consideration.
203         */
204        PROVISIONAL, 
205        /**
206         * One of a set of potential (and typically mutually exclusive) diagnoses asserted to further guide the diagnostic process and preliminary treatment.
207         */
208        DIFFERENTIAL, 
209        /**
210         * There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition.
211         */
212        CONFIRMED, 
213        /**
214         * This condition has been ruled out by diagnostic and clinical evidence.
215         */
216        REFUTED, 
217        /**
218         * The statement was entered in error and is not valid.
219         */
220        ENTEREDINERROR, 
221        /**
222         * The condition status is unknown.  Note that "unknown" is a value of last resort and every attempt should be made to provide a meaningful value other than "unknown".
223         */
224        UNKNOWN, 
225        /**
226         * added to help the parsers with the generic types
227         */
228        NULL;
229        public static ConditionVerificationStatus fromCode(String codeString) throws FHIRException {
230            if (codeString == null || "".equals(codeString))
231                return null;
232        if ("provisional".equals(codeString))
233          return PROVISIONAL;
234        if ("differential".equals(codeString))
235          return DIFFERENTIAL;
236        if ("confirmed".equals(codeString))
237          return CONFIRMED;
238        if ("refuted".equals(codeString))
239          return REFUTED;
240        if ("entered-in-error".equals(codeString))
241          return ENTEREDINERROR;
242        if ("unknown".equals(codeString))
243          return UNKNOWN;
244        if (Configuration.isAcceptInvalidEnums())
245          return null;
246        else
247          throw new FHIRException("Unknown ConditionVerificationStatus code '"+codeString+"'");
248        }
249        public String toCode() {
250          switch (this) {
251            case PROVISIONAL: return "provisional";
252            case DIFFERENTIAL: return "differential";
253            case CONFIRMED: return "confirmed";
254            case REFUTED: return "refuted";
255            case ENTEREDINERROR: return "entered-in-error";
256            case UNKNOWN: return "unknown";
257            case NULL: return null;
258            default: return "?";
259          }
260        }
261        public String getSystem() {
262          switch (this) {
263            case PROVISIONAL: return "http://hl7.org/fhir/condition-ver-status";
264            case DIFFERENTIAL: return "http://hl7.org/fhir/condition-ver-status";
265            case CONFIRMED: return "http://hl7.org/fhir/condition-ver-status";
266            case REFUTED: return "http://hl7.org/fhir/condition-ver-status";
267            case ENTEREDINERROR: return "http://hl7.org/fhir/condition-ver-status";
268            case UNKNOWN: return "http://hl7.org/fhir/condition-ver-status";
269            case NULL: return null;
270            default: return "?";
271          }
272        }
273        public String getDefinition() {
274          switch (this) {
275            case PROVISIONAL: return "This is a tentative diagnosis - still a candidate that is under consideration.";
276            case DIFFERENTIAL: return "One of a set of potential (and typically mutually exclusive) diagnoses asserted to further guide the diagnostic process and preliminary treatment.";
277            case CONFIRMED: return "There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition.";
278            case REFUTED: return "This condition has been ruled out by diagnostic and clinical evidence.";
279            case ENTEREDINERROR: return "The statement was entered in error and is not valid.";
280            case UNKNOWN: return "The condition status is unknown.  Note that \"unknown\" is a value of last resort and every attempt should be made to provide a meaningful value other than \"unknown\".";
281            case NULL: return null;
282            default: return "?";
283          }
284        }
285        public String getDisplay() {
286          switch (this) {
287            case PROVISIONAL: return "Provisional";
288            case DIFFERENTIAL: return "Differential";
289            case CONFIRMED: return "Confirmed";
290            case REFUTED: return "Refuted";
291            case ENTEREDINERROR: return "Entered In Error";
292            case UNKNOWN: return "Unknown";
293            case NULL: return null;
294            default: return "?";
295          }
296        }
297    }
298
299  public static class ConditionVerificationStatusEnumFactory implements EnumFactory<ConditionVerificationStatus> {
300    public ConditionVerificationStatus fromCode(String codeString) throws IllegalArgumentException {
301      if (codeString == null || "".equals(codeString))
302            if (codeString == null || "".equals(codeString))
303                return null;
304        if ("provisional".equals(codeString))
305          return ConditionVerificationStatus.PROVISIONAL;
306        if ("differential".equals(codeString))
307          return ConditionVerificationStatus.DIFFERENTIAL;
308        if ("confirmed".equals(codeString))
309          return ConditionVerificationStatus.CONFIRMED;
310        if ("refuted".equals(codeString))
311          return ConditionVerificationStatus.REFUTED;
312        if ("entered-in-error".equals(codeString))
313          return ConditionVerificationStatus.ENTEREDINERROR;
314        if ("unknown".equals(codeString))
315          return ConditionVerificationStatus.UNKNOWN;
316        throw new IllegalArgumentException("Unknown ConditionVerificationStatus code '"+codeString+"'");
317        }
318        public Enumeration<ConditionVerificationStatus> fromType(PrimitiveType<?> code) throws FHIRException {
319          if (code == null)
320            return null;
321          if (code.isEmpty())
322            return new Enumeration<ConditionVerificationStatus>(this);
323          String codeString = code.asStringValue();
324          if (codeString == null || "".equals(codeString))
325            return null;
326        if ("provisional".equals(codeString))
327          return new Enumeration<ConditionVerificationStatus>(this, ConditionVerificationStatus.PROVISIONAL);
328        if ("differential".equals(codeString))
329          return new Enumeration<ConditionVerificationStatus>(this, ConditionVerificationStatus.DIFFERENTIAL);
330        if ("confirmed".equals(codeString))
331          return new Enumeration<ConditionVerificationStatus>(this, ConditionVerificationStatus.CONFIRMED);
332        if ("refuted".equals(codeString))
333          return new Enumeration<ConditionVerificationStatus>(this, ConditionVerificationStatus.REFUTED);
334        if ("entered-in-error".equals(codeString))
335          return new Enumeration<ConditionVerificationStatus>(this, ConditionVerificationStatus.ENTEREDINERROR);
336        if ("unknown".equals(codeString))
337          return new Enumeration<ConditionVerificationStatus>(this, ConditionVerificationStatus.UNKNOWN);
338        throw new FHIRException("Unknown ConditionVerificationStatus code '"+codeString+"'");
339        }
340    public String toCode(ConditionVerificationStatus code) {
341       if (code == ConditionVerificationStatus.NULL)
342           return null;
343       if (code == ConditionVerificationStatus.PROVISIONAL)
344        return "provisional";
345      if (code == ConditionVerificationStatus.DIFFERENTIAL)
346        return "differential";
347      if (code == ConditionVerificationStatus.CONFIRMED)
348        return "confirmed";
349      if (code == ConditionVerificationStatus.REFUTED)
350        return "refuted";
351      if (code == ConditionVerificationStatus.ENTEREDINERROR)
352        return "entered-in-error";
353      if (code == ConditionVerificationStatus.UNKNOWN)
354        return "unknown";
355      return "?";
356   }
357    public String toSystem(ConditionVerificationStatus code) {
358      return code.getSystem();
359      }
360    }
361
362    @Block()
363    public static class ConditionStageComponent extends BackboneElement implements IBaseBackboneElement {
364        /**
365         * A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.
366         */
367        @Child(name = "summary", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false)
368        @Description(shortDefinition="Simple summary (disease specific)", formalDefinition="A simple summary of the stage such as \"Stage 3\". The determination of the stage is disease-specific." )
369        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-stage")
370        protected CodeableConcept summary;
371
372        /**
373         * Reference to a formal record of the evidence on which the staging assessment is based.
374         */
375        @Child(name = "assessment", type = {ClinicalImpression.class, DiagnosticReport.class, Observation.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
376        @Description(shortDefinition="Formal record of assessment", formalDefinition="Reference to a formal record of the evidence on which the staging assessment is based." )
377        protected List<Reference> assessment;
378        /**
379         * The actual objects that are the target of the reference (Reference to a formal record of the evidence on which the staging assessment is based.)
380         */
381        protected List<Resource> assessmentTarget;
382
383
384        private static final long serialVersionUID = -1961530405L;
385
386    /**
387     * Constructor
388     */
389      public ConditionStageComponent() {
390        super();
391      }
392
393        /**
394         * @return {@link #summary} (A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.)
395         */
396        public CodeableConcept getSummary() { 
397          if (this.summary == null)
398            if (Configuration.errorOnAutoCreate())
399              throw new Error("Attempt to auto-create ConditionStageComponent.summary");
400            else if (Configuration.doAutoCreate())
401              this.summary = new CodeableConcept(); // cc
402          return this.summary;
403        }
404
405        public boolean hasSummary() { 
406          return this.summary != null && !this.summary.isEmpty();
407        }
408
409        /**
410         * @param value {@link #summary} (A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.)
411         */
412        public ConditionStageComponent setSummary(CodeableConcept value)  { 
413          this.summary = value;
414          return this;
415        }
416
417        /**
418         * @return {@link #assessment} (Reference to a formal record of the evidence on which the staging assessment is based.)
419         */
420        public List<Reference> getAssessment() { 
421          if (this.assessment == null)
422            this.assessment = new ArrayList<Reference>();
423          return this.assessment;
424        }
425
426        /**
427         * @return Returns a reference to <code>this</code> for easy method chaining
428         */
429        public ConditionStageComponent setAssessment(List<Reference> theAssessment) { 
430          this.assessment = theAssessment;
431          return this;
432        }
433
434        public boolean hasAssessment() { 
435          if (this.assessment == null)
436            return false;
437          for (Reference item : this.assessment)
438            if (!item.isEmpty())
439              return true;
440          return false;
441        }
442
443        public Reference addAssessment() { //3
444          Reference t = new Reference();
445          if (this.assessment == null)
446            this.assessment = new ArrayList<Reference>();
447          this.assessment.add(t);
448          return t;
449        }
450
451        public ConditionStageComponent addAssessment(Reference t) { //3
452          if (t == null)
453            return this;
454          if (this.assessment == null)
455            this.assessment = new ArrayList<Reference>();
456          this.assessment.add(t);
457          return this;
458        }
459
460        /**
461         * @return The first repetition of repeating field {@link #assessment}, creating it if it does not already exist
462         */
463        public Reference getAssessmentFirstRep() { 
464          if (getAssessment().isEmpty()) {
465            addAssessment();
466          }
467          return getAssessment().get(0);
468        }
469
470        protected void listChildren(List<Property> children) {
471          super.listChildren(children);
472          children.add(new Property("summary", "CodeableConcept", "A simple summary of the stage such as \"Stage 3\". The determination of the stage is disease-specific.", 0, 1, summary));
473          children.add(new Property("assessment", "Reference(ClinicalImpression|DiagnosticReport|Observation)", "Reference to a formal record of the evidence on which the staging assessment is based.", 0, java.lang.Integer.MAX_VALUE, assessment));
474        }
475
476        @Override
477        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
478          switch (_hash) {
479          case -1857640538: /*summary*/  return new Property("summary", "CodeableConcept", "A simple summary of the stage such as \"Stage 3\". The determination of the stage is disease-specific.", 0, 1, summary);
480          case 2119382722: /*assessment*/  return new Property("assessment", "Reference(ClinicalImpression|DiagnosticReport|Observation)", "Reference to a formal record of the evidence on which the staging assessment is based.", 0, java.lang.Integer.MAX_VALUE, assessment);
481          default: return super.getNamedProperty(_hash, _name, _checkValid);
482          }
483
484        }
485
486      @Override
487      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
488        switch (hash) {
489        case -1857640538: /*summary*/ return this.summary == null ? new Base[0] : new Base[] {this.summary}; // CodeableConcept
490        case 2119382722: /*assessment*/ return this.assessment == null ? new Base[0] : this.assessment.toArray(new Base[this.assessment.size()]); // Reference
491        default: return super.getProperty(hash, name, checkValid);
492        }
493
494      }
495
496      @Override
497      public Base setProperty(int hash, String name, Base value) throws FHIRException {
498        switch (hash) {
499        case -1857640538: // summary
500          this.summary = castToCodeableConcept(value); // CodeableConcept
501          return value;
502        case 2119382722: // assessment
503          this.getAssessment().add(castToReference(value)); // Reference
504          return value;
505        default: return super.setProperty(hash, name, value);
506        }
507
508      }
509
510      @Override
511      public Base setProperty(String name, Base value) throws FHIRException {
512        if (name.equals("summary")) {
513          this.summary = castToCodeableConcept(value); // CodeableConcept
514        } else if (name.equals("assessment")) {
515          this.getAssessment().add(castToReference(value));
516        } else
517          return super.setProperty(name, value);
518        return value;
519      }
520
521      @Override
522      public Base makeProperty(int hash, String name) throws FHIRException {
523        switch (hash) {
524        case -1857640538:  return getSummary(); 
525        case 2119382722:  return addAssessment(); 
526        default: return super.makeProperty(hash, name);
527        }
528
529      }
530
531      @Override
532      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
533        switch (hash) {
534        case -1857640538: /*summary*/ return new String[] {"CodeableConcept"};
535        case 2119382722: /*assessment*/ return new String[] {"Reference"};
536        default: return super.getTypesForProperty(hash, name);
537        }
538
539      }
540
541      @Override
542      public Base addChild(String name) throws FHIRException {
543        if (name.equals("summary")) {
544          this.summary = new CodeableConcept();
545          return this.summary;
546        }
547        else if (name.equals("assessment")) {
548          return addAssessment();
549        }
550        else
551          return super.addChild(name);
552      }
553
554      public ConditionStageComponent copy() {
555        ConditionStageComponent dst = new ConditionStageComponent();
556        copyValues(dst);
557        dst.summary = summary == null ? null : summary.copy();
558        if (assessment != null) {
559          dst.assessment = new ArrayList<Reference>();
560          for (Reference i : assessment)
561            dst.assessment.add(i.copy());
562        };
563        return dst;
564      }
565
566      @Override
567      public boolean equalsDeep(Base other_) {
568        if (!super.equalsDeep(other_))
569          return false;
570        if (!(other_ instanceof ConditionStageComponent))
571          return false;
572        ConditionStageComponent o = (ConditionStageComponent) other_;
573        return compareDeep(summary, o.summary, true) && compareDeep(assessment, o.assessment, true);
574      }
575
576      @Override
577      public boolean equalsShallow(Base other_) {
578        if (!super.equalsShallow(other_))
579          return false;
580        if (!(other_ instanceof ConditionStageComponent))
581          return false;
582        ConditionStageComponent o = (ConditionStageComponent) other_;
583        return true;
584      }
585
586      public boolean isEmpty() {
587        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(summary, assessment);
588      }
589
590  public String fhirType() {
591    return "Condition.stage";
592
593  }
594
595  }
596
597    @Block()
598    public static class ConditionEvidenceComponent extends BackboneElement implements IBaseBackboneElement {
599        /**
600         * A manifestation or symptom that led to the recording of this condition.
601         */
602        @Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
603        @Description(shortDefinition="Manifestation/symptom", formalDefinition="A manifestation or symptom that led to the recording of this condition." )
604        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/manifestation-or-symptom")
605        protected List<CodeableConcept> code;
606
607        /**
608         * Links to other relevant information, including pathology reports.
609         */
610        @Child(name = "detail", type = {Reference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
611        @Description(shortDefinition="Supporting information found elsewhere", formalDefinition="Links to other relevant information, including pathology reports." )
612        protected List<Reference> detail;
613        /**
614         * The actual objects that are the target of the reference (Links to other relevant information, including pathology reports.)
615         */
616        protected List<Resource> detailTarget;
617
618
619        private static final long serialVersionUID = 1135831276L;
620
621    /**
622     * Constructor
623     */
624      public ConditionEvidenceComponent() {
625        super();
626      }
627
628        /**
629         * @return {@link #code} (A manifestation or symptom that led to the recording of this condition.)
630         */
631        public List<CodeableConcept> getCode() { 
632          if (this.code == null)
633            this.code = new ArrayList<CodeableConcept>();
634          return this.code;
635        }
636
637        /**
638         * @return Returns a reference to <code>this</code> for easy method chaining
639         */
640        public ConditionEvidenceComponent setCode(List<CodeableConcept> theCode) { 
641          this.code = theCode;
642          return this;
643        }
644
645        public boolean hasCode() { 
646          if (this.code == null)
647            return false;
648          for (CodeableConcept item : this.code)
649            if (!item.isEmpty())
650              return true;
651          return false;
652        }
653
654        public CodeableConcept addCode() { //3
655          CodeableConcept t = new CodeableConcept();
656          if (this.code == null)
657            this.code = new ArrayList<CodeableConcept>();
658          this.code.add(t);
659          return t;
660        }
661
662        public ConditionEvidenceComponent addCode(CodeableConcept t) { //3
663          if (t == null)
664            return this;
665          if (this.code == null)
666            this.code = new ArrayList<CodeableConcept>();
667          this.code.add(t);
668          return this;
669        }
670
671        /**
672         * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist
673         */
674        public CodeableConcept getCodeFirstRep() { 
675          if (getCode().isEmpty()) {
676            addCode();
677          }
678          return getCode().get(0);
679        }
680
681        /**
682         * @return {@link #detail} (Links to other relevant information, including pathology reports.)
683         */
684        public List<Reference> getDetail() { 
685          if (this.detail == null)
686            this.detail = new ArrayList<Reference>();
687          return this.detail;
688        }
689
690        /**
691         * @return Returns a reference to <code>this</code> for easy method chaining
692         */
693        public ConditionEvidenceComponent setDetail(List<Reference> theDetail) { 
694          this.detail = theDetail;
695          return this;
696        }
697
698        public boolean hasDetail() { 
699          if (this.detail == null)
700            return false;
701          for (Reference item : this.detail)
702            if (!item.isEmpty())
703              return true;
704          return false;
705        }
706
707        public Reference addDetail() { //3
708          Reference t = new Reference();
709          if (this.detail == null)
710            this.detail = new ArrayList<Reference>();
711          this.detail.add(t);
712          return t;
713        }
714
715        public ConditionEvidenceComponent addDetail(Reference t) { //3
716          if (t == null)
717            return this;
718          if (this.detail == null)
719            this.detail = new ArrayList<Reference>();
720          this.detail.add(t);
721          return this;
722        }
723
724        /**
725         * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist
726         */
727        public Reference getDetailFirstRep() { 
728          if (getDetail().isEmpty()) {
729            addDetail();
730          }
731          return getDetail().get(0);
732        }
733
734        protected void listChildren(List<Property> children) {
735          super.listChildren(children);
736          children.add(new Property("code", "CodeableConcept", "A manifestation or symptom that led to the recording of this condition.", 0, java.lang.Integer.MAX_VALUE, code));
737          children.add(new Property("detail", "Reference(Any)", "Links to other relevant information, including pathology reports.", 0, java.lang.Integer.MAX_VALUE, detail));
738        }
739
740        @Override
741        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
742          switch (_hash) {
743          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A manifestation or symptom that led to the recording of this condition.", 0, java.lang.Integer.MAX_VALUE, code);
744          case -1335224239: /*detail*/  return new Property("detail", "Reference(Any)", "Links to other relevant information, including pathology reports.", 0, java.lang.Integer.MAX_VALUE, detail);
745          default: return super.getNamedProperty(_hash, _name, _checkValid);
746          }
747
748        }
749
750      @Override
751      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
752        switch (hash) {
753        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept
754        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // Reference
755        default: return super.getProperty(hash, name, checkValid);
756        }
757
758      }
759
760      @Override
761      public Base setProperty(int hash, String name, Base value) throws FHIRException {
762        switch (hash) {
763        case 3059181: // code
764          this.getCode().add(castToCodeableConcept(value)); // CodeableConcept
765          return value;
766        case -1335224239: // detail
767          this.getDetail().add(castToReference(value)); // Reference
768          return value;
769        default: return super.setProperty(hash, name, value);
770        }
771
772      }
773
774      @Override
775      public Base setProperty(String name, Base value) throws FHIRException {
776        if (name.equals("code")) {
777          this.getCode().add(castToCodeableConcept(value));
778        } else if (name.equals("detail")) {
779          this.getDetail().add(castToReference(value));
780        } else
781          return super.setProperty(name, value);
782        return value;
783      }
784
785      @Override
786      public Base makeProperty(int hash, String name) throws FHIRException {
787        switch (hash) {
788        case 3059181:  return addCode(); 
789        case -1335224239:  return addDetail(); 
790        default: return super.makeProperty(hash, name);
791        }
792
793      }
794
795      @Override
796      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
797        switch (hash) {
798        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
799        case -1335224239: /*detail*/ return new String[] {"Reference"};
800        default: return super.getTypesForProperty(hash, name);
801        }
802
803      }
804
805      @Override
806      public Base addChild(String name) throws FHIRException {
807        if (name.equals("code")) {
808          return addCode();
809        }
810        else if (name.equals("detail")) {
811          return addDetail();
812        }
813        else
814          return super.addChild(name);
815      }
816
817      public ConditionEvidenceComponent copy() {
818        ConditionEvidenceComponent dst = new ConditionEvidenceComponent();
819        copyValues(dst);
820        if (code != null) {
821          dst.code = new ArrayList<CodeableConcept>();
822          for (CodeableConcept i : code)
823            dst.code.add(i.copy());
824        };
825        if (detail != null) {
826          dst.detail = new ArrayList<Reference>();
827          for (Reference i : detail)
828            dst.detail.add(i.copy());
829        };
830        return dst;
831      }
832
833      @Override
834      public boolean equalsDeep(Base other_) {
835        if (!super.equalsDeep(other_))
836          return false;
837        if (!(other_ instanceof ConditionEvidenceComponent))
838          return false;
839        ConditionEvidenceComponent o = (ConditionEvidenceComponent) other_;
840        return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true);
841      }
842
843      @Override
844      public boolean equalsShallow(Base other_) {
845        if (!super.equalsShallow(other_))
846          return false;
847        if (!(other_ instanceof ConditionEvidenceComponent))
848          return false;
849        ConditionEvidenceComponent o = (ConditionEvidenceComponent) other_;
850        return true;
851      }
852
853      public boolean isEmpty() {
854        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, detail);
855      }
856
857  public String fhirType() {
858    return "Condition.evidence";
859
860  }
861
862  }
863
864    /**
865     * This records identifiers associated with this condition that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).
866     */
867    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
868    @Description(shortDefinition="External Ids for this condition", formalDefinition="This records identifiers associated with this condition that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." )
869    protected List<Identifier> identifier;
870
871    /**
872     * The clinical status of the condition.
873     */
874    @Child(name = "clinicalStatus", type = {CodeType.class}, order=1, min=0, max=1, modifier=true, summary=true)
875    @Description(shortDefinition="active | recurrence | inactive | remission | resolved", formalDefinition="The clinical status of the condition." )
876    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-clinical")
877    protected Enumeration<ConditionClinicalStatus> clinicalStatus;
878
879    /**
880     * The verification status to support the clinical status of the condition.
881     */
882    @Child(name = "verificationStatus", type = {CodeType.class}, order=2, min=0, max=1, modifier=true, summary=true)
883    @Description(shortDefinition="provisional | differential | confirmed | refuted | entered-in-error | unknown", formalDefinition="The verification status to support the clinical status of the condition." )
884    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-ver-status")
885    protected Enumeration<ConditionVerificationStatus> verificationStatus;
886
887    /**
888     * A category assigned to the condition.
889     */
890    @Child(name = "category", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
891    @Description(shortDefinition="problem-list-item | encounter-diagnosis", formalDefinition="A category assigned to the condition." )
892    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-category")
893    protected List<CodeableConcept> category;
894
895    /**
896     * A subjective assessment of the severity of the condition as evaluated by the clinician.
897     */
898    @Child(name = "severity", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=false)
899    @Description(shortDefinition="Subjective severity of condition", formalDefinition="A subjective assessment of the severity of the condition as evaluated by the clinician." )
900    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-severity")
901    protected CodeableConcept severity;
902
903    /**
904     * Identification of the condition, problem or diagnosis.
905     */
906    @Child(name = "code", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=true)
907    @Description(shortDefinition="Identification of the condition, problem or diagnosis", formalDefinition="Identification of the condition, problem or diagnosis." )
908    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/condition-code")
909    protected CodeableConcept code;
910
911    /**
912     * The anatomical location where this condition manifests itself.
913     */
914    @Child(name = "bodySite", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
915    @Description(shortDefinition="Anatomical location, if relevant", formalDefinition="The anatomical location where this condition manifests itself." )
916    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/body-site")
917    protected List<CodeableConcept> bodySite;
918
919    /**
920     * Indicates the patient or group who the condition record is associated with.
921     */
922    @Child(name = "subject", type = {Patient.class, Group.class}, order=7, min=1, max=1, modifier=false, summary=true)
923    @Description(shortDefinition="Who has the condition?", formalDefinition="Indicates the patient or group who the condition record is associated with." )
924    protected Reference subject;
925
926    /**
927     * The actual object that is the target of the reference (Indicates the patient or group who the condition record is associated with.)
928     */
929    protected Resource subjectTarget;
930
931    /**
932     * Encounter during which the condition was first asserted.
933     */
934    @Child(name = "context", type = {Encounter.class, EpisodeOfCare.class}, order=8, min=0, max=1, modifier=false, summary=true)
935    @Description(shortDefinition="Encounter or episode when condition first asserted", formalDefinition="Encounter during which the condition was first asserted." )
936    protected Reference context;
937
938    /**
939     * The actual object that is the target of the reference (Encounter during which the condition was first asserted.)
940     */
941    protected Resource contextTarget;
942
943    /**
944     * Estimated or actual date or date-time  the condition began, in the opinion of the clinician.
945     */
946    @Child(name = "onset", type = {DateTimeType.class, Age.class, Period.class, Range.class, StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
947    @Description(shortDefinition="Estimated or actual date,  date-time, or age", formalDefinition="Estimated or actual date or date-time  the condition began, in the opinion of the clinician." )
948    protected Type onset;
949
950    /**
951     * The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.
952     */
953    @Child(name = "abatement", type = {DateTimeType.class, Age.class, BooleanType.class, Period.class, Range.class, StringType.class}, order=10, min=0, max=1, modifier=false, summary=false)
954    @Description(shortDefinition="If/when in resolution/remission", formalDefinition="The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate." )
955    protected Type abatement;
956
957    /**
958     * The date on which the existance of the Condition was first asserted or acknowledged.
959     */
960    @Child(name = "assertedDate", type = {DateTimeType.class}, order=11, min=0, max=1, modifier=false, summary=true)
961    @Description(shortDefinition="Date record was believed accurate", formalDefinition="The date on which the existance of the Condition was first asserted or acknowledged." )
962    protected DateTimeType assertedDate;
963
964    /**
965     * Individual who is making the condition statement.
966     */
967    @Child(name = "asserter", type = {Practitioner.class, Patient.class, RelatedPerson.class}, order=12, min=0, max=1, modifier=false, summary=true)
968    @Description(shortDefinition="Person who asserts this condition", formalDefinition="Individual who is making the condition statement." )
969    protected Reference asserter;
970
971    /**
972     * The actual object that is the target of the reference (Individual who is making the condition statement.)
973     */
974    protected Resource asserterTarget;
975
976    /**
977     * Clinical stage or grade of a condition. May include formal severity assessments.
978     */
979    @Child(name = "stage", type = {}, order=13, min=0, max=1, modifier=false, summary=false)
980    @Description(shortDefinition="Stage/grade, usually assessed formally", formalDefinition="Clinical stage or grade of a condition. May include formal severity assessments." )
981    protected ConditionStageComponent stage;
982
983    /**
984     * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.
985     */
986    @Child(name = "evidence", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
987    @Description(shortDefinition="Supporting evidence", formalDefinition="Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed." )
988    protected List<ConditionEvidenceComponent> evidence;
989
990    /**
991     * Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis.
992     */
993    @Child(name = "note", type = {Annotation.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
994    @Description(shortDefinition="Additional information about the Condition", formalDefinition="Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis." )
995    protected List<Annotation> note;
996
997    private static final long serialVersionUID = -585250376L;
998
999  /**
1000   * Constructor
1001   */
1002    public Condition() {
1003      super();
1004    }
1005
1006  /**
1007   * Constructor
1008   */
1009    public Condition(Reference subject) {
1010      super();
1011      this.subject = subject;
1012    }
1013
1014    /**
1015     * @return {@link #identifier} (This records identifiers associated with this condition that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).)
1016     */
1017    public List<Identifier> getIdentifier() { 
1018      if (this.identifier == null)
1019        this.identifier = new ArrayList<Identifier>();
1020      return this.identifier;
1021    }
1022
1023    /**
1024     * @return Returns a reference to <code>this</code> for easy method chaining
1025     */
1026    public Condition setIdentifier(List<Identifier> theIdentifier) { 
1027      this.identifier = theIdentifier;
1028      return this;
1029    }
1030
1031    public boolean hasIdentifier() { 
1032      if (this.identifier == null)
1033        return false;
1034      for (Identifier item : this.identifier)
1035        if (!item.isEmpty())
1036          return true;
1037      return false;
1038    }
1039
1040    public Identifier addIdentifier() { //3
1041      Identifier t = new Identifier();
1042      if (this.identifier == null)
1043        this.identifier = new ArrayList<Identifier>();
1044      this.identifier.add(t);
1045      return t;
1046    }
1047
1048    public Condition addIdentifier(Identifier t) { //3
1049      if (t == null)
1050        return this;
1051      if (this.identifier == null)
1052        this.identifier = new ArrayList<Identifier>();
1053      this.identifier.add(t);
1054      return this;
1055    }
1056
1057    /**
1058     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
1059     */
1060    public Identifier getIdentifierFirstRep() { 
1061      if (getIdentifier().isEmpty()) {
1062        addIdentifier();
1063      }
1064      return getIdentifier().get(0);
1065    }
1066
1067    /**
1068     * @return {@link #clinicalStatus} (The clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getClinicalStatus" gives direct access to the value
1069     */
1070    public Enumeration<ConditionClinicalStatus> getClinicalStatusElement() { 
1071      if (this.clinicalStatus == null)
1072        if (Configuration.errorOnAutoCreate())
1073          throw new Error("Attempt to auto-create Condition.clinicalStatus");
1074        else if (Configuration.doAutoCreate())
1075          this.clinicalStatus = new Enumeration<ConditionClinicalStatus>(new ConditionClinicalStatusEnumFactory()); // bb
1076      return this.clinicalStatus;
1077    }
1078
1079    public boolean hasClinicalStatusElement() { 
1080      return this.clinicalStatus != null && !this.clinicalStatus.isEmpty();
1081    }
1082
1083    public boolean hasClinicalStatus() { 
1084      return this.clinicalStatus != null && !this.clinicalStatus.isEmpty();
1085    }
1086
1087    /**
1088     * @param value {@link #clinicalStatus} (The clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getClinicalStatus" gives direct access to the value
1089     */
1090    public Condition setClinicalStatusElement(Enumeration<ConditionClinicalStatus> value) { 
1091      this.clinicalStatus = value;
1092      return this;
1093    }
1094
1095    /**
1096     * @return The clinical status of the condition.
1097     */
1098    public ConditionClinicalStatus getClinicalStatus() { 
1099      return this.clinicalStatus == null ? null : this.clinicalStatus.getValue();
1100    }
1101
1102    /**
1103     * @param value The clinical status of the condition.
1104     */
1105    public Condition setClinicalStatus(ConditionClinicalStatus value) { 
1106      if (value == null)
1107        this.clinicalStatus = null;
1108      else {
1109        if (this.clinicalStatus == null)
1110          this.clinicalStatus = new Enumeration<ConditionClinicalStatus>(new ConditionClinicalStatusEnumFactory());
1111        this.clinicalStatus.setValue(value);
1112      }
1113      return this;
1114    }
1115
1116    /**
1117     * @return {@link #verificationStatus} (The verification status to support the clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getVerificationStatus" gives direct access to the value
1118     */
1119    public Enumeration<ConditionVerificationStatus> getVerificationStatusElement() { 
1120      if (this.verificationStatus == null)
1121        if (Configuration.errorOnAutoCreate())
1122          throw new Error("Attempt to auto-create Condition.verificationStatus");
1123        else if (Configuration.doAutoCreate())
1124          this.verificationStatus = new Enumeration<ConditionVerificationStatus>(new ConditionVerificationStatusEnumFactory()); // bb
1125      return this.verificationStatus;
1126    }
1127
1128    public boolean hasVerificationStatusElement() { 
1129      return this.verificationStatus != null && !this.verificationStatus.isEmpty();
1130    }
1131
1132    public boolean hasVerificationStatus() { 
1133      return this.verificationStatus != null && !this.verificationStatus.isEmpty();
1134    }
1135
1136    /**
1137     * @param value {@link #verificationStatus} (The verification status to support the clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getVerificationStatus" gives direct access to the value
1138     */
1139    public Condition setVerificationStatusElement(Enumeration<ConditionVerificationStatus> value) { 
1140      this.verificationStatus = value;
1141      return this;
1142    }
1143
1144    /**
1145     * @return The verification status to support the clinical status of the condition.
1146     */
1147    public ConditionVerificationStatus getVerificationStatus() { 
1148      return this.verificationStatus == null ? null : this.verificationStatus.getValue();
1149    }
1150
1151    /**
1152     * @param value The verification status to support the clinical status of the condition.
1153     */
1154    public Condition setVerificationStatus(ConditionVerificationStatus value) { 
1155      if (value == null)
1156        this.verificationStatus = null;
1157      else {
1158        if (this.verificationStatus == null)
1159          this.verificationStatus = new Enumeration<ConditionVerificationStatus>(new ConditionVerificationStatusEnumFactory());
1160        this.verificationStatus.setValue(value);
1161      }
1162      return this;
1163    }
1164
1165    /**
1166     * @return {@link #category} (A category assigned to the condition.)
1167     */
1168    public List<CodeableConcept> getCategory() { 
1169      if (this.category == null)
1170        this.category = new ArrayList<CodeableConcept>();
1171      return this.category;
1172    }
1173
1174    /**
1175     * @return Returns a reference to <code>this</code> for easy method chaining
1176     */
1177    public Condition setCategory(List<CodeableConcept> theCategory) { 
1178      this.category = theCategory;
1179      return this;
1180    }
1181
1182    public boolean hasCategory() { 
1183      if (this.category == null)
1184        return false;
1185      for (CodeableConcept item : this.category)
1186        if (!item.isEmpty())
1187          return true;
1188      return false;
1189    }
1190
1191    public CodeableConcept addCategory() { //3
1192      CodeableConcept t = new CodeableConcept();
1193      if (this.category == null)
1194        this.category = new ArrayList<CodeableConcept>();
1195      this.category.add(t);
1196      return t;
1197    }
1198
1199    public Condition addCategory(CodeableConcept t) { //3
1200      if (t == null)
1201        return this;
1202      if (this.category == null)
1203        this.category = new ArrayList<CodeableConcept>();
1204      this.category.add(t);
1205      return this;
1206    }
1207
1208    /**
1209     * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist
1210     */
1211    public CodeableConcept getCategoryFirstRep() { 
1212      if (getCategory().isEmpty()) {
1213        addCategory();
1214      }
1215      return getCategory().get(0);
1216    }
1217
1218    /**
1219     * @return {@link #severity} (A subjective assessment of the severity of the condition as evaluated by the clinician.)
1220     */
1221    public CodeableConcept getSeverity() { 
1222      if (this.severity == null)
1223        if (Configuration.errorOnAutoCreate())
1224          throw new Error("Attempt to auto-create Condition.severity");
1225        else if (Configuration.doAutoCreate())
1226          this.severity = new CodeableConcept(); // cc
1227      return this.severity;
1228    }
1229
1230    public boolean hasSeverity() { 
1231      return this.severity != null && !this.severity.isEmpty();
1232    }
1233
1234    /**
1235     * @param value {@link #severity} (A subjective assessment of the severity of the condition as evaluated by the clinician.)
1236     */
1237    public Condition setSeverity(CodeableConcept value)  { 
1238      this.severity = value;
1239      return this;
1240    }
1241
1242    /**
1243     * @return {@link #code} (Identification of the condition, problem or diagnosis.)
1244     */
1245    public CodeableConcept getCode() { 
1246      if (this.code == null)
1247        if (Configuration.errorOnAutoCreate())
1248          throw new Error("Attempt to auto-create Condition.code");
1249        else if (Configuration.doAutoCreate())
1250          this.code = new CodeableConcept(); // cc
1251      return this.code;
1252    }
1253
1254    public boolean hasCode() { 
1255      return this.code != null && !this.code.isEmpty();
1256    }
1257
1258    /**
1259     * @param value {@link #code} (Identification of the condition, problem or diagnosis.)
1260     */
1261    public Condition setCode(CodeableConcept value)  { 
1262      this.code = value;
1263      return this;
1264    }
1265
1266    /**
1267     * @return {@link #bodySite} (The anatomical location where this condition manifests itself.)
1268     */
1269    public List<CodeableConcept> getBodySite() { 
1270      if (this.bodySite == null)
1271        this.bodySite = new ArrayList<CodeableConcept>();
1272      return this.bodySite;
1273    }
1274
1275    /**
1276     * @return Returns a reference to <code>this</code> for easy method chaining
1277     */
1278    public Condition setBodySite(List<CodeableConcept> theBodySite) { 
1279      this.bodySite = theBodySite;
1280      return this;
1281    }
1282
1283    public boolean hasBodySite() { 
1284      if (this.bodySite == null)
1285        return false;
1286      for (CodeableConcept item : this.bodySite)
1287        if (!item.isEmpty())
1288          return true;
1289      return false;
1290    }
1291
1292    public CodeableConcept addBodySite() { //3
1293      CodeableConcept t = new CodeableConcept();
1294      if (this.bodySite == null)
1295        this.bodySite = new ArrayList<CodeableConcept>();
1296      this.bodySite.add(t);
1297      return t;
1298    }
1299
1300    public Condition addBodySite(CodeableConcept t) { //3
1301      if (t == null)
1302        return this;
1303      if (this.bodySite == null)
1304        this.bodySite = new ArrayList<CodeableConcept>();
1305      this.bodySite.add(t);
1306      return this;
1307    }
1308
1309    /**
1310     * @return The first repetition of repeating field {@link #bodySite}, creating it if it does not already exist
1311     */
1312    public CodeableConcept getBodySiteFirstRep() { 
1313      if (getBodySite().isEmpty()) {
1314        addBodySite();
1315      }
1316      return getBodySite().get(0);
1317    }
1318
1319    /**
1320     * @return {@link #subject} (Indicates the patient or group who the condition record is associated with.)
1321     */
1322    public Reference getSubject() { 
1323      if (this.subject == null)
1324        if (Configuration.errorOnAutoCreate())
1325          throw new Error("Attempt to auto-create Condition.subject");
1326        else if (Configuration.doAutoCreate())
1327          this.subject = new Reference(); // cc
1328      return this.subject;
1329    }
1330
1331    public boolean hasSubject() { 
1332      return this.subject != null && !this.subject.isEmpty();
1333    }
1334
1335    /**
1336     * @param value {@link #subject} (Indicates the patient or group who the condition record is associated with.)
1337     */
1338    public Condition setSubject(Reference value)  { 
1339      this.subject = value;
1340      return this;
1341    }
1342
1343    /**
1344     * @return {@link #subject} 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. (Indicates the patient or group who the condition record is associated with.)
1345     */
1346    public Resource getSubjectTarget() { 
1347      return this.subjectTarget;
1348    }
1349
1350    /**
1351     * @param value {@link #subject} 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. (Indicates the patient or group who the condition record is associated with.)
1352     */
1353    public Condition setSubjectTarget(Resource value) { 
1354      this.subjectTarget = value;
1355      return this;
1356    }
1357
1358    /**
1359     * @return {@link #context} (Encounter during which the condition was first asserted.)
1360     */
1361    public Reference getContext() { 
1362      if (this.context == null)
1363        if (Configuration.errorOnAutoCreate())
1364          throw new Error("Attempt to auto-create Condition.context");
1365        else if (Configuration.doAutoCreate())
1366          this.context = new Reference(); // cc
1367      return this.context;
1368    }
1369
1370    public boolean hasContext() { 
1371      return this.context != null && !this.context.isEmpty();
1372    }
1373
1374    /**
1375     * @param value {@link #context} (Encounter during which the condition was first asserted.)
1376     */
1377    public Condition setContext(Reference value)  { 
1378      this.context = value;
1379      return this;
1380    }
1381
1382    /**
1383     * @return {@link #context} 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. (Encounter during which the condition was first asserted.)
1384     */
1385    public Resource getContextTarget() { 
1386      return this.contextTarget;
1387    }
1388
1389    /**
1390     * @param value {@link #context} 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. (Encounter during which the condition was first asserted.)
1391     */
1392    public Condition setContextTarget(Resource value) { 
1393      this.contextTarget = value;
1394      return this;
1395    }
1396
1397    /**
1398     * @return {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1399     */
1400    public Type getOnset() { 
1401      return this.onset;
1402    }
1403
1404    /**
1405     * @return {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1406     */
1407    public DateTimeType getOnsetDateTimeType() throws FHIRException { 
1408      if (this.onset == null)
1409        return null;
1410      if (!(this.onset instanceof DateTimeType))
1411        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.onset.getClass().getName()+" was encountered");
1412      return (DateTimeType) this.onset;
1413    }
1414
1415    public boolean hasOnsetDateTimeType() {
1416        return this.onset instanceof DateTimeType;
1417    }
1418
1419    /**
1420     * @return {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1421     */
1422    public Age getOnsetAge() throws FHIRException { 
1423      if (this.onset == null)
1424        return null;
1425      if (!(this.onset instanceof Age))
1426        throw new FHIRException("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered");
1427      return (Age) this.onset;
1428    }
1429
1430    public boolean hasOnsetAge() {
1431        return this.onset instanceof Age;
1432    }
1433
1434    /**
1435     * @return {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1436     */
1437    public Period getOnsetPeriod() throws FHIRException { 
1438      if (this.onset == null)
1439        return null;
1440      if (!(this.onset instanceof Period))
1441        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.onset.getClass().getName()+" was encountered");
1442      return (Period) this.onset;
1443    }
1444
1445    public boolean hasOnsetPeriod() {
1446        return this.onset instanceof Period;
1447    }
1448
1449    /**
1450     * @return {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1451     */
1452    public Range getOnsetRange() throws FHIRException { 
1453      if (this.onset == null)
1454        return null;
1455      if (!(this.onset instanceof Range))
1456        throw new FHIRException("Type mismatch: the type Range was expected, but "+this.onset.getClass().getName()+" was encountered");
1457      return (Range) this.onset;
1458    }
1459
1460    public boolean hasOnsetRange() {
1461        return this.onset instanceof Range;
1462    }
1463
1464    /**
1465     * @return {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1466     */
1467    public StringType getOnsetStringType() throws FHIRException { 
1468      if (this.onset == null)
1469        return null;
1470      if (!(this.onset instanceof StringType))
1471        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.onset.getClass().getName()+" was encountered");
1472      return (StringType) this.onset;
1473    }
1474
1475    public boolean hasOnsetStringType() {
1476        return this.onset instanceof StringType;
1477    }
1478
1479    public boolean hasOnset() { 
1480      return this.onset != null && !this.onset.isEmpty();
1481    }
1482
1483    /**
1484     * @param value {@link #onset} (Estimated or actual date or date-time  the condition began, in the opinion of the clinician.)
1485     */
1486    public Condition setOnset(Type value) throws FHIRFormatError { 
1487      if (value != null && !(value instanceof DateTimeType || value instanceof Age || value instanceof Period || value instanceof Range || value instanceof StringType))
1488        throw new FHIRFormatError("Not the right type for Condition.onset[x]: "+value.fhirType());
1489      this.onset = value;
1490      return this;
1491    }
1492
1493    /**
1494     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1495     */
1496    public Type getAbatement() { 
1497      return this.abatement;
1498    }
1499
1500    /**
1501     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1502     */
1503    public DateTimeType getAbatementDateTimeType() throws FHIRException { 
1504      if (this.abatement == null)
1505        return null;
1506      if (!(this.abatement instanceof DateTimeType))
1507        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.abatement.getClass().getName()+" was encountered");
1508      return (DateTimeType) this.abatement;
1509    }
1510
1511    public boolean hasAbatementDateTimeType() {
1512        return this.abatement instanceof DateTimeType;
1513    }
1514
1515    /**
1516     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1517     */
1518    public Age getAbatementAge() throws FHIRException { 
1519      if (this.abatement == null)
1520        return null;
1521      if (!(this.abatement instanceof Age))
1522        throw new FHIRException("Type mismatch: the type Age was expected, but "+this.abatement.getClass().getName()+" was encountered");
1523      return (Age) this.abatement;
1524    }
1525
1526    public boolean hasAbatementAge() {
1527        return this.abatement instanceof Age;
1528    }
1529
1530    /**
1531     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1532     */
1533    public BooleanType getAbatementBooleanType() throws FHIRException { 
1534      if (this.abatement == null)
1535        return null;
1536      if (!(this.abatement instanceof BooleanType))
1537        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.abatement.getClass().getName()+" was encountered");
1538      return (BooleanType) this.abatement;
1539    }
1540
1541    public boolean hasAbatementBooleanType() {
1542        return this.abatement instanceof BooleanType;
1543    }
1544
1545    /**
1546     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1547     */
1548    public Period getAbatementPeriod() throws FHIRException { 
1549      if (this.abatement == null)
1550        return null;
1551      if (!(this.abatement instanceof Period))
1552        throw new FHIRException("Type mismatch: the type Period was expected, but "+this.abatement.getClass().getName()+" was encountered");
1553      return (Period) this.abatement;
1554    }
1555
1556    public boolean hasAbatementPeriod() {
1557        return this.abatement instanceof Period;
1558    }
1559
1560    /**
1561     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1562     */
1563    public Range getAbatementRange() throws FHIRException { 
1564      if (this.abatement == null)
1565        return null;
1566      if (!(this.abatement instanceof Range))
1567        throw new FHIRException("Type mismatch: the type Range was expected, but "+this.abatement.getClass().getName()+" was encountered");
1568      return (Range) this.abatement;
1569    }
1570
1571    public boolean hasAbatementRange() {
1572        return this.abatement instanceof Range;
1573    }
1574
1575    /**
1576     * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1577     */
1578    public StringType getAbatementStringType() throws FHIRException { 
1579      if (this.abatement == null)
1580        return null;
1581      if (!(this.abatement instanceof StringType))
1582        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.abatement.getClass().getName()+" was encountered");
1583      return (StringType) this.abatement;
1584    }
1585
1586    public boolean hasAbatementStringType() {
1587        return this.abatement instanceof StringType;
1588    }
1589
1590    public boolean hasAbatement() { 
1591      return this.abatement != null && !this.abatement.isEmpty();
1592    }
1593
1594    /**
1595     * @param value {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.)
1596     */
1597    public Condition setAbatement(Type value) throws FHIRFormatError { 
1598      if (value != null && !(value instanceof DateTimeType || value instanceof Age || value instanceof BooleanType || value instanceof Period || value instanceof Range || value instanceof StringType))
1599        throw new FHIRFormatError("Not the right type for Condition.abatement[x]: "+value.fhirType());
1600      this.abatement = value;
1601      return this;
1602    }
1603
1604    /**
1605     * @return {@link #assertedDate} (The date on which the existance of the Condition was first asserted or acknowledged.). This is the underlying object with id, value and extensions. The accessor "getAssertedDate" gives direct access to the value
1606     */
1607    public DateTimeType getAssertedDateElement() { 
1608      if (this.assertedDate == null)
1609        if (Configuration.errorOnAutoCreate())
1610          throw new Error("Attempt to auto-create Condition.assertedDate");
1611        else if (Configuration.doAutoCreate())
1612          this.assertedDate = new DateTimeType(); // bb
1613      return this.assertedDate;
1614    }
1615
1616    public boolean hasAssertedDateElement() { 
1617      return this.assertedDate != null && !this.assertedDate.isEmpty();
1618    }
1619
1620    public boolean hasAssertedDate() { 
1621      return this.assertedDate != null && !this.assertedDate.isEmpty();
1622    }
1623
1624    /**
1625     * @param value {@link #assertedDate} (The date on which the existance of the Condition was first asserted or acknowledged.). This is the underlying object with id, value and extensions. The accessor "getAssertedDate" gives direct access to the value
1626     */
1627    public Condition setAssertedDateElement(DateTimeType value) { 
1628      this.assertedDate = value;
1629      return this;
1630    }
1631
1632    /**
1633     * @return The date on which the existance of the Condition was first asserted or acknowledged.
1634     */
1635    public Date getAssertedDate() { 
1636      return this.assertedDate == null ? null : this.assertedDate.getValue();
1637    }
1638
1639    /**
1640     * @param value The date on which the existance of the Condition was first asserted or acknowledged.
1641     */
1642    public Condition setAssertedDate(Date value) { 
1643      if (value == null)
1644        this.assertedDate = null;
1645      else {
1646        if (this.assertedDate == null)
1647          this.assertedDate = new DateTimeType();
1648        this.assertedDate.setValue(value);
1649      }
1650      return this;
1651    }
1652
1653    /**
1654     * @return {@link #asserter} (Individual who is making the condition statement.)
1655     */
1656    public Reference getAsserter() { 
1657      if (this.asserter == null)
1658        if (Configuration.errorOnAutoCreate())
1659          throw new Error("Attempt to auto-create Condition.asserter");
1660        else if (Configuration.doAutoCreate())
1661          this.asserter = new Reference(); // cc
1662      return this.asserter;
1663    }
1664
1665    public boolean hasAsserter() { 
1666      return this.asserter != null && !this.asserter.isEmpty();
1667    }
1668
1669    /**
1670     * @param value {@link #asserter} (Individual who is making the condition statement.)
1671     */
1672    public Condition setAsserter(Reference value)  { 
1673      this.asserter = value;
1674      return this;
1675    }
1676
1677    /**
1678     * @return {@link #asserter} 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. (Individual who is making the condition statement.)
1679     */
1680    public Resource getAsserterTarget() { 
1681      return this.asserterTarget;
1682    }
1683
1684    /**
1685     * @param value {@link #asserter} 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. (Individual who is making the condition statement.)
1686     */
1687    public Condition setAsserterTarget(Resource value) { 
1688      this.asserterTarget = value;
1689      return this;
1690    }
1691
1692    /**
1693     * @return {@link #stage} (Clinical stage or grade of a condition. May include formal severity assessments.)
1694     */
1695    public ConditionStageComponent getStage() { 
1696      if (this.stage == null)
1697        if (Configuration.errorOnAutoCreate())
1698          throw new Error("Attempt to auto-create Condition.stage");
1699        else if (Configuration.doAutoCreate())
1700          this.stage = new ConditionStageComponent(); // cc
1701      return this.stage;
1702    }
1703
1704    public boolean hasStage() { 
1705      return this.stage != null && !this.stage.isEmpty();
1706    }
1707
1708    /**
1709     * @param value {@link #stage} (Clinical stage or grade of a condition. May include formal severity assessments.)
1710     */
1711    public Condition setStage(ConditionStageComponent value)  { 
1712      this.stage = value;
1713      return this;
1714    }
1715
1716    /**
1717     * @return {@link #evidence} (Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.)
1718     */
1719    public List<ConditionEvidenceComponent> getEvidence() { 
1720      if (this.evidence == null)
1721        this.evidence = new ArrayList<ConditionEvidenceComponent>();
1722      return this.evidence;
1723    }
1724
1725    /**
1726     * @return Returns a reference to <code>this</code> for easy method chaining
1727     */
1728    public Condition setEvidence(List<ConditionEvidenceComponent> theEvidence) { 
1729      this.evidence = theEvidence;
1730      return this;
1731    }
1732
1733    public boolean hasEvidence() { 
1734      if (this.evidence == null)
1735        return false;
1736      for (ConditionEvidenceComponent item : this.evidence)
1737        if (!item.isEmpty())
1738          return true;
1739      return false;
1740    }
1741
1742    public ConditionEvidenceComponent addEvidence() { //3
1743      ConditionEvidenceComponent t = new ConditionEvidenceComponent();
1744      if (this.evidence == null)
1745        this.evidence = new ArrayList<ConditionEvidenceComponent>();
1746      this.evidence.add(t);
1747      return t;
1748    }
1749
1750    public Condition addEvidence(ConditionEvidenceComponent t) { //3
1751      if (t == null)
1752        return this;
1753      if (this.evidence == null)
1754        this.evidence = new ArrayList<ConditionEvidenceComponent>();
1755      this.evidence.add(t);
1756      return this;
1757    }
1758
1759    /**
1760     * @return The first repetition of repeating field {@link #evidence}, creating it if it does not already exist
1761     */
1762    public ConditionEvidenceComponent getEvidenceFirstRep() { 
1763      if (getEvidence().isEmpty()) {
1764        addEvidence();
1765      }
1766      return getEvidence().get(0);
1767    }
1768
1769    /**
1770     * @return {@link #note} (Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis.)
1771     */
1772    public List<Annotation> getNote() { 
1773      if (this.note == null)
1774        this.note = new ArrayList<Annotation>();
1775      return this.note;
1776    }
1777
1778    /**
1779     * @return Returns a reference to <code>this</code> for easy method chaining
1780     */
1781    public Condition setNote(List<Annotation> theNote) { 
1782      this.note = theNote;
1783      return this;
1784    }
1785
1786    public boolean hasNote() { 
1787      if (this.note == null)
1788        return false;
1789      for (Annotation item : this.note)
1790        if (!item.isEmpty())
1791          return true;
1792      return false;
1793    }
1794
1795    public Annotation addNote() { //3
1796      Annotation t = new Annotation();
1797      if (this.note == null)
1798        this.note = new ArrayList<Annotation>();
1799      this.note.add(t);
1800      return t;
1801    }
1802
1803    public Condition addNote(Annotation t) { //3
1804      if (t == null)
1805        return this;
1806      if (this.note == null)
1807        this.note = new ArrayList<Annotation>();
1808      this.note.add(t);
1809      return this;
1810    }
1811
1812    /**
1813     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist
1814     */
1815    public Annotation getNoteFirstRep() { 
1816      if (getNote().isEmpty()) {
1817        addNote();
1818      }
1819      return getNote().get(0);
1820    }
1821
1822      protected void listChildren(List<Property> children) {
1823        super.listChildren(children);
1824        children.add(new Property("identifier", "Identifier", "This records identifiers associated with this condition that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier));
1825        children.add(new Property("clinicalStatus", "code", "The clinical status of the condition.", 0, 1, clinicalStatus));
1826        children.add(new Property("verificationStatus", "code", "The verification status to support the clinical status of the condition.", 0, 1, verificationStatus));
1827        children.add(new Property("category", "CodeableConcept", "A category assigned to the condition.", 0, java.lang.Integer.MAX_VALUE, category));
1828        children.add(new Property("severity", "CodeableConcept", "A subjective assessment of the severity of the condition as evaluated by the clinician.", 0, 1, severity));
1829        children.add(new Property("code", "CodeableConcept", "Identification of the condition, problem or diagnosis.", 0, 1, code));
1830        children.add(new Property("bodySite", "CodeableConcept", "The anatomical location where this condition manifests itself.", 0, java.lang.Integer.MAX_VALUE, bodySite));
1831        children.add(new Property("subject", "Reference(Patient|Group)", "Indicates the patient or group who the condition record is associated with.", 0, 1, subject));
1832        children.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", "Encounter during which the condition was first asserted.", 0, 1, context));
1833        children.add(new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset));
1834        children.add(new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement));
1835        children.add(new Property("assertedDate", "dateTime", "The date on which the existance of the Condition was first asserted or acknowledged.", 0, 1, assertedDate));
1836        children.add(new Property("asserter", "Reference(Practitioner|Patient|RelatedPerson)", "Individual who is making the condition statement.", 0, 1, asserter));
1837        children.add(new Property("stage", "", "Clinical stage or grade of a condition. May include formal severity assessments.", 0, 1, stage));
1838        children.add(new Property("evidence", "", "Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.", 0, java.lang.Integer.MAX_VALUE, evidence));
1839        children.add(new Property("note", "Annotation", "Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis.", 0, java.lang.Integer.MAX_VALUE, note));
1840      }
1841
1842      @Override
1843      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1844        switch (_hash) {
1845        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "This records identifiers associated with this condition that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier);
1846        case -462853915: /*clinicalStatus*/  return new Property("clinicalStatus", "code", "The clinical status of the condition.", 0, 1, clinicalStatus);
1847        case -842509843: /*verificationStatus*/  return new Property("verificationStatus", "code", "The verification status to support the clinical status of the condition.", 0, 1, verificationStatus);
1848        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "A category assigned to the condition.", 0, java.lang.Integer.MAX_VALUE, category);
1849        case 1478300413: /*severity*/  return new Property("severity", "CodeableConcept", "A subjective assessment of the severity of the condition as evaluated by the clinician.", 0, 1, severity);
1850        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Identification of the condition, problem or diagnosis.", 0, 1, code);
1851        case 1702620169: /*bodySite*/  return new Property("bodySite", "CodeableConcept", "The anatomical location where this condition manifests itself.", 0, java.lang.Integer.MAX_VALUE, bodySite);
1852        case -1867885268: /*subject*/  return new Property("subject", "Reference(Patient|Group)", "Indicates the patient or group who the condition record is associated with.", 0, 1, subject);
1853        case 951530927: /*context*/  return new Property("context", "Reference(Encounter|EpisodeOfCare)", "Encounter during which the condition was first asserted.", 0, 1, context);
1854        case -1886216323: /*onset[x]*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1855        case 105901603: /*onset*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1856        case -1701663010: /*onsetDateTime*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1857        case -1886241828: /*onsetAge*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1858        case -1545082428: /*onsetPeriod*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1859        case -186664742: /*onsetRange*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1860        case -1445342188: /*onsetString*/  return new Property("onset[x]", "dateTime|Age|Period|Range|string", "Estimated or actual date or date-time  the condition began, in the opinion of the clinician.", 0, 1, onset);
1861        case -584196495: /*abatement[x]*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1862        case -921554001: /*abatement*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1863        case 44869738: /*abatementDateTime*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1864        case -584222000: /*abatementAge*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1865        case -2069881479: /*abatementBoolean*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1866        case -922036656: /*abatementPeriod*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1867        case 1218906830: /*abatementRange*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1868        case -822296416: /*abatementString*/  return new Property("abatement[x]", "dateTime|Age|boolean|Period|Range|string", "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate.", 0, 1, abatement);
1869        case -174231629: /*assertedDate*/  return new Property("assertedDate", "dateTime", "The date on which the existance of the Condition was first asserted or acknowledged.", 0, 1, assertedDate);
1870        case -373242253: /*asserter*/  return new Property("asserter", "Reference(Practitioner|Patient|RelatedPerson)", "Individual who is making the condition statement.", 0, 1, asserter);
1871        case 109757182: /*stage*/  return new Property("stage", "", "Clinical stage or grade of a condition. May include formal severity assessments.", 0, 1, stage);
1872        case 382967383: /*evidence*/  return new Property("evidence", "", "Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.", 0, java.lang.Integer.MAX_VALUE, evidence);
1873        case 3387378: /*note*/  return new Property("note", "Annotation", "Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis.", 0, java.lang.Integer.MAX_VALUE, note);
1874        default: return super.getNamedProperty(_hash, _name, _checkValid);
1875        }
1876
1877      }
1878
1879      @Override
1880      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1881        switch (hash) {
1882        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1883        case -462853915: /*clinicalStatus*/ return this.clinicalStatus == null ? new Base[0] : new Base[] {this.clinicalStatus}; // Enumeration<ConditionClinicalStatus>
1884        case -842509843: /*verificationStatus*/ return this.verificationStatus == null ? new Base[0] : new Base[] {this.verificationStatus}; // Enumeration<ConditionVerificationStatus>
1885        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept
1886        case 1478300413: /*severity*/ return this.severity == null ? new Base[0] : new Base[] {this.severity}; // CodeableConcept
1887        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1888        case 1702620169: /*bodySite*/ return this.bodySite == null ? new Base[0] : this.bodySite.toArray(new Base[this.bodySite.size()]); // CodeableConcept
1889        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
1890        case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // Reference
1891        case 105901603: /*onset*/ return this.onset == null ? new Base[0] : new Base[] {this.onset}; // Type
1892        case -921554001: /*abatement*/ return this.abatement == null ? new Base[0] : new Base[] {this.abatement}; // Type
1893        case -174231629: /*assertedDate*/ return this.assertedDate == null ? new Base[0] : new Base[] {this.assertedDate}; // DateTimeType
1894        case -373242253: /*asserter*/ return this.asserter == null ? new Base[0] : new Base[] {this.asserter}; // Reference
1895        case 109757182: /*stage*/ return this.stage == null ? new Base[0] : new Base[] {this.stage}; // ConditionStageComponent
1896        case 382967383: /*evidence*/ return this.evidence == null ? new Base[0] : this.evidence.toArray(new Base[this.evidence.size()]); // ConditionEvidenceComponent
1897        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
1898        default: return super.getProperty(hash, name, checkValid);
1899        }
1900
1901      }
1902
1903      @Override
1904      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1905        switch (hash) {
1906        case -1618432855: // identifier
1907          this.getIdentifier().add(castToIdentifier(value)); // Identifier
1908          return value;
1909        case -462853915: // clinicalStatus
1910          value = new ConditionClinicalStatusEnumFactory().fromType(castToCode(value));
1911          this.clinicalStatus = (Enumeration) value; // Enumeration<ConditionClinicalStatus>
1912          return value;
1913        case -842509843: // verificationStatus
1914          value = new ConditionVerificationStatusEnumFactory().fromType(castToCode(value));
1915          this.verificationStatus = (Enumeration) value; // Enumeration<ConditionVerificationStatus>
1916          return value;
1917        case 50511102: // category
1918          this.getCategory().add(castToCodeableConcept(value)); // CodeableConcept
1919          return value;
1920        case 1478300413: // severity
1921          this.severity = castToCodeableConcept(value); // CodeableConcept
1922          return value;
1923        case 3059181: // code
1924          this.code = castToCodeableConcept(value); // CodeableConcept
1925          return value;
1926        case 1702620169: // bodySite
1927          this.getBodySite().add(castToCodeableConcept(value)); // CodeableConcept
1928          return value;
1929        case -1867885268: // subject
1930          this.subject = castToReference(value); // Reference
1931          return value;
1932        case 951530927: // context
1933          this.context = castToReference(value); // Reference
1934          return value;
1935        case 105901603: // onset
1936          this.onset = castToType(value); // Type
1937          return value;
1938        case -921554001: // abatement
1939          this.abatement = castToType(value); // Type
1940          return value;
1941        case -174231629: // assertedDate
1942          this.assertedDate = castToDateTime(value); // DateTimeType
1943          return value;
1944        case -373242253: // asserter
1945          this.asserter = castToReference(value); // Reference
1946          return value;
1947        case 109757182: // stage
1948          this.stage = (ConditionStageComponent) value; // ConditionStageComponent
1949          return value;
1950        case 382967383: // evidence
1951          this.getEvidence().add((ConditionEvidenceComponent) value); // ConditionEvidenceComponent
1952          return value;
1953        case 3387378: // note
1954          this.getNote().add(castToAnnotation(value)); // Annotation
1955          return value;
1956        default: return super.setProperty(hash, name, value);
1957        }
1958
1959      }
1960
1961      @Override
1962      public Base setProperty(String name, Base value) throws FHIRException {
1963        if (name.equals("identifier")) {
1964          this.getIdentifier().add(castToIdentifier(value));
1965        } else if (name.equals("clinicalStatus")) {
1966          value = new ConditionClinicalStatusEnumFactory().fromType(castToCode(value));
1967          this.clinicalStatus = (Enumeration) value; // Enumeration<ConditionClinicalStatus>
1968        } else if (name.equals("verificationStatus")) {
1969          value = new ConditionVerificationStatusEnumFactory().fromType(castToCode(value));
1970          this.verificationStatus = (Enumeration) value; // Enumeration<ConditionVerificationStatus>
1971        } else if (name.equals("category")) {
1972          this.getCategory().add(castToCodeableConcept(value));
1973        } else if (name.equals("severity")) {
1974          this.severity = castToCodeableConcept(value); // CodeableConcept
1975        } else if (name.equals("code")) {
1976          this.code = castToCodeableConcept(value); // CodeableConcept
1977        } else if (name.equals("bodySite")) {
1978          this.getBodySite().add(castToCodeableConcept(value));
1979        } else if (name.equals("subject")) {
1980          this.subject = castToReference(value); // Reference
1981        } else if (name.equals("context")) {
1982          this.context = castToReference(value); // Reference
1983        } else if (name.equals("onset[x]")) {
1984          this.onset = castToType(value); // Type
1985        } else if (name.equals("abatement[x]")) {
1986          this.abatement = castToType(value); // Type
1987        } else if (name.equals("assertedDate")) {
1988          this.assertedDate = castToDateTime(value); // DateTimeType
1989        } else if (name.equals("asserter")) {
1990          this.asserter = castToReference(value); // Reference
1991        } else if (name.equals("stage")) {
1992          this.stage = (ConditionStageComponent) value; // ConditionStageComponent
1993        } else if (name.equals("evidence")) {
1994          this.getEvidence().add((ConditionEvidenceComponent) value);
1995        } else if (name.equals("note")) {
1996          this.getNote().add(castToAnnotation(value));
1997        } else
1998          return super.setProperty(name, value);
1999        return value;
2000      }
2001
2002      @Override
2003      public Base makeProperty(int hash, String name) throws FHIRException {
2004        switch (hash) {
2005        case -1618432855:  return addIdentifier(); 
2006        case -462853915:  return getClinicalStatusElement();
2007        case -842509843:  return getVerificationStatusElement();
2008        case 50511102:  return addCategory(); 
2009        case 1478300413:  return getSeverity(); 
2010        case 3059181:  return getCode(); 
2011        case 1702620169:  return addBodySite(); 
2012        case -1867885268:  return getSubject(); 
2013        case 951530927:  return getContext(); 
2014        case -1886216323:  return getOnset(); 
2015        case 105901603:  return getOnset(); 
2016        case -584196495:  return getAbatement(); 
2017        case -921554001:  return getAbatement(); 
2018        case -174231629:  return getAssertedDateElement();
2019        case -373242253:  return getAsserter(); 
2020        case 109757182:  return getStage(); 
2021        case 382967383:  return addEvidence(); 
2022        case 3387378:  return addNote(); 
2023        default: return super.makeProperty(hash, name);
2024        }
2025
2026      }
2027
2028      @Override
2029      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2030        switch (hash) {
2031        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
2032        case -462853915: /*clinicalStatus*/ return new String[] {"code"};
2033        case -842509843: /*verificationStatus*/ return new String[] {"code"};
2034        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
2035        case 1478300413: /*severity*/ return new String[] {"CodeableConcept"};
2036        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
2037        case 1702620169: /*bodySite*/ return new String[] {"CodeableConcept"};
2038        case -1867885268: /*subject*/ return new String[] {"Reference"};
2039        case 951530927: /*context*/ return new String[] {"Reference"};
2040        case 105901603: /*onset*/ return new String[] {"dateTime", "Age", "Period", "Range", "string"};
2041        case -921554001: /*abatement*/ return new String[] {"dateTime", "Age", "boolean", "Period", "Range", "string"};
2042        case -174231629: /*assertedDate*/ return new String[] {"dateTime"};
2043        case -373242253: /*asserter*/ return new String[] {"Reference"};
2044        case 109757182: /*stage*/ return new String[] {};
2045        case 382967383: /*evidence*/ return new String[] {};
2046        case 3387378: /*note*/ return new String[] {"Annotation"};
2047        default: return super.getTypesForProperty(hash, name);
2048        }
2049
2050      }
2051
2052      @Override
2053      public Base addChild(String name) throws FHIRException {
2054        if (name.equals("identifier")) {
2055          return addIdentifier();
2056        }
2057        else if (name.equals("clinicalStatus")) {
2058          throw new FHIRException("Cannot call addChild on a singleton property Condition.clinicalStatus");
2059        }
2060        else if (name.equals("verificationStatus")) {
2061          throw new FHIRException("Cannot call addChild on a singleton property Condition.verificationStatus");
2062        }
2063        else if (name.equals("category")) {
2064          return addCategory();
2065        }
2066        else if (name.equals("severity")) {
2067          this.severity = new CodeableConcept();
2068          return this.severity;
2069        }
2070        else if (name.equals("code")) {
2071          this.code = new CodeableConcept();
2072          return this.code;
2073        }
2074        else if (name.equals("bodySite")) {
2075          return addBodySite();
2076        }
2077        else if (name.equals("subject")) {
2078          this.subject = new Reference();
2079          return this.subject;
2080        }
2081        else if (name.equals("context")) {
2082          this.context = new Reference();
2083          return this.context;
2084        }
2085        else if (name.equals("onsetDateTime")) {
2086          this.onset = new DateTimeType();
2087          return this.onset;
2088        }
2089        else if (name.equals("onsetAge")) {
2090          this.onset = new Age();
2091          return this.onset;
2092        }
2093        else if (name.equals("onsetPeriod")) {
2094          this.onset = new Period();
2095          return this.onset;
2096        }
2097        else if (name.equals("onsetRange")) {
2098          this.onset = new Range();
2099          return this.onset;
2100        }
2101        else if (name.equals("onsetString")) {
2102          this.onset = new StringType();
2103          return this.onset;
2104        }
2105        else if (name.equals("abatementDateTime")) {
2106          this.abatement = new DateTimeType();
2107          return this.abatement;
2108        }
2109        else if (name.equals("abatementAge")) {
2110          this.abatement = new Age();
2111          return this.abatement;
2112        }
2113        else if (name.equals("abatementBoolean")) {
2114          this.abatement = new BooleanType();
2115          return this.abatement;
2116        }
2117        else if (name.equals("abatementPeriod")) {
2118          this.abatement = new Period();
2119          return this.abatement;
2120        }
2121        else if (name.equals("abatementRange")) {
2122          this.abatement = new Range();
2123          return this.abatement;
2124        }
2125        else if (name.equals("abatementString")) {
2126          this.abatement = new StringType();
2127          return this.abatement;
2128        }
2129        else if (name.equals("assertedDate")) {
2130          throw new FHIRException("Cannot call addChild on a singleton property Condition.assertedDate");
2131        }
2132        else if (name.equals("asserter")) {
2133          this.asserter = new Reference();
2134          return this.asserter;
2135        }
2136        else if (name.equals("stage")) {
2137          this.stage = new ConditionStageComponent();
2138          return this.stage;
2139        }
2140        else if (name.equals("evidence")) {
2141          return addEvidence();
2142        }
2143        else if (name.equals("note")) {
2144          return addNote();
2145        }
2146        else
2147          return super.addChild(name);
2148      }
2149
2150  public String fhirType() {
2151    return "Condition";
2152
2153  }
2154
2155      public Condition copy() {
2156        Condition dst = new Condition();
2157        copyValues(dst);
2158        if (identifier != null) {
2159          dst.identifier = new ArrayList<Identifier>();
2160          for (Identifier i : identifier)
2161            dst.identifier.add(i.copy());
2162        };
2163        dst.clinicalStatus = clinicalStatus == null ? null : clinicalStatus.copy();
2164        dst.verificationStatus = verificationStatus == null ? null : verificationStatus.copy();
2165        if (category != null) {
2166          dst.category = new ArrayList<CodeableConcept>();
2167          for (CodeableConcept i : category)
2168            dst.category.add(i.copy());
2169        };
2170        dst.severity = severity == null ? null : severity.copy();
2171        dst.code = code == null ? null : code.copy();
2172        if (bodySite != null) {
2173          dst.bodySite = new ArrayList<CodeableConcept>();
2174          for (CodeableConcept i : bodySite)
2175            dst.bodySite.add(i.copy());
2176        };
2177        dst.subject = subject == null ? null : subject.copy();
2178        dst.context = context == null ? null : context.copy();
2179        dst.onset = onset == null ? null : onset.copy();
2180        dst.abatement = abatement == null ? null : abatement.copy();
2181        dst.assertedDate = assertedDate == null ? null : assertedDate.copy();
2182        dst.asserter = asserter == null ? null : asserter.copy();
2183        dst.stage = stage == null ? null : stage.copy();
2184        if (evidence != null) {
2185          dst.evidence = new ArrayList<ConditionEvidenceComponent>();
2186          for (ConditionEvidenceComponent i : evidence)
2187            dst.evidence.add(i.copy());
2188        };
2189        if (note != null) {
2190          dst.note = new ArrayList<Annotation>();
2191          for (Annotation i : note)
2192            dst.note.add(i.copy());
2193        };
2194        return dst;
2195      }
2196
2197      protected Condition typedCopy() {
2198        return copy();
2199      }
2200
2201      @Override
2202      public boolean equalsDeep(Base other_) {
2203        if (!super.equalsDeep(other_))
2204          return false;
2205        if (!(other_ instanceof Condition))
2206          return false;
2207        Condition o = (Condition) other_;
2208        return compareDeep(identifier, o.identifier, true) && compareDeep(clinicalStatus, o.clinicalStatus, true)
2209           && compareDeep(verificationStatus, o.verificationStatus, true) && compareDeep(category, o.category, true)
2210           && compareDeep(severity, o.severity, true) && compareDeep(code, o.code, true) && compareDeep(bodySite, o.bodySite, true)
2211           && compareDeep(subject, o.subject, true) && compareDeep(context, o.context, true) && compareDeep(onset, o.onset, true)
2212           && compareDeep(abatement, o.abatement, true) && compareDeep(assertedDate, o.assertedDate, true)
2213           && compareDeep(asserter, o.asserter, true) && compareDeep(stage, o.stage, true) && compareDeep(evidence, o.evidence, true)
2214           && compareDeep(note, o.note, true);
2215      }
2216
2217      @Override
2218      public boolean equalsShallow(Base other_) {
2219        if (!super.equalsShallow(other_))
2220          return false;
2221        if (!(other_ instanceof Condition))
2222          return false;
2223        Condition o = (Condition) other_;
2224        return compareValues(clinicalStatus, o.clinicalStatus, true) && compareValues(verificationStatus, o.verificationStatus, true)
2225           && compareValues(assertedDate, o.assertedDate, true);
2226      }
2227
2228      public boolean isEmpty() {
2229        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, clinicalStatus
2230          , verificationStatus, category, severity, code, bodySite, subject, context, onset
2231          , abatement, assertedDate, asserter, stage, evidence, note);
2232      }
2233
2234  @Override
2235  public ResourceType getResourceType() {
2236    return ResourceType.Condition;
2237   }
2238
2239 /**
2240   * Search parameter: <b>severity</b>
2241   * <p>
2242   * Description: <b>The severity of the condition</b><br>
2243   * Type: <b>token</b><br>
2244   * Path: <b>Condition.severity</b><br>
2245   * </p>
2246   */
2247  @SearchParamDefinition(name="severity", path="Condition.severity", description="The severity of the condition", type="token" )
2248  public static final String SP_SEVERITY = "severity";
2249 /**
2250   * <b>Fluent Client</b> search parameter constant for <b>severity</b>
2251   * <p>
2252   * Description: <b>The severity of the condition</b><br>
2253   * Type: <b>token</b><br>
2254   * Path: <b>Condition.severity</b><br>
2255   * </p>
2256   */
2257  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SEVERITY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SEVERITY);
2258
2259 /**
2260   * Search parameter: <b>evidence-detail</b>
2261   * <p>
2262   * Description: <b>Supporting information found elsewhere</b><br>
2263   * Type: <b>reference</b><br>
2264   * Path: <b>Condition.evidence.detail</b><br>
2265   * </p>
2266   */
2267  @SearchParamDefinition(name="evidence-detail", path="Condition.evidence.detail", description="Supporting information found elsewhere", type="reference" )
2268  public static final String SP_EVIDENCE_DETAIL = "evidence-detail";
2269 /**
2270   * <b>Fluent Client</b> search parameter constant for <b>evidence-detail</b>
2271   * <p>
2272   * Description: <b>Supporting information found elsewhere</b><br>
2273   * Type: <b>reference</b><br>
2274   * Path: <b>Condition.evidence.detail</b><br>
2275   * </p>
2276   */
2277  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam EVIDENCE_DETAIL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_EVIDENCE_DETAIL);
2278
2279/**
2280   * Constant for fluent queries to be used to add include statements. Specifies
2281   * the path value of "<b>Condition:evidence-detail</b>".
2282   */
2283  public static final ca.uhn.fhir.model.api.Include INCLUDE_EVIDENCE_DETAIL = new ca.uhn.fhir.model.api.Include("Condition:evidence-detail").toLocked();
2284
2285 /**
2286   * Search parameter: <b>identifier</b>
2287   * <p>
2288   * Description: <b>A unique identifier of the condition record</b><br>
2289   * Type: <b>token</b><br>
2290   * Path: <b>Condition.identifier</b><br>
2291   * </p>
2292   */
2293  @SearchParamDefinition(name="identifier", path="Condition.identifier", description="A unique identifier of the condition record", type="token" )
2294  public static final String SP_IDENTIFIER = "identifier";
2295 /**
2296   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
2297   * <p>
2298   * Description: <b>A unique identifier of the condition record</b><br>
2299   * Type: <b>token</b><br>
2300   * Path: <b>Condition.identifier</b><br>
2301   * </p>
2302   */
2303  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2304
2305 /**
2306   * Search parameter: <b>onset-info</b>
2307   * <p>
2308   * Description: <b>Onsets as a string</b><br>
2309   * Type: <b>string</b><br>
2310   * Path: <b>Condition.onset[x]</b><br>
2311   * </p>
2312   */
2313  @SearchParamDefinition(name="onset-info", path="Condition.onset.as(string)", description="Onsets as a string", type="string" )
2314  public static final String SP_ONSET_INFO = "onset-info";
2315 /**
2316   * <b>Fluent Client</b> search parameter constant for <b>onset-info</b>
2317   * <p>
2318   * Description: <b>Onsets as a string</b><br>
2319   * Type: <b>string</b><br>
2320   * Path: <b>Condition.onset[x]</b><br>
2321   * </p>
2322   */
2323  public static final ca.uhn.fhir.rest.gclient.StringClientParam ONSET_INFO = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ONSET_INFO);
2324
2325 /**
2326   * Search parameter: <b>code</b>
2327   * <p>
2328   * Description: <b>Code for the condition</b><br>
2329   * Type: <b>token</b><br>
2330   * Path: <b>Condition.code</b><br>
2331   * </p>
2332   */
2333  @SearchParamDefinition(name="code", path="Condition.code", description="Code for the condition", type="token" )
2334  public static final String SP_CODE = "code";
2335 /**
2336   * <b>Fluent Client</b> search parameter constant for <b>code</b>
2337   * <p>
2338   * Description: <b>Code for the condition</b><br>
2339   * Type: <b>token</b><br>
2340   * Path: <b>Condition.code</b><br>
2341   * </p>
2342   */
2343  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
2344
2345 /**
2346   * Search parameter: <b>evidence</b>
2347   * <p>
2348   * Description: <b>Manifestation/symptom</b><br>
2349   * Type: <b>token</b><br>
2350   * Path: <b>Condition.evidence.code</b><br>
2351   * </p>
2352   */
2353  @SearchParamDefinition(name="evidence", path="Condition.evidence.code", description="Manifestation/symptom", type="token" )
2354  public static final String SP_EVIDENCE = "evidence";
2355 /**
2356   * <b>Fluent Client</b> search parameter constant for <b>evidence</b>
2357   * <p>
2358   * Description: <b>Manifestation/symptom</b><br>
2359   * Type: <b>token</b><br>
2360   * Path: <b>Condition.evidence.code</b><br>
2361   * </p>
2362   */
2363  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EVIDENCE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EVIDENCE);
2364
2365 /**
2366   * Search parameter: <b>subject</b>
2367   * <p>
2368   * Description: <b>Who has the condition?</b><br>
2369   * Type: <b>reference</b><br>
2370   * Path: <b>Condition.subject</b><br>
2371   * </p>
2372   */
2373  @SearchParamDefinition(name="subject", path="Condition.subject", description="Who has the condition?", type="reference", target={Group.class, Patient.class } )
2374  public static final String SP_SUBJECT = "subject";
2375 /**
2376   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
2377   * <p>
2378   * Description: <b>Who has the condition?</b><br>
2379   * Type: <b>reference</b><br>
2380   * Path: <b>Condition.subject</b><br>
2381   * </p>
2382   */
2383  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
2384
2385/**
2386   * Constant for fluent queries to be used to add include statements. Specifies
2387   * the path value of "<b>Condition:subject</b>".
2388   */
2389  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Condition:subject").toLocked();
2390
2391 /**
2392   * Search parameter: <b>verification-status</b>
2393   * <p>
2394   * Description: <b>provisional | differential | confirmed | refuted | entered-in-error | unknown</b><br>
2395   * Type: <b>token</b><br>
2396   * Path: <b>Condition.verificationStatus</b><br>
2397   * </p>
2398   */
2399  @SearchParamDefinition(name="verification-status", path="Condition.verificationStatus", description="provisional | differential | confirmed | refuted | entered-in-error | unknown", type="token" )
2400  public static final String SP_VERIFICATION_STATUS = "verification-status";
2401 /**
2402   * <b>Fluent Client</b> search parameter constant for <b>verification-status</b>
2403   * <p>
2404   * Description: <b>provisional | differential | confirmed | refuted | entered-in-error | unknown</b><br>
2405   * Type: <b>token</b><br>
2406   * Path: <b>Condition.verificationStatus</b><br>
2407   * </p>
2408   */
2409  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERIFICATION_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERIFICATION_STATUS);
2410
2411 /**
2412   * Search parameter: <b>clinical-status</b>
2413   * <p>
2414   * Description: <b>The clinical status of the condition</b><br>
2415   * Type: <b>token</b><br>
2416   * Path: <b>Condition.clinicalStatus</b><br>
2417   * </p>
2418   */
2419  @SearchParamDefinition(name="clinical-status", path="Condition.clinicalStatus", description="The clinical status of the condition", type="token" )
2420  public static final String SP_CLINICAL_STATUS = "clinical-status";
2421 /**
2422   * <b>Fluent Client</b> search parameter constant for <b>clinical-status</b>
2423   * <p>
2424   * Description: <b>The clinical status of the condition</b><br>
2425   * Type: <b>token</b><br>
2426   * Path: <b>Condition.clinicalStatus</b><br>
2427   * </p>
2428   */
2429  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CLINICAL_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CLINICAL_STATUS);
2430
2431 /**
2432   * Search parameter: <b>encounter</b>
2433   * <p>
2434   * Description: <b>Encounter when condition first asserted</b><br>
2435   * Type: <b>reference</b><br>
2436   * Path: <b>Condition.context</b><br>
2437   * </p>
2438   */
2439  @SearchParamDefinition(name="encounter", path="Condition.context", description="Encounter when condition first asserted", type="reference", target={Encounter.class } )
2440  public static final String SP_ENCOUNTER = "encounter";
2441 /**
2442   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
2443   * <p>
2444   * Description: <b>Encounter when condition first asserted</b><br>
2445   * Type: <b>reference</b><br>
2446   * Path: <b>Condition.context</b><br>
2447   * </p>
2448   */
2449  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
2450
2451/**
2452   * Constant for fluent queries to be used to add include statements. Specifies
2453   * the path value of "<b>Condition:encounter</b>".
2454   */
2455  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Condition:encounter").toLocked();
2456
2457 /**
2458   * Search parameter: <b>abatement-boolean</b>
2459   * <p>
2460   * Description: <b>Abatement boolean (boolean is true or non-boolean values are present)</b><br>
2461   * Type: <b>token</b><br>
2462   * Path: <b>Condition.abatement[x]</b><br>
2463   * </p>
2464   */
2465  @SearchParamDefinition(name="abatement-boolean", path="Condition.abatement.as(boolean) | Condition.abatement.is(dateTime) | Condition.abatement.is(Age) | Condition.abatement.is(Period) | Condition.abatement.is(Range) | Condition.abatement.is(string)", description="Abatement boolean (boolean is true or non-boolean values are present)", type="token" )
2466  public static final String SP_ABATEMENT_BOOLEAN = "abatement-boolean";
2467 /**
2468   * <b>Fluent Client</b> search parameter constant for <b>abatement-boolean</b>
2469   * <p>
2470   * Description: <b>Abatement boolean (boolean is true or non-boolean values are present)</b><br>
2471   * Type: <b>token</b><br>
2472   * Path: <b>Condition.abatement[x]</b><br>
2473   * </p>
2474   */
2475  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ABATEMENT_BOOLEAN = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ABATEMENT_BOOLEAN);
2476
2477 /**
2478   * Search parameter: <b>onset-date</b>
2479   * <p>
2480   * Description: <b>Date related onsets (dateTime and Period)</b><br>
2481   * Type: <b>date</b><br>
2482   * Path: <b>Condition.onset[x]</b><br>
2483   * </p>
2484   */
2485  @SearchParamDefinition(name="onset-date", path="Condition.onset.as(dateTime) | Condition.onset.as(Period)", description="Date related onsets (dateTime and Period)", type="date" )
2486  public static final String SP_ONSET_DATE = "onset-date";
2487 /**
2488   * <b>Fluent Client</b> search parameter constant for <b>onset-date</b>
2489   * <p>
2490   * Description: <b>Date related onsets (dateTime and Period)</b><br>
2491   * Type: <b>date</b><br>
2492   * Path: <b>Condition.onset[x]</b><br>
2493   * </p>
2494   */
2495  public static final ca.uhn.fhir.rest.gclient.DateClientParam ONSET_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_ONSET_DATE);
2496
2497 /**
2498   * Search parameter: <b>abatement-date</b>
2499   * <p>
2500   * Description: <b>Date-related abatements (dateTime and period)</b><br>
2501   * Type: <b>date</b><br>
2502   * Path: <b>Condition.abatement[x]</b><br>
2503   * </p>
2504   */
2505  @SearchParamDefinition(name="abatement-date", path="Condition.abatement.as(dateTime) | Condition.abatement.as(Period)", description="Date-related abatements (dateTime and period)", type="date" )
2506  public static final String SP_ABATEMENT_DATE = "abatement-date";
2507 /**
2508   * <b>Fluent Client</b> search parameter constant for <b>abatement-date</b>
2509   * <p>
2510   * Description: <b>Date-related abatements (dateTime and period)</b><br>
2511   * Type: <b>date</b><br>
2512   * Path: <b>Condition.abatement[x]</b><br>
2513   * </p>
2514   */
2515  public static final ca.uhn.fhir.rest.gclient.DateClientParam ABATEMENT_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_ABATEMENT_DATE);
2516
2517 /**
2518   * Search parameter: <b>asserter</b>
2519   * <p>
2520   * Description: <b>Person who asserts this condition</b><br>
2521   * Type: <b>reference</b><br>
2522   * Path: <b>Condition.asserter</b><br>
2523   * </p>
2524   */
2525  @SearchParamDefinition(name="asserter", path="Condition.asserter", description="Person who asserts this condition", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={Patient.class, Practitioner.class, RelatedPerson.class } )
2526  public static final String SP_ASSERTER = "asserter";
2527 /**
2528   * <b>Fluent Client</b> search parameter constant for <b>asserter</b>
2529   * <p>
2530   * Description: <b>Person who asserts this condition</b><br>
2531   * Type: <b>reference</b><br>
2532   * Path: <b>Condition.asserter</b><br>
2533   * </p>
2534   */
2535  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ASSERTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ASSERTER);
2536
2537/**
2538   * Constant for fluent queries to be used to add include statements. Specifies
2539   * the path value of "<b>Condition:asserter</b>".
2540   */
2541  public static final ca.uhn.fhir.model.api.Include INCLUDE_ASSERTER = new ca.uhn.fhir.model.api.Include("Condition:asserter").toLocked();
2542
2543 /**
2544   * Search parameter: <b>stage</b>
2545   * <p>
2546   * Description: <b>Simple summary (disease specific)</b><br>
2547   * Type: <b>token</b><br>
2548   * Path: <b>Condition.stage.summary</b><br>
2549   * </p>
2550   */
2551  @SearchParamDefinition(name="stage", path="Condition.stage.summary", description="Simple summary (disease specific)", type="token" )
2552  public static final String SP_STAGE = "stage";
2553 /**
2554   * <b>Fluent Client</b> search parameter constant for <b>stage</b>
2555   * <p>
2556   * Description: <b>Simple summary (disease specific)</b><br>
2557   * Type: <b>token</b><br>
2558   * Path: <b>Condition.stage.summary</b><br>
2559   * </p>
2560   */
2561  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STAGE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STAGE);
2562
2563 /**
2564   * Search parameter: <b>abatement-string</b>
2565   * <p>
2566   * Description: <b>Abatement as a string</b><br>
2567   * Type: <b>string</b><br>
2568   * Path: <b>Condition.abatement[x]</b><br>
2569   * </p>
2570   */
2571  @SearchParamDefinition(name="abatement-string", path="Condition.abatement.as(string)", description="Abatement as a string", type="string" )
2572  public static final String SP_ABATEMENT_STRING = "abatement-string";
2573 /**
2574   * <b>Fluent Client</b> search parameter constant for <b>abatement-string</b>
2575   * <p>
2576   * Description: <b>Abatement as a string</b><br>
2577   * Type: <b>string</b><br>
2578   * Path: <b>Condition.abatement[x]</b><br>
2579   * </p>
2580   */
2581  public static final ca.uhn.fhir.rest.gclient.StringClientParam ABATEMENT_STRING = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ABATEMENT_STRING);
2582
2583 /**
2584   * Search parameter: <b>patient</b>
2585   * <p>
2586   * Description: <b>Who has the condition?</b><br>
2587   * Type: <b>reference</b><br>
2588   * Path: <b>Condition.subject</b><br>
2589   * </p>
2590   */
2591  @SearchParamDefinition(name="patient", path="Condition.subject", description="Who has the condition?", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Patient.class } )
2592  public static final String SP_PATIENT = "patient";
2593 /**
2594   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2595   * <p>
2596   * Description: <b>Who has the condition?</b><br>
2597   * Type: <b>reference</b><br>
2598   * Path: <b>Condition.subject</b><br>
2599   * </p>
2600   */
2601  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2602
2603/**
2604   * Constant for fluent queries to be used to add include statements. Specifies
2605   * the path value of "<b>Condition:patient</b>".
2606   */
2607  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Condition:patient").toLocked();
2608
2609 /**
2610   * Search parameter: <b>context</b>
2611   * <p>
2612   * Description: <b>Encounter or episode when condition first asserted</b><br>
2613   * Type: <b>reference</b><br>
2614   * Path: <b>Condition.context</b><br>
2615   * </p>
2616   */
2617  @SearchParamDefinition(name="context", path="Condition.context", description="Encounter or episode when condition first asserted", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Encounter") }, target={Encounter.class, EpisodeOfCare.class } )
2618  public static final String SP_CONTEXT = "context";
2619 /**
2620   * <b>Fluent Client</b> search parameter constant for <b>context</b>
2621   * <p>
2622   * Description: <b>Encounter or episode when condition first asserted</b><br>
2623   * Type: <b>reference</b><br>
2624   * Path: <b>Condition.context</b><br>
2625   * </p>
2626   */
2627  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CONTEXT);
2628
2629/**
2630   * Constant for fluent queries to be used to add include statements. Specifies
2631   * the path value of "<b>Condition:context</b>".
2632   */
2633  public static final ca.uhn.fhir.model.api.Include INCLUDE_CONTEXT = new ca.uhn.fhir.model.api.Include("Condition:context").toLocked();
2634
2635 /**
2636   * Search parameter: <b>onset-age</b>
2637   * <p>
2638   * Description: <b>Onsets as age or age range</b><br>
2639   * Type: <b>quantity</b><br>
2640   * Path: <b>Condition.onset[x]</b><br>
2641   * </p>
2642   */
2643  @SearchParamDefinition(name="onset-age", path="Condition.onset.as(Age) | Condition.onset.as(Range)", description="Onsets as age or age range", type="quantity" )
2644  public static final String SP_ONSET_AGE = "onset-age";
2645 /**
2646   * <b>Fluent Client</b> search parameter constant for <b>onset-age</b>
2647   * <p>
2648   * Description: <b>Onsets as age or age range</b><br>
2649   * Type: <b>quantity</b><br>
2650   * Path: <b>Condition.onset[x]</b><br>
2651   * </p>
2652   */
2653  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam ONSET_AGE = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_ONSET_AGE);
2654
2655 /**
2656   * Search parameter: <b>abatement-age</b>
2657   * <p>
2658   * Description: <b>Abatement as age or age range</b><br>
2659   * Type: <b>quantity</b><br>
2660   * Path: <b>Condition.abatement[x]</b><br>
2661   * </p>
2662   */
2663  @SearchParamDefinition(name="abatement-age", path="Condition.abatement.as(Age) | Condition.abatement.as(Range) | Condition.abatement.as(Age)", description="Abatement as age or age range", type="quantity" )
2664  public static final String SP_ABATEMENT_AGE = "abatement-age";
2665 /**
2666   * <b>Fluent Client</b> search parameter constant for <b>abatement-age</b>
2667   * <p>
2668   * Description: <b>Abatement as age or age range</b><br>
2669   * Type: <b>quantity</b><br>
2670   * Path: <b>Condition.abatement[x]</b><br>
2671   * </p>
2672   */
2673  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam ABATEMENT_AGE = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_ABATEMENT_AGE);
2674
2675 /**
2676   * Search parameter: <b>asserted-date</b>
2677   * <p>
2678   * Description: <b>Date record was believed accurate</b><br>
2679   * Type: <b>date</b><br>
2680   * Path: <b>Condition.assertedDate</b><br>
2681   * </p>
2682   */
2683  @SearchParamDefinition(name="asserted-date", path="Condition.assertedDate", description="Date record was believed accurate", type="date" )
2684  public static final String SP_ASSERTED_DATE = "asserted-date";
2685 /**
2686   * <b>Fluent Client</b> search parameter constant for <b>asserted-date</b>
2687   * <p>
2688   * Description: <b>Date record was believed accurate</b><br>
2689   * Type: <b>date</b><br>
2690   * Path: <b>Condition.assertedDate</b><br>
2691   * </p>
2692   */
2693  public static final ca.uhn.fhir.rest.gclient.DateClientParam ASSERTED_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_ASSERTED_DATE);
2694
2695 /**
2696   * Search parameter: <b>category</b>
2697   * <p>
2698   * Description: <b>The category of the condition</b><br>
2699   * Type: <b>token</b><br>
2700   * Path: <b>Condition.category</b><br>
2701   * </p>
2702   */
2703  @SearchParamDefinition(name="category", path="Condition.category", description="The category of the condition", type="token" )
2704  public static final String SP_CATEGORY = "category";
2705 /**
2706   * <b>Fluent Client</b> search parameter constant for <b>category</b>
2707   * <p>
2708   * Description: <b>The category of the condition</b><br>
2709   * Type: <b>token</b><br>
2710   * Path: <b>Condition.category</b><br>
2711   * </p>
2712   */
2713  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
2714
2715 /**
2716   * Search parameter: <b>body-site</b>
2717   * <p>
2718   * Description: <b>Anatomical location, if relevant</b><br>
2719   * Type: <b>token</b><br>
2720   * Path: <b>Condition.bodySite</b><br>
2721   * </p>
2722   */
2723  @SearchParamDefinition(name="body-site", path="Condition.bodySite", description="Anatomical location, if relevant", type="token" )
2724  public static final String SP_BODY_SITE = "body-site";
2725 /**
2726   * <b>Fluent Client</b> search parameter constant for <b>body-site</b>
2727   * <p>
2728   * Description: <b>Anatomical location, if relevant</b><br>
2729   * Type: <b>token</b><br>
2730   * Path: <b>Condition.bodySite</b><br>
2731   * </p>
2732   */
2733  public static final ca.uhn.fhir.rest.gclient.TokenClientParam BODY_SITE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BODY_SITE);
2734
2735
2736}