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